视觉SLAM14讲笔记-第3讲-三维空间刚体运动

这篇具有很好参考价值的文章主要介绍了视觉SLAM14讲笔记-第3讲-三维空间刚体运动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

空间向量之间的运算包括:
数乘、加法、减法、内积、外积。
内积:可以描述向量间的投影关系,结果是一个标量。
a ⃗ ⋅ b ⃗ = ∑ i = 1 3 a i b i = ∤ a ∤ ∤ b ∤ c o s ⟨ a , b ⟩ \vec{a} \cdot \vec{b}=\sum_{i=1}^3{{a _i}{b_i}} =\nmid a \nmid \nmid b \nmid cos \langle a,b \rangle a b =i=13aibi=a∤∤bcosa,b

外积:外积的方向垂直于这两个向量,大小为两个向量张成的四边形的有向面积,结果还是一个向量。
a × b = a ∧ ⋅ b a \times b = a^{\wedge } \cdot b a×b=ab
a ∧ a^{\wedge } a a ⃗ \vec{a} a 的反对称矩阵。

旋转向量的引出:由两个向量的外积引出,在右手法则下,我们用右手的4个指头从a转向b,大拇指朝向就是旋转向量的方向,事实上也是 a × b a \times b a×b的方向。

旋转矩阵是正交矩阵。即满足 A T ⋅ A = E A^{T} \cdot A = E ATA=E 。即旋转矩阵的逆为自身转置的矩阵。且是一个行列式为1的正交矩阵。注意:旋转矩阵不一定是对称矩阵。

齐次坐标系的引出:因为空间运动不止有旋转,还有平移,例如
a ′ = R a + t a^{\prime }=Ra+t a=Ra+t
转换为矩阵形式
[ a ′ 1 ] = [ R t 0 1 ] [ a 1 ] = T [ a 1 ] \begin{bmatrix} a^{\prime }\\ 1\end{bmatrix}=\begin{bmatrix} R&t\\ 0&1\end{bmatrix} \begin{bmatrix} a\\ 1\end{bmatrix} = T\begin{bmatrix} a\\ 1\end{bmatrix} [a1]=[R0t1][a1]=T[a1]
T为变换矩阵, [ a 1 ] \begin{bmatrix} a\\ 1\end{bmatrix} [a1]为向量a的齐次形式。即在一个三维向量的末尾添加1,将其变成了四维向量,称为齐次坐标。

关于变换矩阵T的逆,也有公式,如下:
T − 1 = [ R T − R T t 0 1 ] T^{-1} = \begin{bmatrix} R^{T}&-R^{T}t\\ 0&1\end{bmatrix} T1=[RT0RTt1]

的引出:上面我们看到的旋转矩阵R是特殊正交群(Special Orthogonal Group)。变换矩阵T称为特殊欧式群(Special Euclidean Group)。

旋转向量的第2次引出:由于旋转矩阵由(9个元素)和变换矩阵由(16个元素)组成,存在冗余,且自身带有约束(旋转矩阵必须是个正交矩阵),不利于导数的计算(后面使用非线性优化的方式,要对求解元素求导)。而旋转向量可以用3个元素描述,平移向量可以用3个元素描述。

罗德里格斯公式的引出:指导旋转向量到旋转矩阵的转换。
R = cos ⁡ θ ⋅ I + ( 1 − c o s θ ) n n T + s i n θ n ∧ R=\cos\theta\cdot I +(1-cos\theta)nn^{T} + sin\theta n^{\wedge} R=cosθI+(1cosθ)nnT+sinθn
反之也可以得到旋转矩阵到旋转向量的转换。

欧拉角的引出:为了直观的表述绕X、Y、Z角度变化了多少,引出了欧拉角,根据绕不同轴的前后顺序,可以有不同类型的欧拉角,一般最常见的是rpy角(它是按ZYX的旋转顺序,rpy对应yaw-pitch-roll,即偏航-俯仰-滚转)。
但是有奇异性,所以在slam中很少用欧拉角表达姿态。

四元数的引出:正是由于欧拉角的奇异性,所以才有了四元数的引出。缺点是不够直观。一个四元数拥有1个实部和3个虚部。
q = q 0 + q 1 i ⃗ + q 2 j ⃗ + q 3 k ⃗ {q}=q_0 + q_1\vec{i} +q_2\vec{j}+q_3\vec{k} q=q0+q1i +q2j +q3k
Eigen中我们习惯使用下面对应表示
q = w + x i ⃗ + y j ⃗ + z k ⃗ {q}=w + x\vec{i} +y\vec{j}+z\vec{k} q=w+xi +yj +zk

