How to develop

Run pipeline on actual hardware data

pixi run -e ai launch -- sarcam_bringup main_onvif_soar977.launch rosbag_playback:=false rosbag_record:=false 

Zenoh starts automatically. For DMS15 hardware use main_dms15.launch.

Environments

Each one adds to the one above it, so pick the first that covers what you are running:

pixi run -e

Adds

Use it for

(none)default

ROS stack, UI, build and test tooling

replaying bags, everyday development

ai

object detector (PyTorch, TensorRT — gigabytes)

anything with ai_pipeline:=true

deployment

camera driver (GStreamer decoders)

live cameras, and what ships run

docs, sim

Sphinx, Gazebo

writing docs, Simulation

A live camera needs deployment: no other environment can decode RTSP, and gscam fails with no element "nvh265dec" without it.

Run pipeline on recorded data

First start the processing pipeline in terminal 1

pixi run launch -- sarcam_bringup main_onvif_soar977.launch ai_pipeline:=false

ai_pipeline:=false leaves the object detector out, so this needs only the default environment — no PyTorch, no CUDA libraries, several gigabytes less to install. A bag carries the detections and tracks that were recorded with it, so the UI still draws them. Replaying with a live detector instead is pixi run -e ai launch -- ... without that argument; see Software setup.

Then replay bags in terminal 2:

# Replay all mcap-recordings from a folder - note that videostreams need to be in root of that folder!
pixi run replay /path/to/videofolder/mcapfolder --loop # or -l for loop

# Replay a single mcap
pixi run replay /path/to/videofolder/mcapfolder/recording.mcap

Run pipeline in simulation environment

Check simulation environment.

Development tools

Enter sandbox shell

pixi shell

Now you can use native ros2 commands without writing pixi run like

ros2 topic echo /rgb/camera_info # get ros2 topic datastream

Reset sandbox

pixi run clean

Testing

We use pytest framework for test. Execute tests via:

pixi run test

Documentation

Live preview (auto-reloads in browser):

pixi run -e docs docs-autobuild

Build (one-shot):

pixi run -e docs docs-html

Link checker:

pixi run -e docs docs-linkcheck

ROS2 devtools

# Visualize connections nodes<->topics / tf tree / topics
ros2 run rqt_gui rqt_gui
# 3D Visu / tfs
ros2 run rviz2 rviz2
# TBC

UI GTK devtools

Install glade to visually edit the UI in src/sarcam_ui/sarcam_ui/ui/gui_v_1.glade