前言
前文已经阐述了多机器人的编队模型实现与多辆小车跟随的实现,本文以通过tf通信建立相对于领航机器人的虚拟坐标,通过broadercaster发布虚拟坐标,最后使跟随者收听虚拟坐标,再对虚拟坐标进行跟随,这样就把编队问题转换为了跟随着对目标点的追踪问题。
原理简图
代码实现
虚拟坐标的发布
广播发布模板代码可见前文或者古月居ros21讲,这边发布虚拟机器人的坐标只需要设定相对与领航机器人的相对位置,即Vector3(0, -1.0, 0.0)中的内容。
transform0.setOrigin( tf::Vector3(0, 1.0, 0.0) );//初始化 相距1.0米
transform0.setRotation( tf::Quaternion(0, 0, 0, 1) );
transform1.setOrigin( tf::Vector3(0, -1.0, 0.0) );//初始化 相距1.0米
transform1.setRotation( tf::Quaternion(0, 0, 0, 1) );//广播,指明相对关系和数据
br0.sendTransform(tf::StampedTransform(transform0, ros::Time::now(), "tb3_0", "virtual_0"));
br1.sendTransform(tf::StampedTransform(transform1, ros::Time::now(), &#