How qxhhhq/sentrymaster2026 works
This is a ROS 2 sentry-robot workspace. Its documented workflow takes Odin1 odometry and sensor data, combines robot state and referee inputs in decision and planning nodes, then routes control topics through the USB/UART driver to chassis electronics. Supporting branches cover Odin1 configuration and point-cloud/depth processing, shared ROS message interfaces, and robot launch orchestration. The README documents several cross-package flows; unsampled implementation details are represented only where the tree supports a path, and launch inclusion does not imply currently enabled nodes.
Main entry points: host_sdk_sample.cpp Odin1 driver · uart_driver_node.cpp UART driver node · sentry_planner_node.cpp Planner node · decision_node.py Decision node
Components 24
Odin1 sensing
- Odin1 driver
src/odin_ros_driver/src/host_sdk_sample.cpp - LiDAR device API
src/odin_ros_driver/include/lidar_api.h - LiDAR data types
src/odin_ros_driver/include/lidar_api_type.h - Device configuration
src/odin_ros_driver/src/yaml_parser.cpp - Binary data logging
src/odin_ros_driver/include/data_logger.h - Raw cloud rendering
src/odin_ros_driver/src/rawCloudRender.cpp - Camera model
src/odin_ros_driver/include/polynomial_camera.hpp - Cloud reprojection
src/odin_ros_driver/src/cloud_reprojection_ros.cpp - Cloud-to-depth
src/odin_ros_driver/src/pointcloud_depth_converter.cpp - Depth image node
src/odin_ros_driver/src/depth_image_ros2_node.cpp
Decision and planning
- Decision node
src/sentry_decision_sys/sentry_decision_sys/decision_node.py - Planner node
src/sentry_planner/src/sentry_planner_node.cpp - Navigation maps
src/sentry_planner
Robot interfaces
- ROS message interfaces
src/rm_msgs - UART driver node
src/uartdriver/src/uart_driver_node.cpp - Serial transport
src/uartdriver/src/serial.cc - Serial transfer
src/uartdriver/src/transfer.cpp
Runtime integration
- Chassis launch
src/sentry_launch/launch/chassis.launch.py - Planner launch
src/sentry_planner/launch/global_planning.launch.py - Odin1 launch
src/odin_ros_driver/launch_ROS2/odin1_ros2.launch.py - UART launch
src/uartdriver/launch/driver.launch.py
Other components
- Chassis electronics
- Referee system
- Robot sensors
Connections 33
- Robot sensors → Odin1 driver: supplies sensor data
- Odin1 driver → Decision node: publishes odometry
- Odin1 driver → Planner node: publishes odometry
- Referee system → Decision node: provides referee data
- Referee system → Planner node: provides referee data
- Decision node → Planner node: issues navigation commands
- Decision node → UART driver node: issues posture commands
- Planner node → UART driver node: issues speed commands
- UART driver node → Chassis electronics: sends chassis control
- UART driver node → Decision node: publishes chassis data
- UART driver node → Planner node: publishes chassis data
- Decision node → ROS message interfaces: uses ROS interfaces
- Planner node → ROS message interfaces: uses chassis interface
- UART driver node → ROS message interfaces: uses ROS interfaces
- Odin1 driver → LiDAR device API: uses device API
src/odin_ros_driver/src/host_sdk_sample.cpp - LiDAR device API → LiDAR data types: uses data types
src/odin_ros_driver/include/lidar_api.h - Odin1 driver → Device configuration: loads configuration
src/odin_ros_driver/src/host_sdk_sample.cpp - Odin1 driver → Binary data logging: records streams
- Odin1 driver → Raw cloud rendering: renders raw clouds
src/odin_ros_driver/src/host_sdk_sample.cpp - Odin1 driver → Cloud reprojection: provides sensor streams
- Cloud reprojection → Camera model: uses camera model
- Odin1 driver → Cloud-to-depth: provides point clouds
- Cloud-to-depth → Depth image node: feeds depth images
- UART driver node → Serial transfer: transfers serial data
- Serial transfer → Serial transport: uses serial transport
- Chassis launch → Planner launch: includes planner
src/sentry_launch/launch/chassis.launch.py - Chassis launch → Decision node: starts decision node
src/sentry_launch/launch/chassis.launch.py - Chassis launch → UART launch: references UART launch
src/sentry_launch/launch/chassis.launch.py - Chassis launch → Odin1 launch: references Odin1 launch
src/sentry_launch/launch/chassis.launch.py - Planner launch → Planner node: starts planner
- Odin1 launch → Odin1 driver: starts driver
- UART launch → UART driver node: starts driver
- Navigation maps → Planner node: supports navigation
src/sentry_planner/src/sentry_planner_node.cpp