自主导航系列6-自主探索slam
自主导航系列6-自主探索slam
1,三叉树算法的问题
-
节点识别的问题,这是一个很大的问题,节点种类繁多,具体情况复杂
-
需要很好的控制小车,拐弯算法难度大
-
没有现成的代码,轨迹规划等包需要自己写,而且要求控制精度高,难以实现
基于以上原因我决定现将三叉树搁置一段时间,着重研究move_base包的原理以及实现
2,安装ros_exploring
git clone https://github.com/huchunxu/ros_exploring.git
修改地图之后,我们创建一个一边gmapping一边导航移动的文件 goal_navigation.launch,其中包含了自己的创建的目标设定的节点。
参考:目标点的设定
有趣的冷知识:RViz上设置虚拟标记是相当简单的,教程地址:http://wiki.ros.org/rviz/Tutorials
3,move_base代码学习
灰色的模块是可选的,地图也是可有可无的,蓝色是根据不同的机器模块进行配置的,白色模块是必须的
3.1,DWA算法在local_plan中的应用
在速度空间(w,v)中,存在一个允许速度范围(允许机器人在不与障碍物相撞的情况下停止的合理速度范围),为了考虑到电机可发挥的有限的加速度,将整个速度搜索空间缩减为动态窗口,动态窗口只包含在下一个时间间隔内可以达到的速度。
我们从中选择一个能最大化目标函数 的速度,这个目标函数由三个评价指标综合构成,target heading, clearance, velocity