Skip to content

Simulation

Sea time is expensive and slow, so most marine robotics software is developed and tested in simulation first. This page groups simulators by the engine they use, and helps you choose one.

Choose a simulator

flowchart TD
  START{"What do you need most?"}
  START -->|"ROS 2 integration,<br/>control and autonomy"| GZ{"Vehicle?"}
  GZ -->|"Surface vehicle"| VRX["VRX<br/>(Gazebo Harmonic)"]
  GZ -->|"BlueROV2 / ArduSub"| BR["bluerov2_ignition +<br/>ardupilot_gazebo"]
  GZ -->|"Generic UUV with<br/>sonar and DVL"| POSIM["POSIM<br/>(DAVE on Gazebo Jetty)"]
  START -->|"Hydrodynamics from geometry,<br/>manipulators, sonar"| SF["Stonefish +<br/>stonefish_ros2"]
  START -->|"Photo-realistic images<br/>for perception or ML"| ENG{"Engine preference?"}
  ENG -->|"Unreal Engine"| HO["HoloOcean · UNav-Sim"]
  ENG -->|"NVIDIA Isaac Sim"| OS["OceanSim"]
  ENG -->|"Unity"| UN["MARUS 2 · SMARCUnity"]
  START -->|"Learning, quick tests,<br/>low compute"| TB["TurtleBoat"]
Need Good options Why
Surface vehicle autonomy, competitions VRX Waves, wind, WAM-V model, RobotX tasks, ROS 2 Jazzy
ArduSub software-in-the-loop bluerov2_ignition, ardupilot_gazebo, Orca5 Runs the real ArduSub firmware against Gazebo
Underwater sonar and DVL in Gazebo POSIM (DAVE), gz-sim DVL system Maintained sensor plugins on current Gazebo
Accurate hydrodynamics and manipulation Stonefish Computes added mass and drag from geometry; models manipulators
Camera and sonar images for learning HoloOcean, OceanSim, UNav-Sim Game-engine or RTX rendering; Python and ROS 2 bridges
Large multi-vehicle scenes MARUS 2, SMaRC Unity Unity scenes with ROS 2 adapters

End-of-life platforms

Gazebo Classic (Gazebo 11) reached end of life in January 2025, and ROS 1 Noetic in May 2025. Simulators that need them (UUV Simulator, the original DAVE, Plankton, ds_sim) still work for study, but expect no security fixes or new binaries. Use them only to reproduce earlier work.

Gazebo-based

Gazebo (formerly Ignition) is the default ROS simulator. Current marine work uses the systems that ship with gz-sim: Buoyancy, Hydrodynamics (Fossen-style added mass and damping), Thruster, LiftDrag, BuoyancyEngine, and the DopplerVelocityLog sensor. Gazebo has no built-in wave system; VRX and asv_wave_sim add waves.

Project What it does ROS Vehicles Activity
VRX
Open Robotics / RoboNation
Virtual RobotX surface vehicle simulation (WAM-V, waves, wind, competition tasks). The default branch runs Gazebo Harmonic with ROS 2 Jazzy; the humble branch keeps Gazebo Garden with ROS 2 Humble. ROS 2 USV Active
Jan 2026
POSIM (DAVE for ROS 2)
IOES Lab and DAVE contributors
The ROS 2 and Gazebo Sim migration of the DAVE underwater simulator, now named POSIM. Targets ROS 2 Lyrical on Ubuntu 26.04 and Gazebo Jetty, with Docker images. The earlier port is on the ros2 branch of IOES-Lab/dave. ROS 2 AUV ROV Active
Oct 2026
gz-sim maritime systems
Open Robotics
Gazebo Sim ships the Buoyancy, Hydrodynamics, Thruster, LiftDrag, BuoyancyEngine, and DopplerVelocityLog systems that most current marine Gazebo projects use. There is no built-in wave system. Connect to ROS 2 through ros_gz. ROS 2 Non-ROS Any Active
Oct 2026
ros_gz
Open Robotics
Bridge and launch integration between ROS 2 and Gazebo Sim. ROS 2 Any Active
Oct 2026
ardupilot_gazebo
ArduPilot project
Gazebo plugin that connects ArduPilot software-in-the-loop (for example ArduSub) to Gazebo Sim. Used by Orca4, Orca5, bluerov2_ignition, and SUAVE. ROS 2 Non-ROS ROV USV Active
Apr 2026
bluerov2_ignition
Clyde McQueen
BlueROV2 base and heavy models for Gazebo Harmonic that use the standard buoyancy, hydrodynamics, and thruster systems. Proof-of-concept status per the README. Non-ROS ROV Active
Oct 2026
asv_wave_sim
Rhys Mainwaring
Gazebo plugins for ocean wave fields and wave forces on surface vessels. Non-ROS USV Low activity
Jan 2025
rs750
Rhys Mainwaring
Racing Sparrow 750 sailboat model and wind simulation for Gazebo, with ArduPilot integration. Non-ROS USV Dormant
Mar 2023
MBARI WEC
Open Robotics / MBARI
Gazebo simulation and ROS 2 interfaces for MBARI's wave energy converter buoy, with the same API for the physical and simulated buoy. ROS 2 Any Low activity
Sep 2025
LRAUV simulation
Open Robotics / MBARI
Gazebo simulation of MBARI's Tethys-class Long-Range AUV that can run the real LRAUV controller binaries. Archived in 2025; its general-purpose plugins are upstreamed to gz-sim. Non-ROS AUV Archived
Mar 2025
MBZIRC simulator
Open Robotics
Simulation environment for the MBZIRC Maritime Grand Challenge (USV with UAVs) on Ignition Fortress and ROS 2 Galactic, both end of life. The challenge ended in 2024; use it for reference only. ROS 2 USV Dormant
Aug 2022

