开源自主导航小车MickX4(十)总结
- 1 博客回顾
- 2 学习建议
- 3 后续计划
在 开源自主导航小车MickX4 这个系列教程中,我们一共分为了十个博客部分进行了讲解差速小车的导航。由于一些的原因,这里有一部分我们没有仔细去深入研究其中每一个部分的算法内容,只是简单的调用和理解了这个算法模块的输入输出接口。比如说这里用到的激光SLAM(gmapping,cartographer LeGO-LOAM),还有后续的全局规划算法和局部规划算法也只是调了一下参数,没有对源码进行分析。
1 博客回顾
最早针对先锋机器人底盘上实现了自主导航,产生了如下的几篇博客。当时在先锋机器人的底盘上实现了自主导航。
-
自主导航小车实践(一)
-
自主导航小车实践(二)
-
自主导航小车实践(三)
-
自主导航小车实践(四)
后来由于项目需要,产生了自己制作ROS底盘的项目。因此制作了5辆麦卡纳姆轮的底盘,这个过程编写成为了以下两篇博文
-
ROS麦克纳姆轮底盘制作(上)
-
ROS麦克纳姆轮底盘制作(下)
后来想制作在室外运行的自主导航小车,因此确定了Mick 这个项目代号。开始使用四轮差速小车模型和16线的3D激光雷达作为传感器,导航框架是基于move_base进行修改的。
项目开源的代码中支持麦克纳姆轮和四轮差速底盘,该开源项目从搭建机械部分开始,分享底层的嵌入式控制,上层的建图和导航部分,最终实现A点到B的自主导航。 当前地址的代码为麦克纳姆轮和四轮差速ROS底盘的ROS导航节点包,与 mick_robot_chasiss 代码(底层控制代码)配合使用,更多的信息可以参考博客-熊猫飞天
-
开源自主导航小车MickX4(一)ROS底盘硬件
-
开源自主导航小车MickX4(二)ROS底盘运动控制
-
开源自主导航小车MickX4(三)底盘ROS节点
-
开源自主导航小车MickX4(四)底盘URDF模型
-
开源自主导航小车MickX4(五)gmapping建图
-
开源自主导航小车MickX4(六)cartography 2D 建图
-
开源自主导航小车MickX4(七)cartography 3D 建图
-
开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图
-
开源自主导航小车MickX4(九)基于move_base 的自主导航框架
-
开源自主导航小车MickX4(十)总结与展望
2 学习建议
- 1)先使用成品底盘
根据我自己学习的经验。大家如果是初学的话,最好还是先用一个成品的底盘(比如,turtlebot、autolabor、先锋机器人和kuboki之类的)。先用成品的底盘调通导航程序,这样如果你对自己搭建底盘感兴趣,你在调试的时候起码可以保证上层导航算法是没有问题的。 - 2)底盘选型
在学习的过程中,我们发现两轮差速底盘的里程计精度比起四轮差速要高很对(四轮是依靠轮子和底盘滑动实现转向的)。但是室外环境,两轮底盘不如四轮底盘平稳。 - 3)底盘控制方案
现在的伺服电机都支持总线式的电机,一些工控机也有IO接口。因此也有方案直接把底盘的运动控制放在了工控机里面,也就是在ROS底盘节点里面计算速度闭环,直接通过总线下发,控制电机调速。与之对比的方案就是我们采用的利用STM32来实现底盘的运动控制。这两种方案我们都在不同的项目上使用过,单片机方案成熟度高,但是针对大功率电机需要对控制板做电磁屏蔽。工控机方案好调试,可视化数据比较方便,但是实时性差一点,此外类似于线程阻塞的坑(别问我咋知道的(▽))。对于小车还是推荐单片机方案。 - 4)学习方法
遇到问题别自己一直想,多加群交流,加群,加群。
3 后续计划
当前的小车教程,也只能算是走通了整个流程,算是一个入门教程吧。在实际的项目中还需要针对环境去微调参数和,但是基本上小车是可以动起来的。实际上小车的文档在此之前就已经写完了,中间由于一些项目上的事情去忙其他的了,最近把文档整理了一遍(也算是复习了),使得它展示的更加有逻辑性一点。
由于自己的研究方向是视觉SLAM,因此在后续的任务中将继续开源另外一个项目,计划是实现基于视觉的导航。针对在激光导航中遇到的问题,后期可能会调整一些使用4轮8电机的全驱动结构的底盘,提升里程计的精度问题。新的视觉导航框架也会合并到Mick这个项目代号中去。
最后感谢向我反馈BUG的网友们,感谢大家的支持。
欢迎大家点赞在评论区交流讨论(cenruping@vip.qq.com) O(∩_∩)O
或者加群水一波(1149897304)