This repository is the deployed Docker Compose configuration for the Raspberry Pi 5 robot runtime. Container source code is maintained in the paper repository, and Jetson YOLO processing is maintained in jetson-stack.
docker-compose.yaml starts:
- Nav2 and AMCL navigation
- PostgreSQL/PostGIS storage
- RPLidar input
- SLAM and RF2O fallback odometry
- sensor fusion and IMU yaw correction
- direct Raspberry Pi GPIO motor control
- Raspberry Pi AI Kit service
- rosbridge and Foxglove bridges
- RealSense RGB, depth, point-cloud and IMU streams
- MCAP bag recording and read-only bag browsing
- log collection and runtime health checks
All services use the host network where required by ROS 2 or hardware access.
- Copy
.env.exampleto.env. - Set image tags,
DB_PASSand device-specific values. - Keep
.envprivate; it is ignored by Git. - Render CycloneDDS configuration after changing its inputs.
cp .env.example .env
scripts/render_cyclonedds_config.sh
docker compose config
docker compose up -dThe tracked files under config/containers are the active mounted runtime configuration. Files ending in .env contain non-secret service settings; shared and sensitive values belong in the ignored root .env.
| File | Purpose |
|---|---|
bridge_rpi_direct.env |
GPIO pins, drivetrain geometry and motor behavior |
drive_profiles/*.env |
Selected surface dynamics and motor transition safety |
nav_cont.env |
command routing, safety, inspection and pose persistence |
nav2_params.yaml |
Nav2 planners, controllers and costmaps |
collision_monitor_params.yaml |
collision-monitor zones and sources |
slam_cont.env / slam_params.yaml |
mapping and localization behavior |
sensor_fusion_cont.env / robot_localization.yaml |
IMU correction and EKF |
realsense_cont.env |
RealSense streams and watchdog |
recorded_topics.yaml |
MCAP topic selection |
logging.yaml |
container log collection |
cyclonedds.xml |
generated DDS network configuration |
Select a map before starting localization:
scripts/select_map.sh <session-or-map-path>Start or stop mapping with:
scripts/start_mapping.sh
scripts/stop_mapping.shdocker compose config
bash -n scripts/*.shThe optional lightweight Raspberry Pi monitoring deployment is documented in monitoring/README.md.