As part of the Aerospace Systems Design Laboratory‘s participation in the 5th RoboBoat Competition, I am the lead software engineer designing the complete software architecture of our autonomous boat. The goal of this project is to enable our vessel to autonomously navigate a channel marked by green and red buoys and to accomplish missions once the boat reaches the end of this channel. As can be seen in the figure below, this year’s competition features a poker theme and defines four mission goals. The boat enters the channel at the dock and exits it at the point marked by a white star. Two equivalent courses are laid out in the competition area, both of which the vessel will attempt. The poker themed missions include the Cheater’s hand, the Poker chip, the Jackpot, and the Suit challenge. For the Cheater’s hand, the boat has to identify a hole in a wooden board and shoot water through it using its watergun. The Poker chip challenge requires the boat to deploy a land-based or airborne vehicle to retrieve an object from the shore. For the Jackpot, the boat has to push a button mounted on a pole. And the Suit challenge requires the boat to identify a hot object with an infrared camera and report it back to base. A sketch of the competition area is shown below.
The software architecture of our boat is based on a combination of behavior-based control and the sense-think-act paradigm originally introduced by Rodney Brooks in the 1980s. George A. Bekey’s book Autonomous Robots: From Biological Inspiration to Implementation and Control also calls this approach hybrid reactive-deliberative control, where a deliberative planning layer is superimposed onto a behavior-based reactive control system. As the figure below shows (behaviors shaded in green), our software architecture uses behaviors that are dynamically weighted and switched on/off by the high level control and mission planner module, which is our deliberative layer.
Each behavior outputs a vote matrix that represents the behaviors preferred local target (see the following video on the right). Such a vote matrix encodes 128 angular steps and 8 radii or distances from the boat. Therefore, a behavior can vote on a direction as well as a speed. All behavior matrices are combined as a weighted sum by the behavior arbiter who receives input in the form of weights from the high level controller and planner. That way, we can dynamically change weights of certain or all behaviors and also switch behaviors of completely.
We use the 3D simulator Gazebo and the Robotic Operation System (ROS) to test our software framework in simulation before we run it on the real hardware. A trial run with the 3D simulator on the left and the output of the behavior arbiter on the right is shown in the videos below.
Meet the team of this project on the official team homepage of the Georgia Tech Marine Robotics Group.