Gazebo仿真进阶教程之传感器高斯噪声(一)

前言

最近在写《动手学ROS2》的课程的第九章机器人仿真,需要给机器人添加传感器,为了更好的仿真,我们需要给传感器添加一些噪声,今天这篇文章就是关于Gazebo的传感器噪声的,希望对大家有所帮助。

传感器噪声

每一个或几乎每个传感器的输出中都有噪声。相机可能有色差、声纳有多路径效应和激光会有不正确的距离读数。我们必须在仿真的传感器中添加噪声,以使得仿真的传感器和真实传感器产生的数据更加接近。

Gazebo 有一个内置的噪声模型,可以应用高斯噪声到各种传感器。虽然高斯噪声可能不是非常现实,它总比没有好,并作为一个很好的第一阶近似噪声。高斯噪声也比较容易应用于数据流。

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

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

打开 Gazebo,插入 Velodyne 传感器。

  1. gazebo
  2. 选择左上角附近的插入选项卡。
  3. 向下滚动并选择 Velodyne HDL-32 型号。
  4. 单击渲染窗口中的某个位置。

在激光束前面添加一个 Box,这样我们就可以得到有用的数据。

  1. 选择渲染窗口上方工具栏中的 Box 图标。
  2. 在激光束前左键单击以放置盒子。

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

按 Ctrl-t,打开主题选择器。找话题。/gazebo/default/velodyne/top/sensor/scan

在这里插入图片描述

选择主题,然后按确定以打开激光可视化器。/gazebo/default/velodyne/top/sensor/scan
在这里插入图片描述

请注意输出的流畅线条。

第 2 步:向传感器添加噪声

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

打开 Velodyne 模型。

gedit ~/.gazebo/models/velodyne_hdl32/model.sdf

添加一个元素作为元素的子元素。我们将首先应用大量的噪点,这样效果就很容易看到了。

<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>

再次将 Velodyne 传感器添加到 Gazebo,并在横梁前插入一个盒子。
打开主题可视化工具 (Ctrl-t),然后选择 Velodyne 激光扫描主题。输出应该看起来很嘈杂。

现在让我们将噪音降低到合理的程度。

<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>

总结

以上就是关于gazebo噪声的介绍,下一节小鱼将常见传感器的噪声写一下。敬请期待~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值