How ubc-snowbots/roverflake2 works
RoverFlake2 is a ROS 2 rover software workspace. Its principal operator workflow spans HMI and joystick input, rover motion or arm control, and hardware interfaces; supporting subsystems provide camera/vision, navigation, mission recording, and science operations. The tree documents these capabilities, while sampled source confirms only selected connections: mission services and persistence, camera topic routing, and science-panel subscriptions. Other subsystem wiring is not inferred from names alone.
Main entry points: mission_manager.py Mission manager · hmi_host.cpp HMI modules · drive_control.cpp Drive control · science_pipeline_module.cpp Science pipeline panel
Components 23
Operator HMI
- Rover HMI
src/rover_hmi/src/RoverHMI.cpp - HMI modules
src/rover_hmi_core/src/hmi_host.cpp - Joystick input
src/rover_launchers/launch/game_controller.launch.py
Rover Control
- Drive control
src/drive_control/src/drive_control.cpp - Arm control
src/arm_control/src/moveit_control.cpp - Base communications
src/comms_base_control/src/comms_relay.cpp - Device manager
src/rover_manager/src/cbsHardwareManagerNode.cpp - CAN hardware
src/arm_hardware_interface/src/generic_can_hardware_interface.cpp - Moteus driver
src/arm_hardware_interface/src/moteus_driver_node.cpp
Sensing and Navigation
- Camera pipeline
src/cameras_cpp/src/cam_pipeline_node.cpp - Camera broadcaster
src/cameras_cpp/src/dyn_cam_pipeline_node.cpp - Vision nodes
src/rover_vision/rover_vision - Object detection
src/object_detection/object_detection/yolo_detector_node.py - Localization
src/localization_dev/localization_dev/mahony_filter.py - Waypoint navigation
src/rover_search/rover_search/navigate_waypoints.py
Mission Data
- Mission manager
src/rover_mapping/rover_mapping/mission_manager.py - Mission files
src/rover_mapping/rover_mapping/mission_io.py - Map exporter
src/rover_mapping/rover_mapping/exporter.py
Science Operations
- Science pipeline panel
src/rover_hmi_core/src/science/science_pipeline_module.cpp - Science controls
src/rover_hmi_core/src/science/science_module.cpp
Other components
- Rover operator
- GNSS fix source
- Science telemetry
Connections 18
- Rover operator → Rover HMI: operates
- Rover HMI → HMI modules: hosts modules
- Rover operator → Joystick input: provides input
- Joystick input → Drive control: control input
- HMI modules → Drive control: drive commands
- HMI modules → Arm control: arm commands
- Drive control → Base communications: control messages
- Arm control → Moteus driver: arm commands
- Base communications → Device manager: device messages
- Device manager → CAN hardware: device access
- Camera pipeline → Rover operator: selected image output
- Camera broadcaster → Rover operator: broadcast images
- Mission manager → GNSS fix source: subscribes fix
- Mission manager → Mission files: reads and writes
- Mission manager → Map exporter: exports mission
- Rover operator → Mission manager: mission services
- Science pipeline panel → Science telemetry: subscribes telemetry
- Science pipeline panel → Science controls: subscribes commands