简介
在大多数学习ROS人的理解中,常用的gmapping建图、导航一般都需要依赖电机的里程计,特别是导航时一定需要电机速度算里程计,没有这东西,都不知道怎么定位,这种思想在我两周前都还是深信不疑,一直到我调试宇树的机械狗时,网上找相关的资料让狗进行建图与导航,发现了激光里程计laser_scan_matcher这个包,当然还有rf2o_laser_odometry这个包使用稍稍麻烦一点,当时网是所用的激光里程计基本上都是用来建图用的,想着都有了里程计,那在用来导航那不更香吗?然后想法也得到了验证,最近这段时间都在写RIKIBOT-FX4四驱+多线激光雷达的文章,这里也就继续以这台车为样本,用纯激光里程计来实现建图导航。也在RIKIBOT智能小车用单线激光雷达验证过,精度很nice。
个人认为只要符合ROS运动学的小车都可以用这套方法快速实现建图导航,成本可以做到很低,完全不需要带编码器的电机,只要是个单片机小车稍加改造,特别像那种RACE_CAR这种舵机+电调来控制的车(速度上去后的精度怎么样这种没测试过),就可以实现建图+导航
环境准备
- 1、安装laser_scan_matcher,有些系统不能apt可以下载后编译,下载链接
git clone https://github.com/ccny-ros-pkg/scan_tools.git
直接apt
sudo apt-get install ros-melodic-laser-scan-matcher
纯激光里程计构建地图
不多说先看过程,后看配置参数
- 1、启动底盘连接与里程计融合包
roslaunch rikibot laser_scan_odom.launch
- 2、启动建图
roslaunch rikibot lidar_slam.launch
- 3、打开slam.rviz,然后控制建图,这里就不贴图了,后面直接上视频,然后建完保存地图
纯激光里程计导航
- 1、启动底盘连接与里程计融合包
roslaunch rikibot laser_scan_odom.launch
- 2、启动建图
roslaunch rikibot navigate.launch
- 3、打开navigate.rviz,发送导航目标位置即可
纯激光里程计的建图与导航
关键参数配置
- 1、按正常带里程计套路,RIKIBOT智能小车启动的都是bringup,激光里程计这里启动是rikibot laser_scan_odom.launch 文件,打开这个文件,对比前面文章的启动件,这里移动了riki_base_node这个节点,这个节点是算电机里程计的,然后移除了IMU启动文件,只有底盘连接控制节点与laser_scan_matcher配置文件,说明已经完全去掉了电机里程计
- 2、打开建图文件,这里与前面的建图一样
- 3、打开导航文件,这里与前面的导航一样
交流方式
QQ交流群:130486387
RIKIBOT店铺连接