Skip to content

Repository files navigation

waterlinked_sonar_driver

CI ROS 2 Release License

ROS 2 lifecycle driver for the Water Linked Sonar 3D-15, built on waterlinkedsonar. Supports ROS 2 Humble and Jazzy.

Setup

From the root of a colcon workspace:

git clone https://github.com/BumblebeeAS/waterlinked_sonar_driver.git src/waterlinked_sonar_driver
vcs import src < src/waterlinked_sonar_driver/dependencies.repos
rosdep install --from-paths src --ignore-src -y
colcon build --packages-up-to waterlinked_sonar_driver

Run

ros2 launch waterlinked_sonar_driver sonar.launch.py

The launch file configures and activates the lifecycle node. It accepts namespace and params_file arguments; the default parameter file is config/sonar.yaml.

On activation the node enables the sonar's acoustics (when acoustics_enabled is set) and starts receiving. Deactivation stops the receiver and disables the acoustics.

The node is also available as a component, waterlinked::sonar::ros::WaterlinkedSonarDriver.

Topics

Topic Type Content
~/point_cloud sensor_msgs/PointCloud2 XYZ float32; valid points only, or full height x width with NaN when organized_cloud is set
~/range_image sensor_msgs/Image (32FC1) distance in meters per pixel; 0.0 = no data
~/intensity_image sensor_msgs/Image (8UC1) logarithmic signal strength
~/camera_info sensor_msgs/CameraInfo pinhole-equivalent intrinsics derived from the FOV; published when publish_camera_info is set
~/imu sensor_msgs/Imu ~100 Hz raw samples; published when imu_enabled is set
/diagnostics diagnostic_msgs/DiagnosticArray receiver counters and sonar temperature/status

Point clouds and images are published only while they have subscribers.

Services

Service Type Action
~/enable_acoustics std_srvs/SetBool turn acoustic pinging on or off
~/enable_high_frequency std_srvs/SetBool true = high-frequency, false = low-frequency
~/set_range waterlinked_sonar_driver/SetRange set the imaging range, float64 min, max in meters

Parameters

Parameters are read-only and applied when the node is configured; change them by restarting the node. The full list, with descriptions and validation, is in src/waterlinked_sonar_driver_parameters.yaml.

Tests

colcon test runs the node against a fake sonar (test/fake_sonar.py) and checks the lifecycle transitions and published messages.

Attribution

The test recording (test/data/ship_short.sonar) is taken from Water Linked's wlsonar Python client (MIT, Copyright Water Linked).

License

MIT. See LICENSE.

About

ROS 2 driver for the Water Linked Sonar 3D-15

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages