小言_互联网的博客

视觉SLAM笔记(8) 齐次坐标

402人阅读  评论(0)


1. 线性关系

视觉SLAM笔记(6) 欧氏变换
完整地表达了欧氏空间的旋转与平移

不过还存在一个小问题:这里的变换关系不是一个线性关系

假设进行了两次变换: R1,t1 和 R2,t2,满足:

但是从 a 到 c 的变换为:

这样的形式在变换多次之后会过于复杂


2. 齐次坐标和变换矩阵

因此,要引入齐次坐标和变换矩阵重写式:

这是一个数学技巧:把一个三维向量的末尾添加 1,变成了四维向量,称为齐次坐标

对于这个四维向量,可以把旋转和平移写在一个矩阵里面,使得整个关系变成了线性关系
该式中,矩阵 T 称为 变换矩阵(Transform Matrix)
暂时用 a ~ \tilde{a} 表示 a 的齐次坐标


2.1. 齐次坐标

稍微来说一下齐次坐标,它是 射影几何 里的概念
通过添加最后一维,用四个实数描述了一个三维向量
这显然多了一个自由度,但允许把变换写成线性的形式

在齐次坐标中,某个点 x 的每个分量同乘一个非零常数 k 后, 仍然表示的是同一个点
因此,一个点的具体坐标值不是唯一的
如 [1,1,1,1]T 和 [2,2,2,2]T 是同一个点
但当最后一项不为零时,总可以把所有坐标除以最后一项,强制最后一项为 1
从而得到一个点唯一的坐标表示(也就是转换成非齐次坐标):

这时,忽略掉最后一项,这个点的坐标和欧氏空间就是一样的
依靠齐次坐标和变换矩阵,两次变换的累加就可以有很好的形式:

但是区分齐次和非齐次坐标的符号挺厌烦的
在不引起歧义的情况下,以后就直接把它写成 b = T a 的样子
默认其中是齐次坐标了


2.2. 变换矩阵

关于变换矩阵 T,它具有比较特别的结构:
左上角为旋转矩阵,右侧为平移向量,左下角为 0 向量,右下角为 1

这种矩阵又称为 特殊欧氏群(Special Euclidean Group):


与 SO(3) 一样,求解该矩阵的逆表示一个反向的变换:

最后,为了保持符号的简洁,在不引起歧义的情况下,
以后不区别齐次坐标与普通的坐标的符号, 默认使用的是符合运算法则的那一种

例如,当写 T a Ta 时,使用的是齐次坐标(不然没法计算)
而写 R a Ra 时,使用的是非齐次坐标

如果写在一个等式中,就假设齐次坐标到普通坐标的转换,是已经做好了的
因为齐次坐标和非齐次坐标之间的转换事实上非常容易

回顾一下介绍的内容:

  1. 视觉SLAM笔记(6) 坐标系 说了向量和它的坐标表示,并介绍了向量间的运算

  2. 视觉SLAM笔记(7) 欧氏变换 说了坐标系之间的运动由欧氏变换描述,它由平移和旋转组成
    旋转可以由旋转矩阵 S O SO (3) 描述,而平移直接由一个 R R 3 向量描述

  3. 如果将平移和旋转放在一个矩阵中,就形成了变换矩阵 S E SE (3)


参考:

《视觉SLAM十四讲》


相关推荐:

视觉SLAM笔记(7) 欧氏变换
视觉SLAM笔记(6) 坐标系
视觉SLAM笔记(5) 编程基础
视觉SLAM笔记(4) SLAM的数学表述
视觉SLAM笔记(3) 视觉SLAM框架


谢谢!


转载:https://blog.csdn.net/qq_32618327/article/details/101020851
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场