前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS2极简总结-Nav2-行为树

ROS2极简总结-Nav2-行为树

作者头像
zhangrelay
发布2021-12-02 13:02:31
1K0
发布2021-12-02 13:02:31
举报
文章被收录于专栏:机器人课程与技术

ROS2极简总结专题,其实主要是概念的讲解为主,不涉及程序等,之前没有更新完成,此时继续。参考文献:

  • Navigation using ROS 2 Navigation

导航首先需要目标,然后计算出到达目标所需要的路径,将路径解算为机器人的速度和角度控制量并驱动机器人行驶到目标位置(合理误差范围内)。

依据官方教程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配置参数:

代码语言:javascript
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/09/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nav2 - BT(行为树)导航服务器
  • 简要介绍行为树BT
  • 导航行为树
  • 行为树 XML 格式
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档