参考博客

Navigation介绍

Navigation是ROS提供的二维导航包。

导航模块的作用:输入传感器信息、地图信息、机器人位姿以及目标点,计算并且输出安全可靠的速度控制指令(是对机器人的底座下方控制命令),全局路径和局部轨迹。
在这里插入图片描述

Navigation软件包的架构

在这里插入图片描述

  • map_server:地图服务器,主要功能是保存地图和导入地图。
  • costmap_2d:可以生产代价地图,以及提供各种相关的函数。
  • robot_pose_ekf:扩展卡尔曼滤波器,输入是里程计、IMU、VO中的任意两个或者三个,输出是一个融合之后的pose。
  • localization:这里是两个定位用的package。fake_localization一般是仿真用的,amcl才是实际定位用的package。
  • nav_core:这里面只有三个文件,对应的是全局路径规划、局部路径规划、recovery_action的通用接口定义,具体功能实现则是在各个对应的规划器package里。
  • move_base:这里实现的是整个导航的流程。什么时候调用全局路径规划、什么时候调用局部路径规划、什么时候调用recovery_action都是这个package管的。就是下图中间方框里做的事情,可以说是整个navigation stack的核心。

定位:
fake_localization : 一般是仿真用的定位
amcl:蒙特卡洛定位

全局规划:
global_planner : 提供dijstra和A算法
navfn : 提供dijstra和A
算法

局部规划:
dwa_local_planner: 动态窗口法
base_local_planner:trajectory_planner 轨迹规划器

恢复行为:
move_slow_and_clear : 清除代价地图中信息并且限制机器人移动速度
clear_costmap_recovery:清理代价地图 rotate_recovery:旋转,清理代价地图

Navigation Stack 框架

在这里插入图片描述

在这里插入图片描述

Logo

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

更多推荐