Gazebo Community meeting: Maritime simulations (Novermber 2022)

Crossposting from the gazebosim Community. We’ll talk about maritime simulations in the next Gazebo Community meeting. We’ll also touch message standardization.

Please, join us!


I was wondering if some benchmark simple simulation environment exsists, similar to turtlebot, but then for ros maritime usecases.

It could be a single node simulation which has simple forms of main features that are relevant for maritime control, such as thruster dynamics, thrust allocation modules, simple hydrodynamic behaviour (e.g. state space model with linear dampening and added mass).

I’m looking for such a tool to provide to colleagues that want to work with my robotic ships, such that they can play around with vessel controls in a real time ROS context to prepare them to deal with the real system. It could really help them to get to know certain aspects of ROS, real time control, and deal with vessel control theory in their own pace.

I made a ros package that does this myself, but I expect one that has been adopted by a wider community (such as turtlebot does for generic ros tutorials) can result in something nicer.

Any thought on this are welcome. (also directions on where to ask this question if this does not reach the right audience)

That’s a good idea. Are you talking about surface or underwater? I guess you mentioned ships, so that’s surface. Either way, I THINK there isn’t a ubiquitous one like turtlebot. People mentioned having more accessible inexpensive marine robots for education at the ICRA marine workshop in 2021, but I don’t know if there is a platform that educators start beginners with.

That said, the features you mentioned – a simple environment with thruster and hydrodynamics for the purpose of testing controls – it exists. The LRAUV simulator mentioned in the Community Meeting fits that bill well. It is an underwater vehicle though.

Here’s the example world file in the modern Gazebo: gz-sim/auv_controls.sdf at gz-sim7 · gazebosim/gz-sim · GitHub

It is very barebone, just the vehicle model and a few plugins. You can see it has hydrodynamics and thrust, both are built-in features in the new Gazebo. The controllers to illustrate the example are very simple, and that’s where you can substitute in your own controllers. It is independent of ROS though, so you’ll have to set up the ROS hooks.

As for surface vehicles, with ROS integrated, there are less barebone environments, like the MBZIRC simulation in ROS 2 and modern Gazebo. The VRX simulation is also being ported from Gazebo-classic to modern Gazebo. You can see the recorded slides about them in the Community Meeting.

Shameless plug GitHub - arjo129/maritime_sim_tutorial: Maritime simulation with ignition tutorial gives a step by step instruction on how to simulate underwater vehicles all the way up to ROS. Its desigend so you can git checkout step_7. It’s quite barebones but should give you a whirlwind tour of gazebo.