目录
一 . TF
Transform:坐标变换(位置和姿态),坐标系数数据维护的工具。
1.1 ROS 中tf 是什么?
- 是坐标转换的标准(tf-tree)
- 是话题(topic)
- 是package(调试查看)
- 是接口(roscpp/rospy)
机器人部件称为link ,每一个link都对应一个frame,即坐标系。
圆圈内是 frame,整个TF-tree应保证通路。
每两个frame之间联通需要很多node向TF topic上发布消息,Broadcast 是一个publisher。
1.2 两个frame之间发布的消息格式
两个frame之间发布的消息格式如下:
string frame_id 是父ID
string child_frame_id 是子ID
1.3 整个TF-tree消息格式
整个TF-tree的消息类型有两种:
第一代的TF是 tf/tfMessage.msg, 第二代的TF 是 tf2_msgs/TFMessage.msg,
具体使用的时候可以用 rostopic info /tf 来查询具体信息。
它们的定义基本一致,内容如下:
1.4 TF-tree的C++实现
c++语言的TF数据类型
值得注意的是 tf:StampTransform 是C++中的一个类,不是消息格式。
TF 的c++语言包中关于收发的类
发送的类
接收的类,参数ros::Time 常用Time(0)表示最新的时间戳
二 . URDF
URDF (Unified Robot Description Format):统一机器人描述格式
urdf 文件定义了机器人的结构,机器人的各个部件定义为各个link,而各个link之间的连接就是 joint。
URDF文件中link的写法如下:
joint 的 写法如下: