ROS2极简总结-Nav2-行为树
Posted zhangrelay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS2极简总结-Nav2-行为树相关的知识,希望对你有一定的参考价值。
ROS2极简总结专题,其实主要是概念的讲解为主,不涉及程序等,之前没有更新完成,此时继续。参考文献:
导航首先需要目标,然后计算出到达目标所需要的路径,将路径解算为机器人的速度和角度控制量并驱动机器人行驶到目标位置(合理误差范围内)。
依据官方教程Nav2结构如下所示:
BT如果展开又是厚厚一本书啊……
Nav2 - BT(行为树)导航服务器
使用行为树 XML 作为导航控制流
- 由 [nav2_bt_navigator] 提供
- 阅读行为树的 XML 描述
- 允许轻松实现行为以选择机器人的行为
- 与规划器、控制器和恢复服务器通信
- BtNavigator节点参数如下:
具体参考源码和官方文档。
此处给出全局坐标为:map地图,机器人坐标:base_link,里程计等……
配置简洁方便。
简要介绍行为树BT
行为树是决策和执行流程的表示。
节点类型:
- ControlNodes:有 1 到 N 个子节点,例如 序列节点、回退节点...
- DecoratorNodes:类似于 ControlNode,但只能有一个子节点。
- ActionNodes:离开并且没有任何子节点。
- ConditionNodes 等价于 ActionNodes,但它们不能改变系统的状态。
机器人进入房间流程包括:SequenceNode、DecoratorNodes、ConditionNode
房门是否打开,打开房门,进入房间,关闭房门。
回退包括:FallbackNode、SequenceNode、ConditionNodes
导航行为树
示例:使用具备恢复功能的导航
行为树 XML 格式
更多示例参考源码。
turtlebot3-burger配置参数:
bt_navigator:
ros__parameters:
use_sim_time: False
global_frame: map
robot_base_frame: base_link
odom_topic: /odom
default_bt_xml_filename: "navigate_w_replanning_and_recovery.xml"
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_goal_updated_condition_bt_node
- nav2_initial_pose_received_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
bt_navigator_rclcpp_node:
ros__parameters:
use_sim_time: False
以上是关于ROS2极简总结-Nav2-行为树的主要内容,如果未能解决你的问题,请参考以下文章