Skip to content

The open map of ROS maritime robotics

Software, simulators, drivers, conventions, and field know-how for surface and underwater robots, curated by the ROS Maritime Community Working Group.

Get started Browse the package catalog Join the working group

109Projects tracked
76Support ROS 2
24Simulators
79Active in last 12 months

Where do you want to start?

  • New to marine robotics


    Learn the vehicle types and core ideas, then drive a simulated boat or ROV on your own laptop. No hardware needed.

    Getting started

  • Software developer


    Find maintained ROS 2 packages, check the frame conventions, and copy proven integration patterns.

    Software overview

  • Building a vehicle


    Compare DVLs, INS units, sonars, and thrusters, and see which ones have maintained ROS 2 drivers.

    Sensors and components

  • Going to sea


    Checklists, power budgets, failure modes, and lessons learned from field deployments.

    Field operations

How the pieces fit

A typical ROS 2 marine vehicle has the same layers whatever its hull shape. Each box links to the page that covers that layer.

flowchart LR
  subgraph S["Sensors and drivers"]
    direction TB
    NAV["DVL · INS/IMU · depth · GNSS"]
    PER["Sonar · cameras · lidar · radar"]
  end
  subgraph E["State estimation"]
    EKF["robot_localization / fuse"]
  end
  subgraph A["Autonomy"]
    direction TB
    MIS["Mission and behaviors"]
    GUI["Guidance (LOS, Nav2)"]
  end
  subgraph C["Control"]
    direction TB
    CTL["Velocity and pose control"]
    ALLOC["Thrust allocation"]
  end
  subgraph V["Vehicle"]
    THR["Thrusters · rudders · autopilot"]
  end
  NAV --> EKF --> GUI
  PER --> MIS
  MIS --> GUI --> CTL --> ALLOC --> THR
  COMMS["Acoustic modem · RF · satellite"] <-.-> MIS
  SIM["Simulation (Gazebo, Stonefish, HoloOcean)"] -.replaces.-> S
  SIM -.replaces.-> V
  click NAV "drivers/" "Drivers and interfaces"
  click PER "perception/" "Perception and mapping"
  click EKF "navigation/" "Localization and navigation"
  click MIS "autonomy_stacks/" "Autonomy frameworks"
  click GUI "control/" "Control and allocation"
  click CTL "control/" "Control and allocation"
  click ALLOC "control/" "Control and allocation"
  click THR "hardware/" "Sensors and components"
  click COMMS "communication/" "Communication"
  click SIM "simulation/" "Simulation"

Current platform baseline (October 2026)

Recommended for new projects

Use ROS 2 Jazzy with Gazebo Harmonic on Ubuntu 24.04. Most maintained maritime packages target this pair, for example VRX, Orca5, auv_controllers, ardusub_driver, and the MVP jazzy branches. Use ROS 2 Lyrical with Gazebo Jetty on Ubuntu 26.04 if a dependency needs it (for example POSIM, the ROS 2 version of DAVE). Plan to leave Humble before its end of life in May 2027.

Release Type Ubuntu Gazebo pairing Supported until
ROS 2 Lyrical Luth LTS, May 2026 26.04 (24.04 also) Jetty May 2031
ROS 2 Kilted Kaiju Non-LTS, May 2025 24.04 Ionic Late 2026
ROS 2 Jazzy Jalisco LTS, May 2024 24.04 Harmonic May 2029
ROS 2 Humble Hawksbill LTS, May 2022 22.04 Fortress May 2027
ROS 1 Noetic Last ROS 1 release 20.04 Gazebo Classic 11 Ended May 2025

Gazebo Classic reached end of life in January 2025. Sources: ROS 2 releases, Gazebo releases, Gazebo and ROS pairings.

What is on this site

  • Package catalog: search and filter more than 100 projects by purpose, ROS version, vehicle, and activity.
  • Frames and conventions: ENU and NED, FLU and FRD, heading versus yaw, depth and pressure.
  • Simulation: choose a simulator by vehicle, sensors, and engine.
  • Drivers and interfaces: which DVL, INS, and sonar vendors have maintained ROS 2 drivers.
  • Communication: acoustic modems, satellite, and robot-to-shore middleware.
  • Datasets: sonar, underwater imagery, USV perception, and navigation datasets.
  • Events: RobotX, RoboSub, MATE, SAUVC, OCEANS, and community meetings.
  • Glossary: plain-language definitions. Hover over an acronym on any page to see its meaning.

Help keep this accurate

This is a community resource. Package activity refreshes every week from the repositories themselves, but descriptions and recommendations need people who use the tools. If you see something wrong or missing, use the button at the top of any page, or read Contributing.