Skip to content

Perception algorithms for underwater sonars and cameras

License

Notifications You must be signed in to change notification settings

halajun/smarc_perception

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 

Repository files navigation

smarc_perception

Perception algorithms for underwater sonars and cameras

Installation

This package is strongly coupled with the other packages in smarc-project. For installation of SMaRC software packages, see smarc-project/rosinstall.

Each folder in this project is a stand-alone ROS package, with the package name being the same as the folder name.

Existing ROS packages in SMaRC perception

This package implements sidescan sonar object detection, more specifically bouy and rope detection, for SMaRC simulations and vehicles. The detection results are published as Detection2DArray messages at the topic {robot_name}/payload/sidescan/detection_hypothesis in the frame {robot-name}/base_link.

Currently, the algorithms for the simulated and real-world detection are completely disjoint. This is because of the simulated sidescan sonar signals looking very different than the real-world signals, as described in this stonefish issue. As mentioned in the issue, part of the problem is most likely the rolling of the vehicle model of SAM.

Simulated SSS detection

Due to the abovementioned issues with the simulated sidescan, the SSS detection for the simulation ignores the simulated sidescan topics entirely, but instead rely on the marked_pos_publisher from the smarc_utils repo to publish the groundtruth position of marked positions (currently the buoy positions for the algae farm scenario).

To publish simulated detections, the ROS node sim_sss_detection_publisher subscribes to the groundtruth poses of the marked positions, compute the range and angle between the simulated vehicle and all marked positions, and then publish the positions of the markers that should be visible by the vehicle as detection results.

Running simulated SSS detection

The launch file for the simulated detection is located at sim_sss_buoy_detection.launch. To launch the simulated detection, run the following:

roslaunch sss_object_detection sim_sss_buoy_detection.launch

Real SSS detection

The real SSS detection subscribes to the Sidescan message published at the topic /{robot_name}/payload/sidescan and uses a 1D sliding window change point detection method to detect buoys and ropes. The computation of the detection message based on the vehicle pose is implemented in sss_detector.py, which uses the CPDetector in cpd_detector for the actual 1D change detection.

Running real SSS detection

The launch file for the simulated detection is located at sss_detection.launch. To launch the real detection, run the following:

roslaunch sss_object_detection sss_detection.launch

About

Perception algorithms for underwater sonars and cameras

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 78.4%
  • CMake 21.6%