Nav2 BT: Through-poses replanning and recovery
Declares removal of passed goals, planning through poses, following and contextual/general recovery. Static source reference only; no task, timing or robot behavior was tested.
nav2-artifact-nav2-bt-navigator-behavior-trees-navigate-through-pos-e868b0be139c | Record version: source-bccb78a1f06cea2a88dd86b028c0e2c7c167ac1ab3b0b799f87099b5181a2876
Record JSON | Markdown | Pinned upstream source
Access
Inspect this checksum-pinned text in the full upstream checkout. Resolve adjacent definitions/assets and their separate licenses using upstream instructions. The Hub does not load or execute this artifact.
For one verified inert file, use the installed CLI's inspect response fetch_source_args and append --project DIR --json. Source-file retrieval creates no environment and does not install or run the source.
Hub preparation adapter: false. Follow the upstream setup and invocation contract.
Source and license
- Repository
- https://github.com/ros-navigation/navigation2
- Revision
58e4019eb149ed4387938d9cd13f38659b86f754- Path
nav2_bt_navigator/behavior_trees/navigate_through_poses_w_replanning_and_recovery.xml- Source SHA256
bccb78a1f06cea2a88dd86b028c0e2c7c167ac1ab3b0b799f87099b5181a2876- Source bytes
- 2878
- Original authors
- See pinned upstream source and license notices.
- License
- Apache-2.0
- License scope
- Exactly these otherwise-unmarked nav2_bt_navigator workflow XML texts. The selected package declares Apache-2.0 and the root index explicitly supplies that default for otherwise unmarked files. nav2_docking/LICENSE supplies complete standard terms only, not a grant or author attribution transferred from docking. Preserve applicable license, notices and modification obligations. No individual XML author is declared; the package maintainer is not inferred as author. Dependencies, node implementations, binaries, maps, assets and hardware retain their own terms.
- License SHA256
e71fcb65bd31cdbdcf50cf43ab87a0c600ea3ec407495c2e15d1e68bc9c3bfc1- Hub commit
1c5a252fba5d1499b3530ceab90c69cd4f7eee48
Artifact
{
"kind": "workflow",
"format": "behaviortree-cpp-xml",
"role": "Declarative upstream workflow source; not an executable Hub skill",
"structure": {
"root": "root",
"BTCPP_format": "4",
"main_tree": "MainTree",
"nodes": [
{
"tag": "RecoveryNode",
"attributes": {
"number_of_retries": "6",
"name": "NavigateRecovery"
},
"children": 2
},
{
"tag": "PipelineSequence",
"attributes": {
"name": "NavigateWithReplanning"
},
"children": 4
},
{
"tag": "ControllerSelector",
"attributes": {
"selected_controller": "{selected_controller}",
"default_controller": "FollowPath",
"topic_name": "controller_selector"
},
"children": 0
},
{
"tag": "PlannerSelector",
"attributes": {
"selected_planner": "{selected_planner}",
"default_planner": "GridBased",
"topic_name": "planner_selector"
},
"children": 0
},
{
"tag": "RateController",
"attributes": {
"hz": "0.333"
},
"children": 1
},
{
"tag": "RecoveryNode",
"attributes": {
"number_of_retries": "1",
"name": "ComputePathThroughPoses"
},
"children": 2
},
{
"tag": "ReactiveSequence",
"attributes": {},
"children": 2
},
{
"tag": "RemovePassedGoals",
"attributes": {
"input_goals": "{goals}",
"output_goals": "{goals}",
"radius": "0.7"
},
"children": 0
},
{
"tag": "ComputePathThroughPoses",
"attributes": {
"goals": "{goals}",
"path": "{path}",
"planner_id": "{selected_planner}",
"error_code_id": "{compute_path_error_code}"
},
"children": 0
},
{
"tag": "Sequence",
"attributes": {},
"children": 2
},
{
"tag": "WouldAPlannerRecoveryHelp",
"attributes": {
"error_code": "{compute_path_error_code}"
},
"children": 0
},
{
"tag": "ClearEntireCostmap",
"attributes": {
"name": "ClearGlobalCostmap-Context",
"service_name": "global_costmap/clear_entirely_global_costmap"
},
"children": 0
},
{
"tag": "RecoveryNode",
"attributes": {
"number_of_retries": "1",
"name": "FollowPath"
},
"children": 2
},
{
"tag": "FollowPath",
"attributes": {
"path": "{path}",
"controller_id": "{selected_controller}",
"error_code_id": "{follow_path_error_code}"
},
"children": 0
},
{
"tag": "Sequence",
"attributes": {},
"children": 2
},
{
"tag": "WouldAControllerRecoveryHelp",
"attributes": {
"error_code": "{follow_path_error_code}"
},
"children": 0
},
{
"tag": "ClearEntireCostmap",
"attributes": {
"name": "ClearLocalCostmap-Context",
"service_name": "local_costmap/clear_entirely_local_costmap"
},
"children": 0
},
{
"tag": "Sequence",
"attributes": {},
"children": 2
},
{
"tag": "Fallback",
"attributes": {},
"children": 2
},
{
"tag": "WouldAControllerRecoveryHelp",
"attributes": {
"error_code": "{follow_path_error_code}"
},
"children": 0
},
{
"tag": "WouldAPlannerRecoveryHelp",
"attributes": {
"error_code": "{compute_path_error_code}"
},
"children": 0
},
{
"tag": "ReactiveFallback",
"attributes": {
"name": "RecoveryFallback"
},
"children": 2
},
{
"tag": "GoalUpdated",
"attributes": {},
"children": 0
},
{
"tag": "RoundRobin",
"attributes": {
"name": "RecoveryActions"
},
"children": 4
},
{
"tag": "Sequence",
"attributes": {
"name": "ClearingActions"
},
"children": 2
},
{
"tag": "ClearEntireCostmap",
"attributes": {
"name": "ClearLocalCostmap-Subtree",
"service_name": "local_costmap/clear_entirely_local_costmap"
},
"children": 0
},
{
"tag": "ClearEntireCostmap",
"attributes": {
"name": "ClearGlobalCostmap-Subtree",
"service_name": "global_costmap/clear_entirely_global_costmap"
},
"children": 0
},
{
"tag": "Spin",
"attributes": {
"spin_dist": "1.57",
"error_code_id": "{spin_error_code}"
},
"children": 0
},
{
"tag": "Wait",
"attributes": {
"wait_duration": "5.0"
},
"children": 0
},
{
"tag": "BackUp",
"attributes": {
"backup_dist": "0.30",
"backup_speed": "0.15",
"error_code_id": "{backup_error_code}"
},
"children": 0
}
],
"node_count": 30,
"blackboard_references": [
"{backup_error_code}",
"{compute_path_error_code}",
"{follow_path_error_code}",
"{goals}",
"{path}",
"{selected_controller}",
"{selected_planner}",
"{spin_error_code}"
]
}
}
Requirements
{
"python": null,
"packages": [
"Complete pinned nav2_bt_navigator package, BehaviorTree.CPP and referenced Nav2 node plugins",
"ament_cmake",
"nav2_common",
"rclcpp",
"rclcpp_action",
"rclcpp_lifecycle",
"rclcpp_components",
"std_msgs",
"geometry_msgs",
"nav2_behavior_tree",
"nav_msgs",
"nav2_msgs",
"behaviortree_cpp",
"std_srvs",
"nav2_util",
"nav2_core",
"tf2_ros",
"pluginlib",
"Configured planner/controller/behavior servers, costmaps, transforms, odometry and task-specific goals"
],
"display": "Package 1.3.14, CMake >=3.5 and the jazzy ref are source declarations, not tested runtime combinations. A complete configured upstream BT Navigator selects this XML by parameter or per task. Node implementations, lifecycle setup, map/costmap/TF/odometry configuration and any hardware access remain operator prerequisites; none was installed, loaded or tested. Optional BUILD_TESTING separately declares ament_lint_auto and ament_lint_common.",
"execution_domain": "upstream-configured-navigation",
"source_imports": []
}
Invocation
{
"entrypoint": "Data/configuration artifact: nav2_bt_navigator/behavior_trees/navigate_through_poses_w_replanning_and_recovery.xml; use its upstream loader or package integration after inspection",
"notes": "A complete configured upstream BT host loads this XML. Its action/service node implementations can command hardware; fetching this inert file does not load a host, validate ports or establish task success, timing, stopping or robot compatibility. Comment says 1 Hz; RateController hz is 0.333. Preserve the actual attribute without rewriting or inferring measured rate."
}
Explicit compatibility
[]
Missing environment fields remain unknown. Discovery labels do not establish robot compatibility.
Evidence
Level: source_reviewed; runtime verification: not_run.
Verified exact source and applicable license SHA-256 bytes. Inventoried one bounded BTCPP4 XML tree and parsed literal attributes. Node availability, ports, blackboard expressions, timing and runtime behavior were not evaluated.
Source review and contributor reports do not establish task completion. Preserve upstream attribution and licenses.