# scikit-robot: A Flexible Framework for Robot visualization and programming in Python

[](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.

## 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.

## 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))
- [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))
- [ ] 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/5a/d9/469810d1337c3b63049e56092bd72d08679f4e4cefa19d54b4563392c157/scikit_robot-0.0.48.tar.gz",
"platform": null,
"description": "# scikit-robot: A Flexible Framework for Robot visualization and programming in Python\n\n\n[](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\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\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))\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- [ ] 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.0.48",
"project_urls": {
"Homepage": "https://github.com/iory/scikit-robot"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9519abc695f7c39d9a1fe55881517fa025bd89d3e17ca21fd07e07b3e4dbde7b",
"md5": "a42c72f0e4c0dc2704dd2a8f9be81b4e",
"sha256": "5dd80d6a4347977b31b83c1e14b003fd891e3582597d9557724ffad305aa65ed"
},
"downloads": -1,
"filename": "scikit_robot-0.0.48-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a42c72f0e4c0dc2704dd2a8f9be81b4e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 739575,
"upload_time": "2025-02-19T12:56:38",
"upload_time_iso_8601": "2025-02-19T12:56:38.001937Z",
"url": "https://files.pythonhosted.org/packages/95/19/abc695f7c39d9a1fe55881517fa025bd89d3e17ca21fd07e07b3e4dbde7b/scikit_robot-0.0.48-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5ad9469810d1337c3b63049e56092bd72d08679f4e4cefa19d54b4563392c157",
"md5": "fc61d9ddfe752eff27dafa39260fd144",
"sha256": "a240e92dcd8a00a56727f5b9dbf0f250c8cb460f70b890859766e08c9d41bbc6"
},
"downloads": -1,
"filename": "scikit_robot-0.0.48.tar.gz",
"has_sig": false,
"md5_digest": "fc61d9ddfe752eff27dafa39260fd144",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 738452,
"upload_time": "2025-02-19T12:56:40",
"upload_time_iso_8601": "2025-02-19T12:56:40.262960Z",
"url": "https://files.pythonhosted.org/packages/5a/d9/469810d1337c3b63049e56092bd72d08679f4e4cefa19d54b4563392c157/scikit_robot-0.0.48.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-19 12:56:40",
"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": "numpy",
"specs": [
[
">=",
"1.16.0"
]
]
},
{
"name": "ordered_set",
"specs": []
},
{
"name": "pillow",
"specs": []
},
{
"name": "pycollada",
"specs": [
[
"!=",
"0.7"
]
]
},
{
"name": "pycollada",
"specs": [
[
"<",
"0.9"
]
]
},
{
"name": "pyglet",
"specs": [
[
"<",
"2.0"
]
]
},
{
"name": "pysdfgen",
"specs": [
[
">=",
"0.1.5"
]
]
},
{
"name": "python-fcl",
"specs": []
},
{
"name": "repoze.lru",
"specs": []
},
{
"name": "rtree",
"specs": []
},
{
"name": "scikit-learn",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "scipy",
"specs": [
[
"<=",
"1.2.3"
]
]
},
{
"name": "six",
"specs": []
},
{
"name": "trimesh",
"specs": [
[
">=",
"3.9.0"
],
[
"!=",
"3.23.0"
]
]
}
],
"lcname": "scikit-robot"
}