当前位置:   article > 正文

多线激光雷达使用pointcloud_to_laserscan包实现三维转二维_二维转三维雷达系统

二维转三维雷达系统

最终我们是要实现slam功能,而slam需要的是2D激光雷达,因此我们首先需要将3D线束转换成2D线束。可以通过pointcloud_to_laserscan包实现。

1,安装pointcloud_to_laserscan包

  1. cd ~/catkin_ws/src
  2. git clone https://github.com/ros-perception/pointcloud_to_laserscan.git
  3. cd ~/catkin_ws
  4. catkin_make

2,创建launch文件

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

这里需要注意的是这句代码:<remap from="cloud_in" to="/rslidar_points"/>。因为激光雷达节点发布的信息是/rslidar_points,因此需要将pointcloud_to_laserscan的订阅信息从默认的cloud_in改为/rslidar_points。
3,启动ros_rslidiar雷达驱动包和pointcloud_to_laserscan节点

雷达驱动发布三维点云数据/rsldiar_points, pointcloud_to_laserscan节点订阅后将其转换成laserscan话题/scan,两者的frame_id都是“rslidar”。

  1. #新开一个终端,启动3d雷达驱动
  2. roslaunch rslidar_pointcloud rs_lidar_16.launch
  3. #新开一个终端,启动pointcloud_to_laserscan节点
  4. roslaunch pointcloud_to_laserscan point_to_scan.launch

这时我们可以看到三维点云数据,如果想要显示二维点云,还需要在rviz中添加laserscan. 然后将topic改为/scan即可。如下图所示,白线即为二维点云图:

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

闽ICP备14008679号