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
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号