ROS tf的规则
Tturtle1turtle2=Tturtle1world∗Tworldturtle2
T
t
u
r
t
l
e
2
t
u
r
t
l
e
1
=
T
w
o
r
l
d
t
u
r
t
l
e
1
∗
T
t
u
r
t
l
e
2
w
o
r
l
d
其中,
- 等号左边:turtle2在turtle1坐标系下的
姿态
。 - 等号右边第一项:turtle1在世界坐标系world中的
姿态的逆
。 - 等号右边第二项:turtle2在世界坐标系world中的
姿态
。
- 等号左边:turtle2在turtle1坐标系下的
命令行中观测坐标变换数据的约定
$ rosrun tf tf_echo world turtle1
# 这将得到turtle1在世界坐标系world中的姿态。
思考空间坐标变换的方法:基底
以下图为例(图像来自SVO官网wiki)。
这里,假定相机坐标系
f
f
所在的向量空间的基底为,世界坐标系
w
w
所在的向量空间的基底为。则坐标变换的生成方式为:
Tfw=Base−1f∗Basew
T
w
f
=
B
a
s
e
f
−
1
∗
B
a
s
e
w
此时,若 pw p w 为空间某一点在世界坐标系 w w 中的坐标,为该点在相机坐标系 f f 中对应的坐标,则有:
从而,
pf=Tfw∗pw
p
f
=
T
w
f
∗
p
w
同理,
pw=Tfw−1∗pf
p
w
=
T
w
f
−
1
∗
p
f
则相机原点在世界坐标系
w
w
中的坐标值(即通常说的相机的位置)是:
其中, 0 0 是齐次坐标 [0001]T [ 0 0 0 1 ] T ,其值为零表示相机坐标系 f f 的坐标原点,也即相机的位置,。
twf t f w 是变换矩阵 Twf T f w 的平移部分。