【ROS-ROS与MATLAB与Prescan】实现ubuntu16.04中的pointcloud_to_laserscan包实现三维转二维-解决ROS1和ROS2中不同版本的问题-最全
【ROS-ROS与MATLAB与Prescan】pointcloud_to_laserscan包实现三维转二维 1、前言2、创建工程3、根据ROS版本下载pointcloud_to_laserscan包4、编译工程5、创建launch文件6、使用启动节点7、注意事项1、前言该功能包主要是实现了三维的点云数据话题类型sensor_msgs/PointCloud2转换成二维的sensor_msgs/L
【ROS-ROS与MATLAB与Prescan】pointcloud_to_laserscan包实现三维转二维
1、前言
该功能包主要是实现了三维的点云数据话题类型sensor_msgs/PointCloud2转换成二维的sensor_msgs/LaserScan
安装环境:ubuntu16.04虚拟机、ROS
本来是想自己写的,但是总是不能实现这个功能,最后妥协了一下,查找资料发现是已经有了这个功能包,本着ROS的核心思想,避免重复造车的情况,就直接拿来用了,其中也遇到了一些问题,特此记录!待知识储备足够,自己尝试写一个!
2、创建工程
这里新建一个工程,当然也可以放在自己的已有的功能
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
3、根据ROS版本下载pointcloud_to_laserscan包
到这里,就会有小伙伴要问了,我怎么知道我的ROS是什么版本,这里我也没有好办法,但是看了好多教程,一般是kinetic及之前都是按照ROS1,之后都是ROS2安装,如果有错还望指出!
还有一种方法是,如果按照上述方法报错:
This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. Try the 'catkin_make_isolated' command instead.
那么说明版本安装的不匹配,我就是遇到了这种情况,我的kinetic版本要求使用ROS1,但是目前好多教程都是ROS2,导致浪费了好长时间。
如果是ROS1,我的kinetc就是这个
git clone https://github.com/BluewhaleRobot/pointcloud_to_laserscan.git
如果是ROS2
git clone https://github.com/ros-perception/pointcloud_to_laserscan.git
4、编译工程
cd ~/catkin_ws
catkin_make
一般没有问题
5、创建launch文件
cd ~/catkin_ws/src/pointcloud_to_laserscan/launch/
touch my_demo;launch
launch文件修改:
<?xml version="1.0"?>
<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="/rfans_driver/rfans_points"/>
<rosparam>
transform_tolerance: 0.01
min_height: 0.0
max_height: 1.0
angle_min: -3.14159 # -M_PI/2
angle_max: 3.14159 # M_PI/2
angle_increment: 0.0087 # M_PI/360.0
scan_time: 10
range_min: 0.05
range_max: 30.0
use_inf: true
inf_epsilon: 1.0
concurrency_level: 1
</rosparam>
</node>
</launch>
这里需要注意的是这句代码:<remap from="cloud_in" to="/rslidar_points"/>
因为咱们的激光雷达节点发布的话题名字是/rslidar_points
,因此需要将pointcloud_to_laserscan的订阅信息从默认的cloud_in
改为/rslidar_points
。当然也可以改成任何的你认为合适的名字。
然后重新编译一下
6、使用启动节点
遇事记得source一下
source catkin_ws/devel/setup.bash
然后启动创建的launch文件
roslaunch pointcloud_to_laserscan my_demo.launch
7、注意事项
这里如果你没有对应名字的sensor_msgs/PointCloud2消息格式被发布,你可以在rqt_grapher里面看不到运行的节点有输入点云数据,这里不需要担心,确保你的消息名字对应上,即可。
更多推荐
所有评论(0)