Installation
Details
RBS is a normal Python package. You can install it either from a release wheel or directly from this repository.
Recommended Python version: Python 3.10+.
Base installation
From a downloaded release wheel from repo.ijs.si:
pip install <downloaded-wheel>.whl
From this repository:
pip install .
The base package installs the dependencies used by the core tutorials and utilities:
numpy>=1.24quaternionic>=1.0.12matplotlib>=3.7.5scipysympypyyamlmujocomediapyipython
This is sufficient for the pure Python parts of RBS and most kinematics and transformation utilities, and for most of the tutorials.
Optional installs
Optional dependency groups are defined in pyproject.toml and can be installed with pip extras like, e.q.:
pip install "robotblockset[models]"
When installing from this repository, use:
pip install ".[models]"
Available extras:
models: kinematic model generation support (yourdfpy)docs: Sphinx API documentation build dependenciesfranka: Franka Panda / FR3 support throughpanda-pythonur: Universal Robots RTDE supportrobotiq: Robotiq gripper supportpath: OMPL support for collision-free path planningcameras: camera and calibration dependenciesgenesis: Genesis simulation backendcoppelia: CoppeliaSim remote API backend
Multiple extras can be installed at once:
pip install ".[models,path,cameras]"
To install all optional Python dependencies se:
pip install ".[models,docs,franka,ur,robotiq,path,cameras,genesis,coppelia]"
Optional packages by backend
Install only the packages needed for the workflows you use.
MuJoCo
Official website and documentation:
https://mujoco.org/
Required when MuJoCo is used as backend as in most of the general tutorials and parts of the camera calibration tutorials:
pip install mujoco mediapy
For collision-free planning with OMPL:
pip install ompl
RBS uses the official mujoco Python package and also supports simmujoco, an extended build of MuJoCo simulate with a socket interface for external control. Build and usage instructions are in robotblockset/mujoco/simmujoco/README.md.
MJCF models
RBS provides a set of ready-to-use MJCF robot and scene models. The MJCF model assets are distributed separately as robotblockset-mjcf to keep the main robotblockset distribution small. Install with pip install robotblockset[mjcf]; this pulls robotblockset-mjcf and places files under robotblockset/mujoco/mjcf_models, with related meshes and textures under robotblockset/mujoco/mjcf_models/assets.
Included models cover several robots and scenes such as Panda, FR3, iiwa14, UR10e, HC20, MiR100, TiagoBase, Unitree B2, grippers, camera models, calibration scenes, and example workcells.
Genesis
Official website and project pages:
https://genesis-embodied-ai.github.io/
https://github.com/Genesis-Embodied-AI/Genesis
Required by tutorial_genesis:
pip install genesis-world torch
RBS imports genesis from the genesis-world package, and the backend also requires PyTorch.
Franka Robotics via panda_py
Official project pages:
https://github.com/JeanElsner/panda-py
https://franka.de/
Required by tutorial_franka_pandapy.ipynb and the modules in robotblockset.franka:
pip install panda-python
This backend is intended for direct connection to Franka Panda / FR3 robots. In practice you also need:
a robot with FCI enabled
network access to the controller
a
panda_py/libfrankaversion compatible with your robot software
Universal Robots via RTDE
Official project pages:
https://pypi.org/project/ur-rtde/
https://www.universal-robots.com/
Required by tutorial_ur_rtde.ipynb and the modules in robotblockset.ur:
pip install ur_rtde
CoppeliaSim
Official website and documentation:
https://www.coppeliarobotics.com/
https://manual.coppeliarobotics.com/
Required by the modules in robotblockset.coppelia:
pip install coppeliasim-zmqremoteapi-client
You also need a local CoppeliaSim installation with the zmqRemoteApi server enabled.
Cameras and calibration
The camera modules are split by hardware. The image-processing utilities and calibration notebooks rely mainly on OpenCV, Pydantic, and often MuJoCo.
Common camera/calibration packages:
pip install opencv-contrib-python pydantic open3d
Additional packages by camera type:
Intel RealSense:
pip install pyrealsense2Official docs: https://dev.intelrealsense.com/docs/docs-get-startedBasler:
pip install pypylonOfficial docs: https://docs.baslerweb.com/pythonProgGuide.htmlZED: install the ZED SDK first, then its Python bindings Official docs: https://www.stereolabs.com/docs/
The camera calibration tutorials also import:
pip install mujoco mediapy
ROS / ROS2
Official documentation:
ROS1: https://wiki.ros.org/
ROS2: https://docs.ros.org/en/jazzy/index.html
If you use the ROS or ROS2 backends, install the middleware through your ROS distribution rather than plain pip.
ROS1:
sudo apt install python3-rospy
ROS2:
sudo apt update
sudo apt install ros-<ros-distro>-rclpy
For ROS2 camera support you typically also need:
sudo apt install ros-<ros-distro>-cv-bridge
⚠️Important: if you use
cv_bridge, prefer a NumPy 1.x environment for now, for example:
pip install "numpy<2"
The reason is that cv_bridge builds distributed through ROS packages are often compiled against NumPy 1.x and may fail to import with NumPy 2.x, typically with errors such as _ARRAY_API not found.
For Franka ROS2 support, RBS expects packages such as franka_ros2 and franka_msgs to be available in the ROS workspace.
If you work with custom message packages or a preconfigured environment, using the institute Docker/workspace setup may be easier:
https://repo.ijs.si/hcr/rbs-docker
Optional devices and utilities
SpaceMouse
To use a 3Dconnexion SpaceMouse with RBS:
pip install pyspacemouse easyhid
On Windows, you may also need hidapi.dll available on PATH.
On Linux, if the device is detected but cannot be opened, create an appropriate udev rule, reload the rules, and ensure your user belongs to the input group.
Other useful packages
Depending on your workflow, these can also be useful:
pip install pynput
pip install pyformulas
pip install aiohttp aiofiles