Skip to contentCerulion

Compatibility

Start with a recording.
Keep your stack.

Use an existing MCAP first. Connect ROS 2 nodes or build native graphs when you need more.

  1. MCAPHindsight + Studio
  2. ROS 2 nodesTransport
  3. Rust graphsNative replay
  1. A robot recordingStart here

    Investigate with your agent.

    Open a supported MCAP with Hindsight and Studio. Keep your runtime.

    MCAPHindsight + Studio
  2. Your ROS 2 nodes

    Keep your APIs and executors.

    Connect supported C++ and Python nodes through rmw_cerulion. ROS 2 Jazzy on Linux.

    ROS 2Cerulion transport
  3. Native Rust graphs

    Record. Re-run. Compare.

    Use Flashback for recent history and supported native recordings for replay checks in CI.

    Rust nodesCapture + native replay

Choose your integration

Transport or native execution.

An RMW swap changes how messages move. Native graphs add the execution information needed for replay.

Cerulion through ROS 2 compared with native Cerulion graphs
CapabilityROS 2
rmw_cerulion
Native
#[cerulion_node]
Node codeC++ and PythonRust
ExecutionYour ROS 2 executorCerulion native graph
Native replay + CIRequires native componentsSupported native recordings
Local transportShared memoryShared memory
Zero-copy publishingRequires loaned publishersNative loans
LAN topicsZenohZenoh
Remote accessIroh + account grantsIroh + account grants

Runtime support

The practical details.

Linux
x86_64 · aarch64
macOS
Intel · Apple Silicon
Windows
Not supported
Native toolchain
Rust 1.93+
Studio access
Founder onboarding

ROS 2 message types

Standard ROS 2 messages and custom .msg types.

  • sensor_msgs
  • geometry_msgs
  • nav_msgs
  • tf2_msgs
  • custom .msg types

Inspect topics with cerulion topic list and cerulion topic echo. ROS 2 graph tools do not see Cerulion topics yet.

Unmodified MoveIt 2 runs on rmw_cerulion in nightly CI. A Mitsubishi RV-2FR has executed RViz-planned motions through the same transport.