turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置行为树导航仪(Behavior-Tree Navigator)

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

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号

说明:

  • 介绍如何配置行为树导航仪(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<string>

 - 默认值:[“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

参考:

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号


标签: ros2与navigation2入门教程