Stonefish

Stonefish is a C++ simulation library with its own physics (Bullet) and OpenGL renderer. It computes hydrodynamic forces from the vehicle geometry instead of hand-tuned coefficients, and models sonars, DVLs, cameras, and manipulators. The MVP framework and the Girona vehicles use it.

Project What it does ROS Vehicles Activity
Stonefish
Patryk Cieślak (Universitat de Girona)
C++ library for marine robot simulation with hydrodynamics computed from geometry, plus sonar, DVL, camera, and manipulator models. Use it from ROS through stonefish_ros2. Non-ROS AUV ROV USV Active
Jul 2026
stonefish_ros2
Patryk Cieślak (Universitat de Girona)
ROS 2 interface and standard simulator node for Stonefish. Loads scenarios from XML files; the package version must match the Stonefish library version. ROS 2 AUV ROV USV Active
Dec 2025

Game-engine and GPU renderers

These simulators focus on realistic images and sonar returns for perception and machine learning. Their hydrodynamics are usually simpler than Stonefish or Gazebo.

Project What it does ROS Vehicles Activity
HoloOcean
BYU FRoSt Lab
Underwater simulator on Unreal Engine 5.3 (since version 2.0) with a Python API and imaging sonar, DVL, and camera models. The engine source repository needs a GitHub account linked to Epic Games; the ROS 2 bridge is public. ROS 2 Non-ROS AUV ROV USV Active
Oct 2026
holoocean-ros
BYU FRoSt Lab
Official ROS 2 bridge for HoloOcean, tested on Humble and Jazzy. ROS 2 AUV ROV USV Active
Oct 2026
OceanSim
University of Michigan Field Robotics Group
GPU-accelerated underwater perception simulation (camera, sonar, and DVL models) as an NVIDIA Isaac Sim 5.0 extension. ROS 2 support is on the ROS2 branch through the Isaac Sim ROS 2 bridge. ROS 2 ROV AUV Active
Oct 2026
UNav-Sim
Aarhus University (AiR Lab)
Underwater simulator built on Unreal Engine 5 and AirSim with ROS 1 and ROS 2 interfaces, aimed at visual navigation. ROS 2 ROS 1 ROV AUV Low activity
May 2025
MARUS 2
University of Zagreb (LABUST)
Marine robotics simulator in Unity 6 with a gRPC adapter to ROS 2 (marus2_ros_adapter). The original MARUS (Unity 2021.3, ROS 1 adapter) is in marus-core. ROS 2 USV AUV Active
Oct 2026
unity-arduboat-sim
Chris Dalke
Unity simulation of an ArduRover boat for software-in-the-loop testing. Non-ROS USV Dormant
Oct 2023

Lightweight and educational

Project What it does ROS Vehicles Activity
TurtleBoat
Bart Boogmans (TU Delft)
Lightweight vessel dynamics simulator for learning ship control. Default branch is ros2. ROS 2 ROS 1 USV Low activity
Jun 2024

Legacy

Keep these for reference and for reproducing published results.

Project What it does ROS Vehicles Activity
DAVE (ROS 1, legacy)
Field Robotics Lab (NPS)
Original DAVE underwater simulator on ROS 1 and Gazebo Classic, both now end of life. No commits since 2023; use POSIM for new work. ROS 1 AUV ROV Low activity
Dec 2023
UUV Simulator
uuvsimulator
Historic Gazebo Classic underwater simulator, archived in 2023. Many current tools derive from its plugins. ROS 1 AUV ROV Archived
Jun 2020
Plankton
Liquid AI
ROS 2 Foxy port of UUV Simulator for Gazebo Classic. Both are end of life, and there are no commits since 2021. ROS 2 AUV ROV Dormant
Nov 2021
ds_sim
WHOI Deep Submergence Lab
Gazebo plugins and utilities (DVL, sensors, environment) from the WHOI Deep Submergence Lab. A GitHub mirror is at Field-Robotics-Lab/ds_sim. ROS 1 AUV ROV Active
Sep 2026

Simulation practice

  1. Match the simulator to the question. Use a fast, simple simulator for mission logic and a high-fidelity one for perception. One simulator rarely does both well.
  2. Use the same interfaces as the vehicle. Publish the same topics, frames, and message types in simulation and on hardware, so that only the launch file changes.
  3. Calibrate against real data. Fit added mass, damping, and thruster curves from tank or field tests. Defaults from another vehicle can be wrong by a large factor.
  4. Add realistic sensor errors. DVL dropouts, acoustic outliers, GNSS loss at the surface, and camera turbidity cause most field failures. Clean simulated sensors hide them.
  5. Run simulation in CI. Headless Gazebo or Stonefish runs catch regressions before sea trials. SUAVE and POSIM publish Docker images you can reuse.
  6. Record your configuration. Keep world files, model parameters, and random seeds under version control.

Expect a sim-to-real gap

Controllers tuned in simulation almost always need retuning on hardware. Simulated sonar seldom models multipath and reverberation well, and wave models are simplified. Use simulation to remove software defects, not to prove field performance.

More lists