< >
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置行为树导航仪(Behavior-Tree Navigator)

ROS2与Navigation2入门教程-配置行为树导航仪(Behavior-Tree Navigator)

说明:

  • 介绍如何配置行为树导航仪(Behavior-Tree Navigator)

概述

  • 行为树导航仪(BT Navigator)模块实现了NavigateToPose任务接口。
  • 它是一种基于行为树的导航实现,旨在提高导航任务的灵活性,并提供一种可以轻松地指定复杂机器人行为(包括恢复)的方法。

参数

  • default_nav_to_pose_bt_xml参数:

    • 数据类型:string

    • 默认值:N/A

    • 描述:此参数用于设置NavigateToPose默认行为树XML描述文件的路径,有关该XML文件的详细信息,请参阅“行为树XML节点”教程。在Galactic之前的发行版中,此参数为default_bt_xml_filename。

  • default_nav_through_poses_bt_xml参数:

    • 数据类型:string

    • 默认值:N/A

    • 描述:此参数用于设置NavigateThroughPoses默认行为树XML描述文件的路径,有关该XML文件的详细信息,请参阅“行为树XML节点”教程。在添加NavigateThroughPoses后,该参数是Galactic发行版的一项新功能。

  • plugin_lib_names参数:

    • 数据类型:vector

    • 默认值:[“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节点覆盖。

  • nable_groot_monitoring参数:

    • 数据类型:bool

    • 默认值:false

    • 参数描述:用于设置是否启用对当前BT状态的实时Groot监控。 由于将ZMQ服务器和发布者附加到活动的行为树上,使这成为可能。如果同时运行多个机器人,请确保更改后面的两个端口参数使其唯一,以防止ZMQ中的冲突。

    • 注意:Groot只有在行为树运行后才会工作,这意味着nav2软件堆栈必须先接收一个目标。

  • groot_zmq_publisher_port参数:

    • 数据类型:int

    • 默认值:1666

    • 参数描述:用于设置Groot监视者的ZMQ发布者端口。用于将BT当前状态连续发布为flatbuffer。

  • groot_zmq_server_port参数:

    • 数据类型:int

    • 默认值:1667

    • 参数描述:用于设置Groot监视者的ZMQ服务器端口。用于在Groot的(空)请求上将当前的bt factory+配置作为flatbuffer发送。

  • transform_tolerance参数:

    • 数据类型:double

    • 默认值:0.01

    • 单位:秒

    • 参数描述:用于设置TF变换的容许误差。

  • global_frame参数:

    • 数据类型:string

    • 默认值:map

    • 参数描述:用于设置参考坐标系。

  • robot_base_frame参数:

    • 数据类型:string

    • 默认值:base_link

    • 参数描述:用于设置机器人基座坐标系。

  • odom_topic参数:

    • 数据类型:string

    • 默认值:odom

    • 参数描述:用于设置发布里程计的话题。

  • goal_blackboard_id参数:

    • 数据类型:string

    • 默认值:“goal”

    • 参数描述:设置用于为NavigateToPose行为树提供目标的黑板变量。应与BT XML文件的端口相匹配。

  • path_blackboard_id参数:

    • 数据类型:string

    • 默认值:“path”

    • 参数描述:黑板变量,用于从行为树中获取NavigateThroughPoses反馈的路径。应该与BT XML文件的端口名称相匹配。

  • goals_blackboard_id参数:

    • 数据类型:string

    • 默认值:“goals”

    • 参数描述:设置用于为NavigateThroughPoses行为树提供目标的黑板变量。应该与BT XML文件的端口相匹配。

  • use_sim_time参数:

    • 数据类型:bool

    • 默认值:false

    • 参数描述:用于设置是否使用仿真软件提供的时间。

示例

bt_navigator:
  ros__parameters:
    use_sim_time: true
    global_frame: map
    robot_base_frame: base_link
    transform_tolerance: 0.1
    enable_groot_monitoring: True
    groot_zmq_publisher_port: 1666
    groot_zmq_server_port: 1667
    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
    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

参考:

  • https://navigation.ros.org/configuration/packages/configuring-bt-navigator.html

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与navigation2入门教程