Autonomous Underwater Vehicle


Every year KSU’s AUV team competes in a competition called RoboSub where we are tasked with completing challenges for points. The challenges are things like navigating through a tube, shooting torpedoes, and picking up items. The teams are scored based on the rules online and the winner is determined by straight point values.


The challenges change fairly often, so you have a certain time frame that you need to work within in order to make sure your robot does the new challenges. There is also a hard weight limit of 125lbs that you cannot go over. Also, you obviously need your vehicle to be waterproof, or you won’t get very far in the competition.


            The plan changes each year as the challenges change, but the general concept is to make your vehicle as modular as possible and iterate on the design each year. You want to be able to quickly and easily equip the AUV with different mechanisms, be that a grabber arm, torpedo, or even a sonar. Our newest design consists of two large halves that meet in the middle. The hope is that being able to do quick repairs will allow for more development time.

            The team is broken up into three divisions: Mechanical, Electrical, and Software. I have bounced back and fourth between the electrical and software side of things since I have been with the team. When I was with electrical, I was mainly designing circuits in CircuitMaker. I also picked up most of my soldering skills in this time just putting all the parts and pieces together for the sub.

More recently, I’ve been in the software side of things. Here is a link to our github where we put all the code that we run on the sub. I worked on the state machine that allows us to organize our code based on “states” that is might be in at any given time. I used the SMACH library that pairs well with ROS system we already used. I wanted to create a system that allows someone to easily and quickly add functionality to the code without breaking anything too crazily. So, we made a central “sub” state class that all the other states inherit from. This allows us to keep track of things that all states should have access to, while also giving the new user the ability to add new things without any issue.

Overall, I think we will do well this upcoming year.