Sonar simulator using OpenGL
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Imaging sonar simulation

This repository contains the Rock build system for imaging sonar simulation as presented in the paper:

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

How to install

The following steps are performed using Ubuntu 16.04 64 bits and Ruby 2.3.1.

$ sudo apt-get install ruby ruby-dev
$ mkdir sonar_simulation
$ cd sonar_simulation
$ wget
$ sh


The imaging sonar simulation is split in four main packages, as follows:

  • simulation/uwmodels: contains the underwater scenario models;
  • simulation/normal_depth_map: samples each OSG frame and computes the sonar rendering parameters during rasterization pipeline on GPU: sonar field-of-view, 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 two kind of sonar devices: Mechanical scanning imaging sonar (MSIS) and Forward-looking sonar (FLS); controls the virtual sonar device in the underwater scene; handles sonar properties; and provides I/O ports to interact with other Rock components.

How to run

$ cd sonar_simulation/orogen/imaging_sonar_simulation/scripts

To simulate the FLS device operation:

$ ruby sonar_multibeam-run.rb

To simulate the MSIS device operation:

$ ruby sonar_scanning-run.rb


Please cite our paper if you find this code useful for your research:

    title = "A novel GPU-based sonar simulator for real-time applications",
    journal = "Computers & Graphics",
    volume = "68",
    number = "Supplement C",
    pages = "66 - 76",
    year = "2017",
    issn = "0097-8493",
    doi = "",
    url = "",
    author = "Rômulo Cerqueira and Tiago Trocoli and Gustavo Neves and Sylvain Joyeux and Jan Albiez and Luciano Oliveira"