gaoxiang12 / slambook

MIT License
6.89k stars 3.27k forks source link

请问如何判断T是Tcw还是Twc? #170

Closed Zkjoker closed 5 years ago

Zkjoker commented 5 years ago

目前学到第五章,101页,第69行。算T*point,即由相机坐标系变为世界坐标系,那这里的T即是Twc。可是书第三讲61页习题第七题,根据q和t恢复出的T是Tcw,请问到底什么情况下求出的是Tcw,什么时候是Twc呢?初学者的一点小疑惑,谢谢高博和各位大神的解答!

xmyqsh commented 5 years ago

T*point, 是把相机坐标系下的坐标点(point),变换到世界坐标系下,即Twc代表把相机坐标系下的点变换为世界坐标系下的点的变换。 Tcw,如第七题描述,是世界坐标系(的点)到相机坐标系(的点)的变换。

令pw,pc代表同一个点分别在世界坐标系和相机坐标系下的坐标; 若pw=Tpc,则T就是Twc; 若pc=Tpw,则T就是Tcw; Twc和Tcw是互逆的,也是互为转置的,因为是单位正交阵 (旋转矩阵是单位正交阵,变换矩阵不是。变换矩阵求逆的时候,translation的变换会受到rotation的影响,见式3.13)。 根据上面两个式子,就可以确定T是Twc还是Tcw了。 但是,如果函数是封装好的动态链接库,看不到源码,只要求传一个T,这时就没法判断了,正确的方法是Twc和Tcw都试一下。

另外,注意一点,坐标系中数据点的坐标变换和坐标系本身的变换也是互逆的。

Zkjoker commented 5 years ago

谢谢!!

memememeda commented 5 years ago

Tab 就是从b 变换到a

memememeda commented 5 years ago

谢谢!!

https://blog.csdn.net/lixujie666/article/details/82153503 一、1. 有讲 : T表示A到B的变换 则Pa=T*Pb