行为树导航器

在Github上的源代码

BT导航器(行为树导航器)模块实现了NavigateToPose任务接口。它是一种基于行为树的导航实现,旨在允许导航任务的灵活性,并提供一种简便的方式来指定复杂的机器人行为,包括恢复操作。

考虑查看 Groot - 与行为树交互 教程,了解如何使用 Groot 可视化和修改行为树。

参数

导航器

类型

默认

字符串向量

{'navigate_to_pose', 'navigate_through_poses'}

描述

Iron中的新功能:为实现nav2_core::BehaviorTreeNavigator接口的导航器类型添加插件。它们通过实现具有自定义接口定义的自定义动作服务器,并使用该数据来填充和处理行为树导航请求。插件类在相同的命名空间下定义,参见下面的示例。默认值对应于NavigateToPoseNavigator和NavigateThroughPosesNavigator。

default_nav_to_pose_bt_xml

类型

默认

string

N/A

描述

用于NavigateToPose的默认行为树XML描述文件路径,请参阅:ref:`configuring_behavior_tree_xml`以获取有关此文件的详细信息。在Galactic之前,它被称为default_bt_xml_filename。

default_nav_through_poses_bt_xml

类型

默认

string

N/A

描述

用于NavigateThroughPoses的默认行为树XML描述文件路径,请参阅:ref:`configuring_behavior_tree_xml`以获取有关此文件的详细信息。在添加NavigateThroughPoses之后,它是Galactic的新功能。

plugin_lib_names

类型

默认

字符串向量

["nav2_compute_path_to_pose_action_bt_node", "nav2_follow_path_action_bt_node", "nav2_back_up_action_bt_node", "nav2_spin_action_bt_node", "nav2_wait_action_bt_node", "nav2_clear_costmap_service_bt_node", "nav2_is_stuck_condition_bt_node", "nav2_goal_reached_condition_bt_node", "nav2_initial_pose_received_condition_bt_node", "nav2_goal_updated_condition_bt_node", "nav2_reinitialize_global_localization_service_bt_node", "nav2_rate_controller_bt_node", "nav2_distance_controller_bt_node", "nav2_speed_controller_bt_node", "nav2_recovery_node_bt_node", "nav2_pipeline_sequence_bt_node", "nav2_round_robin_node_bt_node", "nav2_transform_available_condition_bt_node", "nav2_time_expired_condition_bt_node", "nav2_distance_traveled_condition_bt_node", "nav2_single_trigger_bt_node"]

描述

行为树节点共享库的列表。

bt_loop_duration

类型

默认

int

10

描述

BT执行的每次迭代的持续时间(以毫秒为单位)。

default_server_timeout

类型

默认

int

20

描述

BT操作节点等待动作服务器确认的默认超时时间(毫秒)。如果提供了输入端口“server_timeout”,则此值将被覆盖为BT节点的超时时间。

transform_tolerance

类型

默认

单元

双精度

0.1

描述

TF变换容差。

global_frame

类型

默认

string

map

描述

参考坐标系。

机器人基准坐标系

类型

默认

string

base_link

描述

行为树XML描述的路径。

odom_topic

类型

默认

string

odom

描述

发布里程计数据的话题

goal_blackboard_id

类型

默认

string

"goal"

描述

用于向``NavigateToPose``行为树提供目标的黑板变量。应与BT XML文件的端口匹配。

path_blackboard_id

类型

默认

string

"path"

描述

Blackboard变量,用于从行为树获取``NavigateThroughPoses``反馈的路径。应与BT XML文件的端口名称匹配。

goals_blackboard_id

类型

默认

string

"goals"

描述

用于向“NavigateThroughPoses”行为树提供目标的黑板变量。应与BT XML文件的端口匹配。

use_sim_time

类型

默认

布尔值

false

描述

使用仿真提供的时间。

error_code_names

类型

默认

字符串向量

["compute_path_error_code", "follow_path_error_code"]

描述

要进行比较的错误代码列表。

示例

bt_navigator:
  ros__parameters:
    use_sim_time: true
    global_frame: map
    robot_base_frame: base_link
    transform_tolerance: 0.1
    default_nav_to_pose_bt_xml: replace/with/path/to/bt.xml
    default_nav_through_poses_bt_xml: replace/with/path/to/bt.xml
    goal_blackboard_id: goal
    goals_blackboard_id: goals
    path_blackboard_id: path
    navigators: ['navigate_to_pose', 'navigate_through_poses']
    navigate_to_pose:
      plugin: "nav2_bt_navigator/NavigateToPoseNavigator"
    navigate_through_poses:
      plugin: "nav2_bt_navigator/NavigateThroughPosesNavigator"
    plugin_lib_names:
      - nav2_compute_path_to_pose_action_bt_node
      - nav2_follow_path_action_bt_node
      - nav2_back_up_action_bt_node
      - nav2_spin_action_bt_node
      - nav2_wait_action_bt_node
      - nav2_clear_costmap_service_bt_node
      - nav2_is_stuck_condition_bt_node
      - nav2_goal_reached_condition_bt_node
      - nav2_initial_pose_received_condition_bt_node
      - nav2_goal_updated_condition_bt_node
      - nav2_reinitialize_global_localization_service_bt_node
      - nav2_rate_controller_bt_node
      - nav2_distance_controller_bt_node
      - nav2_speed_controller_bt_node
      - nav2_recovery_node_bt_node
      - nav2_pipeline_sequence_bt_node
      - nav2_round_robin_node_bt_node
      - nav2_transform_available_condition_bt_node
      - nav2_time_expired_condition_bt_node
      - nav2_distance_traveled_condition_bt_node
      - nav2_single_trigger_bt_node
    error_code_names:
      - compute_path_error_code
      - follow_path_error_code
      # - smoother_error_code, navigate_to_pose_error_code, navigate_through_poses_error_code, etc