关于SLAM学习方法的一些反思总结

关于SLAM学习方法论,我觉得可以用"螺旋上升"这四个字来概括,大家可以根据自己的喜好和实际基础,选择从理论或者代码开始看。下面假设先从理论开始学习,当然从代码开始学习也是类似的。

  • 第1步:假如以理论开始看起,就是涉猎各种会议期刊论文、博客、知乎,看得过程中肯定有很多不懂的很正常,一般论文或者博客都会提及相应的一些开源代码实现。
  • 第2步:然后你就可以挑一两个开源代码框架自己安装到电脑上运行跑跑数据集;如果你能将一两个开源代码亲自安装到电脑上,并且解决安装过程中的各种bug和兼容性问题,并成功的把数据集跑通了,相信你的编程和代码功底绝对有了质的飞跃。这时候你就会想,我光跑跑别人的数据集有什么用,于是你就想自己改改这些代码中的一些功能,比如给ORB-SLAM2添加一个地图保存功能(原版ORB-SLAM2是没有这个功能的)、或者让AMCL重新上电后能记住之前的位置(这样就不需要费劲吧啦的重定位搜索过程),当然要改代码,必须懂原理。
  • 第3步:因此就要重新回到理论学习,这次就不是泛泛看书了,而是有针对性的看你要解决的问题所涉及的具体理论知识。比如你要实现ORB-SLAM2的地图保存功能,你就需要知道ORB-SLAM2的地图数据结构是什么,这个地图数据结构中涉及到关键帧、共视关系图、生成树本征图等概念,你就需要针对性的理解。当你对开源代码做了一些改进后,你可能信心百倍,想要搞到真实机器人上玩玩,这个时候就要回到实操。
  • 第4步:这个时候的实操就与之前跑个数据集不一样了,而是要考虑真实的机器人上的传感器,以及传感器数据的标定校准,tf转换关系,以及代码在机器人主板上的实时性能,还有整个系统的稳定性,就需要更全面系统的知识,实现系统性技术突破,达到这个程度你应该就是大牛了,带领团队做实际的项目,或者站在顶层解决最核心的技术问题。

由于SLAM是一个错综复杂的研究领域,涉及到非常多的关键技术。这里先讲讲学习方法论,然后对一些关键性概念(包括SLAM、ROS、SLAM移动机器人)进行分析,最后给出典型应用案例方便大家进行实战。
0.学习方法论
1.关于SLAM的那些事
(1)机器人中的不确定性
(2)机器人中的状态估计
(3)贝叶斯滤波及其各种实现算法
(4)机器人中的运动与测量概率模型
(5)移动机器人定位与建图
(6)SLAM同时定位与建图
(7)现今主流的SLAM算法
(8)机器人自主导航与动态避障
2.关于ROS的那些事
3.SLAM与ROS到底是什么关系
4.了解SLAM移动机器人的整体构造
(1)硬件构造解析
(2)电机解析
(3)电机驱动板解析
(4)底盘驱动方式的解析
(5)IMU模块解析
(6)激光雷达解析
(7)摄像头解析
(8)ROS主机解析
5.结合典型应用案例进行实战
(1)智慧农业自动喷药机器人
(2)智慧餐厅送餐机器人
(3)楼宇送快递机器人
(4)大型机房智能巡检机器人

先写到这里,改天有时间再继续扩充吧~@@~

参考资料:

https://www.zhihu.com/people/hiram_zhang

猜你喜欢

转载自blog.csdn.net/m0_68732180/article/details/130251854