Multibeam sensor

This new sensor available for UWSim vehicles measures multiple distances to nearest obstacles along the -Z axis (osgcamera like) of their local frame varying X rotation from initial angle to final angle in configured angle increments. This sensor is useful to create many virtual range sensor at once in a efficient manner as it uses z-buffer to do its inner calculations.

As underwater floating particles were causing huge noise in this kind of sensors, multibeam sensors will not be disturbed by them unless "underwaterParticles" attribute is set to true on XML multibeam configuration. This is an example of how to include it into your scene XML file:

  <multibeamSensor underwaterParticles="false">
    <name>multibeam</name>
    <relativeTo>part0</relativeTo>
    <position>
      <x>-0.2</x>
      <y> 0.1 </y>
      <z> 0 </z>
    </position>
    <orientation>
      <r>3.14</r>
      <p>0</p>
      <y>3.14 </y>
    </orientation>
    <initAngle>-60</initAngle>
    <finalAngle>60</finalAngle>
    <angleIncr>0.1</angleIncr>
    <range>10</range>
  </multibeamSensor>

The example above adds a multibeam sensor at the given position and orientation with respect to part0, with a maximum range of 10m measuring from -60º to 60º in increments of 0.1º. “underwaterParticles” attribute turns on or off floating particles noise and is set to false by default. The measured distances can be published in ROS by adding the following lines inside the rosInterfaces block of your XML:

  <multibeamSensorToLaserScan>
    <name>multibeam</name>
    <topic>g500/multibeam</topic>
  </multibeamSensorToLaserScan>