假设某个旋转是绕单位向量 n = [ n x , n y , n z ] n= \begin{bmatrix} n_x,&n_y,&n_z\\ \end{bmatrix} n=[nx,ny,nz]进行了角度为 θ \theta θ的旋转
旋转向量和四元数的转换
q = [ c o s θ 2 , n x s i n θ 2 , n y s i n θ 2 , n z s i n θ 2 ] T q=\begin{bmatrix} cos\dfrac{\theta}{2},&n_xsin\dfrac{\theta}{2},&n_ysin\dfrac{\theta}{2},&n_zsin\dfrac{\theta}{2}\\ \end{bmatrix}^{T} q=[cos2θ,nxsin2θ,nysin2θ,nzsin2θ]T
反之,四元数也可以转换为旋转向量
{ θ = 2 a r c c o s q 0 [ n x , n y , n z ] T = [ q 1 , q 2 , q 3 ] T / s i n θ 2 \begin{cases} \theta = 2arccosq_0 \\ \begin{bmatrix} n_x,&n_y,&n_z\\ \end{bmatrix}^{T}= \begin{bmatrix} q_1,&q_2,&q_3\\ \end{bmatrix}^{T}/sin\dfrac{\theta}{2}\\ \end{cases} θ=2arccosq0[nx,ny,nz]T=[q1,q2,q3]T/sin2θ

四元数之间的运算不过多复述,感觉目前用的地方并不多。

这里再提一下四元数与旋转矩阵之间的转换
假设四元数为 q = q 0 + q 1 i ⃗ + q 2 j ⃗ + q 3 k ⃗ {q}=q_0 + q_1\vec{i} +q_2\vec{j}+q_3\vec{k} q=q0+q1i +q2j +q3k ,则
R = [ 1 − 2 q 2 2 − 2 q 3 2 2 q 1 q 2 − 2 q 0 q 3 2 q 1 q 3 + 2 q 0 q 2 2 q 1 q 2 + 2 q 0 q 3 1 − 2 q 1 2 − 2 q 3 2 2 q 2 q 3 − 2 q 0 q 1 2 q 1 q 3 − 2 q 0 q 2 2 q 2 q 3 + 2 q 0 q 1 1 − 2 q 1 2 − 2 q 2 2 ] R = \begin{bmatrix} 1-2q_2^2-2q_3^2&2q_1q_2-2q_0q_3&2q_1q_3+2q_0q_2\\ 2q_1q_2+2q_0q_3&1-2q_1^2-2q_3^2&2q_2q_3-2q_0q_1 \\2q_1q_3-2q_0q_2&2q_2q_3+2q_0q_1&1-2q_1^2-2q_2^2 \end{bmatrix} R= 12q222q322q1q2+2q0q32q1q32q0q22q1q22q0q312q122q322q2q3+2q0q12q1q3+2q0q22q2q32q0q112q122q22

由旋转矩阵到四元数
q 0 = t r ( R ) + 1 2 , q_0 =\dfrac{\sqrt{tr(R)+1}}2, q0=2tr(R)+1 , q 1 = m 23 − m 32 4 q 0 , q_1 =\dfrac{m_{23}-m_{32}}{4q_0}, q1=4q0m23m32,

q 2 = m 31 − m 13 4 q 0 , q_2 =\dfrac{m_{31}-m_{13}}{4q_0}, q2=4q0m31m13, q 2 = m 12 − m 21 4 q 0 , q_2 =\dfrac{m_{12}-m_{21}}{4q_0}, q2=4q0m12m21,

3D空间的几种变换:
欧式变换:也称为刚体变换,长度、夹角,体积不随着变换而改变。
相似变换:增加了缩放系数,体积比不变。
仿射变换:进一步抽象,变换后仍然保持平行性,同时增加了缩放系数。
射影变换:再进一步抽象,从真实世界到相机照片的变换是一个射影变换。
随着变换的进一步抽象,自由度的变化也在变化,如下:
变换名称 矩阵形式 自由度 欧式变换 [ R t 0 1 ] 6 相似变换 [ s R t 0 1 ] 7 仿射变换 [ A t 0 1 ] 12 射影变换 [ A t a T 1 ] 15 \begin{array}{c|lcr} \text{变换名称} & \text{矩阵形式} & \text{自由度} \\ \hline 欧式变换 & \begin{bmatrix} R&t\\ 0&1\end{bmatrix} & 6 \\ 相似变换 &\begin{bmatrix} sR&t\\ 0&1\end{bmatrix} & 7 \\ 仿射变换 & \begin{bmatrix} A&t\\ 0&1\end{bmatrix} & 12 \\ 射影变换 & \begin{bmatrix} A&t\\ a^T&1\end{bmatrix}& 15 \end{array} 变换名称欧式变换相似变换仿射变换射影变换矩阵形式[R0t1][sR0t1][A0t1][AaTt1]自由度671215

习题1:验证旋转矩阵是正交矩阵
参考网址:https://zhuanlan.zhihu.com/p/419854977文章来源地址https://www.toymoban.com/news/detail-679802.html

到了这里,关于视觉SLAM14讲笔记-第3讲-三维空间刚体运动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】用Ceres从三维点中拟合三维空间中的圆

    在三维空间中有N个点,需要得到过这N个点的最优圆,需要估计圆的圆心、半径和法向量,本文提供了一种方法和代码示例,利用Ceres进行非线性拟合,在cpp上开发。 圆心为三维,半径一维,法向量三维,总共是7维的拟合参数。三个点确定一个圆,所以需要大于等于3的点数。

    2024年02月12日
    浏览(38)
  • 三维空间离散点如何拟合平面?

      在点云建模过程中,有时需要对扫描建模的点云进行标定,在实际使用中往往以地面做为参照平面,需要将扫描的三维空间点云进行拟合平面,以便纠正扫描结果。本文对三维空间离散点拟合平面算法进行总结,并给出几种编程语言下的算法实现代码。    (1)最小二

    2024年02月11日
    浏览(41)
  • 【必备知识】 三维空间/坐标转换/相机知识

    以下内容包含了2D坐标与3D坐标系之间的转换以及关于相机场的基础知识,理解这部分内容可以更快入门SLAM相关、多视角合成、三维空间变换等内容。 照相机制造过程中的一些涉及到透镜精密以及组装工艺等原因需要对图像进行相应的矫正。如下所示: 需要建立世界坐标系到

    2024年02月03日
    浏览(42)
  • 04-附注 三维空间中的线性变换

    这是关于3Blue1Brown \\\"线性代数的本质\\\"的学习笔记。 图1 绕y轴旋转90° 绕y轴旋转90°后,各基向量所在的坐标如图1所示。用旋转后的各基向量作为矩阵的列,就得到变换矩阵。变换矩阵就是对原向量就是缩放、旋转。

    2024年02月05日
    浏览(39)
  • PCL 判断两条线段的平行性(三维空间)

    这里使用一种比较有趣的方式来判断三维空间中两条线段的平行性,我们都知道两条线段所代表的矢量进行叉乘计算所得数值,代表了由这两条线段组成的平行四边形的面积值,如下图所示: ok,那么如果将此结论推广到三维空间呢?可以得到下面的形式: 其中, i ⃗

    2024年02月10日
    浏览(41)
  • 【数理知识】求两个三维空间点的坐标矩阵之间,任意两两点之间的空间距离,matlab 实现

    假设有两个包含了三维空间点坐标的,三维向量集 A A A 和 B B B ,两集合中分别有 m m m 个和 n n n 个三维空间坐标点,可以用矩阵表示为 A = [ a 1 x a 2 x a 3 x ⋯ a m x a 1 y a 2 y a 3 y ⋯ a m y a 1 z a 2 z a 3 z ⋯ a m z ] 3 × m , B = [ b 1 x b 2 x b 3 x ⋯ b n x b 1 y b 2 y b 3 y ⋯ b n y b 1 z b 2 z b 3 z ⋯

    2024年02月11日
    浏览(47)
  • 【线性代数-3Blue1Brown】- 5 三维空间的线性变换

    飞书原文档:Docs  

    2024年02月11日
    浏览(38)
  • ArcGIS Pro实践技术应用、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合

    GIS是利用电子计算机及其外部设备,采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲,它是在一定的地域内,将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来,达到对地理和属性信息的综合管理。GIS的研究对象是整个地理空间,而地

    2024年02月09日
    浏览(45)
  • 三维重建_体素重建_空间雕刻法/体素着色法

    目录 1. 三角化和体素重建的区别 2. 空间雕刻法  空间雕刻法的一致性定义  空间雕刻法具体实现  基于八叉树的空间雕刻法具体实现​编辑  空间雕刻法效果展示  3. 体素着色法  体素着色法的缺点:不唯一性​编辑 体素着色法不唯一性解决措施​编辑  体素着色发实验

    2024年02月11日
    浏览(69)
  • 空间三维模型的编码结构光方法实现:基于EinScan-S软件

      本文介绍基于 EinScan-S 软件,实现 编码结构光 方法的空间三维模型重建的具体操作。 目录 1 相关原理 1.1 编码结构光成像原理 1.2 编码结构光编码方式 1.3 编码结构光与侧影轮廓方法比较 1.4 编码结构光方法流程 2 三维模型制作 2.1 防晒霜罐三维模型制作 2.1.1 前期准备工作

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包