Overview

The nav_core package contains key interfaces for the navigation stack. All planners and recovery behaviors that wish to be used as plugins in the move_base node must adhere to these interfaces.

move_base_interfaces.png

BaseGlobalPlanner

The nav_core::BaseGlobalPlanner provides an interface for global planners used in navigation. All global planners written as plugins for the move_base node must adhere to this interface. Current global planners using the nav_core::BaseGlobalPlanner interface are:

  • global_planner - A fast, interpolated global planner built as a more flexible replacement to navfn. (pluginlib name: "global_planner/GlobalPlanner")

  • navfn - A grid-based global planner that uses a navigation function to compute a path for a robot. (pluginlib name: "navfn/NavfnROS")

  • carrot_planner - A simple global planner that takes a user-specified goal point and attempts to move the robot as close to it as possible, even when that goal point is in an obstacle. (pluginlib name: "carrot_planner/CarrotPlanner")

API Stability

  • The C++ API is stable.

BaseGlobalPlanner C++ API

Documentation on the C++ API for the nav_core::BaseGlobalPlanner can be found here: BaseGlobalPlanner documentation.

BaseLocalPlanner

The nav_core::BaseLocalPlanner provides an interface for local planners used in navigation. All local planners written as plugins for the move_base node must adhere to this interface. Current local planners using the nav_core::BaseLocalPlanner interface are:

  • base_local_planner - Provides implementations of the Dynamic Window Approach(DWA)and Trajectory Rollout approaches to local control

  • dwa_local_planner - Modular DWA implementation with a lot cleaner and easier interface to understand and more flexible y axis variables for holonomic robots than base_local_planner's DWA

  • eband_local_planner - Implements the Elastic Band method on the SE2 manifold

  • teb_local_planner - Implements the Timed-Elastic-Band method for online trajectory optimization

  • mpc_local_planner - Provides several model predictive control approaches embedded in the SE2 manifold

API Stability

  • The C++ API is stable.

BaseLocalPlanner C++ API

Documentation on the C++ API for the nav_core::BaseLocalPlanner can be found here: BaseLocalPlanner documentation.

RecoveryBehavior

The nav_core::RecoveryBehavior provides an interface for recovery behaviors used in navigation. All recovery behaviors written as plugins for the move_base node must adhere to this interface. Current recovery behaviors using the nav_core::RecoveryBehavior interface are:

  • clear_costmap_recovery - A recovery behavior that reverts the costmaps used by move_base to the static map outside of a user-specified range

  • rotate_recovery - A recovery behavior that perfroms a 360 degree rotation of the robot to attempt to clear out space.

API Stability

  • The C++ API is stable.

RecoveryBehavior C++ API

Documentation on the C++ API for the nav_core::RecoveryBehavior can be found here: RecoveryBehavior Documentation

Wiki: nav_core (last edited 2020-03-02 08:26:09 by ChristophRoesmann)