Skip to content

Communication

A marine robot often has several links with very different bandwidth and latency. Design the software for the worst link the vehicle will use, and make sure the vehicle stays safe when every link fails.

Link Typical medium Data rate Latency Range Notes
Tether Copper or fiber Mb/s to Gb/s Milliseconds Tether length Normal ROS 2 networking works
Wi-Fi and RF radios Air Mb/s (Wi-Fi) to kb/s (long-range radio) Milliseconds Line of sight, hundreds of meters to kilometers Only at the surface; DDS discovery can flood slow radios
Cellular Air Mb/s Tens of milliseconds Near the coast Coverage varies; plan for gaps
Satellite Air From short messages (Iridium SBD, a few hundred bytes per message) to broadband Seconds (SBD) to tens of milliseconds Global Cost per byte matters for SBD
Acoustic modem Water Tens of bit/s to tens of kbit/s Seconds (sound travels about 1500 m/s) Hundreds of meters to kilometers Shared, half-duplex, lossy, and affected by the environment
Optical modem Water Up to Mb/s Milliseconds Meters to tens of meters, clear water only Needs pointing and clear water

Water absorbs radio waves within centimeters to meters, so sound is the only practical long-range link underwater.

Packages

Project What it does ROS Vehicles Activity
ros_acomms
WHOI Acoustic Communications Group
Transports ROS messages over acoustic links (WHOI Micro-Modem) and Iridium, with message packing, queue management, MAC, and a link simulator. A merge request on the WHOI GitLab adds ROS 2 (Humble and Jazzy) support; check the documentation for its release status. ROS 1 AUV ROV USV Unknown
Goby3
GobySoft
Autonomy middleware designed for marine robots on slow and intermittent links (interthread, interprocess, and intervehicle publish-subscribe), with MOOS interoperability. Non-ROS AUV USV Active
Sep 2026
DCCL
GobySoft
Dynamic Compact Control Language. Encodes messages into very small payloads for acoustic modems and satellite links. Non-ROS AUV USV Active
Sep 2026
rmw_zenoh
Open Robotics / ZettaScale
ROS 2 middleware implementation on Zenoh. An option for robot-to-shore links over Wi-Fi, cellular, or radio where DDS discovery is a problem. ROS 2 Any Active
Oct 2026
rosbridge_suite
RobotWebTools
JSON over WebSocket bridge for web dashboards and topside tools. ROS 2 ROS 1 Any Active
Oct 2026
evologics_driver
Ocean Systems Lab (Heriot-Watt)
Old ROS 1 driver for EvoLogics acoustic modems. No ROS 2 driver for EvoLogics modems was found. ROS 1 AUV ROV Dormant
May 2016
imc_ros_bridge
SMaRC (KTH)
Bridge between ROS and the LSTS IMC protocol, so ROS vehicles can be commanded from Neptus. ROS 1 AUV Dormant
May 2023

ros_acomms

ros_acomms from the WHOI Acoustic Communications Group carries ROS messages over acoustic links and Iridium. It provides:

  • compact encoding of ROS messages into packets, with configurable field codecs (configured per message type, or by introspection)
  • a priority queue manager that decides what to send in each slot
  • media access control (MAC) to share the channel between vehicles
  • modem drivers, with the WHOI Micro-Modem as the main target
  • a link simulator with a ray-tracing channel model, so that you can test without water

The released versions target ROS 1. A merge request on the WHOI GitLab adds ROS 2 (Humble and Jazzy) support; check the documentation for its release status before you plan around it.

Reference: E. Gallimore, T. Schneider, H. Schmidt, "ROS Message Transport over Underwater Acoustic Links with ros_acomms," IEEE/OES AUV Symposium 2022.

sequenceDiagram
  participant Top as Topside
  participant Veh as Vehicle (autonomous)
  Note over Veh: Runs its mission without the link
  Veh-->>Top: Status: position, depth, battery, mission state (tens of bytes)
  Top->>Veh: Command: new waypoint or abort
  Note over Top,Veh: Seconds of latency each way. Packets can be lost.
  Veh-->>Top: Acknowledgment
  Note over Veh: If no contact for T seconds: surface or go to a rally point
  1. Make the vehicle autonomous. The link is for monitoring and high-level redirection, not for control loops or teleoperation.
  2. Send only what matters. Status (position, depth, battery, mission state), waypoint updates, and abort commands. Not video, maps, or full-rate sensor data.
  3. Encode compactly. Use fixed-point fields with the resolution you need (for example DCCL), not raw ROS serialization.
  4. Prioritize. Safety commands first, then mission updates, then diagnostics.
  5. Expect loss. Use acknowledgments and retries for commands, and time-stamp commands so the vehicle can ignore stale ones.
  6. Program autonomous failsafes. Time-based and location-based surfacing, and an abort that does not depend on the link.
  7. Test in the real environment. Range and reliability change a lot with depth, temperature profile, sea state, multipath near the surface and seafloor, and noise from shipping and snapping shrimp.
Why acoustic links behave the way they do
  • Low bandwidth: the usable acoustic band is narrow (kilohertz to tens of kilohertz), and absorption grows with frequency. Longer range means lower frequency and lower rate.
  • High latency: sound travels at about 1500 m/s, so 3 km is 2 seconds one way, before any processing.
  • Multipath: reflections from the surface and seafloor arrive late and interfere, worst in shallow water.
  • Refraction: sound speed changes with temperature, salinity, and depth, which bends the paths and can create shadow zones.
  • Doppler: vehicle motion shifts frequencies and needs compensation.
  • Half duplex and shared: one modem talks at a time on a channel, so multi-vehicle systems need a MAC scheme (for example TDMA).

Robot-to-shore networking with ROS 2

  • Separate the vehicle and shore domains. Run the vehicle on its own ROS_DOMAIN_ID, and limit discovery with ROS_AUTOMATIC_DISCOVERY_RANGE so that robots on the same network do not see each other by accident.
  • Bridge only selected topics over slow or intermittent radio links. Options: rmw_zenoh (ROS 2 middleware on Zenoh, designed for wireless and intermittent links), rosbridge_suite or foxglove_bridge for web tools, or a small custom bridge.
  • Use QoS deliberately. Best effort for telemetry, reliable for commands, and transient local for mission state that a reconnecting operator station needs.
  • MAVLink is a compact alternative for telemetry on autopilot-based vehicles; QGroundControl and mavros speak it.

Simulation of acoustic networks

  • The ros_acomms link simulator models the channel for ROS testing.
  • ns-3 UAN simulates underwater acoustic networks for protocol research; it is not a vehicle simulator.