ROS--TF学习--介绍

来源:互联网 发布:java开发购物网站 编辑:程序博客网 时间:2024/04/27 16:18

简介

TF是ROS系统中的功能包,用于便捷地进行坐标变换。这里将涉及机器人学的一些知识,有欧拉角、四元数、线性代数、坐标变换……可以看教材、搜百度维基进行学习。值得说明的是,欧拉角共有12种表示,常用的是航空模式下的欧拉角,其是绕机体(刚体)Z Y X轴旋转得到的,在tf中称为eulerYPR; 同理,RPY(ROLL PITCH YAW)指的是绕固定坐标系xyz旋转得到。这两者在一定意义上是等价的,即对应的旋转角度是一样的。


TF中的坐标关系表

从B到A的坐标变换 = 从A到B的坐标系变换(frame transform)= B在A的姿态变换

A为原坐标系

B为变换后的坐标系

等价性证明

A 为:定坐标系o-xyz      坐标 p   坐标向量[A1 A2 A3]

B 为:动坐标系O-XYZ    坐标 P  坐标向量[B1 B2 B3]

1. 从B到A的坐标变换 

RP=p

2. 从A到B的坐标系变换(frame transform)

[A1 A2 A3]p=[B1 B2 B3]P     

R为A坐标向量到B坐标向量的映射矩阵R,即  [A1 A2 A3] R =[B1 B2 B3]  

 合并得到 [A1 A2 A3]p=[A1 A2 A3]RP --> p=RP

3. B在A的姿态变换描述

假设A和B坐标系重合,点Q相对B动坐标系坐标不变即为坐标P,经过绕定坐标XYZ旋转旋转矩阵为R,得到Q在A的姿态描述p,也得到 p=RP。


工作机制




TF的工作机制是以 tf 的topic进行坐标系的管理。以官方的例程来看,坐标系节点会不断向topic(/tf)发送(broadcatser)相对与某个参考坐标系的坐标和转角(用欧拉角或则四元数表示),参考坐标系可以是世界坐标系 /world,或者是其他坐标系 /turtleX,这样可以建立一棵关系树,如下图。然后,通过listener实时监听,得到所需的坐标关系,进行处理转换。



参考:

http://blog.exbot.net/archives/1686  
ros/tf: http://wiki.ros.org/tf/  


原创粉丝点击