Autonomous Surface Vessel Stack
Perception and telemetry for a competition autonomous boat.
The AI stack behind UM::Autonomy’s competition vessel: object detection and LiDAR classification as ROS2 nodes feeding navigation and task planning. Zenoh and Protobuf carry telemetry across 15+ nodes, validated in Gazebo before it touches water.
Perception
Deep-learning object detection and LiDAR point cloud classification run as ROS2 nodes in Docker, feeding the navigation and task planning stages downstream. Containerising each node keeps the model dependencies from colliding with the rest of the vessel software and makes a node reproducible off the boat.
Telemetry
Telemetry and command traffic move over Zenoh with Protobuf payloads — a low-latency bidirectional layer spanning 15+ distributed nodes, where the alternative was every subsystem inventing its own message format.
Testing
The whole stack is validated in Gazebo and RViz before it goes on the water. Simulation is not a nicety here: on-water time is scarce and a failed run costs a day, so anything that can be caught in a simulated course is caught there first.
Stack
- Python
- ROS2
- Docker
- Zenoh
- Protobuf
- Gazebo
Links
Private
- Deep-learning detection and LiDAR point cloud classification as ROS2 nodes.
- Zenoh + Protobuf transport across 15+ distributed nodes.
- Simulated in Gazebo and RViz before anything touches water.