当前位置:   article > 正文

VLP16:使用pointcloud_to_laserscan将三维点云转化为二维LaserScan_pointcloud to laserscan

pointcloud to laserscan

一、安装pointcloud_to_laserscan包

 GitHub地址:GitHub - ros-perception/pointcloud_to_laserscan at lunar-develicon-default.png?t=M666https://github.com/ros-perception/pointcloud_to_laserscan/tree/lunar-devel

注意避坑:不能用git clone来下载,即便是选择了相应版本,最终下载下来的也是默认版本。只能下载ZIP压缩包然后解压到工作空间! 我的ros版本是noetic,下载的版本是lunar-devel。

二、创建launch文件 

在工作空间的目录下:xxx_ws/src/pointcloud_to_laserscan-lunar-devel/launch

新建my_node.launch,复制包里sample_node.launch里的内容,并修改

  1. <?xml version="1.0"?>
  2. <launch>
  3. <!--copy from sample_node.launch-->
  4. <!-- run pointcloud_to_laserscan node -->
  5. <node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
  6. <remap from="cloud_in" to="/velodyne_points"/>
  7. <rosparam>
  8. target_frame: velodyne # Leave disabled to output scan in pointcloud frame
  9. transform_tolerance: 0.01
  10. min_height: 0.0
  11. max_height: 1.0
  12. angle_min: -3.1415926 # -M_PI
  13. angle_max: 3.1415926 # M_PI
  14. angle_increment: 0.003 # 0.17degree
  15. scan_time: 0.1
  16. range_min: 0.2
  17. range_max: 100
  18. use_inf: true
  19. inf_epsilon: 1.0
  20. # Concurrency level, affects number of pointclouds queued for processing and number of threads used
  21. # 0 : Detect number of cores
  22. # 1 : Single threaded
  23. # 2->inf : Parallelism level
  24. concurrency_level: 1
  25. </rosparam>
  26. </node>
  27. </launch>

 修改内容:

1、删除开头部分的camera的内容

2、<remap from="cloud_in" to="/velodyne_points"/>

将原先的to="$(arg camera)/depth_registered/points_processed" 改为to="/velodyne_points"

3、 修改target_frame:

将原来的camera_link 改为velodyne(自己雷达话题的frame_id,可以使用命令:rostopic echo /velodyne_points | grep frame_id 查看)

4、 angle_min、angle_max、angle_increment的设置
github上下载的launch文件是针对深度相机的,所以角度范围是 [ − π / 2 , π / 2 ] ,也就是只有相机前方有点。由于多线激光雷达是360 ° 均可探测的,所以角度范围设置为[ − π , π ]

三、启动仿真

1、启动小车或雷达的仿真

roslaunch simulation.launch

2、启动第二步创建的launch文件

 roslaunch my_node.launch 

 rviz添加laserscan,topic选择/scan (这就是pointcloud_to_laserscan转出来的),图中白线就是scan的图像。

使用rqt_graph可以查看话题节点,可以发现pointcloud_to_laserscan订阅了/velodyne_points,发布了/scan

 

问题:如果rviz里的 laserscan的topic没有订阅/scan,pointcloud_to_laserscan无法订阅了/velodyne_points,而是订阅了/tf,不知道是什么原因,使用时记得订阅/scan就好。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/981177
推荐阅读
  

闽ICP备14008679号