<aside> 📘
POSIM — Platform for Ocean Simulation · documentation checked 2026-10-01
Target: ROS 2 Lyrical / Gazebo Jetty. Current source. Compatibility names such as dave_* are intentional. Start with POSIM Installation and POSIM Quickstart & Backend Support.
Source documentation and inherited illustrations do not certify every runtime configuration. Published Docker candidates, development main, and experimental WGPU are distinct states.
</aside>
Before the examples, source ROS and the matching workspace using POSIM Native Installation or POSIM Docker Guide. Commands containing ~/posim_ws below refer to a native source workspace; in a prebuilt container use its documented $POSIM_WS/install/setup.bash instead. Existing illustrations are retained from the DAVE documentation and are not new POSIM runtime captures.
A Doppler Velocity Log (DVL) sensor measures the velocity of an object relative to the seabed or other surface using the Doppler effect. It emits acoustic waves and analyzes the frequency shift of the echoes returned from the surface to calculate the object's speed and direction. Commonly used in underwater navigation, DVL sensors are crucial for determining the motion of submarines, remotely operated vehicles (ROVs), and autonomous underwater vehicles (AUVs).
Gazebo supplies the DVL system. POSIM DVLBridge converts its payload to dave_interfaces/msg/DVL, preserves the Gazebo frame ID, and guards shutdown after ROS context invalidation.
<aside> ℹ️
List of available DVL sensors:
Build and source the workspace:
source /opt/ros/lyrical/setup.bash
source ~/posim_ws/install/setup.bash
Launching the DVL sensor:
ros2 launch dave_demos dave_sensor.launch.py namespace:=nortek_dvl500_300 world_name:=dvl_world paused:=false z:=-30 gui:=false headless:=true
<aside> ⚠️
Important launch arguments:
| Argument Name | Description | Default Value |
|---|---|---|
| namespace | Name of the sensor (select from the available-sensor list above) | “” |
| world_name | Gazebo world file to launch (use dvl_world to test the DVL functionality) |
empty.sdf |
| paused | Start the simulation paused | true |
| debug | Enables verbose mode for Gazebo simulation | false |
| verbosity_level | Gazebo verbosity level used when debug:=true |
1 |
| x | Initial x position [m] | 0.0 |
| y | Initial y position [m] | 0.0 |
| z | Initial z position [m] | 0.0 |
| roll | Initial roll angle [rad] | 0.0 |
| pitch | Initial pitch angle [rad] | 0.0 |
| yaw | Initial yaw angle [rad] | 0.0 |
| </aside> |
Open another terminal and check for available gazebo topics:
gz topic -l
It should produce an output similar to:

Open another terminal, source the workspace and check for available ROS 2 topics:
source /opt/ros/lyrical/setup.bash
source ~/posim_ws/install/setup.bash
ros2 topic list
It should produce an output similar to:

To echo the dvl topic:
ros2 topic echo /dvl/velocity
The output of the above command should look like:

You can also visualize the acoustic beams of the DVL in the simulator as shown in the following picture:
