ROS 2 Integration Guide¶
The first-party ROS 2 beta lives under integrations/ros2/ as an optional
companion workspace.
The root Python package stays ROS-free; build the ROS layer only when you need
ROS graph integration.
What is in the companion workspace¶
src/zeroproofml_ros/:ament_pythonnode package and launch filessrc/zeroproofml_msgs/:StrictInferenceResult.msgcontainers/: Humble/Jazzy CPU images and a small manifest
The strict-inference node loads one startup-selected bundle, consumes
std_msgs/msg/Float64MultiArray, publishes StrictInferenceResult, and emits
plot-friendly telemetry on telemetry_topic.
Supported beta path¶
- validated RMW:
rmw_cyclonedds_cpp - covered distros: Humble/Jammy and Jazzy/Noble
- startup bundle loading via the
bundle_dirparameter
Hot-reload is still out of scope for the first beta path. Use the lifecycle node only when deployment orchestration needs managed configure/activate transitions.
Build and launch¶
Build the companion workspace with colcon, then point the launch file at an
existing deployment bundle:
ros2 launch zeroproofml_ros rr_ik_strict_inference.launch.py \
bundle_dir:=/absolute/path/to/results/reference_deploy_robotics/.../bundle
For a non-ROS smoke run against the same runtime path:
rr_ik_demo --bundle-dir /absolute/path/to/results/reference_deploy_robotics/.../bundle
For the offline DOSE batch path:
ros2 launch zeroproofml_ros dose_offline_batch.launch.py \
bundle_dir:=/absolute/path/to/bundle
QoS and telemetry¶
Use qos_preset=low_latency_control for fresh control-loop samples and
qos_preset=offline_batch_replay for deterministic rosbag or batch replay.
The node also publishes a numeric telemetry vector on telemetry_topic for
Foxglove or PlotJuggler, and the package can export the same fields as named
CSV rows through write_visualization_telemetry_csv(...).
For RViz workflows, the companion package exposes marker-overlay helpers for workspace heatmaps and RR IK result inspection.