invariants-py


Nameinvariants-py JSON
Version 0.3.6 PyPI version JSON
download
home_pageNone
SummaryCalculate invariant trajectory representations from trajectory data and generate new trajectories from invariant representations
upload_time2024-06-08 10:16:34
maintainerNone
docs_urlNone
authorRiccardo Burlizzi, Arno Verduyn
requires_python>=3.8
licenseMIT License
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
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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)



Python library for the invariant shape descriptors.



# Getting started

## Installation

### Prerequisites

Prerequisites: Python >3.6 and pip



### Installation of invariants-py

Clone (or download) this repository:

    git clone https://gitlab.kuleuven.be/robotgenskill/public_code/invariants_py.git

Install package in your Python environment:

    cd invariants_py

    pip install --upgrade pip    
    
    pip install -e .

### (Optional) Installation of Fatrop

To speed-up calculation times, you can choose to additionally install the [fatrop solver](https://gitlab.kuleuven.be/robotgenskill/fatrop/fatrop). Currently this solver is only available in Linux.

Clone the Fatrop repository:    

    cd ..

    git clone https://github.com/meco-group/fatrop.git --recursive

    cd fatrop

Set the CMake flags, change the BLASFEO target to your system architecture (see table of https://github.com/giaf/blasfeo)

    sudo apt-get install cmake

    export CMAKE_ARGS="-DBLASFEO_TARGET=X64_AUTOMATIC -DENABLE_MULTITHREADING=OFF"

Build and install the Fatropy project

    cd fatropy
    pip install --upgrade pip setuptools
    pip install .

Install rockit with Fatropy interface

    git clone https://gitlab.kuleuven.be/meco-software/rockit.git
    git clone https://gitlab.kuleuven.be/u0110259/rockit_fatrop_plugin.git ./rockit/rockit/external/fatrop
    cd rockit
    pip install .

## Examples

Example scripts are found in the `examples` folder.

# Features

The main features are:
- Calculation of invariant descriptors for trajectories.
- Fast trajectory adaptation starting from the invariant descriptors.

Status of current functionality:

| Frenet-Serret Invariants                    | Screw Axis Invariants                             |
| ------------------------------------------- | ------------------------------------------------- |
| {+ global calculation invariants +}         | global calculation invariants                     |
| {+ moving horizon calculation invariants +} | moving horizon calculation invariants             |
| {+ global trajectory generation +}                | global trajectory generation                      |
| {+ moving horizon trajectory generation +}        | moving horizon trajectory generation              |



# History of this repository

- 2018-2019 [Handover thesis of Zeno/Victor](https://gitlab.kuleuven.be/robotgenskill/master_thesis_code/thesis_zenogillis_victorvanwymeersch): The original start of this repository. Functionality was ported from invariants-matlab to Python, mainly focusing on the OCPs for calculating Frenet-Serret invariants and generating trajectories with invariants. Embedded in ROS and tested using data from HTC Vive. The OCPs were implemented in pure Casadi (nlpsol).
- 2019-2021 [etasl invariants integration](https://gitlab.kuleuven.be/robotgenskill/python_projects/etasl_invariants_integration): Extended the trajectory generation code by integrating it with reactive trajectory tracking in eTaSL. The OCPs were reimplemented using optistack. Splines were first used to represent the generated trajectories. 
- 2021-2024: [invariants_py](https://gitlab.kuleuven.be/robotgenskill/python_projects/invariants_py/): Split off everything related to ROS and eTaSL to other repositories, so that this repository is pure Python. Focus was on developing online optimization problems for calculating invariants and trajectory generation. The OCPs were reimplemented in rockit and integrated with fatrop for speeding up the execution.

# Contributors

Main developers: Maxim Vochten, Riccardo Burlizzi, Arno Verduyn

This package has also received contributions by Victor van Wymeersch, Zeno Gillis, Toon Daemen, Glenn Maes, Ali Mousavi, Lander Vanroye




            

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": "Riccardo Burlizzi, Arno Verduyn",
    "author_email": "Maxim Vochten <maxim.vochten@kuleuven.be>",
    "download_url": "https://files.pythonhosted.org/packages/fe/00/6c01936ae5a696a941afd847f8ea2289e3053af7b611d4edfb226dbe528f/invariants_py-0.3.6.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\n\nPython library for the invariant shape descriptors.\n\n\n\n# Getting started\n\n## Installation\n\n### Prerequisites\n\nPrerequisites: Python >3.6 and pip\n\n\n\n### Installation of invariants-py\n\nClone (or download) this repository:\n\n    git clone https://gitlab.kuleuven.be/robotgenskill/public_code/invariants_py.git\n\nInstall package in your Python environment:\n\n    cd invariants_py\n\n    pip install --upgrade pip    \n    \n    pip install -e .\n\n### (Optional) Installation of Fatrop\n\nTo speed-up calculation times, you can choose to additionally install the [fatrop solver](https://gitlab.kuleuven.be/robotgenskill/fatrop/fatrop). Currently this solver is only available in Linux.\n\nClone the Fatrop repository:    \n\n    cd ..\n\n    git clone https://github.com/meco-group/fatrop.git --recursive\n\n    cd fatrop\n\nSet the CMake flags, change the BLASFEO target to your system architecture (see table of https://github.com/giaf/blasfeo)\n\n    sudo apt-get install cmake\n\n    export CMAKE_ARGS=\"-DBLASFEO_TARGET=X64_AUTOMATIC -DENABLE_MULTITHREADING=OFF\"\n\nBuild and install the Fatropy project\n\n    cd fatropy\n    pip install --upgrade pip setuptools\n    pip install .\n\nInstall rockit with Fatropy interface\n\n    git clone https://gitlab.kuleuven.be/meco-software/rockit.git\n    git clone https://gitlab.kuleuven.be/u0110259/rockit_fatrop_plugin.git ./rockit/rockit/external/fatrop\n    cd rockit\n    pip install .\n\n## Examples\n\nExample scripts are found in the `examples` folder.\n\n# Features\n\nThe main features are:\n- Calculation of invariant descriptors for trajectories.\n- Fast trajectory adaptation starting from the invariant descriptors.\n\nStatus of current functionality:\n\n| Frenet-Serret Invariants                    | Screw Axis Invariants                             |\n| ------------------------------------------- | ------------------------------------------------- |\n| {+ global calculation invariants +}         | global calculation invariants                     |\n| {+ moving horizon calculation invariants +} | moving horizon calculation invariants             |\n| {+ global trajectory generation +}                | global trajectory generation                      |\n| {+ moving horizon trajectory generation +}        | moving horizon trajectory generation              |\n\n\n\n# History of this repository\n\n- 2018-2019 [Handover thesis of Zeno/Victor](https://gitlab.kuleuven.be/robotgenskill/master_thesis_code/thesis_zenogillis_victorvanwymeersch): The original start of this repository. Functionality was ported from invariants-matlab to Python, mainly focusing on the OCPs for calculating Frenet-Serret invariants and generating trajectories with invariants. Embedded in ROS and tested using data from HTC Vive. The OCPs were implemented in pure Casadi (nlpsol).\n- 2019-2021 [etasl invariants integration](https://gitlab.kuleuven.be/robotgenskill/python_projects/etasl_invariants_integration): Extended the trajectory generation code by integrating it with reactive trajectory tracking in eTaSL. The OCPs were reimplemented using optistack. Splines were first used to represent the generated trajectories. \n- 2021-2024: [invariants_py](https://gitlab.kuleuven.be/robotgenskill/python_projects/invariants_py/): Split off everything related to ROS and eTaSL to other repositories, so that this repository is pure Python. Focus was on developing online optimization problems for calculating invariants and trajectory generation. The OCPs were reimplemented in rockit and integrated with fatrop for speeding up the execution.\n\n# Contributors\n\nMain developers: Maxim Vochten, Riccardo Burlizzi, Arno Verduyn\n\nThis package has also received contributions by Victor van Wymeersch, Zeno Gillis, Toon Daemen, Glenn Maes, Ali Mousavi, Lander Vanroye\n\n\n\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.6",
    "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": "43ee0ae112eccb77f3fbf454ef2be5b51935a8ee7b35de7d683ac86b6822acf7",
                "md5": "a4339e864dc3cfeb1bcdab9edb62c24f",
                "sha256": "cb4ed3c7be61518f24d5109b42e604a3452d12691690612a4b9196258533f682"
            },
            "downloads": -1,
            "filename": "invariants_py-0.3.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a4339e864dc3cfeb1bcdab9edb62c24f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 173401,
            "upload_time": "2024-06-08T10:16:32",
            "upload_time_iso_8601": "2024-06-08T10:16:32.926433Z",
            "url": "https://files.pythonhosted.org/packages/43/ee/0ae112eccb77f3fbf454ef2be5b51935a8ee7b35de7d683ac86b6822acf7/invariants_py-0.3.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe006c01936ae5a696a941afd847f8ea2289e3053af7b611d4edfb226dbe528f",
                "md5": "5d6f97406b6ef2038403c70854e72a41",
                "sha256": "eb41f5c5cc983782523e401403a3f6ec090693db1a184b3a4aad99db8d21a714"
            },
            "downloads": -1,
            "filename": "invariants_py-0.3.6.tar.gz",
            "has_sig": false,
            "md5_digest": "5d6f97406b6ef2038403c70854e72a41",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 602498,
            "upload_time": "2024-06-08T10:16:34",
            "upload_time_iso_8601": "2024-06-08T10:16:34.649384Z",
            "url": "https://files.pythonhosted.org/packages/fe/00/6c01936ae5a696a941afd847f8ea2289e3053af7b611d4edfb226dbe528f/invariants_py-0.3.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-08 10:16:34",
    "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"
}
        
Elapsed time: 0.36579s