Skip to main content

RealBench

Fail-closed readiness checks that answer: is this robot verifiably ready for the next run?

Install

pip install realbench-robotics

The import package and CLI remain realbench. pip install realbench-robotics[ros2] does not install rclpy; that comes from your ROS2 distro.

ROS2 warning

A positions-only ROS2 connection cannot reach READY. Faults and actuator state stay unverifiable, and the run quarantines by design.

This is the command that can reach READY:

realbench check --urdf robot.urdf --source ros2 \
  --ros2-topic /joint_states \
  --diagnostics-topic /diagnostics \
  --controller-manager /controller_manager

Run realbench doctor --urdf robot.urdf --source ros2 first if anything is missing.

realbench check --source ros2 with no sensors or nodes declared exits 3 (usage error) and does not print a readiness verdict. Open the Components tab and save, or run realbench capture-components.

Quickstart

realbench analyze --urdf robot.urdf
realbench doctor --urdf robot.urdf --source ros2
realbench capture-home --urdf robot.urdf --source ros2 --repo .
realbench check --urdf robot.urdf --source ros2 \
  --diagnostics-topic /diagnostics \
  --controller-manager /controller_manager

--urdf accepts a URDF or MJCF file. analyze needs only the model. doctor diagnoses setup and never produces a readiness verdict. capture-home writes <repo>/.realbench/home.json. check and cycle look for that file when --home is omitted.

Serve

realbench serve --source ros2 --host 0.0.0.0 --no-browser

No --urdf. The model is read from the latched */robot_description topic (TRANSIENT_LOCAL std_msgs/String). Joint states, diagnostics, and controller manager are inferred from the graph, including namespaced paths such as /JK3/platform/joint_states. Continuous-joint robots skip home pose.

Until at least one sensor or node is declared, the stored verdict is SETUP INCOMPLETE, not QUARANTINE. The Components tab pre-ticks discoverable sensors and nodes so save is one click. Saving a LaserScan or Imu also writes a default value_field and plausible range so those checks evaluate (PASS or FAIL), not NOT_APPLICABLE.

A failing diagnostic, sensor, or node can be marked a known issue with a required note. Acknowledged rows stay recorded and visible; they do not drive classify() until the reason string changes.

Host wall-clock is stored next to robot time. If they disagree by more than 5 seconds, check_clock_sane fails at HEALTH and the UI shows both clocks.

check_state_stream_fresh uses 3× the observed joint_states period and 3× the recorder sample interval, floored at 2.0s.

Export

Do not copy .realbench/ while serve is running. The recording database is WAL-mode; a folder copy drops the -wal file.

History lives in <repo>/.realbench/records.db (serve recorder). One-shot /api/check History also writes runs.db; realbench export includes it as <stem>-runs.db when present.

realbench export
realbench export --out capture.db --repo .

SQLite's backup API writes one consistent file, prints path and size, and only reports success if integrity_check passes. Safe while serve is up.

Exit codes

Code Meaning
0 READY
1 NOT_READY_RECOVERABLE (pose can be reset)
2 QUARANTINE (liveness/health failed or unverifiable)
3 Could not run (missing URDF, home, source, or undeclared ROS2 components)

doctor uses 0 (no blocking setup problems), 1 (problems that would block a useful verdict), and 3 (could not run).

CI

realbench check --urdf robot.urdf --source ros2 --diagnostics-topic /diagnostics --controller-manager /controller_manager || { echo "robot not ready, aborting run"; exit 1; }

Read-only

Read-only. RealBench never commands motion, never writes firmware, and never modifies your robot.

Known limits

  • Reset execution is stubbed.
  • Sensor and firmware checks are not implemented.
  • The ROS2 path is validated against a Dockerised Jazzy node, not physical hardware.

Release files for realbench-robotics 0.2.2

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

Source distribution (sdist)

Source distribution for realbench-robotics 0.2.2
File Size Uploaded
realbench_robotics-0.2.2.tar.gz 239.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for realbench-robotics 0.2.2
File Interpreter ABI Platform
realbench_robotics-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 445.6 kB

Release files / realbench_robotics-0.2.2.tar.gz

Download URL realbench_robotics-0.2.2.tar.gz
Size 239.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a916b1e9d480111a629b3de993a0b01ae1b873a6b6b2203590b13463f3ed3366
BLAKE2b-256 checksum
How to use checksums
7388bf5be95d6d5370ca835417344b3fb1c905729f233cd238268020ecbfda8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.7

Release files / realbench_robotics-0.2.2-py3-none-any.whl

Download URL realbench_robotics-0.2.2-py3-none-any.whl
Size 205.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2dcbabdcb2436d1f17123dde81824087d90e73c297372d609d954d881e688265
BLAKE2b-256 checksum
How to use checksums
3a6aafbdebfc894e7826919c76a4d81b89619c4a24d2b68382da2da19c739f9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.7

Release history Release notifications | RSS feed

0.2.3

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

1 release file

0.1.1

1 release 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