I am currently taking part in a project where a team is building an autonomous underwater glider with obstacle avoidance features.

However, since I do not have a background in Robotics (I am in Computer Science), I am having a very hard time knowing what to do.

So far, I have read multiple papers on obstacle avoidance algorithms, physics simulators, and underwater glider simulators but I am frozen in panic at the amount of information lying in front of me. There are so many simulators and I have no idea which one to learn, no idea how to use them, no idea how to personalize and configure them to my need.

My question is: I want to be able to do these things:

  • be able to modify the shape of the underwater glider. The hydrodynamics should depend on the shape of the underwater.
  • be able to simulate inputs from the sensors: I will be using single beam forward-looking sonars for obstacle avoidance. The point of the simulation is to allow me to test different configurations or arrangements of sonars.
  • be able to simulate actuators, so propellers, wings, etc.
  • parameterize some properties of the water and the environment, so gravity or water turbidity
  • be able to write navigation and obstacle avoidance policy in a programming language such as Python or C++
  • render the whole scene in acceptable fidelity

What would be an approach chosen by an expert? I am currently tempted to write my simulator from scratch as this would be the most straightforward way but I would be wasting a lot of time.


1 Answer 1


A lot of your question is written as a shopping question which is not a good match for this site. We want questions which are practical and can have a concrete answer. As opposed to open ended questions which are focused on opinion and subjective.

However to that end I'll answer your more generic but concrete question at the end. How would an expert approach this?

This problem requires a classic comparative analysis. You should identify what you potential options and enumerate them. You then want to identify your requirements. You can then evaluate each option against you requirements. You can estimate the levels of effort to bring anything not meeting your requirements up to that level for each option.

As an aside to your thoughts about just building your own. Do not underestimate the level of work required. Depending on what level of fidelity you want in your system this could be a multi year project where you need consultation with people whose specialty is modeling and controlling underwater vehicles. This is from actively participating on a project with MBARI doing most of the things you're listing.

This is one of a large community active open source projects in this area. There was a recent birds of a feather discussion about maritime robotics which might help you see a sampling of what people are currently doing in the space and what you might be able build off of.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.