# ros2_turtle_bt_tree **Repository Path**: weibosi/ros2_turtle_bt_tree ## Basic Information - **Project Name**: ros2_turtle_bt_tree - **Description**: 一个简单的ros2乌龟与行为树的结合demo - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-07-22 - **Last Updated**: 2023-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ros2_turtle_bt_tree 功能包介绍 {ros2_turtle_bt_tree包是基于ROS2_dashing与behaviortree_cpp开发的一个乌龟巡逻案例。乌龟2在地图中沿某条固定线路巡逻,自己用键盘控制乌龟1运动。当两者距离太近时,乌龟2会察觉乌龟1存在,并展开追逐。此时我们需要移动乌龟1,甩开对方一定距离后,对方才会重新回到巡逻路线上。} #### 乌龟2的行为树 ![Groot监视器截图](https://images.gitee.com/uploads/images/2022/0722/134046_66701fe8_10227740.png "乌龟行为树.png") #### 功能包架构 以下目录为ros2的乌龟源码 action msg srv include:乌龟使用的头文件 images:乌龟图片 launch:添加该案例的启动文件 src:添加有spawn新乌龟、乌龟1与乌龟2的tf广播、行为树构建与运行 tutorials:键盘控制话题 下列目录为行为树相关添加 bt_xml:xml格式的树 nodes:定义行为树的节点 lib:可放置第三方库(未使用) #### 使用教程 1. 注释CMakeLists.txt文件中的add_executable,编译生成msg、action、srv消息 2. 打开步骤1注释,colcon编译 3. 运行launch文件guard_new_launch.py启动两只乌龟、tf发布、行为树 4. 终端运行本功能包中的键盘控制节点,控制第一只乌龟移动 重要:推荐guard_new_launch.py中的第五个行为树节点通过终端单独启动,否则可能会报出乌龟2坐标消息未发布错误致使节点退出!!!