The software architecture for the ASV was designed based off the existing architecture for BBAUV. We make use of Robot Operating System to perform durable inter-process communications and enforce structure on individual task nodes and communication protocols.
Each of the task nodes are written to work independently from each other for ease of testing. The use of independent task nodes combined with the networked nature of ROS also lets us to run the nodes outside the ASV.
Control Panel
The Control panel displays telemetry information and camera images, which aids in monitoring of sensors and actuator data for system analysis during practice runs.
The ROS logging system is used to capture telemetry and video information, and log messages. The data is captured in .bag files in the form of ROS messages. The rosbag playback utility is used to allow post-processing to improve the algorithms and system.
Computer Vision
Our core library of the ASB computer vision is the Maximally Stable Extremal Regions (MSER), which helps to extract regions of interest from the image. MSER is chosen due to its robustness to scale and perspective change. The ASV is also capable of eliminating false positives, by doing persistence checking over 10 consecutive image frames is employed.
Simulation
The newest feature to our software architecture is the development of a simulation system for the ASV through the gazebo library.
A simulated stereo camera and LIDAR was then placed on the boat. Algorithm was developed to ensure that the ground truth pose of the boat, and the pose determined by SLAM were closely matched.