ROS Navigation仓库学习

本文是对导航模块的学习整理,存在诸多的不足,自学自用。


一、Navigation简介

Navigation是ROS的一个仓库,里面有诸多的子模块,包含:

  • voxel_grid :三维代价地图
  • map_server :地图服务器,保存地图和导入地图
  • move_base :整合导航的各个模块,实现导航。
  • costmap_2d :2d代价地图,为全局和局部规划提供障碍物以及周围环境信息
  • 定位模块(localization):fake_localization、amcl
  • nav_core:存放全局规划器、局部规划器和恢复行为的接口
    局部规划模块(loacl_planner):dwa_local_planner、base_local_planner
    全局规划模块(global_planner):global_planner、navfn
    恢复模块(recovery):move_slow_and_clear(清楚代价地图中的信息且限制机器人移动速度)、clear_costmap_recovery(清理代价地图)、rotate_recovery(旋转清理代价地图)

二、Navigation 具体框架

具体框架

  1. 上图是ros_wiki官方给出的ROS1导航框架图,白色框内是move_base整合的模块,将全局规划器、局部规划器、代价地图以及恢复行为进行整合。接收目标点信息,传给全局 规划器,全局规划器利用全局代价地图信息计算出全局路径,下发给局部规划器,局部规划器获得里程计信息、amcl定位信息、传感器坐标系转换信息以及代价地图中的环境障碍物信息,通过整合计算出速度,下发给控制器。外部传感器的信息,如激光雷达、深度相机分别通过sensor_msgs/LaserScan、sensor_msgs/PointCloud话题将环境信息传给代价地图。当导航出现异常情况时,执行恢复行为。
  2. move_base是基于状态机,会有几个不同的状态,根据不同的条件进行状态切换。状态机是一种网状结构,随着状态数量的增多,复杂度上升。

总结

本文介绍了navigation仓库的整体框架,简要介绍了navigation的各个模块,以及运动规划的大致过程,接下来进行各个模块的学习。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