当前位置:   article > 正文

GAZEBO仿真16线VLP激光雷达,并通过pointcloud_to_laserscan 将三维点云转化成二维LaserScan_gazebo vlp16

gazebo vlp16

一、gazebo仿真VLP16激光雷达

1. 下载velodyne文件

点击此处跳转Bitbucket,参考@大神yjn

可见下载后的文件夹:velodyne_simulator。

 将velodyne_simulator文件夹拷贝到工作空间下的src中。

 

其中,urdf文件中的VLP-16.URDF.xacro就是16线雷达的模型文件。

2.修改 VLP-16.URDF.xacro

实际调用中,需要对文件进行修改:

 1、把*origin删掉,不然与<xacro:insert_block name=“origin” /> 一起,会造成报错:“Not enough blocks”。
2、此处joint可以删掉,在总的xacro文件中声明joint即可,不用重复声明。
3、把parent:=base_link改为自己的机器人link名字,否则会报错。

3.在总的xacro文件中,调用此VLP16的xacro文件。

  1. <robot name="ares_laser_gazebo" xmlns:xacro="http://wiki.ros.org/xacro">
  2. <!-- Included URDF Files -->
  3. <xacro:include filename="ares_base.xacro" /> # 声明机器人的xacro文件位置
  4. <xacro:ares_base />
  5. <!-- lidar -->
  6. <xacro:include filename="sensors/VLP-16.urdf.xacro" /> # 声明16线雷达的xacro文件位置
  7. <joint name="lidar_joint" type="fixed"> #设置joint,注意z的值
  8. <origin xyz="0.040036 0 0.189" rpy="0 0 0" />
  9. <parent link="base_link"/>
  10. <child link="velodyne_base_link"/>
  11. </joint>
  12. <xacro:VLP-16 /> # 调用16线雷达的宏文件
  13. <xacro:include filename="sensors/camera.xacro" />
  14. <xacro:include filename="sensors/kinect.xacro" />
  15. <xacro:property name="camera_offset_x" value="0" />
  16. <xacro:property name="camera_offset_y" value="0" />
  17. <xacro:property name="camera_offset_z" value="0.2" />
  18. <joint name="camera_joint" type="fixed">
  19. <origin xyz="${camera_offset_x} ${camera_offset_y} ${camera_offset_z}" rpy="0 0 0" />
  20. <parent link="base_link"/>
  21. <child link="camera_link"/>
  22. </joint>
  23. <xacro:usb_camera prefix="camera"/>
  24. <xacro:property name="kinect_offset_x" value="0" />
  25. <xacro:property name="kinect_offset_y" value="0" />
  26. <xacro:property name="kinect_offset_z" value="0.12" />
  27. <joint name="kinect_joint" type="fixed">
  28. <origin xyz="${kinect_offset_x} ${kinect_offset_y} ${kinect_offset_z}" rpy="0 0 0" />
  29. <parent link="base_link"/>
  30. <child link="kinect_link"/>
  31. </joint>
  32. <xacro:kinect_camera prefix="kinect"/>
  33. </robot>

注意,一定在运行前重新编译,主要是为了生成激光雷达的点云产生库文件,不然后面仿真的时候会没有点云相关话题。编译一次之后就会在我们工作空间的的devel/lib文件夹下生成两个动态链接库如下:libgazebo_ros_velodyne_gpu_laser.so,libgazebo_ros_velodyne_laser.so。

 在仿真中会调用这两个库生成点云信息。

二、pointcloud_to_laserscan 将三维点云转化成二维LaserScan

参考pointcloud_to_laserscan

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号