motion-planning


Namemotion-planning JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/Jiayuan-Gu/pymp
SummaryA pythonic motion planning library
upload_time2023-01-13 09:38:37
maintainer
docs_urlNone
authorJiayuan Gu
requires_python>=3.7
license
keywords robotics motion-planning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Pythonic Motion Planning (pymp)

[![PyPI version](https://badge.fury.io/py/motion-planning.svg)](https://badge.fury.io/py/motion-planning)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Jiayuan-Gu/pymp/blob/main/example.ipynb)

> [Motion planning](https://en.wikipedia.org/wiki/Motion_planning) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination.

This library is designed for robotic applications, especially sampling-based algorithms for high-dimension configuration spaces(e.g., robot arm).

- pythonic: easy to debug, customize and extend
- standalone collision checker ([hpp-fcl](https://github.com/humanoid-path-planner/hpp-fcl)): without relying on any physical simulator (e.g., mujoco, pybullet, sapien) to check collision
- out-of-box: common motion planning algorithms (e.g., RRT-Connect) are implemented for robotic manipulation

## Installation

### Dependencies

This library (*pymp*) depends on *[pinocchio](https://github.com/stack-of-tasks/pinocchio)* to handle URDF and robot kinematics, *[hpp-fcl](https://github.com/humanoid-path-planner/hpp-fcl)* to check collision, *[toppra](https://github.com/hungpham2511/toppra)* to do time parameterization.

### Install pymp

From pip:

```bash
pip install motion-planning
```

From source:

```bash
git clone https://github.com/Jiayuan-Gu/pymp.git
pip install -e .
```

From Github directly:

```bash
pip install --upgrade git+https://github.com/Jiayuan-Gu/pymp.git
```

## Usage

See [example.py](example.py) for basic usage. Note that `pymp` depends on SRDF associated with URDF to remove self-collision.

### Logging

The logging level can be specified by the environment variable `PYMP_LOG`.

```bash
# Set the logging level to DEBUG for pymp
export PYMP_LOG=DEBUG
```

### Base pose

`pymp` supports specifying the pose of the base link during the initialization of the planner. We support many formats of pose (e.g., \[x, y, z\] for position, \[w, i, j, k\] for quaternion, \[x, y, z, w, i, j, k\] for SE(3), or a 4x4 rigid transformation matrix)

```python
from pymp import Planner

planner = Planner(
    ...
    base_pose=[0, 0, 0],
)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Jiayuan-Gu/pymp",
    "name": "motion-planning",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "robotics motion-planning",
    "author": "Jiayuan Gu",
    "author_email": "jigu@ucsd.edu",
    "download_url": "https://files.pythonhosted.org/packages/d1/cb/7adabb3d98a83befadce87e5c4576ec88fbc38d148ed0a2c65ad34b123e3/motion-planning-0.1.4.tar.gz",
    "platform": null,
    "description": "# Pythonic Motion Planning (pymp)\n\n[![PyPI version](https://badge.fury.io/py/motion-planning.svg)](https://badge.fury.io/py/motion-planning)\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Jiayuan-Gu/pymp/blob/main/example.ipynb)\n\n> [Motion planning](https://en.wikipedia.org/wiki/Motion_planning) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination.\n\nThis library is designed for robotic applications, especially sampling-based algorithms for high-dimension configuration spaces(e.g., robot arm).\n\n- pythonic: easy to debug, customize and extend\n- standalone collision checker ([hpp-fcl](https://github.com/humanoid-path-planner/hpp-fcl)): without relying on any physical simulator (e.g., mujoco, pybullet, sapien) to check collision\n- out-of-box: common motion planning algorithms (e.g., RRT-Connect) are implemented for robotic manipulation\n\n## Installation\n\n### Dependencies\n\nThis library (*pymp*) depends on *[pinocchio](https://github.com/stack-of-tasks/pinocchio)* to handle URDF and robot kinematics, *[hpp-fcl](https://github.com/humanoid-path-planner/hpp-fcl)* to check collision, *[toppra](https://github.com/hungpham2511/toppra)* to do time parameterization.\n\n### Install pymp\n\nFrom pip:\n\n```bash\npip install motion-planning\n```\n\nFrom source:\n\n```bash\ngit clone https://github.com/Jiayuan-Gu/pymp.git\npip install -e .\n```\n\nFrom Github directly:\n\n```bash\npip install --upgrade git+https://github.com/Jiayuan-Gu/pymp.git\n```\n\n## Usage\n\nSee [example.py](example.py) for basic usage. Note that `pymp` depends on SRDF associated with URDF to remove self-collision.\n\n### Logging\n\nThe logging level can be specified by the environment variable `PYMP_LOG`.\n\n```bash\n# Set the logging level to DEBUG for pymp\nexport PYMP_LOG=DEBUG\n```\n\n### Base pose\n\n`pymp` supports specifying the pose of the base link during the initialization of the planner. We support many formats of pose (e.g., \\[x, y, z\\] for position, \\[w, i, j, k\\] for quaternion, \\[x, y, z, w, i, j, k\\] for SE(3), or a 4x4 rigid transformation matrix)\n\n```python\nfrom pymp import Planner\n\nplanner = Planner(\n    ...\n    base_pose=[0, 0, 0],\n)\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A pythonic motion planning library",
    "version": "0.1.4",
    "split_keywords": [
        "robotics",
        "motion-planning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c760f720a4a885c64ba2174ac8fea875fe948b47b04b9ec99c501d07a669f126",
                "md5": "7c177975570ad852d47d7666432db6a3",
                "sha256": "d904c640c6156a1764f5dea4adde0a7045b93d728af91eac7d97f2bea3e3abab"
            },
            "downloads": -1,
            "filename": "motion_planning-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7c177975570ad852d47d7666432db6a3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 19369,
            "upload_time": "2023-01-13T09:38:35",
            "upload_time_iso_8601": "2023-01-13T09:38:35.846561Z",
            "url": "https://files.pythonhosted.org/packages/c7/60/f720a4a885c64ba2174ac8fea875fe948b47b04b9ec99c501d07a669f126/motion_planning-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1cb7adabb3d98a83befadce87e5c4576ec88fbc38d148ed0a2c65ad34b123e3",
                "md5": "a5fad773b5f430c3230930a6c2346081",
                "sha256": "94a667dc6f8ff83bc4faf0531477c66185e85f46fbe26b65c45f1f220c4cf826"
            },
            "downloads": -1,
            "filename": "motion-planning-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "a5fad773b5f430c3230930a6c2346081",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 16011,
            "upload_time": "2023-01-13T09:38:37",
            "upload_time_iso_8601": "2023-01-13T09:38:37.402253Z",
            "url": "https://files.pythonhosted.org/packages/d1/cb/7adabb3d98a83befadce87e5c4576ec88fbc38d148ed0a2c65ad34b123e3/motion-planning-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-13 09:38:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "Jiayuan-Gu",
    "github_project": "pymp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "motion-planning"
}
        
Elapsed time: 0.02565s