No announcement yet.

AUV Guidance, Navigation, and Control

  • Filter
  • Time
  • Show
Clear All
new posts

  • AUV Guidance, Navigation, and Control

    Hello RoboSubers,

    My name is Ted Sender - I am a former member of The Ohio State University's Underwater Robotics Team and I participated in RoboSub for 3 years during undergrad.

    Since I began participating in RoboSub, I saw just how difficult the competition really was, especially for a new team just to control the vehicle so it doesn't flop around like a fish (I'm sure everyone's sub has done that at some point). I still remember when our team had to constantly adjust our vehicle's heading to force its curved path through the validation gate (ah, good times). Over the years, I gained more knowledge about robotics through taking advanced courses, participating in RoboSub, and, of course, scouring the internet.

    What am I doing with all of that knowledge? Giving back, because as engineers, we learn from each other's successes and failures. Over the past year, I have been working on an open-source guidance, navigation, and control (GNC) library called AUV GNC:

    To my knowledge, this is the first open-source GNC library just for AUVs. It is written in C++ and requires Robot Operating System (ROS), though I minimized the extent to which I used ROS so others could rework it to their needs. This library contains an asynchronous Extended Kalman Filter for state estimation of the translational states, a continuous-time Linear Quadratic Regulator (LQR) controller, and a package dedicated to generating trajectories in 3D space. it is not the most advanced library, but it works and it will be updated as I further my learning in more advanced topics.

    To the best of my simulation abilities with what I have, this repo currently works as designed. However, please note that I am currently a PhD student at the University of Michigan and I do not have all the time in the world to help people through how to use it, unless it is a bug issue. It is designed to be straightforward to use (so long as you understand the underlying principles). Given that, the OSU underwater robotics team has informed me they are happy to work with other teams and collaborate with them on using and improving upon the library. You can find their contact info at their website:

    I hope that at least some of you find this library useful. Whether you use it as is, or try to improve it with more features, that is up to you. Having a controllable robot is always needed for you to focus your attention on some of the more important / interesting components in a competition like this, and that would be autonomy. Finally, if you end up using my library in your robot, all I ask in return is that you give me credit for using someone else's ideas.


  • #2
    That... is... AWESOME...