赞
踩
如果用过古月的教程大家就会知道,古月教程中的机器人采用的是单线激光雷达,但有的时候仿真需要多线激光雷达,这里就教一下怎么搭载16线激光雷达建图导航。
首先需要下面几个包:
Cartographer(建图用)、move_base(导航用)、pointcloud_to_laserscan(三维点云数据转二维),这里的Cartographer包当然也可以不用,用Gmapping也够了,看各自吧。
先从网上下载velodyne的16线激光雷达对应的包,我是在ROS Wiki上面找到的网址,然后直接git clone下来,这样方便自己修改:
git clone https://bitbucket.org/DataspeedInc/velodyne_simulator.git
或者直接安装二进制文件也可以:
sudo apt-get install ros-melodic-velodyne-*
还要比较推荐第一种安装方法的,这样可以把下载好的包与xbot放在一个工作空间下,包括后面需要用的pointcloud_to_laserscan,方便管理。
安装好后需要对其中的一些文件进行修改:
mbot_with_laser_gazebo.xacro:
修改第5行,原来是加载的单线激光雷达的文件,现在改成velodyne的16线;第9行,这个修改不修改不是很重要,就是修改velodyne雷达的高度,根据自己需求来;第15行,要改成图中这样;第18行也要修改成图中这样。
VLP-16.urdf.xacro:
这里主要是第4行需要请修改,在params后面有修改的地方,大家自行对比修改就行了。
point_to_scan.launch:
这里的第7行修改为/velodyne_points,我这里之前是/rslidar_points,现在修改了。
然后是采用Cartographer建图,当然要先搭载一个gazebo模型,我就不展示了,运行后我看了一下我的机器人和雷达是这样的:
先说一下我运行的几行命令吧,大家根据自己实际情况参考:
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch #这一行是已经搭载好了gazebo模型并且该launch文件里的名称也修改了
roslaunch pointcloud_to_laserscan point_to_scan.launch #这里是将三维点云转为二维
roslaunch mbot_navigation cartographer_demo.launch #这里就是启用Cartographer建图了
roslaunch mbot_teleop mbot_teleop.launch #启动键盘控制
Rviz显示:
建图效果:
最终效果:
然后就是导航,这里导航是需要二维激光数据的,所以也需要pointcloud_to_laserscan,就彷佛这一个仿真下来起始多线激光雷达没啥用,都转成单线激光雷达来用了。
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch #这一行是已经搭载好了gazebo模型并且该launch文件里的名称也修改了
roslaunch pointcloud_to_laserscan point_to_scan.launch #这里是将三维点云转为二维
roslaunch mbot_navigation nav_cloister_demo.launch #启用move_base
运行上面的命令要记得有一些加载文件的语句中文件名称要对应修改。
下面是最后的导航效果(避障效果):
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。