Nav2 Navigation Stack - humble
humble
ROS 2 Navigation Stack
|
This module is used by the nav2_bt_navigator to implement a ROS2 node that executes navigation Behavior Trees for either navigation or autonomy systems. The nav2_behavior_tree module uses the Behavior-Tree.CPP library for the core Behavior Tree processing.
The nav2_behavior_tree module provides:
See its Configuration Guide Page for additional parameter descriptions and a list of XML nodes made available in this package. Also review the Nav2 Behavior Tree Explanation pages explaining more context on the default behavior trees and examples provided in this package. A tutorial is also provided to explain how to create a simple BT plugin.
See the Navigation Plugin list for a list of the currently known and available planner plugins.
The bt_action_node template allows one to easily integrate a ROS2 action into a BehaviorTree. To do so, one derives from the BtActionNode template, providing the action message type. For example,
The resulting node must be registered with the factory in the Behavior Tree engine in order to be available for use in Behavior Trees executed by this engine.
Once a new node is registered with the factory, it is now available to the BehaviorTreeEngine and can be used in Behavior Trees. For example, the following simple XML description of a BT shows the FollowPath node in use:
The BehaviorTree engine has a run method that accepts an XML description of a BT for execution:
See the code in the BT Navigator for an example usage of the BehaviorTreeEngine.
For more information about the behavior tree nodes that are available in the default BehaviorTreeCPP library, see documentation here: https://www.behaviortree.dev/docs/3.8/learn-the-basics/BT_basics