ROS Navigation Stack之概要介绍

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源码包结构

从上图可以看到,整个navigation stack可以分为三部分,在导航中,move_base为实现逻辑框架,而nav_core提供了全局路径规划器/局部路径规划器通过接口,通过这个接口可以实现按照插件形式来更换算法,另外还提供了两种(二维和三维)栅格地图;
地图服务器主要是管理地图,用于读写地图并发布地图消息供其他功能包订阅.
定位方面fake_localization提供了一个实现,robot_pose_ekf主要是综合传感器信息修正机器人的里程值,而amcl主要是用于提供将机器人的里程计值和地图结合,估算出机器人在地图中位置。

相关连接

官方介绍:http://wiki.ros.org/navigation
源码地址: https://github.com/ros-planning/navigation.git

推荐阅读更多精彩内容