Skip to main content

Calculate invariant trajectory representations from trajectory data and generate new trajectories from invariant representations

Project description

install_and_test License: MIT GitHub code size in bytes GitHub issues

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

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:

pip install --upgrade pip    

Install the package:

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:

git clone https://github.com/trajectory-invariants/invariants_py.git

Navigate to the cloned repository:

cd invariants_py

Upgrade your version of pip:

pip install --upgrade pip    

Install the package:

pip install -e .

Getting started

Basic examples are provided to get you started in the examples folder.

More detailed examples and tutorials can be found on the documentation website.

Speed up using Fatrop

To speed up the solution of the optimal control problems, you can optionally install the fatrop solver. The instructions are available on this page 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.

License

This project is licensed under the MIT License - see the 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}}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invariants_py-0.3.8.tar.gz (699.7 kB view details)

Uploaded Source

Built Distribution

invariants_py-0.3.8-py3-none-any.whl (258.6 kB view details)

Uploaded Python 3

File details

Details for the file invariants_py-0.3.8.tar.gz.

File metadata

  • Download URL: invariants_py-0.3.8.tar.gz
  • Upload date:
  • Size: 699.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for invariants_py-0.3.8.tar.gz
Algorithm Hash digest
SHA256 f7dac6f63b413448ffba399efea0c3f6e40830daa314ba0c8e8753c88c9c2f8e
MD5 877db9080f3033106dcef04b03a43d04
BLAKE2b-256 4c731861088441b859900430a1cebe6f17bb745bc8722e9e9be3df1272152c7f

See more details on using hashes here.

File details

Details for the file invariants_py-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for invariants_py-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8d7f72f9c2128c78d4b4c57212e293a1ebb5383008a84116511f72f3a68ed4f7
MD5 57942fda12b5885c80eef3378e114c97
BLAKE2b-256 a37ffa9024f629f03a82aca8cf4eda37586d7711cfaf20c581813f5689c6394c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page