ROS Bag Playback Cookbook (DDS Path)¶
This guide explains how to replay ROS bags into ROBIN using the current DDS telemetry path.
1. Start Required Containers¶
From repository root:
docker compose up -d mongo-db timescaledb orion-ld mintaka alert-processor robin-dashboard vulcanexus
2. Build ROS Workspace (inside Vulcanexus)¶
docker exec -it vulcanexus-bridge bash
source /opt/vulcanexus/jazzy/setup.bash
cd /workspace/ros2_packages
colcon build --symlink-install \
--packages-select robin_interfaces robin_telemetry robin_description
source ws_setup.sh
export ROS_DOMAIN_ID=0
3. Start Telemetry Aggregator¶
Before replay, create the ros_bridge process entity once so Mintaka can resolve
temporal rows by entity id:
curl -X POST http://localhost:8001/create-process \
-H 'Content-Type: application/json' \
-d '{"process_id":"ros_bridge","mode":"parameter_driven"}'
In container:
source ws_setup.sh
export ROS_DOMAIN_ID=0
ros2 run robin_telemetry telemetry_aggregator --ros-args \
-p geometry_topic:=/robin/weld_dimensions \
-p fronius_topic:=/robin/data/fronius \
-p output_topic:=/robin/telemetry
This publishes combined data on /robin/telemetry. The defaults expect the current
WelderData + BeadGeometry bag formats (e.g. correct_process_params). For the
legacy exp001_rosbag_real bag, add -p fronius_type:=FroniusSample -p geometry_type:=Float32MultiArray and mount that local bag into the Vulcanexus
container yourself; it is not one of the committed public samples.
4. Replay the Bag¶
source ws_setup.sh
export ROS_DOMAIN_ID=0
ros2 bag play /workspace/ros2_packages/correct_process_params --loop \
--topics /robin/data/fronius /robin/weld_dimensions
5. Verify End-to-End Flow¶
ROS side¶
ros2 topic echo /robin/telemetry
Orion side¶
curl -H "NGSILD-Tenant: robin" \
"http://localhost:1026/ngsi-ld/v1/entities/urn:ngsi-ld:Process:ros_bridge"
Alert Engine side¶
curl "http://localhost:8001/process/ros_bridge/measurements?last=5"
React dashboard¶
Open http://localhost:5174 and select process ros_bridge.
The React UI polls GET /process/ros_bridge/measurements and will refresh as the bag replays.
6. One-Command Demo¶
Use:
./demo/simulation-demo-rosbag-wfs-alc-ts.sh
This script orchestrates setup and replay using the same DDS-first approach.
Notes¶
The legacy HTTP NGSI bridge flow is deprecated in this repository baseline.
The bag topic names can still reflect domain-specific capture sessions (for example
/robin/weld_dimensions), while core storage remains process-agnostic.