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