{
  "id": "nav2-artifact-nav2-bt-navigator-behavior-trees-odometry-calibration-xml",
  "name": "Nav2 BT: Odometry calibration motion experiment",
  "summary": "Declares three repetitions of four DriveOnHeading/Spin pairs; this can command robot motion when loaded by a configured host. Static source reference only; no task, timing or robot behavior was tested.",
  "framework": "nav2",
  "kind": "official_example",
  "source_registry": "official-robot-artifacts-v1",
  "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": "Repeat",
          "attributes": {
            "num_cycles": "3"
          },
          "children": 1
        },
        {
          "tag": "Sequence",
          "attributes": {
            "name": "Drive in a square"
          },
          "children": 8
        },
        {
          "tag": "DriveOnHeading",
          "attributes": {
            "dist_to_travel": "2.0",
            "speed": "0.2",
            "time_allowance": "12"
          },
          "children": 0
        },
        {
          "tag": "Spin",
          "attributes": {
            "spin_dist": "1.570796",
            "is_recovery": "false"
          },
          "children": 0
        },
        {
          "tag": "DriveOnHeading",
          "attributes": {
            "dist_to_travel": "2.0",
            "speed": "0.2",
            "time_allowance": "12"
          },
          "children": 0
        },
        {
          "tag": "Spin",
          "attributes": {
            "spin_dist": "1.570796",
            "is_recovery": "false"
          },
          "children": 0
        },
        {
          "tag": "DriveOnHeading",
          "attributes": {
            "dist_to_travel": "2.0",
            "speed": "0.2",
            "time_allowance": "12"
          },
          "children": 0
        },
        {
          "tag": "Spin",
          "attributes": {
            "spin_dist": "1.570796",
            "is_recovery": "false"
          },
          "children": 0
        },
        {
          "tag": "DriveOnHeading",
          "attributes": {
            "dist_to_travel": "2.0",
            "speed": "0.2",
            "time_allowance": "12"
          },
          "children": 0
        },
        {
          "tag": "Spin",
          "attributes": {
            "spin_dist": "1.570796",
            "is_recovery": "false"
          },
          "children": 0
        }
      ],
      "node_count": 10,
      "blackboard_references": []
    }
  },
  "capabilities": [
    "behavior-tree",
    "motion-sequence",
    "navigation",
    "odometry-calibration-experiment",
    "workflow"
  ],
  "robot_types": [
    "source-defined"
  ],
  "robot_scope": "Labels identify this description/configuration source; they do not establish runtime, controller or physical-robot compatibility.",
  "source": {
    "repository": "https://github.com/ros-navigation/navigation2",
    "commit": "58e4019eb149ed4387938d9cd13f38659b86f754",
    "tag": "jazzy",
    "path": "nav2_bt_navigator/behavior_trees/odometry_calibration.xml",
    "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/behavior_trees/odometry_calibration.xml",
    "raw_url": "https://raw.githubusercontent.com/ros-navigation/navigation2/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/behavior_trees/odometry_calibration.xml",
    "sha256": "a4eeb10cc1f424ca39d43fdec2cabad5118553e6865ad2b9f6548c968dbe6555",
    "bytes": 845
  },
  "license": {
    "spdx": "Apache-2.0",
    "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/LICENSE",
    "sha256": "e71fcb65bd31cdbdcf50cf43ab87a0c600ea3ec407495c2e15d1e68bc9c3bfc1",
    "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.",
    "binding": {
      "kind": "package_with_unmarked_file_fallback",
      "package": {
        "path": "nav2_bt_navigator/package.xml",
        "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/package.xml",
        "sha256": "7d18fdea20dc695dc74095b93f280b1cf1591d3e36c61544d55449648b949793",
        "bytes": 1792,
        "name": "nav2_bt_navigator",
        "declared_spdx": "Apache-2.0"
      },
      "unmarked_file_quote": "For files that are not otherwise marked, they are provided under the Apache-2.0\nlicense.",
      "terms": {
        "path": "nav2_docking/LICENSE",
        "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_docking/LICENSE",
        "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
        "bytes": 11357,
        "scope": "Complete standard terms text only; the selected package and root index supply the source-license binding."
      }
    }
  },
  "access": {
    "mode": "source_reference",
    "hub_prepare": false,
    "instructions": "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.",
    "setup_url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/README.md"
  },
  "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/odometry_calibration.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."
  },
  "popularity": {
    "metric": "github_stars",
    "repository_stars": 4829,
    "checked_at": "2026-10-18",
    "meaning": "Dated repository interest, not artifact use or runtime success."
  },
  "evidence": {
    "level": "source_reviewed",
    "runtime_verification": "not_run",
    "checked_at": "2026-10-18",
    "inspection": "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.",
    "inspection_method": "automated_static",
    "artifact_kind": "workflow",
    "setup_evidence": [
      {
        "path": "nav2_bt_navigator/CMakeLists.txt",
        "sha256": "1edd5c1e748da4406d7036a8d29ede109ff8d4230a6818b7cbad1f1536b40c3a",
        "bytes": 2492,
        "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/CMakeLists.txt"
      },
      {
        "path": "nav2_bt_navigator/README.md",
        "sha256": "30e5e916a54785ed7d24a74e9db2a5c48889333323a964466349f5e5550c1620",
        "bytes": 1398,
        "url": "https://github.com/ros-navigation/navigation2/blob/58e4019eb149ed4387938d9cd13f38659b86f754/nav2_bt_navigator/README.md"
      }
    ]
  }
}
