top of page

Software

The Software team at Okanagan Marine Robotics has been hard at work designing the brains of our AUV, ensuring intelligent and autonomous functionality. 

ROS2

In order to facilitate the modular structure of our various software nodes, we opted to utilize ROS2 (Robot Operating System 2) for our communications layer. 

​

By splitting up our system into as many discrete nodes as practically possible, we hope to streamline future development and simplify testing. Additionally, using ROS2 nodes allows for straightforward interaction between Python and C++ code.

3D Mapping

Our mapping system combines the object detection system and our stereo camera to estimate the position of competition elements in 3D space relative to our AUV. In order to achieve this, we utilized a hierarchy voxel grid data structure, similar to OpenVDB.

Object Detection

Our AUV’s Object detection system is currently being reworked for improved efficiency and accuracy. In the 2025 competition we aim to be able to detect all Robosub competition elements using a mix of convolutional neural networks and our 3D mapping system.

Simulation

In the 2024-2025 season, we have begun to gather real world data for our object detection models, however we also supplement this with artificial data created using the Gazebo Simulator. By utilizing simluated data, we are able to rapidly prototype and test new object detection methods.

Automated Planning

Our automated planning system is the decision making core of our AUV. Implemented using behaviour trees, our automated planning system is able to respond to situations dynamically, while still being understandable and straighforward to edit.

bottom of page