Navigation Stack概述
[图片上传失败...(image-855943-1544240929262)]
一句话概述的话,这个stack的作用就是根据外部传感器的信息来驱动机器人完成导航.至于具体是如何实现的,我以后将对每一个包都会进行介绍和分析(欢迎关注),下面先看看这个框架中每个功能包的介绍.
各功能包介绍
- amcl:amcl的作用是根据机器人自身的里程数值以及地图特征,利用粒子滤波修正机器人在已知的地图内的位置
- base_local_planner: 局部路径规划器
- dwa_local_planner:也是局部路径规划器,使用动态窗口法
- carrot_planner: 很简单的全局路径规划器,生成的路径为目标点到机器人当前点的连线上的点
- clear_costmap_recovery: 无法规划路径的恢复算法
- costmap_2d: 代价地图实现
- fake_localization: 主要用来做定位仿真
- global_planner:全局路径规划算法包
- map_server: 提供代价地图的管理服务
- move_base: 机器人移动导航框架(导航最主要的逻辑框架)
- move_slow_and_clear:也是一种恢复策略
- nav_core:提供接口,能够实现插件更换算法的主要包
- nav_fn:全局路径规划算法
- robot_pose_ekf:综合里程计、GPS、imu数据,通过拓展卡尔曼滤波进行位置估计
- rotate_recovery:旋转恢复策略实现包
- voxel_grid:三维代价地图
从上图可以看到,整个navigation stack可以分为三部分,在导航中,move_base为实现逻辑框架,而nav_core提供了全局路径规划器/局部路径规划器通过接口,通过这个接口可以实现按照插件形式来更换算法,另外还提供了两种(二维和三维)栅格地图;
地图服务器主要是管理地图,用于读写地图并发布地图消息供其他功能包订阅.
定位方面fake_localization提供了一个实现,robot_pose_ekf主要是综合传感器信息修正机器人的里程值,而amcl主要是用于提供将机器人的里程计值和地图结合,估算出机器人在地图中位置。
相关连接
官方介绍:http://wiki.ros.org/navigation
源码地址: https://github.com/ros-planning/navigation.git
网友评论