Skip to main content

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

PyPI Python Versions Build Status Open In Colab

Documentation | Installation | Quick Start | Python API | Contribute

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

https://github.com/user-attachments/assets/1dad1a4d-ba59-4ec0-93b0-96c8718c9e8f

Installation

Quick Install with uv (Recommended)

uv is a fast Python package manager. Create a virtual environment and install scikit-robot:

uv venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows
uv pip install scikit-robot

Or with all optional dependencies:

uv pip install "scikit-robot[all]"

Install with pip

You may need to install some dependencies by apt-get install:

sudo apt-get update
sudo apt-get install libspatialindex-dev freeglut3-dev libsuitesparse-dev libblas-dev liblapack-dev

Then,

pip install scikit-robot

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

pip install scikit-robot[all]

Command Line Tools

Scikit-robot provides a unified command-line interface through the skr command, which consolidates all robot-related tools into a single entry point.

Using the skr Command

You can use the skr command with various subcommands:

# View all available commands
skr --help

# Visualize URDF models
skr visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer trimesh

# Convert URDF mesh files
skr convert-urdf-mesh robot.urdf --output converted_robot.urdf

# Change URDF root link
skr change-urdf-root robot.urdf new_root_link output.urdf

# Calculate URDF hash
skr urdf-hash robot.urdf

# Modularize URDF files
skr modularize-urdf robot.urdf --output modular_robot.urdf

# Visualize mesh files
skr visualize-mesh mesh_file.stl

# Convert wheel collision models
skr convert-wheel-collision robot.urdf --output converted.urdf

# Generate robot class from URDF geometry
skr generate-robot-class robot.urdf --output MyRobot.py

Legacy Commands (still supported)

For backward compatibility, the original commands are still available:

# These commands work the same as their skr equivalents
visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer trimesh
convert-urdf-mesh robot.urdf --output converted_robot.urdf

Visualize URDF

To visualize a URDF model and inspect your robot's configuration:

skr visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer trimesh

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

skr visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer pyrender

For a web-based viewer with interactive joint angle sliders, use viser:

skr visualize-urdf ~/.skrobot/pr2_description/pr2.urdf --viewer viser

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

Viser Viewer - Interactive Motion Planning

The viser viewer opens in your browser and provides a full-featured interface for robot manipulation:

  • Joint Control: GUI sliders for manipulating joint angles in real-time
  • Interactive IK: Drag transform controls at each end-effector to solve inverse kinematics
  • Motion Planning: Plan collision-free trajectories between waypoints with obstacle avoidance

Viser Viewer

Interactive Motion Planning Demo

The following video demonstrates the motion planning capabilities with collision avoidance:

https://github.com/user-attachments/assets/1dad1a4d-ba59-4ec0-93b0-96c8718c9e8f

Use the viser viewer with motion planning enabled:

from skrobot.viewers import ViserViewer
from skrobot.models import Panda

# Create viewer with IK and motion planning enabled
viewer = ViserViewer(enable_ik=True, enable_motion_planning=True)
robot = Panda()
viewer.add(robot)
viewer.show()

Or via command line:

skr visualize-urdf robot.urdf --viewer viser

Key features:

  • Save waypoints by posing the robot via IK
  • Add obstacles (sphere, box, cylinder) interactively
  • Plan collision-free trajectories using augmented Lagrangian optimization
  • Visualize planned trajectory as ghost robots
  • Animate the planned motion

Interactive IK Demo

Drag the transform controls at each end-effector to solve IK in real-time:

https://github.com/user-attachments/assets/1294307e-a901-4f5f-aa4e-433cfbfacd03

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

Create URDF from Solidworks

Try it in Google Colab!

You can try scikit-robot directly in your browser without any installation:

Open In Colab

This interactive notebook demonstrates:

  • Multiple robot models (Kuka, Fetch, Nextage, PR2, Panda) with synchronized animation
  • Grasp and pull manipulation task with inverse kinematics
  • 3D visualization in Jupyter/Colab with smooth updates

