ROS Indigo learning_tf-04 (编程)让 turtle2 海龟跟随 turtle1 海龟,并绕着 turtle1 海龟转圈 (Python版)
我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo
这个博客是在上一个博客(添加额外的坐标系)的基础上进行的。
现在,我们想让:让 turtle2
海龟跟随 turtle1
海龟,并绕着 turtle1
海龟转圈。
我们需要在上一个博客的基础上,做三件事情:
第一件事:让
turtle2
小海龟 设置在carrot1
坐标系节点上。即:改写turtle_tf_listener.py
程序。第二件事:设置旋转圆的半径,将其设置为
5
比较好。即:改写fixed_tf_broadcaster.py
里面的一个参数。第三件事:重写启动文件。 改写
start_demo3.launch
文件。
第一件事:让 turtle2
小海龟 设置在 carrot
坐标系节点上
想要完成这样的运行效果,使用之前的(编写一个 监听 tf 变化 的程序 )的知识,就可以做到:
修改 1 . 我们只需要将 turtle_tf_listener.py
文件(监听tf变化的监听器程序)中的 try:
下面的 (trans, rot) = listener.lookupTransform('/turtle2', '/turtle1', rospy.Time(0))
这段代码中的 /turtle2
该为 carrot1
,即可。其他代码不变。
修改 2 . 将 turtle2
小海龟的运行的线速度提高,同时将角速度降低:
angular = 6 * math.atan2(trans[1], trans[0])
linear = 0.5 * math.sqrt(trans[0] ** 2 + trans[1] ** 2)
我们不在原来的 turtle_tf_listener.py
文件里面改。而是,新建一个文件:fixed_tf_listener.py