转载声明:本文转载自 金木炎 的博客,仅供个人学习。感谢博主的无私分享,如有侵权,敬请告知。
从今天开始博主我就把我用orbslam2导航的原理和code讲给大家。
首先,orbslam2构建的map是稀疏地图,有人说稀疏地图怎么导航,不是只有稠密map,至少是半稠密map才能navigation吗?
是的,要想navigation必须要有一个好的地图例如:2D栅阁地图,3D的octomap。
博主的导航是基于记忆轨迹的方式来navigation的。下面我就把博主的导航原理讲给大家。
(1)首先要手动去控制robot,让robot走一条较好的路径(不要让它往墙上撞),然后记下这条路径,其中这条路径上有你的目标点(可以是路径的终点,也可以是路径的任意一点)。
(2)保存当前map(.bin)和路径轨迹(.txt)。
(3)下次启动时计算从任意一点到轨迹线上的最短距离。然后计算旋转角,控制robot到达轨迹线上。
(4)沿着轨迹线到达目标点。
以上只是大致原理,其实navigation过程中需要处理好多事情,以后的会慢慢讲,并且把code贴出来共享。