鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    关于nav2 bt tree的一些疑问

    已定时 已固定 已锁定 已移动
    Nav2
    ros2 版本 nav2 nav2 源
    2
    5
    586
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 王涛王
      王涛
      最后由 编辑

      我在学习bt 行为树插件,资料太过于贫乏,所以去百度和guthub看了一些源码例程现在有一些疑问bt_tree.png
      这是理论框图
      绿色的部分应该是nav2 bt 自带的功能插件,别的都找到了对应的源码和插件
      有几个没有找打,比如sequencece star这个插件源码就没有找到,也不清楚是我这个图太老了已经更新掉了还是插件已经不可用了
      我有几个点自己理解的,大佬帮我看看理解的对不对440f5c61f2de3696769fb81109c2be1.png
      左边箭头的蓝色名称 是插件名称 就依照这个名称调用插件6f46ab4e456ed2a68d4df310f9cc7f7.png
      因为我看到这个pipelinesequence名称是和上图对应的

      1 那疑问来了,既然是依照这个名字调用插件这个computePathToPose应该是计算路径的插件,在这个插件源码里面 只是看见更新了参数,并没有发现调用任何的规划插件,所以 真正干活的插件比如规划 路径追踪 是如何被调用的呢???
      13357c3f2910e336cd020788870b1ef.png
      2 黄色的plugin_lib_names和上面用到的插件名字有相似但是并没有完全一致
      那这些黄字名称是起什么作用的呢?????

      最后疑问,迫切的需要一份nav2 bt tree的入门教程 和实际范例,以便能学会这个bt树

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @王涛
        最后由 编辑

        @王涛 学一下pluginlib,这些都是动态库的名字

        find /opt/ros/humble -name 'libnav2*.so'
        /opt/ros/humble/lib/libnav2_util_core.so
        /opt/ros/humble/lib/libnav2_truncate_path_action_bt_node.so
        /opt/ros/humble/lib/libnav2_smac_planner.so
        /opt/ros/humble/lib/libnav2_transform_available_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_costmap_2d_core.so
        /opt/ros/humble/lib/libnav2_drive_on_heading_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_wait_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_rotation_shim_controller.so
        /opt/ros/humble/lib/libnav2_assisted_teleop_action_bt_node.so
        /opt/ros/humble/lib/libnav2_back_up_action_bt_node.so
        /opt/ros/humble/lib/libnav2_smac_planner_lattice.so
        /opt/ros/humble/lib/libnav2_remove_passed_goals_action_bt_node.so
        /opt/ros/humble/lib/libnav2_goal_reached_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_truncate_path_local_action_bt_node.so
        /opt/ros/humble/lib/libnav2_recovery_node_bt_node.so
        /opt/ros/humble/lib/libnav2_compute_path_to_pose_action_bt_node.so
        /opt/ros/humble/lib/libnav2_clear_costmap_service_bt_node.so
        /opt/ros/humble/lib/libnav2_rate_controller_bt_node.so
        /opt/ros/humble/lib/libnav2_pipeline_sequence_bt_node.so
        /opt/ros/humble/lib/libnav2_goal_updated_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_is_stuck_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_cpp.so
        /opt/ros/humble/lib/libnav2_distance_controller_bt_node.so
        /opt/ros/humble/lib/libnav2_back_up_behavior.so
        /opt/ros/humble/lib/libnav2_theta_star_planner.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_introspection_cpp.so
        /opt/ros/humble/lib/libnav2_is_battery_charging_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_wait_behavior.so
        /opt/ros/humble/lib/libnav2_lifecycle_manager_core.so
        /opt/ros/humble/lib/libnav2_assisted_teleop_behavior.so
        /opt/ros/humble/lib/libnav2_wait_action_bt_node.so
        /opt/ros/humble/lib/libnav2_planner_selector_bt_node.so
        /opt/ros/humble/lib/libnav2_goal_updater_node_bt_node.so
        /opt/ros/humble/lib/libnav2_smoother_selector_bt_node.so
        /opt/ros/humble/lib/libnav2_navigate_to_pose_action_bt_node.so
        /opt/ros/humble/lib/libnav2_assisted_teleop_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_generator_py.so
        /opt/ros/humble/lib/libnav2_constrained_smoother.so
        /opt/ros/humble/lib/libnav2_smooth_path_action_bt_node.so
        /opt/ros/humble/lib/libnav2_is_path_valid_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_initial_pose_received_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_navfn_planner.so
        /opt/ros/humble/lib/libnav2_drive_on_heading_bt_node.so
        /opt/ros/humble/lib/libnav2_controller_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_drive_on_heading_behavior.so
        /opt/ros/humble/lib/libnav2_back_up_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_path_longer_on_approach_bt_node.so
        /opt/ros/humble/lib/libnav2_round_robin_node_bt_node.so
        /opt/ros/humble/lib/libnav2_costmap_2d_client.so
        /opt/ros/humble/lib/libnav2_spin_action_bt_node.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_introspection_c.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_fastrtps_c.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_c.so
        /opt/ros/humble/lib/libnav2_path_expiring_timer_condition.so
        /opt/ros/humble/lib/libnav2_navigate_through_poses_action_bt_node.so
        /opt/ros/humble/lib/libnav2_regulated_pure_pursuit_controller.so
        /opt/ros/humble/lib/libnav2_controller_selector_bt_node.so
        /opt/ros/humble/lib/libnav2_smac_planner_2d.so
        /opt/ros/humble/lib/libnav2_single_trigger_bt_node.so
        /opt/ros/humble/lib/libnav2_speed_controller_bt_node.so
        /opt/ros/humble/lib/libnav2_compute_path_through_poses_action_bt_node.so
        /opt/ros/humble/lib/libnav2_is_battery_low_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_rviz_plugins.so
        /opt/ros/humble/lib/libnav2_behavior_tree.so
        /opt/ros/humble/lib/libnav2_goal_updated_controller_bt_node.so
        /opt/ros/humble/lib/libnav2_time_expired_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_spin_behavior.so
        /opt/ros/humble/lib/libnav2_reinitialize_global_localization_service_bt_node.so
        /opt/ros/humble/lib/libnav2_spin_cancel_bt_node.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_generator_c.so
        /opt/ros/humble/lib/libnav2_globally_updated_goal_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_msgs__rosidl_typesupport_fastrtps_cpp.so
        /opt/ros/humble/lib/libnav2_follow_path_action_bt_node.so
        /opt/ros/humble/lib/libnav2_distance_traveled_condition_bt_node.so
        /opt/ros/humble/lib/libnav2_goal_checker_selector_bt_node.so
        /opt/ros/humble/local/lib/python3.10/dist-packages/nav2_msgs/libnav2_msgs__rosidl_generator_py.so
        

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        小鱼小 1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @小鱼
          最后由 小鱼 编辑

          @小鱼 RecoveryFallback 这种是节点的类的名字,有些找不到的是bt库自带的,你直接学一下BT树的源码例程就好

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          王涛王 2 条回复 最后回复 回复 引用 0
          • 王涛王
            王涛 @小鱼
            最后由 编辑

            @小鱼 bt树的源码例程在哪里学习呀? 学些完这个源码 上面的问题都能捋清楚了吗

            1 条回复 最后回复 回复 引用 0
            • 王涛王
              王涛 @小鱼
              最后由 编辑

              @小鱼 我已经学完了ros2入门教程
              看了bt tree的功能介绍
              感觉bt tree 可以做很多实用的功能,但是看了看nav2的简易教程 一头雾水,完全不清楚调用的流程

              1 条回复 最后回复 回复 引用 0
              • 第一个帖子
                最后一个帖子
              皖ICP备16016415号-7
              Powered by NodeBB | 鱼香ROS