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

  • quaternionic>=1.0.12

  • matplotlib>=3.7.5

  • scipy

  • sympy

  • pyyaml

  • mujoco

  • mediapy

  • ipython

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 dependencies

  • franka: Franka Panda / FR3 support through panda-python

  • ur: Universal Robots RTDE support

  • robotiq: Robotiq gripper support

  • path: OMPL support for collision-free path planning

  • cameras: camera and calibration dependencies

  • genesis: Genesis simulation backend

  • coppelia: 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 / libfranka version 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 pyrealsense2 Official docs: https://dev.intelrealsense.com/docs/docs-get-started

  • Basler: pip install pypylon Official docs: https://docs.baslerweb.com/pythonProgGuide.html

  • ZED: 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