# Nav2 BT: To-pose replanning and recovery

Declares planning to a pose, following and contextual/general recovery. Static source reference only; no task, timing or robot behavior was tested.

ID: `nav2-artifact-nav2-bt-navigator-behavior-trees-navigate-to-pose-w-r-e80996af9524`

Record version: `source-5895b63840d54c6d7eee3d3b3f3ee177680af9e58a14cbf61c4df39fe5db2a90`

Hub commit: `1c5a252fba5d1499b3530ceab90c69cd4f7eee48`

## 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.

Optional inert file retrieval: `python /PATH_TO_SKILL/scripts/rsh.py fetch-source nav2-artifact-nav2-bt-navigator-behavior-trees-navigate-to-pose-w-r-e80996af9524 --expected-source-revision 58e4019eb149ed4387938d9cd13f38659b86f754 --expected-source-sha256 5895b63840d54c6d7eee3d3b3f3ee177680af9e58a14cbf61c4df39fe5db2a90 --project ./experiment --json`. This verifies one file, preserves provenance and never installs or runs it. See [source-file retrieval](https://hub.superfastrobotics.com/source-files.md).

Hub preparation adapter: **false**. Runtime verification: **not_run**.

Upstream setup: https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/README.md

## Source and license

- Repository: https://github.com/ros-navigation/navigation2
- Pinned source: https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/behavior_trees/navigate_to_pose_w_replanning_and_recovery.xml
- Revision: `58e4019eb149ed4387938d9cd13f38659b86f754`
- Path: `nav2_bt_navigator/behavior_trees/navigate_to_pose_w_replanning_and_recovery.xml`
- Source SHA256: `5895b63840d54c6d7eee3d3b3f3ee177680af9e58a14cbf61c4df39fe5db2a90`
- Source bytes: 2733
- Original authors: See pinned upstream source and license notices.
- License: [Apache-2.0](https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/LICENSE)
- 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`

## Artifact

```json
{
  "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": "1.0"
        },
        "children": 1
      },
      {
        "tag": "RecoveryNode",
        "attributes": {
          "number_of_retries": "1",
          "name": "ComputePathToPose"
        },
        "children": 2
      },
      {
        "tag": "ComputePathToPose",
        "attributes": {
          "goal": "{goal}",
          "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_code_id}"
        },
        "children": 0
      }
    ],
    "node_count": 28,
    "blackboard_references": [
      "{backup_code_id}",
      "{compute_path_error_code}",
      "{follow_path_error_code}",
      "{goal}",
      "{path}",
      "{selected_controller}",
      "{selected_planner}",
      "{spin_error_code}"
    ]
  }
}
```

## Requirements

```json
{
  "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

```json
{
  "entrypoint": "Data/configuration artifact: nav2_bt_navigator/behavior_trees/navigate_to_pose_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. BackUp writes error_code_id={backup_code_id}; another selected tree uses {backup_error_code}. Preserve exact port values and do not assert application wiring correctness."
}
```

## Compatibility

```json
[]
```

Missing environment fields remain unknown. Source 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.
