Gazebo仿真--无人机添加传感器并且在rviz中显示数据

  近来为了实现更加接近真实的仿真,准备给无人机添加传感器。这里以激光雷达rplidar为例,其他传感器如深度相机D435i也是类似的。

  首先打开无人机模型文件(我这里是用了amovlab的p450_uav1.sdf),在其中添加雷达模型以及与无人机连接固定的相关信息:

    <include>
      <uri>model://rplidar</uri>
      <pose>0 0 0.25 0 0 0</pose>
    </include>

    <joint name="rplidar_joint" type="fixed">
      <child>rplidar::link</child>
      <parent>base_link</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
      </axis>
    </joint>

  这里需要注意joint的parent参数设置为base_link,即传感器依附于无人机本体。

  其次在launch文件中加载该无人机模型及指定名字:

<arg name="sdf" default="$(find prometheus_gazebo)gazebo_models/uav_models/multi_p450/p450_uav1/p450_uav1.sdf"/>
<arg name="model" default="p450_3Dlidar"/>

  然后启动launch文件,可以看到激光雷达已经加载完毕:

  此时rviz中点击左下方的add,选择"by topic",可以看到laserScan话题,选中添加到订阅话题列表。但是会出现frame_id xxx not exist的错误,导致激光点云无法在rviz中显示。解决办法为:打开rplidar激光雷达的model.sdf文件,也就是模型定义文件,找到frameName这一行,修改frameName为world,保存。再次运行launch,选择laserScan话题的style为points,可以看到点云(图中红色部分):

   后续便可以订阅该话题用于避障。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值