scikit-robot


Namescikit-robot JSON
Version 0.1.25 PyPI version JSON
download
home_pagehttps://github.com/iory/scikit-robot
SummaryA Flexible Framework for Robot Control in Python
upload_time2025-07-09 04:31:37
maintainerNone
docs_urlNone
authoriory
requires_pythonNone
licenseMIT
keywords
VCS
bugtrack_url
requirements cached-property cached-property filelock future gdown lxml networkx networkx numpy numpy ordered_set packaging pillow pycollada pycollada pycollada pyglet pysdfgen repoze.lru rtree scikit-learn scikit-learn scipy scipy scipy six trimesh
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # scikit-robot: A Flexible Framework for Robot visualization and programming in Python

![PyPI](https://img.shields.io/pypi/v/scikit-robot.svg)
[![Build Status](https://github.com/iory/scikit-robot/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/iory/scikit-robot/actions)


<h4>
    <a href="https://scikit-robot.readthedocs.io/en/latest/">Documentation</a> |
    <a href="https://scikit-robot.readthedocs.io/en/latest/install/index.html">Installation</a> |
    <a href="https://scikit-robot.readthedocs.io/en/latest/examples/index.html">Quick Start</a> |
    <a href="https://scikit-robot.readthedocs.io/en/latest/reference/index.html">Python API</a> |
    <a href="https://scikit-robot.readthedocs.io/en/latest/development/index.html">Contribute</a>
</h4>

Scikit-Robot is a lightweight pure-Python library for robotic kinematics,
motion planning, visualization and control.

## Installation
You may need to install some dependencies by apt-get install:
```bash
sudo apt-get update
sudo apt-get install libspatialindex-dev freeglut3-dev libsuitesparse-dev libblas-dev liblapack-dev
```

Then,
```bash
pip install scikit-robot
```

If you would like to use `Pybullet Interface`, `open3d` and `fast-simplification` for mesh simplification,

```bash
pip install scikit-robot[all]
```

## Command Line Tools

### Visualize URDF

To visualize a URDF model and inspect your robot's configuration, you can use the `visualize-urdf` command as follows:

```bash
visualize-urdf ~/.skrobot/pr2_description/pr2.urdf
```

If you experience performance issues with the default viewer, try pyrender for smoother visualization:

```bash
visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer pyrender
```

Running these commands should open a viewer displaying your robot’s 3D model. Below is a sample image of what you should expect.

![Viewer Example](docs/image/viewer.jpg)

## Create Your Own Robot Model (URDF)

If you want to build your own robot from scratch, you can refer to the [How to Create URDF from CAD Software](https://scikit-robot.readthedocs.io/en/latest/reference/how_to_create_urdf_from_cad.html) documentation.

![Create URDF from Solidworks](docs/image/urdf-from-solidworks.png)


## Features

- [x] Loading robot model from URDF ([examples/robot_models.py](examples/robot_models.py))
- [x] Forward and inverse kinematics ([examples/trimesh_scene_viewer.py](examples/trimesh_scene_viewer.py) [examples/pr2_inverse_kinematics.py](examples/pr2_inverse_kinematics.py))
- [x] Collision detection
- [x] Interactive viewer ([examples/trimesh_scene_viewer.py](examples/trimesh_scene_viewer.py))
- [x] Pybullet and ROS command interface ([examples/pybullet_robot_interface.py](examples/pybullet_robot_interface.py))
- [x] Forward and inverse dynamics
- [x] Path planning ([examples/collision_free_trajectory.py](examples/collision_free_trajectory.py))

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/iory/scikit-robot",
    "name": "scikit-robot",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "iory",
    "author_email": "ab.ioryz@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f0/ac/9c0a9ab7628301c8d724b7b87cd1043e3bb38c97bd0b277012064dcb3ffa/scikit_robot-0.1.25.tar.gz",
    "platform": null,
    "description": "# scikit-robot: A Flexible Framework for Robot visualization and programming in Python\n\n![PyPI](https://img.shields.io/pypi/v/scikit-robot.svg)\n[![Build Status](https://github.com/iory/scikit-robot/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/iory/scikit-robot/actions)\n\n\n<h4>\n    <a href=\"https://scikit-robot.readthedocs.io/en/latest/\">Documentation</a> |\n    <a href=\"https://scikit-robot.readthedocs.io/en/latest/install/index.html\">Installation</a> |\n    <a href=\"https://scikit-robot.readthedocs.io/en/latest/examples/index.html\">Quick Start</a> |\n    <a href=\"https://scikit-robot.readthedocs.io/en/latest/reference/index.html\">Python API</a> |\n    <a href=\"https://scikit-robot.readthedocs.io/en/latest/development/index.html\">Contribute</a>\n</h4>\n\nScikit-Robot is a lightweight pure-Python library for robotic kinematics,\nmotion planning, visualization and control.\n\n## Installation\nYou may need to install some dependencies by apt-get install:\n```bash\nsudo apt-get update\nsudo apt-get install libspatialindex-dev freeglut3-dev libsuitesparse-dev libblas-dev liblapack-dev\n```\n\nThen,\n```bash\npip install scikit-robot\n```\n\nIf you would like to use `Pybullet Interface`, `open3d` and `fast-simplification` for mesh simplification,\n\n```bash\npip install scikit-robot[all]\n```\n\n## Command Line Tools\n\n### Visualize URDF\n\nTo visualize a URDF model and inspect your robot's configuration, you can use the `visualize-urdf` command as follows:\n\n```bash\nvisualize-urdf ~/.skrobot/pr2_description/pr2.urdf\n```\n\nIf you experience performance issues with the default viewer, try pyrender for smoother visualization:\n\n```bash\nvisualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer pyrender\n```\n\nRunning these commands should open a viewer displaying your robot\u2019s 3D model. Below is a sample image of what you should expect.\n\n![Viewer Example](docs/image/viewer.jpg)\n\n## Create Your Own Robot Model (URDF)\n\nIf you want to build your own robot from scratch, you can refer to the [How to Create URDF from CAD Software](https://scikit-robot.readthedocs.io/en/latest/reference/how_to_create_urdf_from_cad.html) documentation.\n\n![Create URDF from Solidworks](docs/image/urdf-from-solidworks.png)\n\n\n## Features\n\n- [x] Loading robot model from URDF ([examples/robot_models.py](examples/robot_models.py))\n- [x] Forward and inverse kinematics ([examples/trimesh_scene_viewer.py](examples/trimesh_scene_viewer.py) [examples/pr2_inverse_kinematics.py](examples/pr2_inverse_kinematics.py))\n- [x] Collision detection\n- [x] Interactive viewer ([examples/trimesh_scene_viewer.py](examples/trimesh_scene_viewer.py))\n- [x] Pybullet and ROS command interface ([examples/pybullet_robot_interface.py](examples/pybullet_robot_interface.py))\n- [x] Forward and inverse dynamics\n- [x] Path planning ([examples/collision_free_trajectory.py](examples/collision_free_trajectory.py))\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Flexible Framework for Robot Control in Python",
    "version": "0.1.25",
    "project_urls": {
        "Homepage": "https://github.com/iory/scikit-robot"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4afd721ac51079e77d1289931322a1d38c48d972c022e57cac85afa5af0aa502",
                "md5": "b6204713408a7c07e915993363840a14",
                "sha256": "321a6ad0399fc0dd00e50e25eca2e0cb0b2d03d8ad1bbb18ce81f9505deef7b0"
            },
            "downloads": -1,
            "filename": "scikit_robot-0.1.25-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b6204713408a7c07e915993363840a14",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 771303,
            "upload_time": "2025-07-09T04:31:35",
            "upload_time_iso_8601": "2025-07-09T04:31:35.665327Z",
            "url": "https://files.pythonhosted.org/packages/4a/fd/721ac51079e77d1289931322a1d38c48d972c022e57cac85afa5af0aa502/scikit_robot-0.1.25-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f0ac9c0a9ab7628301c8d724b7b87cd1043e3bb38c97bd0b277012064dcb3ffa",
                "md5": "f0e04a63dfd6b1f8121db3bf737f1794",
                "sha256": "842009d60714cbd0dd804edfd266f7492eb3b66a2dfa498cd5c95b0c2949a81a"
            },
            "downloads": -1,
            "filename": "scikit_robot-0.1.25.tar.gz",
            "has_sig": false,
            "md5_digest": "f0e04a63dfd6b1f8121db3bf737f1794",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 768393,
            "upload_time": "2025-07-09T04:31:37",
            "upload_time_iso_8601": "2025-07-09T04:31:37.472028Z",
            "url": "https://files.pythonhosted.org/packages/f0/ac/9c0a9ab7628301c8d724b7b87cd1043e3bb38c97bd0b277012064dcb3ffa/scikit_robot-0.1.25.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-09 04:31:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iory",
    "github_project": "scikit-robot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "cached-property",
            "specs": []
        },
        {
            "name": "cached-property",
            "specs": [
                [
                    "<=",
                    "1.5.2"
                ]
            ]
        },
        {
            "name": "filelock",
            "specs": []
        },
        {
            "name": "future",
            "specs": []
        },
        {
            "name": "gdown",
            "specs": []
        },
        {
            "name": "lxml",
            "specs": []
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.5"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.21.0"
                ]
            ]
        },
        {
            "name": "ordered_set",
            "specs": []
        },
        {
            "name": "packaging",
            "specs": []
        },
        {
            "name": "pillow",
            "specs": []
        },
        {
            "name": "pycollada",
            "specs": [
                [
                    "<",
                    "0.9"
                ]
            ]
        },
        {
            "name": "pycollada",
            "specs": [
                [
                    "<=",
                    "0.9"
                ],
                [
                    ">=",
                    "0.8"
                ]
            ]
        },
        {
            "name": "pycollada",
            "specs": [
                [
                    ">=",
                    "0.8"
                ]
            ]
        },
        {
            "name": "pyglet",
            "specs": [
                [
                    "<",
                    "2.0"
                ]
            ]
        },
        {
            "name": "pysdfgen",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "repoze.lru",
            "specs": []
        },
        {
            "name": "rtree",
            "specs": []
        },
        {
            "name": "scikit-learn",
            "specs": []
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    ">=",
                    "0.24.0"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "<=",
                    "1.2.3"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.6.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": []
        },
        {
            "name": "trimesh",
            "specs": [
                [
                    "!=",
                    "3.23.0"
                ],
                [
                    ">=",
                    "3.9.0"
                ]
            ]
        }
    ],
    "lcname": "scikit-robot"
}
        
Elapsed time: 2.01744s