How nguyenhuuddinh/nchk_robotfirefighting_ros works
This ROS 2 workspace forms the runtime stack for a fire-response mobile robot: operators or autonomy supply velocity commands, a Pi-side safety gate forwards fresh commands or STOP, and the ESP32 receives them through micro-ROS. Sensors and odometry feed scan/TF data for SLAM; robot description supplies the sensor frame tree, while the dashboard exposes a browser-facing bridge. The graph reflects launch declarations and sampled node behavior; dashboard internals, mapping outputs, and several ESP32 capabilities are documented but their implementation is not present in sampled source.
Main entry points: robot.launch.py Robot launch · safety_watchdog.py Safety watchdog · sensors.launch.py Sensor launch · micro_ros.launch.py micro-ROS agent
Components 22
Robot bringup
- Robot launch
ros2_ws/src/fire_robot_bringup/launch/robot.launch.py - Sensor launch
ros2_ws/src/fire_robot_bringup/launch/sensors.launch.py - micro-ROS launch
ros2_ws/src/fire_robot_bringup/launch/micro_ros.launch.py - Description launch
ros2_ws/src/fire_robot_description/launch/description.launch.py - Safety launch
ros2_ws/src/fire_robot_safety/launch/safety.launch.py - Dashboard launch
ros2_ws/src/fire_robot_bringup/launch/dashboard.launch.py
Sensing and frames
- Camsense lidar
ros2_ws/src/fire_robot_bringup/launch/sensors.launch.py - Scan QoS relay
ros2_ws/src/fire_robot_bringup/fire_robot_bringup/scan_qos_relay.py - USB camera
ros2_ws/src/fire_robot_bringup/launch/sensors.launch.py - Odometry TF
ros2_ws/src/fire_robot_bringup/fire_robot_bringup/odom_to_tf_broadcaster.py - Robot URDF
ros2_ws/src/fire_robot_description/urdf/fire_robot.urdf.xacro - State publisher
ros2_ws/src/fire_robot_description/launch/description.launch.py
Command safety
- Safety watchdog
ros2_ws/src/fire_robot_safety/fire_robot_safety/safety_watchdog.py
Mapping
- SLAM launch
ros2_ws/src/fire_robot_navigation/launch/slam.launch.py - SLAM Toolbox
ros2_ws/src/fire_robot_navigation/launch/slam.launch.py - Mapper config
ros2_ws/src/fire_robot_navigation/config/mapper_params_online_async.yaml - SLAM scan input
ros2_ws/src/fire_robot_navigation/launch/slam.launch.py
External interfaces
- micro-ROS agent
ros2_ws/src/fire_robot_bringup/launch/micro_ros.launch.py - ESP32-S3 robot
- Web dashboard
ros2_ws/src/fire_robot_bringup/launch/dashboard.launch.py
Other components
- Operator / autonomy
- Browser client
Connections 28
- Operator / autonomy → Robot launch: starts stack
- Robot launch → Sensor launch: includes
- Robot launch → micro-ROS launch: includes
- Robot launch → Description launch: includes
- Robot launch → Safety launch: includes
- Robot launch → Dashboard launch: includes
- Sensor launch → Camsense lidar: starts
- Sensor launch → Scan QoS relay: starts
- Sensor launch → USB camera: optionally starts
- Camsense lidar → Scan QoS relay: publishes scans
- Scan QoS relay → SLAM scan input: relays scans
- micro-ROS launch → micro-ROS agent: starts
- micro-ROS agent → ESP32-S3 robot: bridges serial
- Operator / autonomy → Safety watchdog: sends velocity
- Safety launch → Safety watchdog: starts
- Safety watchdog → micro-ROS agent: publishes /cmd_vel
- micro-ROS agent → Safety watchdog: delivers /odom
- Safety watchdog → ESP32-S3 robot: commands via agent
- ESP32-S3 robot → Odometry TF: publishes /odom
- Odometry TF → SLAM scan input: broadcasts TF
- Description launch → State publisher: starts
- State publisher → Robot URDF: loads model
- State publisher → SLAM scan input: publishes frame tree
- SLAM launch → SLAM Toolbox: starts
- SLAM launch → Mapper config: loads parameters
- SLAM scan input → SLAM Toolbox: provides scan
- Dashboard launch → Web dashboard: starts bridge
- Browser client → Web dashboard: connects WebSocket