Team Kanaloa 6 of 7

aspects of the robot and environment such as holonomic configuration, field test elements, and Sand Island simulation. Using the simulation, Team Kanaloa was able to test image and color recognition, two fundamental capabilities to execute Identifying Symbols and Dock, and Scan the Code. For Identifying Symbols and Dock, Team Kanaloa used the simulation for training, validating, and testing data. Then, HSV thresholding was tested in simulation to identify color which utilizes OpenCV in python and sees if the color shares the same location of the shape that is recognized as shown in Figure 14.

###### Figure 12: R-CNN Labeling

- 3) Robot Localization

The Robot localization code was developed in ROS [1]. A ROS package called robot\_localization, meant to fuse multiple sensors from the sensor suite, two IMUs and a GPS, attached to the WAMV. The data is run through an extended Kalman Filter to produce a pose state estimate of the WAM-V’s position, orientation, linear and angular velocity. Once the code is activated its position at that time is used for the origin of the local and map frame for the code.

###### Figure 13: Example of Using R-CNN in Simulation

- 4) Waypoint Navigation

The Waypoint Navigation code was developed in MATLAB and designed to communicate with ROS. The position, orientation and velocity of the WAM-V is published in ROS; the MATLAB code creates its own ROS subscriber to receive this data. The code also creates publishers to the motor inputs and goal inputs in ROS. The goal inputs are simply the x and y position and orientation desired for the WAM-V. Once the code has its odometry data it calculates the error in position and orientation; as well as the distance, in length and arc, to the goal inputs. From these errors the WAM-V is determined to be in one of 6 states. These states can be set into two main categories: facing correct heading or not. Each of these categories are then broken into sub- categories: outside approach radius, inside approach radius but outside goal radius, and inside goal radius. First the code rotates the WAM-V to face the goal. Then the code is set to drive the WAM-V forward and controlling the path heading toward the goal. Once the WAM-V is within the goal radius and facing the correct heading the code cuts off the thrusters. The radiuses can be adjusted depending on the precision of movement of the WAM-V and accuracy of the sensors. As of right now based on the accuracy of the GPS the goal radius is set to 3 meters. The code controls the speed of the WAM-V by sending messages for the thruster’s voltages to the Arduino controlling the propulsion system.

Team Kanaloa gathers color data by capturing compressed images of the three different shapes that appear in the “Identifying Symbols and Dock” task: triangle, circle, and cruciform. Each shape was painted by the team in red, green, and blue for a total of 9 shapes. The shapes were photographed at Sand Island with the cameras used on the WAMV. In doing so the background for each picture would be closer to competition conditions and would supplement the data with lighting conditions or other environmental factors. Some challenges in simulating the workflow of the task includes making sure the WAM-V could classify multiple shapes and colors in one frame and anticipating color changes in various environmental conditions at the competition site. As for Scan the Code, the simulation was used to test the WAM-V ability to identify RGB buoy before testing the WAM-V in the actual competition site.

#### 2) Field Testing

Team Kanaloa utilizes a three-stage testing system procedure to validate the compliance of integrated hardware or software before going on a field test at Sand Island. The three-stage system testing procedure consists of component testing, module testing, and full-system testing in that order. Each testing tier must follow an iterative testing procedure. Iterative testing involves performing a minimum of five trial runs in a row, that meet the experimental success criteria. A trial run consists of unplugging the component and resetting the system. Final validation is determined by a demonstration in front of the Project Manager or System Integrator after all the iterative testing procedures have been successful. All testing must be done two days before the field test day.

## IV. EXPERIMENTAL RESULTS

#### 1) Finite State Machine

As mentioned in the section above, Team Kanaloa utilizes VMRC simulation for code and autonomous testing. The simulation contains important fundamental