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.
Links compared¶
| 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.
Designing for acoustic links¶
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
- Make the vehicle autonomous. The link is for monitoring and high-level redirection, not for control loops or teleoperation.
- Send only what matters. Status (position, depth, battery, mission state), waypoint updates, and abort commands. Not video, maps, or full-rate sensor data.
- Encode compactly. Use fixed-point fields with the resolution you need (for example DCCL), not raw ROS serialization.
- Prioritize. Safety commands first, then mission updates, then diagnostics.
- Expect loss. Use acknowledgments and retries for commands, and time-stamp commands so the vehicle can ignore stale ones.
- Program autonomous failsafes. Time-based and location-based surfacing, and an abort that does not depend on the link.
- 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 withROS_AUTOMATIC_DISCOVERY_RANGEso 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.