5.6.4 乌龟护航案例以及分析

1.案例需求

需求:生成多只乌龟,以 turtlesim_node 的原生乌龟(turtle1)为中心,无论 turtle1 是静止或运动时,都以某种队形为 turtle1 护航。

2.案例分析

“乌龟护航”案例的核心本质还是坐标变换,如果要围绕 turtle1 组成某个固定队形,那么可以把队形中每个点位看作一个坐标系,这些坐标系相对于 turtle1 坐标系的关系是静态的,可以通过静态广播器发布这些点与 turtle1 的坐标系关系,发布后在整个坐标系关系树中,点坐标系到 turtle1坐标系、turtle1坐标系到 world 坐标系、护航的乌龟坐标系到 world 坐标系的关系都是已知的,那么就可以换算出护航的乌龟坐标系与其对应的点坐标系的相对关系,进而就可以计算并发布控制护航乌龟运动的速度指令了。

3.流程简介

本案例中生成新的乌龟、坐标变换广播与监听都已实现,直接编写 launch 文件组织节点即可,主要步骤如下:

  1. 编写 launch 文件集成相关节点;
  2. 编译;
  3. 执行。

案例我们会采用 C++ 和 Python 分别实现,二者都遵循上述实现流程。

results matching ""

    No results matching ""