ROS Learning-020 learning_tf-04(编程)让turtle2 海龟跟随turtle1海龟,并绕着 turtle1海龟转圈 (Python版)

这篇博客介绍了如何在ROS Indigo环境下,使用Python编程让turtle2海龟跟随turtle1海龟并绕其转圈。主要涉及三步:1) 修改turtle2的坐标系节点;2) 设置旋转圆半径;3) 编写启动文件。通过修改tf监听器程序,调整速度参数,并创建新的启动脚本,实现了预期效果。
摘要由CSDN通过智能技术生成

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

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值