参考wiki的ros tf demo教程 纯粹科研精华~~~
很遗憾,截止发稿,笔者只有60小时的ROS系统开发经验,但是,这篇文章绝对不是拿来搞笑的,我会尽量写的正式一点。如果你看完了还是不懂,不能怪笔者写的太不正经,只能证明ROS这东西确实不是人学的。
ROS原生自带的 turtlesim(龟模拟)是一个功能全面,复古蒸汽波风格的仿真系统。我对原版文档中的TF教程demo做了一个小小升级——将原本的两只龟增加到了四只,其中涉及一些新的坐标变换、新节点注册、launch文档修改。理论上可以实现无限只龟跟随头龟运动!
这个demo中涉及的具体技术我会详细讲解,大多数翻译自 ros.wiki,内容严谨性和翻译质量都不好保证,大家看看可以,最好不要亲身尝试。
有兴趣的读者不妨移步http://wiki.ros.org/获取更多资讯。
准备原料:
1.安装Ubuntu的电脑。
2.电脑已安装完整版ROS,必要测试已完成,能打开turtlesim。
3.准备数只美学乌龟
美学乌龟效果图
1.在您的catkin_ws/src/目录下新建一个 叫 “vapor_turtle” 的文件夹(不叫这名字、不建文件夹,美学效果都会大打折扣)
1.1懒人代码: $ catkin_create_pkg vapor_turtle roscpp rospy std_msgs
2.在vapor_turtle中新建 launch 和 nodes 文件夹,您一定知道这是干嘛的。
3.在nodes文件夹中新建两个新PY文件,“turtle_listener.py" 和"turtle_
broadcaster.py"。
4.复制以下代码
4.1 turtle_tf_listener:
#!/usr/bin/env python
import roslib
roslib.load_manifest('sustc_follow')
import rospy #rospy 必须import的包
import math #数学计算包
import tf #TF包
import geometry_msgs.msg #这个包含乌龟的几何信息
import turtlesim.srv #这个是“龟模拟“仿真器
if __name__ == '__main__':
rospy.init_node('turtle_tf_listener') #初始化turtle_listener的节点名称
listener = tf.TransformListener() #实例化坐标监听器
# 使用spawn命令生出多只小乌龟来
rospy.wait_for_service('spawn')
spawn