Inverse Sensor Model for Forward-Looking Sonar (FLS). Converts raw sonar polar images into probabilistic point clouds and voxel-based occupancy maps for AUV perception.
sudo apt-get install ros-jazzy-image-transport ros-jazzy-cv-bridge ros-jazzy-tf2-ros libboost-all-dev ros-jazzy-tf-transformations
pip install scipyMain processing node. Subscribes to raw sonar images and outputs probabilistic point clouds.
Subscribes
| Type | Description |
|---|---|
Image |
Raw polar sonar image |
Ping |
Sonar metadata (bearings, range) — real hardware only |
Marker |
Voxel FOV geometry from fls_voxel_node |
Publishes
| Type | Description |
|---|---|
PointCloud2 |
Voxel-based probabilistic cloud (intensity = occupancy probability) |
PointCloud2 |
Peak intensity per azimuth beam |
PointCloud2 |
Unfiltered sonar image as points |
Image |
Preprocessed sonar image |
Publishes the sonar FOV geometry as a voxel marker grid. Runs once on startup with a latching QoS so downstream nodes receive it on connect.
Publishes
| Type | Description |
|---|---|
Marker |
3D voxel grid covering the sonar cone |
Starts fls_voxel_node and fls_pcl_node under the alpha_rise namespace. Primary launch file for online sonar processing (live hardware or bag replay).
ros2 launch fls_ism fls_ism.launch.pyShared parameters for fls_pcl_node and fls_voxel_node.
| Parameter | Default | Description |
|---|---|---|
sim |
false |
Simulation mode — skips image preprocessing, derives bearings from image width |
vertical_fov_deg |
12.0 |
Vertical beam FOV (degrees) |
horizontal_fov_deg |
70.0 |
Horizontal FOV (degrees) |
range_max |
40.0 |
Max sensor range (m) |
resolution |
1.0 |
Voxel side length (m) |
threshold_intensity |
30 |
Minimum pixel intensity (0–255) |
threshold_min_range |
5.0 |
Minimum range filter (m) |
max_depth / min_depth |
-1.0 / -15.0 |
World-frame depth bounds (ENU, m) |
lower_bound_intensity |
56 |
Intensity mapped to min_probability |
upper_bound_intensity |
100 |
Intensity mapped to max_probability |
min_probability |
0.2 |
Minimum occupancy probability output |
max_probability |
0.9 |
Maximum occupancy probability output |
frequency |
1.2e6 |
Sonar frequency (Hz) |
sound_speed |
1500 |
Speed of sound (m/s) |
aperture_size |
0.0067 |
Aperture size for sinc beam directivity (m) |
save_as_pcd |
false |
Accumulate and save cloud to PCD on shutdown |