1 概述
nav_core包包含了导航功能包集的关键接口。所有规划器和修复行为机制可以插件方式在move_base node中使用,且必须继承这些接口。
2 BaseGlobalPlanner
nav_core::BaseGlobalPlanner支持了供导航中全局规划器使用的接口。 move_base node中使用的所有全局规划器插件都必须继承这个接口。目前使用了nav_core::BaseGlobalPlanner接口的全局规划器有:
-
global_planner - 一个快速内插值全局规划器,是对navfn的更灵活的替代(pluginlib name: "global_planner/GlobalPlanner")
-
navfn - 一个基于grid的全局规划器,使用navigation函数计算机器人路径global planner that uses a navigation function to compute a path for a robot. (pluginlib name: "navfn/NavfnROS")
-
carrot_planner - 一个简单的全局规划器,移动机器人到用户定义的目标点,即使目标在障碍中也会靠近目标。 (pluginlib name: "carrot_planner/CarrotPlanner")
2.1 API Stability
- The C++ API is stable.
2.2 BaseGlobalPlanner C++ API
nav_core::BaseGlobalPlanner can be found here: BaseGlobalPlanner documentation.
3 BaseLocalPlanner
nav_core::BaseLocalPlanner给导航中使用的具体规划器提供接口。 move_base中所有局部规划器插件必须继承该接口。目前nav_core::BaseLocalPlanner接口包括:
-
base_local_planner - 提供用Dynamic Window and Trajectory Rollout approaches来做本地规划控制
-
eband_local_planner - 实现了Elastic Band method on the SE2 manifold
-
teb_local_planner - 实现了Timed-Elastic-Band method for online trajectory optimization
3.1 API Stability
- The C++ API is stable.
3.2 BaseLocalPlanner C++ API
nav_core::BaseLocalPlanner can be found here: BaseLocalPlanner documentation.4 RecoveryBehavior
nav_core::RecoveryBehavior提供了导航中修复机制接口。 move_base中所有修复机制插件必须继承该接口。目前使用了nav_core::RecoveryBehavior接口的主要有:
-
clear_costmap_recovery - 将用户定义的某个范围外的代价地图回退到静态地图
-
rotate_recovery - 执行360度旋转来清理出空间
4.1 API Stability
- The C++ API is stable.