坐标变换(2)—不同坐标系下的变换

如下图所示,在自动驾驶车辆上会存在大量冗余的传感器,例如轮速传感器、激光雷达,毫米波雷达,摄像头,超声波雷达,GPS,IMU等。不同传感器对同一物体的测量原始结果都是在自身坐标下,所以首先我们需要对多传感器就行标定(即获得不同坐标系之间的变换关系,多传感器的标定是个非常复杂且困难的问题,这里先不介绍),将所有传感器的输出统一到一个坐标系下。

图1.自动驾驶车辆上的多传感器

本文主要介绍不同坐标系之间变换的原理,在这里我们采用一个体系,即存在一个世界坐标系,我们定义的位置或者姿态都是参考世界坐标系或者世界坐标系定义的笛卡尔坐标系,且讨论的维度为3维。

1. 位置、姿态与坐标系

1.1 位置

一旦我们定义了一个坐标系,对于空间中某一点的位置我们就能用一个3\times1的列向量来表示。如图1所示,我们在世界坐标系下还定义了很多坐标系,所以在定义位置向量时,必须附加一个条件,表明是哪个坐标系下的。

在本文中,我们用左上标来描述具体的坐标系,例如^{A}P表明列向量P在坐标系A下定义的。

图2 坐标系A

^{A} P=\left[\begin{array}{l} {p_{x}} \\ {p_{y}} \\ {p_{z}} \end{array}\right]

1.2 姿态

为了描述物体的姿态,我们将在物体上固定一个坐标系,并且给出此坐标系相对于参考坐标系的表达。所以位置用列向量描述,姿态可以用固定在物体上的坐标系描述。

这里我们定义参考坐标系A,用X_{A},Y_{A},Z_{A}表示坐标系A 的三个主轴的单位向量,而^{A}X_{B},^{A}Y_{B},^{A}Z_{B} 为坐标系B的三个主轴的单位向量(相对于参考坐标系A),并利用^{A}X_{B},^{A}Y_{B},^{A}Z_{B}顺序排列,组成了一个3\times3 的矩阵,称为旋转矩阵,用符号_{B}^{A} R表示,

_{B}^{A} R=\begin{bmatrix} ^{A}X_{B}& ^{A}Y_{B} & ^{A}Z_{B} \end{bmatrix}=\left[\begin{array}{ccc} {r_{11}} & {r_{12}} & {r_{13}} \\ {r_{21}} & {r_{22}} & {r_{23}} \\ {r_{31}} & {r_{32}} & {r_{33}} \end{array}\right]

其中,标量r_{ij}也可以利用坐标系B对应主轴在参考坐标系A中各主轴的投影来表示(利用内积求每个坐标轴的投影值),

_{B}^{A} R=\begin{bmatrix} ^{A}X_{B}& ^{A}Y_{B} & ^{A}Z_{B} \end{bmatrix}=\left[\begin{array}{ccc} { {\boldsymbol{X}}_{\boldsymbol{B}} \cdot {\boldsymbol{X}}_{\boldsymbol{A}}} & { {\boldsymbol{Y}}_{\boldsymbol{B}} \cdot {\boldsymbol{X}}_{\boldsymbol{A}}} & { {\boldsymbol{Z}}_{\boldsymbol{B}} \cdot {\boldsymbol{X}}_{\boldsymbol{A}}} \\ { {\boldsymbol{X}}_{\boldsymbol{B}} \cdot {\boldsymbol{Y}}_{A}} & { {\boldsymbol{Y}}_{\boldsymbol{B}} \cdot {\boldsymbol{Y}}_{A}} & { {\boldsymbol{Z}}_{\boldsymbol{B}} \cdot {\boldsymbol{Y}}_{\boldsymbol{A}}} \\ { {\boldsymbol{X}}_{\boldsymbol{B}} \cdot {\boldsymbol{Z}}_{\boldsymbol{A}}} & { {Y}_{\boldsymbol{B}} \cdot {Z}_{A}} & { {\boldsymbol{Z}}_{\boldsymbol{B}} \cdot {\boldsymbol{Z}}_{\boldsymbol{A}}} \end{array}\right]

在上式最右边矩阵中省略了上标,事实上只要点积的各对向量是在同一坐标系中描述的,那么坐标系的选择可以是任意的。由于上式右边矩阵中的向量均为单位向量,所以通过内积计算的结果是两者之间夹角的余弦,所以上述矩阵也称为方向余弦矩阵

