中级教程: 传感器噪音


回顾

先前的教程已指导我们完成了创建传感器模型并改善模型的视觉外观的过程。本教程将通过增加噪声来改善传感器的数据输出。

传感器噪音

几乎每个传感器的输出端都有噪声,相机可能具有色差,声纳多径效应以及激光不正确的距离读数。我们必须将噪声添加到模拟生成的数据中,以便更紧密地匹配真实传感器生成的数据类型。

Gazebo有一个内置的噪声模型,可以将高斯噪声应用于各种传感器。尽管高斯噪声可能和现实有一定的差别,但有它总比没有好。

有关Gazebo传感器噪声模型的更多信息,请访问本教程

步骤1:可视化传感器数据

让我们从查看当前的Velodyne输出开始,然后添加噪声。

  1. 打开Gazebo,然后插入Velodyne传感器。

    1. gazebo
    2. 选择左上方附近的“插入”选项卡。
    3. 向下滚动并选择Velodyne HDL-32型号。
    4. 在渲染窗口中单击一个位置。
  2. 在激光束前面放一个箱子,以便获得有用的数据。

    1. 在窗口上方的工具栏中选择Box图标。
    2. 鼠标左键单击即可在鼠标当前的位置放置盒子。

  3. 我们可以通过Gazebo的主题可视化器仔细查看传感器数据。

    1. 在gazebo软件中按Ctrl-t,打开主题选择器。找到 /gazebo/default/velodyne/top/sensor/scan主题。

    2. 选择/gazebo/default/velodyne/top/sensor/scan主题,然后按确定即可打开。

    3. 注意输出的数据图像比较平滑整齐。

步骤2:为传感器增加噪音

可以使用<noise>标签访问Gazebo的噪声模型。有关更多信息,请参见 sdformat.org/spec

  1. 打开Velodyne模型。

    gedit ~/.gazebo/models/velodyne_hdl32/model.sdf
  2. <noise>元素添加为元素的子<ray>元素。首先,我们将施加比较强的噪声,以便可以看到添加噪声的效果。

    <sensor type="ray" name="sensor">
    
      <pose>0 0 -0.004645 1.5707 0 0</pose>
    
      <visualize>true</visualize>
    
      <ray>
    
        <noise>
    
          <!-- Use gaussian noise -->
    
          <type>gaussian</type>
    
          <mean>0.0</mean>
    
          <stddev>0.1</stddev>
    
        </noise>
  3. 再次将Velodyne传感器添加到Gazebo,并在横梁前插入一个盒子。

  4. 打开主题可视化器(Ctrl-t),可以看到添加噪声后输出的画面看起来非常杂乱。

  5. 现在让我们将噪声降低到合理的水平。

    <sensor type="ray" name="sensor">
    
      <pose>0 0 -0.004645 1.5707 0 0</pose>
    
      <visualize>true</visualize>
    
      <ray>
    
        <noise>
    
          <!-- Use gaussian noise -->
    
          <type>gaussian</type>
    
          <mean>0.0</mean>
    
          <stddev>0.02</stddev>
    
        </noise>

接下来

在下一节中,我们将修改Velodyne模型,以便可以轻松共享和重用它。

下一节