Skip to main content

Robotblockset (RBS) allows control of various robots and provides common functions such as transformations.

Project description

RobotBlockset for Python (RBS)

[TOC]

Synopsis

RobotBlockset (RBS) is a comprehensive robotics framework for Python that unifies robot application design, simulation, testing, and execution on real systems. Its main goal is to bridge the gap between virtual and physical environments, so the same high-level workflow can be used from motion planning in simulation to deployment on a real robot with minimal additional coding.

The toolbox provides spatial representations based on homogeneous transformations and quaternions, together with the necessary conversion and quaternion operations. For robot manipulators, it includes tools for trajectory generation, forward and inverse kinematics, handling intrinsic and user-defined redundancy, and motion control. RBS uses an object-oriented design for robots, grippers, sensors, and other devices, and exposes a unified higher-level interface across different targets.

RBS can connect robot applications to simulators such as MuJoCo, Genesis, and CoppeliaSim, as well as to real robotic platforms. It includes models for common manipulators including Franka Robotics robots, Universal Robots, KUKA LWR and iiwa, and Yaskawa systems, enabling fast design iterations and a smoother transition from simulation to real-world execution.

Installation

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

This is sufficient for the pure Python parts of RBS and most kinematics and transformation utilities

For generation of kinematic models also install:

pip install yourdfpy

Optional packages by backend

Install only the packages needed for the workflows you use.

MuJoCo

Official website and documentation:

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. They are included in the package 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:

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:

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:

Required by tutorial_ur_rtde.ipynb and the modules in robotblockset.ur:

pip install ur_rtde

CoppeliaSim

Official website and documentation:

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:

The camera calibration tutorials also import:

pip install mujoco mediapy

ROS / ROS2

Official documentation:

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:

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

Documentation

RBS provides several tutorial notebooks in robotblockset/tutorials, which can help you to get started and explore specific backends and workflows:

  • tutorial_spatial_operations
  • tutorial_motion_generation
  • tutorial_robots
  • tutorial_platforms
  • tutorial_mobile_robots
  • tutorial_multi_robots
  • tutorial_kinematic_models
  • tutorial_optimal_trajectory
  • tutorial_generation_collision-free_trajectories
  • tutorial_image_video_pymujoco
  • tutorial_mujoco
  • tutorial_generate_MJCF_scene
  • tutorial_genesis
  • tutorial_graphics
  • tutorial_franka_pandapy
  • tutorial_rbf
  • tutorial_ur_rtde
  • tutorial_calibrate_camera_charuco
  • tutorial_calibrate_camera_checker
  • tutorial_image_transform

RBS also provides example notebooks and scripts in robotblockset/examples, which can be additional help when adapting the toolbox to your own robots, scenes, and applications.

API documentation

The repository includes a Sphinx configuration under docs for generating API documentation directly from module, class, method, and function docstrings.

Install the package together with the documentation dependency:

pip install -e ".[docs]"

Then build the HTML documentation:

sphinx-build -b html docs docs/_build/html

Open docs/_build/html/index.html in a browser after the build completes.

The Sphinx setup mocks optional backend dependencies such as ROS, MuJoCo, camera SDKs, and vendor-specific drivers so the API reference can be built without installing every robotics stack.

Troubleshooting

If you get on Windows following error:

tkinter.TclError: Can't find a usable init.tcl in the following directories: C:/Python313/lib/tcl8.6 C:/lib/tcl8.6 C:/lib/tcl8.6 C:/library C:/library C:/tcl8.6.14/library C:/tcl8.6.14/library 

This probably means that Tcl wasn't installed properly.  

the solution is to set the environment variable manually:

  1. Open Control PanelSystemAdvanced system settings.
  2. Go to Environment Variables.
  3. Under System Variables, click New.
  4. Set:
    • Variable name: TCL_LIBRARY
    • Variable value: C:\Python313\tcl\tcl8.6 (adjust if your folder is different)

Citation

Please cite the following article in your publications if it helps your research :

@InProceedings{10.1007/978-3-031-59257-7_44,
author="{\v{Z}}lajpah, Leon and Petri{\v{c}}, Tadej",
editor="Pisla, Doina and Carbone, Giuseppe and Condurache, Daniel and Vaida, Calin",
title="RobotBlockSet (RBS)---A Comprehensive Robotics Framework",
booktitle="Advances in Service and Industrial Robotics",
year="2024",
publisher="Springer Nature Switzerland",
address="Cham",
pages="439--450",
isbn="978-3-031-59257-7"
}


Copyright: Leon Žlajpah, Jožef Stefan Insitute

Project details


Download files

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

Source Distribution

rbs_test-1.0.3.tar.gz (98.7 MB view details)

Uploaded Source

Built Distribution

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

rbs_test-1.0.3-py3-none-any.whl (99.4 MB view details)

Uploaded Python 3

File details

Details for the file rbs_test-1.0.3.tar.gz.

File metadata

  • Download URL: rbs_test-1.0.3.tar.gz
  • Upload date:
  • Size: 98.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rbs_test-1.0.3.tar.gz
Algorithm Hash digest
SHA256 f7ca27b3335ccec6bbddccab259c6c49ac502ca383888bae1338e2835c51e60b
MD5 7ec3ea1f3b3b5e0d6a33092e8c537d23
BLAKE2b-256 8bac2ad3d548d6959a71e387dc7e1c108704c9ab8c9247e21ade7bf923f6b856

See more details on using hashes here.

Provenance

The following attestation bundles were made for rbs_test-1.0.3.tar.gz:

Publisher: python-publish.yml on smihael/robotblockset_python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rbs_test-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: rbs_test-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 99.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rbs_test-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bb2a7495e923cb76893ae41e8c0a873c5da6eb8e5af691d27b595a45b00053c9
MD5 b55069d3d87f8865df88489cca1cc4f6
BLAKE2b-256 dcf2366a81210d39be29f06466c819dd545b74c24be275924be6a007a2a93986

See more details on using hashes here.

Provenance

The following attestation bundles were made for rbs_test-1.0.3-py3-none-any.whl:

Publisher: python-publish.yml on smihael/robotblockset_python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page