4.6.1 多车编队案例以及案例分析

1.案例需求

需求:编写程序实现机器人编队功能。编队由多台机器人组成,包含一辆头车和多辆从车,调用者可以预设编队队形,并且可以给车队指定目标点。车队在接收到目标点后,会按照预设的队形自主导航至该目标点,导航过程中还可以实现动态避障。

2.案例分析

上述需求实现,可以按照如下步骤分解:

  • 先让编队中所有的车辆都可以实现自主导航;
  • 调用者下发目标点时由头车接收,实现头车自主导航至目标点;
  • 再根据编队中不同从车相对于头车的相对位姿,分别为不同的从车计算目标点并发布。

这是一种相对简单直观的实现思路,是需要自实现程序,将可以自主导航的机器人动态关联到一起。

3.流程简介

主要步骤如下:

  1. 搭建多车的仿真环境;
  2. 实现不同车辆能够在同一地图中定位的功能;
  3. 实现不同车辆的自主导航功能;
  4. 实现多车编队的逻辑并执行。

上述部分步骤,可以基于部分已有的功能包进行实现。

4.准备工作

终端下进入工作空间的src目录,调用如下命令创建一个C++功能包。

ros2 pkg create mycar_multi --build-type ament_cmake --dependencies rclcpp std_msgs tf2 tf2_ros geometry_msgs

该功能包主要用于实现编队逻辑。

results matching ""

    No results matching ""