This repository presents the imaging sonar simulator + partly data as presented in the following publications:
-
A rasterized ray-tracer pipeline for real-time, multi-device sonar simulation
R. Cerqueira, T. Trocoli, J. Albiez and L. Oliveira
Elsevier Graphical Models Journal. 2020. -
A multi-device sonar simulator for real-time underwater applications
R. Cerqueira
PhD thesis. Federal University of Bahia. 2019. -
A novel GPU-based sonar simulator for real-time applications
R. Cerqueira, T. Trocoli, G. Neves, S. Joyeux, J. Albiez and L. Oliveira
Elsevier Computers & Graphics Journal
Special Section on SIBGRAPI 2017 -
Custom Shader and 3D Rendering for computationally efficient Sonar Simulation
R. Cerqueira, T. Trocoli, G. Neves, L. Oliveira, S. Joyeux and J. Albiez
SIBGRAPI 2016
Types of simulated sonar devices:
- Mechanical scanning imaging sonar (MSIS)
- Forward-looking sonar (FLS)
The imaging sonar simulation is split into five main packages, as follows:
- simulation/normal_depth_map: samples each OSG frame and computes the sonar rendering parameters during rasterization pipeline on GPU: echo intensity and pulse distance;
- simulation/gpu_sonar_simulation: decodes the sonar rendering parameters into simulated sonar data;
- simulation/orogen/imaging_sonar_simulation: simulates the operation of MSIS and FLS sensors; controls the virtual sonar device in the underwater scene; handles sonar properties; and provides I/O ports to interact with other Rock components.
- simulation/uwmodels: contains the underwater scenarios and 3D models;
- simulation/examples: contains scripts to run the imaging sonar simulations.
The following steps are tested correctly on
OS | OpenCV | Ruby | Test | Last test |
---|---|---|---|---|
Ubuntu 18.04 LTS |
OpenCV 3.2.x |
Ruby 2.5.1 |
OK |
25 Feb 2022 |
Ubuntu 16.04 LTS |
OpenCV 2.4.x |
Ruby 2.3.1 |
OK |
18 Feb 2020 |
$ sudo apt-get install ruby ruby-dev
$ mkdir sonar_simulation
$ cd sonar_simulation
$ wget http://raw.githubusercontent.com/romulogcerqueira/sonar_simulation-buildconf/master/bootstrap.sh
$ sh bootstrap.sh
Optionally, you may choose to build this repository using Docker, for convenience. Follow the instructions here.
Checkout and build the packages:
$ aup
$ amake
Go to examples directory:
$ acd simulation/examples/
To simulate the FLS device operation:
$ ruby sonar_multibeam-run.rb
To simulate the MSIS device operation:
$ ruby sonar_scanning-run.rb
Please consider citing our publications if you find this code useful for your research:
@article{CERQUEIRA2020,
title = {A rasterized ray-tracer pipeline for real-time, multi-device sonar simulation},
author = {Cerqueira, R{\^o}mulo and Trocoli, Tiago and Albiez, Jan and Oliveira, Luciano},
journal = {Graphical Models},
volume = {111},
year = {2020},
issn = {1524-0703},
doi = {http://doi.org/10.1016/j.gmod.2020.101086},
url = {http://www.sciencedirect.com/science/article/pii/S1524070320300278}
}
@phdthesis{CERQUEIRA2019,
title = {A multi-device sonar simulator for real-time underwater applications},
author = {Cerqueira, R{\^o}mulo},
year = {2019},
school = {Federal University of Bahia}
}
@article{CERQUEIRA2017,
title = {A novel GPU-based sonar simulator for real-time applications},
author = {Cerqueira, R{\^o}mulo and Trocoli, Tiago and Neves, Gustavo and Joyeux, Sylvain and Albiez, Jan and Oliveira, Luciano},
journal = {Computers & Graphics},
volume = {68},
number = {Supplement C},
pages = {66--76},
year = {2017},
issn = {0097-8493},
doi = {http://dx.doi.org/10.1016/j.cag.2017.08.008},
url = {http://www.sciencedirect.com/science/article/pii/S0097849317301371}
}
@inproceedings{CERQUEIRA2016,
title = {Custom Shader and 3D Rendering for computationally efficient Sonar Simulation},
author = {Cerqueira, R{\^o}mulo and Trocoli, Tiago and Neves, Gustavo and Oliveira, Luciano and Joyeux, Sylvain and Albiez, Jan},
booktitle = {XIX Conference on Graphics, Patterns and Images (SIBGRAPI)},
booksubtitle = {Workshop on Working In Progress (WIP)},
year = {2016},
pages = {1--6}
}