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

2023-05-16

  近来为了实现更加接近真实的仿真,准备给无人机添加传感器。这里以激光雷达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,可以看到点云(图中红色部分):

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