-
Couldn't load subscription status.
- Fork 80
Gazebo GpuRaySensor
The Gazebo GpuRaySensor provides an array of mXn rays prepared using the gazebo::rendering::GpuLaser module. These rays are of type GpuLaserData and contain the following fields:
-
beam: The vertical beam plane index, [0, vRes) (the beam row) -
intensity: The intensity value we want -
range: The distance value we want -
reading: The horizontal index, [0,hRes) (the beam column)
We need this record to additionally include:
-
incident_anglebased on reflection. If we model secondary reflection, then we need vertical and horizontal angles. Otherwise we can get by with one normal angle.
Because GpuLaser is in a layer below GpuRaySensor and its internals are not accessible, we need to build Gazebo from source so we can add the incident_angle field. We additionally need to make a new BeamSensor type (beam as opposed to ray or gpu_ray) that would produce one horizontal sweep of Sonar Beam data as an array. Initially, output will be n records of (intensity, range) tuples. Later, these fields will be n records of arrays of (intensity, range) tuples, where a given array of (intensity, range) tuples will consist of multiple range values.
Alternatives considered were:
- dsros_dvl: No, this uses the Physics instead of graphics engine.
- Depth camera: We want rays, not rasterization. However, we notice that incident angle support is being introduced to Gazebo using the Depth camera interface, ref. https://bitbucket.org/osrf/gazebo/pull-requests/3193/added-normals-in-depth-camera-sensor.