Skip to main content

RoBits - Bits and Bytes for Robotic Manipulation

Supported Python Versions PyPI version License Code style Docs

from robits import ♥

RoBits is a lightweight, modular and scalable software stack for AI-driven robotic manipulation. It is designed for seamless integration with robotic manipulation policies, by providing essential tools for perception and robotic control.

Why RoBits? RoBits features an intuitive command-line interface to get started quickly. It's user-friendly and ensures adaptability, efficiency, and ease of use across diverse robotic applications to help with research experiments.

Logo

Quickstart

RoBits comes with some default configurations, for example for the Franka Panda robot. Run pip install 'robits[all]'. This will install necessary dependencies and provide an entry point command rb. You can use rb to get a list of commands. For example rb move home moves the robot to a default joint position. Checkout the Documentation for more details

Command-Line-Interface

Once you have installed RoBits you can access the CLI with rb in your shell:

(robits-py3.8) markus @ sockeye ➜  ~  rb                  [2025-02-23 19:53:43]
                                                                                
 Usage: rb [OPTIONS] COMMAND [ARGS]...                                          
                                                                                
 RoBits command line interface for robotic manipulation.                        
 This is the main entry point for all RoBits CLI commands. It provides global   
 verbosity controls and sets up logging configuration.                          
 Use --verbose/-v to increase log detail level (can be used multiple times).    
 Use --quiet/-q to suppress all but error messages.                             
 Example: rb -vv move home --robot-name robot_panda_sim                         
                                                                                
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --verbose  -v  INTEGER RANGE  Increase verbosity of the logging output. Can  │
│                               be used multiple times                         │
│ --quiet    -q                 Suppress all logging output except critical    │
│                               and error messages                             │
│ --help                        Show this message and exit.                    │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ camera    Commands for working with cameras and visual data.                 │
│ config    Commands for viewing and managing system configurations.           │
│ dataset   Dataset related commands                                           │
│ gripper   Gripper related commands                                           │
│ info      Read various information about the current robot state             │
│ move      Commands for moving the robot in different directions.             │
│ panda     Franka Panda related commands                                      │
│ shell     Creates an interactive shell. Use robot variable to interact       │
│ speech    Audio related commands                                             │
╰──────────────────────────────────────────────────────────────────────────────╯

To learn more about a command you can write for example rb dataset --help, which will list the subcommands that are related to dataset.

Configuration

You can display available config files with rb config list. To show the actual content use rb config show <config_name> where config_name specifies the name of the config file, e.g., rb config show robot_panda_real. You can specify a user configuration by exporting ROBITS_CONFIG_DIR. E.g. by adding

export ROBITS_CONFIG_DIR=/home/markus/robits_config

to your .bashrc. This allows you to specify additional configurations for robots, cameras, grippers. For example, you can change the serial number of the camera or the ip address of a robot. Once you set your user configuration folder you can copy and modify an existing configuration with:

rb config copy

Select the configuration you want to modify and open it with your favorite text editor

Robot setup

Best practice is to install a RT (Real-Time) kernel. See the script for more details. With some patches, you can install the NVIDIA driver and access the GPU through PyTorch on a real-time kernel system. This avoids unnecessary networking calls and removes the burden of deploying the software as everything can be run from a single repository. Once that is done you can get the robot pose with: rb info pose To move the robot, use one of the rb move commands, e.g.: rb move up

Camera setup

To test your camera setup you can use: rb camera view and rb camera point-cloud view For calibration to get the extrinsics, you can use: rb camera calibrate extrinsics This will launch a TUI. Select the camera and press "connect". Then use the sliders to adjust the camera pose. Press "save" to store the camera calibration to your user config directory, which is set by the environment variable ROBITS_CONFIG_DIR.

Gripper setup

Basic commands for the gripper are rb gripper open or rb gripper close. Please note that there are some limitations with the Franka Panda gripper. Basically, the robot stops when the gripper is active. See the implementation for details.

Data Collection and Replay

To replay collected data, use rb dataset replay. You can specify the path, the control method, and the robot name:

rb dataset replay --input-path ~/data/demo_0000/ --robot-name robot_panda_sim --control-method position

Example

Below is a very simple example to initialize a robot in simulation and move it.

from robits.core.abc.control import control_types
from robits.core.factory import RobotFactory

robot = RobotFactory("robot_panda_sim").build()

with robot.control(control_types.cartesian) as ctrl:
    ctrl.update(([0.52, -0.2, 0.15], [0, -1, 0, 0]))
    ctrl.update(([0.0, 0.0, -0.13], [0, 0, 0, 1]), relative=True)
    robot.gripper.close()

See the Documentation for more details, such as command line integration, and for more examples.

Libraries Acknowledgement

If you are using this work or find it otherwise useful please cite:

M. Grotz, M. Shridhar, Y. Chao, T. Asfour and D. Fox
PerAct2: Benchmarking and Learning for Robotic Bimanual Manipulation Tasks.
https://doi.org/10.48550/arXiv.2407.00278

Also consider citing additional resources if necessary (See Acknowledgement)

Metadata

Release files for robits 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robits 0.9.1
File Size Uploaded
robits-0.9.1.tar.gz 82.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robits 0.9.1
File Interpreter ABI Platform
robits-0.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 215.6 kB

Release files / robits-0.9.1.tar.gz

Download URL robits-0.9.1.tar.gz
Size 82.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3693b9c227778f5b9714ca02ba2e9c5d0f638bb1a4423b0f9a9cb6dbe18952ba
BLAKE2b-256 checksum
How to use checksums
4fa7d3c0ac7ab156a6e7ac42dc67dcb6a5845514aed4b043275908b8b6530858
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 10, 2026.

Transparency log

Release files / robits-0.9.1-py3-none-any.whl

Download URL robits-0.9.1-py3-none-any.whl
Size 133.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a76cf3c4b05af050088f98a0a5851605452ac9a4d3601c7095a38f35bde4f3a
BLAKE2b-256 checksum
How to use checksums
897938960242f98ae9c9fb5875b3c38e9a8b407a1d46d86df18792f9167141ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.1 This release

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

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