![install_and_test](https://github.com/trajectory-invariants/invariants_py/actions/workflows/install_and_test.yml/badge.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/trajectory-invariants/invariants_py)
![GitHub issues](https://img.shields.io/github/issues/trajectory-invariants/invariants_py)
<p align="center">
<img src="https://trajectory-invariants.github.io/images/logo-trajectory-invariants.png" alt="Logo Trajectory Invariants" title="Trajectory Invariants" width="750">
</p>
`invariants-py` is a Python library to robustly calculate coordinate-invariant trajectory representations using geometric optimal control.
It also supports trajectory generation under user-specified trajectory constraints starting from invariant representations.
More information can be found on the documentation website: https://trajectory-invariants.github.io
## Features
<!-- TODO: Screenshots or gifs to show results. -->
The main features are:
- Calculation of invariant descriptors for trajectories.
- Fast trajectory adaptation starting from the invariant descriptors.
Invariant trajectory representations find their application in trajectory analysis, trajectory segmentation, recognition and generalization.
## Installation
The package can be installed from PyPI or from source.
### Prerequisites
The package requires Python 3.8 or higher.
### 1. Installation from PyPI
This installation option is recommended if you only want to use the package and do not plan to modify the source code.
Upgrade your version of `pip`:
```shell
pip install --upgrade pip
```
Install the package:
```shell
pip install invariants-py
```
### 2. Installation from source
This installation option is recommended if you plan to modify or experiment with the source code.
Clone (or download) the `invariants-py` repository:
```shell
git clone https://github.com/trajectory-invariants/invariants_py.git
```
Navigate to the cloned repository:
```shell
cd invariants_py
```
Upgrade your version of `pip`:
```shell
pip install --upgrade pip
```
Install the package:
```shell
pip install -e .
```
## Getting started
<!-- Add a code snippet here with basic example in a few lines -->
Basic examples are provided to get you started in the [examples folder](./examples/).
More detailed examples and tutorials can be found on the [documentation website](https://trajectory-invariants.github.io/docs/python/).
## Speed up using Fatrop
To speed up the solution of the optimal control problems, you can optionally install the [fatrop solver](https://gitlab.kuleuven.be/robotgenskill/fatrop/fatrop). The instructions are available on [this page](https://trajectory-invariants.github.io/docs/python/installation/installation-fatrop/) of the documentation website.
## Roadmap
The following features are planned for future releases:
- Support for more types of invariant representations (e.g. screw invariants, global invariants, ...).
- Support for more types of constraints in the trajectory generation.
- Benchmarking between different invariant representations in terms of robustness, computational efficiency, and generalizability.
## Contributing
We welcome contributions to this repository, for example in the form of pull requests.
## Contributors
We wish to thank the following people for their contributions to an early version of the software: Victor van Wymeersch, Zeno Gillis, Toon Daemen, Glenn Maes, Ali Mousavi, Lander Vanroye
## Support
For questions, bugs, feature requests, etc., please open [an issue on this repository](https://github.com/trajectory-invariants/invariants_py/issues).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Citing
If you use this package in your research, please cite the following paper:
```
@article{vochten2023invariant,
title={Invariant Descriptors of Motion and Force Trajectories for Interpreting Object Manipulation Tasks in Contact},
author={Vochten, Maxim and Mohammadi, Ali Mousavi and Verduyn, Arno and De Laet, Tinne and Aertbeli{\"e}n, Erwin and De Schutter, Joris},
journal={IEEE Transactions on Robotics},
year={2023},
volume={39},
number={6},
pages={4892-4912},
doi={10.1109/TRO.2023.3309230}}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "invariants-py",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "casadi, coordinate-invariant, differential geometry, dynamics, geometric optimal control, invariant, kinematics, optimal control, optimization, python, robotics, screw theory, trajectory analysis, trajectory generation, trajectory optimization, trajectory planning, trajectory representation",
"author": "Maxim Vochten, Riccardo Burlizzi, Arno Verduyn",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c8/7b/e6c1f4344d3c8ca89933b91b344e6a9a3c35647f8722ab8b2d8fb2a95acd/invariants_py-0.3.9.tar.gz",
"platform": null,
"description": "![install_and_test](https://github.com/trajectory-invariants/invariants_py/actions/workflows/install_and_test.yml/badge.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/trajectory-invariants/invariants_py)\n![GitHub issues](https://img.shields.io/github/issues/trajectory-invariants/invariants_py)\n\n<p align=\"center\">\n <img src=\"https://trajectory-invariants.github.io/images/logo-trajectory-invariants.png\" alt=\"Logo Trajectory Invariants\" title=\"Trajectory Invariants\" width=\"750\">\n</p>\n\n`invariants-py` is a Python library to robustly calculate coordinate-invariant trajectory representations using geometric optimal control. \nIt also supports trajectory generation under user-specified trajectory constraints starting from invariant representations.\n\nMore information can be found on the documentation website: https://trajectory-invariants.github.io\n\n## Features\n\n<!-- TODO: Screenshots or gifs to show results. -->\n\nThe main features are:\n- Calculation of invariant descriptors for trajectories.\n- Fast trajectory adaptation starting from the invariant descriptors.\n\nInvariant trajectory representations find their application in trajectory analysis, trajectory segmentation, recognition and generalization. \n\n## Installation\n\nThe package can be installed from PyPI or from source.\n\n### Prerequisites\n\nThe package requires Python 3.8 or higher.\n\n### 1. Installation from PyPI\n\nThis installation option is recommended if you only want to use the package and do not plan to modify the source code.\n\nUpgrade your version of `pip`:\n```shell\npip install --upgrade pip \n```\n\nInstall the package:\n```shell\npip install invariants-py\n```\n\n### 2. Installation from source\n\nThis installation option is recommended if you plan to modify or experiment with the source code.\n\nClone (or download) the `invariants-py` repository:\n```shell\ngit clone https://github.com/trajectory-invariants/invariants_py.git\n```\n\nNavigate to the cloned repository:\n```shell\ncd invariants_py\n```\n\nUpgrade your version of `pip`:\n```shell\npip install --upgrade pip \n```\n\nInstall the package:\n```shell\npip install -e .\n```\n\n## Getting started\n\n<!-- Add a code snippet here with basic example in a few lines -->\n\nBasic examples are provided to get you started in the [examples folder](./examples/).\n\nMore detailed examples and tutorials can be found on the [documentation website](https://trajectory-invariants.github.io/docs/python/).\n\n## Speed up using Fatrop\n\nTo speed up the solution of the optimal control problems, you can optionally install the [fatrop solver](https://gitlab.kuleuven.be/robotgenskill/fatrop/fatrop). The instructions are available on [this page](https://trajectory-invariants.github.io/docs/python/installation/installation-fatrop/) of the documentation website.\n\n## Roadmap\n\nThe following features are planned for future releases:\n- Support for more types of invariant representations (e.g. screw invariants, global invariants, ...).\n- Support for more types of constraints in the trajectory generation.\n- Benchmarking between different invariant representations in terms of robustness, computational efficiency, and generalizability.\n\n## Contributing\n\nWe welcome contributions to this repository, for example in the form of pull requests.\n\n## Contributors\n\nWe wish to thank the following people for their contributions to an early version of the software: Victor van Wymeersch, Zeno Gillis, Toon Daemen, Glenn Maes, Ali Mousavi, Lander Vanroye\n\n## Support\n\nFor questions, bugs, feature requests, etc., please open [an issue on this repository](https://github.com/trajectory-invariants/invariants_py/issues).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Citing\n\nIf you use this package in your research, please cite the following paper:\n\n```\n@article{vochten2023invariant,\n title={Invariant Descriptors of Motion and Force Trajectories for Interpreting Object Manipulation Tasks in Contact},\n author={Vochten, Maxim and Mohammadi, Ali Mousavi and Verduyn, Arno and De Laet, Tinne and Aertbeli{\\\"e}n, Erwin and De Schutter, Joris},\n journal={IEEE Transactions on Robotics},\n year={2023},\n volume={39},\n number={6},\n pages={4892-4912},\n doi={10.1109/TRO.2023.3309230}}\n```",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Calculate invariant trajectory representations from trajectory data and generate new trajectories from invariant representations",
"version": "0.3.9",
"project_urls": {
"Documentation": "https://trajectory-invariants.github.io/docs/python/",
"Home-page": "https://trajectory-invariants.github.io/",
"Issues": "https://github.com/trajectory-invariants/invariants_py/issues",
"Repository": "https://github.com/trajectory-invariants/invariants_py"
},
"split_keywords": [
"casadi",
" coordinate-invariant",
" differential geometry",
" dynamics",
" geometric optimal control",
" invariant",
" kinematics",
" optimal control",
" optimization",
" python",
" robotics",
" screw theory",
" trajectory analysis",
" trajectory generation",
" trajectory optimization",
" trajectory planning",
" trajectory representation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8bc8f22f3488c767a0980cd38334cdab7ff84580f416c260418950255f35b157",
"md5": "4212170e6a9a0d472e758f7360e1a62a",
"sha256": "2554996c87c520a255ae133ba76d64e85eb8217aceccebac8cc19c1be9e2dd9f"
},
"downloads": -1,
"filename": "invariants_py-0.3.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4212170e6a9a0d472e758f7360e1a62a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 460301,
"upload_time": "2024-10-29T12:36:15",
"upload_time_iso_8601": "2024-10-29T12:36:15.240912Z",
"url": "https://files.pythonhosted.org/packages/8b/c8/f22f3488c767a0980cd38334cdab7ff84580f416c260418950255f35b157/invariants_py-0.3.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c87be6c1f4344d3c8ca89933b91b344e6a9a3c35647f8722ab8b2d8fb2a95acd",
"md5": "9086e489fe880e08c44e056287d90392",
"sha256": "657638f000a25fd498c0e9fcca33c786435abb4fb8a538d4eed777786c2d0a6f"
},
"downloads": -1,
"filename": "invariants_py-0.3.9.tar.gz",
"has_sig": false,
"md5_digest": "9086e489fe880e08c44e056287d90392",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 901258,
"upload_time": "2024-10-29T12:36:17",
"upload_time_iso_8601": "2024-10-29T12:36:17.520388Z",
"url": "https://files.pythonhosted.org/packages/c8/7b/e6c1f4344d3c8ca89933b91b344e6a9a3c35647f8722ab8b2d8fb2a95acd/invariants_py-0.3.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-29 12:36:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "trajectory-invariants",
"github_project": "invariants_py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "invariants-py"
}