In the ROS architecture running on the Gyarados motherboard, different nodes are used to control different parts of the vehicle. These nodes communicate with each other through ROS; each node can have several publishers and subscribers based on the function of the node. Each Arduino board on the sub is a node that interfaces with the hardware. The computer vision node is isolated for modularity.
Object detection is handled by the computer vision node, which uses OpenCV for preprocessing and detection. First, the images are labelled, then features are extracted using HOG. These images are then used for training the real-time object detection system. Real-time detection is based on image frames from a video feed that are preprocessed, ROI determined, then classified. These classifications are used to decide which movements the submarine should take.
Filtering Out Colors Find Contours
Before Machine Learning After Applying Machine Learning