由上式可以看出,矩阵的行是单位向量\{A\}\{B\}中的描述( 即^{B}X_{A} ),即,

_{B}^{A} R=\begin{bmatrix} ^{A}X_{B}& ^{A}Y_{B} & ^{A}Z_{B} \end{bmatrix}=\left[\begin{array}{c} {^{B}{X}_A^{T}} \\ {^{B}{Y}_{A}^{T}} \\ {^{B}{Z}_{A}^{T}} \end{array}\right]

进而,可以得到,

_{B}^{A}R={_{A}^{B}R}^{T}

而,

\left[\begin{array}{c} {^{A}{X}_B^{T}} \\ {^{A}{Y}_{B}^{T}} \\ {^{A}{Z}_{B}^{T}} \end{array}\right]\begin{bmatrix} ^{A}X_{B}& ^{A}Y_{B} & ^{A}Z_{B} \end{bmatrix}= {_{B}^{A}R}^{T} {_{B}^{A} R}=I_{3}

从而还得到旋转矩阵是一个正交矩阵

1.3 坐标系

在自动驾驶中,位置和姿态总是成对出现的,我们将此组合称为坐标系。一个坐标系可以等价的用一个位置向量和一个旋转矩阵来描述。

例如,我们用_{B}^{A}R^{A}P_{BORG}来描述坐标系B,而参考坐标系为A。其中^{A}P_{BORG}是坐标系B在参考坐标系A中的原点的位置向量,而_{B}^{A}R是坐标系B的姿态。

2. 坐标变换

这里的坐标变换指的是将一个坐标系中的向量在其他坐标系中进行变换(描述),向量本身并没有变换,只不过对它的描述变换了

2.1 平移变换

如下图3所示,

图3平移变换

在坐标系B中,我们用向量^{B}P描述了其中一个位置,现在要将该向量变换到坐标系A中,也就是将该向量在A中进行描述,这里假设 AB的姿态相同,易得,

^{A}P={^{B}P}+{^{A}P_{BORG}}

2.2 旋转变换

如下图所示,

图4 旋转变换

我们用_{B}^{A}R表示坐标系B在参考坐标系A中的描述,现在已知参考系B中的位置向量^{B}P,求其在参考坐标系A中的描述?

我们知道,一个位置向量在其参考坐标系中的三个轴的分量都是该向量在对应三个轴上的投影,而投影的大小可以利用向量的点积进行计算。因此我们可以将^{A}P的分量计算如下,

\begin{aligned} ^{A} p_{x}={^{B}{X}_{A}} \cdot{^{B} P}\\ ^{A} p_{y}={^{B}{Y}_{A}} \cdot{^{B} P}\\ ^{A} p_{z}={^{B}{Z}_{A}} \cdot{^{B} P} \end{aligned}

上面式中,我们首先将坐标系A在坐标系B中去描述, 前面介绍过,只要点积的各对向量是在同一坐标系中描述的,那么坐标系的选择可以是任意的。这里{^{B}{X}_{A}}{^{B} P}都是在坐标系B下描述,所以可以利用点积直接计算出^{B}Px轴方向的投影。将上面三式写成矩阵形式,由前面可知,_{B}^{A} R的行就是{^{B}{X}_{A}},{^{B}{Y}_{A}},{^{B}{Z}_{A}}

^{A}P={_{B}^{A} R} {^{B}P}

有个便于记忆的小技巧,前面的矩阵的下标B消去了后面矩阵的上标 B

2.3 旋转平移

考虑下面的情况,既有平移,又有旋转,如何求 ^{A}P

图5 旋转平移

首先,我们将{^{B}P} 变换到一个中间的过渡坐标系,这个坐标系和 A 的姿态相同,原点和 B 重合。然后再利用简单的向量加法将向量进行平移,即

^{A}P={_{B}^{A} R} {^{B}P}+{^{A}P_{BORG}}

但是上述公式不是线性的,利用一点数学变换,可以得到一个更简单的公式,

\left[\begin{array}{c} {^{A}{P}} \\ {1} \end{array}\right]=\left[\begin{array}{c|c} {_{B}^{A} R} & {P_{B O R G}} \\ \hline 0 & {1} \end{array}\right]\left[\begin{array}{c} {^{B}{P}} \\ {1} \end{array}\right]

所以可以变换成下式统一的格式,

^{A}P={_{B}^{A} T} {^{B}P}

其中,称 T4\times4 其次变换矩阵

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容