ROS navigation功能包简单来说就是输入传感器信息和机器人位姿,通过导航算法输出机器人的速度控制指令实现机器人的2D路径规划。
贴出代码库:navigation github官方仓库
以下是ROS官方的文档:navigation官方仓库
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管的。就是下图中间方框里做的事情,可以说是整个navigat