Jupyter Notebook Viewer

Scikit-robot includes JupyterNotebookViewer for interactive 3D visualization in Jupyter notebooks and Google Colab:

import skrobot

# Create robot and viewer
robot = skrobot.models.PR2()
viewer = skrobot.viewers.JupyterNotebookViewer(height=600)
viewer.add(robot)

# Display and animate
viewer.show()

for _ in range(10):
    robot.rarm.angle_vector([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7])
    viewer.redraw()  # Smooth updates without flickering

See examples/notebooks/ for more examples.

Features

Download files

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

Source Distribution

scikit_robot-0.3.28.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scikit_robot-0.3.28-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file scikit_robot-0.3.28.tar.gz.

File metadata

  • Download URL: scikit_robot-0.3.28.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for scikit_robot-0.3.28.tar.gz
Algorithm Hash digest
SHA256 ba179b48ccd5d89d8f6320e17e8bad0838af785d8879ab335ad3b8ed6c40fe11
MD5 aa3d180170a7b3ff3c47d830f455b6ef
BLAKE2b-256 6dd5e5e3e6f39c670ab902873c9879ae4f61e8df96157e80454dfdd55c0ebce3

See more details on using hashes here.

File details

Details for the file scikit_robot-0.3.28-py3-none-any.whl.

File metadata

  • Download URL: scikit_robot-0.3.28-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for scikit_robot-0.3.28-py3-none-any.whl
Algorithm Hash digest
SHA256 a61ca4e05429d5e4a981ca728cecc4645aef9dd292eb2c75236470925769d445
MD5 3744d64e3cbf00eb7bcaa302ba815745
BLAKE2b-256 a39aa319d717f6dbf85ee3d08aa27d48191c27bfde1108608f20427e7105c048

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.34

2 files

0.3.33

2 files

0.3.32

2 files

0.3.31

2 files

0.3.30

2 files

0.3.29

2 files

This release

0.3.28 This release

2 files

0.3.27

2 files

0.3.26

2 files

0.3.25

2 files

0.3.24

2 files

0.3.23

2 files

0.3.22

2 files

0.3.21

2 files

0.3.19

2 files

0.3.18

2 files

0.3.17

2 files

0.3.16

2 files

0.3.15

2 files

0.3.14

2 files

0.3.13

2 files

0.3.12

2 files

0.3.11

2 files

0.3.10

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.43

2 files

0.2.42

2 files

0.2.41

2 files

0.2.40

2 files

0.2.39

2 files

0.2.38

2 files

0.2.37

2 files

0.2.36

2 files

0.2.35

2 files

0.2.34

2 files

0.2.33

2 files

0.2.32

2 files

0.2.31

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

0.2.26

2 files

0.2.25

2 files

0.2.24

2 files

0.2.23

2 files

0.2.22

2 files

0.2.21

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

1 file

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.55

2 files

0.0.54

2 files

0.0.53

2 files

0.0.52

2 files

0.0.51

2 files

0.0.50

2 files

0.0.49

2 files

0.0.48

2 files

0.0.47

2 files

0.0.46

2 files

0.0.45

2 files

0.0.44

2 files

0.0.43

2 files

0.0.42

2 files

0.0.41

2 files

0.0.40

2 files

0.0.39

2 files

0.0.38

2 files

0.0.37

2 files

0.0.36

2 files

0.0.35

2 files

0.0.34

1 file

0.0.33

1 file

0.0.32

1 file

0.0.30

1 file

0.0.29

1 file

0.0.28

1 file

0.0.27

1 file

0.0.26

2 files

0.0.25

2 files

0.0.24

2 files

0.0.23

2 files

0.0.22

2 files

0.0.21

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

1 file

0.0.11

1 file

0.0.10

1 file

0.0.9

1 file

0.0.8

1 file

0.0.7

1 file

0.0.6

1 file

0.0.5

1 file

0.0.4

1 file

0.0.3

1 file

0.0.2

1 file

0.0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page