坐标变换和坐标系变换学习记录

坐标系旋转是坐标变换的逆过程

A frame 到B frame的坐标系变换T(AB),也表示B frame 在A frame 中的位姿描述,也代表了把一个点从B frame里的坐标变换成在A frame里坐标的坐标变换。

如果我们已知某个点在相机坐标系C下的坐标pc,  现在我们要求该点在世界坐标系W下的坐标pw,那么此时我们就会有这样一个公式:

这里,Twc就是我们所说的坐标变换矩阵,同时他也是从世界坐标系W到相机坐标系C的坐标系变换矩阵。

一般在用旋转矩阵进行计算的时候,都是在描述坐标变换,比如某个坐标在另一个坐标系中的坐标值。而该旋转矩阵的值可以根据坐标系的旋转信息给出。

比如


上面这个旋转矩阵是根据坐标系的旋转信息得出,然后可以用来求取坐标的变换。

比如

首先车身坐标系顺时针旋转90度得到imu坐标系,即车身坐标系按照右手法则绕z轴负方向旋转90度,也就是车身坐标系按照右手法则旋转-90度,这样把a=-90度,代入到上面的式子2中,可以得到车身坐标系到imu坐标系的旋转矩阵T(-90度)。如果要把车身坐标系下的坐标P1转换到imu坐标系下的坐标需要使用的旋转矩阵就是T(90度)。坐标变换就是将该点P1在自身车身坐标系中右手定则正方向旋转90°,得到了在imu坐标系中的坐标值。总结一下这里由车身坐标系的P1到imu坐标系中P2点旋转矩阵的旋转角度是右手法则绕Z轴正方向旋转90°,但是从车身坐标系旋转到imu坐标系是绕Z轴右手法则正方向旋转-90°。

已知车身坐标系的点P1, 我们的目的是求P1在IMU坐标系的坐标P2。

我们只能通过旋转矩阵来计算出来P2,并不是描述坐标轴旋转 α ° \color{red}\alpha° α°,因为你旋转 α ° \color{red}\alpha° α°还是得通过旋转矩阵才能得到具体结果坐标。那么,前面计算得到的车辆坐标系下的旋转矩阵是右手法则绕Z轴正方向旋转90°,而从车辆坐标系到imu坐标系需要绕车辆坐标系的Z轴右手法则正方向旋转-90°,正好一正一负,即坐标系旋转是坐标变换的逆过程。

对于坐标轴旋转需要旋转两次的情况,可以自己做一下测试,应该还是一样顺序,例如坐标轴先绕X轴旋转a°,再绕Z轴旋转b°,那么坐标变换就是旋转矩阵先绕X轴旋转-a°,再绕Z轴旋转-b°,而不是旋转矩阵先绕Z轴旋转-b°,再绕X轴旋转-a°。我这里没验证,按照我代码里面的应该是这样。

————————————————

版权声明:本文为CSDN博主「Mister Zhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u011754972/article/details/120325711


关于右手坐标系与右手法则:

如果不明白这两个概念,可以参考右手坐标系与右手定则。

右手坐标系是用来指定X、Y、Z轴的正方向,并不能随意指定X、Y、Z轴的正方向;

右手定则是用来规定绕某轴旋转的正方向。右手法则的四指旋转方向为正。

你可能感兴趣的:(坐标变换和坐标系变换学习记录)