赞
踩
注意避坑:不能用git clone来下载,即便是选择了相应版本,最终下载下来的也是默认版本。只能下载ZIP压缩包然后解压到工作空间! 我的ros版本是noetic,下载的版本是lunar-devel。
在工作空间的目录下:xxx_ws/src/pointcloud_to_laserscan-lunar-devel/launch
新建my_node.launch,复制包里sample_node.launch里的内容,并修改
- <?xml version="1.0"?>
-
- <launch>
- <!--copy from sample_node.launch-->
- <!-- run pointcloud_to_laserscan node -->
- <node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
-
- <remap from="cloud_in" to="/velodyne_points"/>
- <rosparam>
- target_frame: velodyne # Leave disabled to output scan in pointcloud frame
- transform_tolerance: 0.01
- min_height: 0.0
- max_height: 1.0
-
- angle_min: -3.1415926 # -M_PI
- angle_max: 3.1415926 # M_PI
- angle_increment: 0.003 # 0.17degree
- scan_time: 0.1
- range_min: 0.2
- range_max: 100
- use_inf: true
- inf_epsilon: 1.0
-
- # Concurrency level, affects number of pointclouds queued for processing and number of threads used
- # 0 : Detect number of cores
- # 1 : Single threaded
- # 2->inf : Parallelism level
- concurrency_level: 1
- </rosparam>
-
- </node>
-
- </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就好。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。