turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » ROS2版Turbot3-Multi仿真教程 » ROS2与Turbot3-Multi仿真教程-多机行为树导航

ROS2与Turbot3-Multi仿真教程-多机行为树导航

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号

文章说明

  • 本教程主要介绍如何在ROS2仿真进行多机行为树导航的例程测试
  • 测试环境:Ubuntu 24.04 + ROS2 Jazzy + Gazebo Harmonic

相关设备

操作步骤

  • 新开终端,启动多机仿真
# 默认在Gazebo中加载turbot3_house环境,以及加载名为tb3_0和tb3_1的机器人
$ ./sim_scripts/sim_multi_robot_in_gazebo.sh

请输入图片描述

  • 新开终端,启动导航脚本
$ ./sim_scripts/sim_multi_nav.sh
  • 手动在RViz2界面进行初始化位姿的设置,点击界面上方的2D Pose Estimate 按钮,在地图上指定机器人的位置和方向

  • 可以使用初始化位姿的脚本

$ ./sim_scripts/sim_multi_nav_init_pose.sh
  • 但需要知道当前的机器人在地图中的位置,最佳做法是,用一台机器人放在gazebo原点开始建图,那么建出来的地图原点和gazebo原点是重合的
  • 从而在导航时,机器人在gazebo中的位置与在RViz2中地图的位置是一致的,但需要注意方向
  • 比如这次测试中tb3_0机器人在gazebo中的坐标是(-3, -3)但方向与建图时的机器人相差90度
  - name: tb3_0

x_pose: -3.0 y_pose: -3.0 z_pose: 0.01 roll: 0.0 pitch: 0.0 yaw: 1.57

  • 那么初始化位姿的坐标就应如下设置
"pose": {
      "position": {"x": -3.0, "y": -3.0, "z": 0.0},
      "orientation": {x: 0.0, y: 0.0, z: 0.7071, w: 0.7071}
    },
  • 新开终端,启动多机行为树导航脚本
$ ./sim_scripts/sim_multi_send_goal_with_bt_tree.sh
  • 机器人将会依照导航到行为树配置文件中设置的目标点
  • 行为树配置文件存放在以下路径:/home/ubuntu/ros2_t3_ws/src/turbot3/turbot3_nav2/config/bt_tree/multi_bt_tree.xml

请输入图片描述

演示视频

<iframe height=498 width=100% src="//player.bilibili.com/player.html?isOutside=true&aid=114466347879947&bvid=BV163VazGEid&cid=29838149318&p=1&high_quality=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>

纠错,疑问,交流: 请进入讨论区请点击进入页面,扫码加入微信群或Q群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号


标签: ros2版turbot3-multi仿真教程