《视觉SLAM十四讲》学习笔记-第四讲部分习题的证明思路

2023-11-06


1 验证SO(3)、SE(3) 和Sim(3) 关于乘法成群
证明:
先看SO(3). 定义为:

SO(3)={RR3×3|RR=I,det(R)=1} S O ( 3 ) = { R ∈ R 3 × 3 | R R ⊤ = I , det ( R ) = 1 }

  • 假设 R1,R2SO(3) R 1 , R 2 ∈ S O ( 3 ) , 先证明 R1R2SO(3) R 1 ∗ R 2 ∈ S O ( 3 ) :

    R1R2(R1R2)=R1R2R2R1=I R 1 ∗ R 2 ∗ ( R 1 ∗ R 2 ) ⊤ = R 1 ∗ R 2 R 2 ⊤ ∗ R 1 ⊤ = I

    再证其行列式为1:
    det(R1R2)=det(R1)det(R2)=1 det ( R 1 ∗ R 2 ) = det ( R 1 ) ⋅ det ( R 2 ) = 1

    所以 R1,R2SO(3)R1R2SO(3) R 1 , R 2 ∈ S O ( 3 ) ⇒ R 1 ∗ R 2 ∈ S O ( 3 ) .

  • 根据矩阵乘法,显然:

    (R1R2)R3=R1(R2R3) ( R 1 ∗ R 2 ) ∗ R 3 = R 1 ∗ ( R 2 ∗ R 3 )

  • 存在 I0R3×3 I 0 ∈ R 3 × 3 (单位矩阵), 使得:

    I0R=RI0=R I 0 ∗ R = R ∗ I 0 = R

    所以玄元为 I0 I 0 .

  • 根据定义 RR=I R R ⊤ = I , 所以逆为

    R1=RSO(3) R − 1 = R ⊤ ∈ S O ( 3 )

SE(3)的定义为:

SE(3)={T=[R0⃗ t⃗ 1]R4×4|RSO(3),t⃗ R3} S E ( 3 ) = { T = [ R t → 0 → 1 ] ∈ R 4 × 4 | R ∈ S O ( 3 ) , t → ∈ R 3 }

- 假设 T1,T2SE(3) T 1 , T 2 ∈ S E ( 3 ) , 证明 T1T2SE(3) T 1 ∗ T 2 ∈ S E ( 3 ) :
T1T2=[R10⃗ t⃗ 11][R20⃗ t⃗ 21]=[R1R20⃗ R1t⃗ 2+t⃗ 11] T 1 ∗ T 2 = [ R 1 t → 1 0 → 1 ] ∗ [ R 2 t → 2 0 → 1 ] = [ R 1 ∗ R 2 R 1 t → 2 + t → 1 0 → 1 ]

上述式子中,
R1,R2SO(3) R 1 , R 2 ∈ S O ( 3 ) , R1R2SO(3) R 1 ∗ R 2 ∈ S O ( 3 ) 已获得证明;
R1t⃗ 2+t⃗ 1R3 R 1 t → 2 + t → 1 ∈ R 3 .
满足SE(3)的定义。

  • 同样根据矩阵乘法原理, R1,R2,R3SO(3) R 1 , R 2 , R 3 ∈ S O ( 3 ) ,
    (R1R2)R3=R1(R2R3) ( R 1 ∗ R 2 ) ∗ R 3 = R 1 ∗ ( R 2 ∗ R 3 )
  • SE(3)的玄元为 I0R4×4 I 0 ∈ R 4 × 4
  • SE(3)在乘法下的逆为:
    T1=[R0⃗ t⃗ 1]1=[R0⃗ R1t⃗ 1]=[R0⃗ Rt⃗ 1] T − 1 = [ R t → 0 → 1 ] − 1 = [ R ⊤ − R − 1 t → 0 → 1 ] = [ R ⊤ − R ⊤ t → 0 → 1 ]

    Sim(3)的证明与SE(3)很类似,限于篇幅就不展开了。

2 验证 (R3,R,×) ( R 3 , R , × ) 构成李代数
前面文章已证。

3 **验证 so(3) s o ( 3 ) se(3) s e ( 3 ) 满足李代数要求的性质
so(3) s o ( 3 ) 已在前面文章中证明。下面只证明 se(3) s e ( 3 ) **.

4 证明式(4.20)与(4.21).
- 证明式(4.20)

a⃗ =0a3a2a30a1a2a10 a → ∧ = ( 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 )

所以,
a⃗ a⃗ =a22a32a1a2a1a3a1a2a12a32a2a3a1a3a2a3a12a22 a → ∧ a → ∧ = ( − a 2 2 − a 3 2 a 1 a 2 a 1 a 3 a 1 a 2 − a 1 2 − a 3 2 a 2 a 3 a 1 a 3 a 2 a 3 − a 1 2 − a 2 2 )

另外,
a⃗ a⃗ I=a1conj(a1)1a2conj(a1)a3conj(a1)a1conj(a2)a2conj(a2)1a3conj(a2)a1conj(a3)a2conj(a3)a3conj(a3)1 a → a → ⊤ − I = ( a 1 c o n j ( a 1 ) − 1 a 1 c o n j ( a 2 ) a 1 c o n j ( a 3 ) a 2 c o n j ( a 1 ) a 2 c o n j ( a 2 ) − 1 a 2 c o n j ( a 3 ) a 3 c o n j ( a 1 ) a 3 c o n j ( a 2 ) a 3 c o n j ( a 3 ) − 1 )

因为 a⃗  a → 单位长为1,所以 a21+a22+a23=1 a 1 2 + a 2 2 + a 3 2 = 1 ,所以 a⃗ a⃗ =a⃗ a⃗ I a → ∧ a → ∧ = a → a → ⊤ − I .

  • 证明式(4.21)
    a⃗ a⃗ a⃗ =0a3a22a3(a12+a32)a2a32+a2(a12+a22)a3a12+a3(a22+a32)0a1a32a1(a12+a22)a2a12a2(a22+a32)a1a22+a1(a12+a32)0 a → ∧ a → ∧ a → ∧ = ( 0 a 3 a 1 2 + a 3 ( a 2 2 + a 3 2 ) − a 2 a 1 2 − a 2 ( a 2 2 + a 3 2 ) − a 3 a 2 2 − a 3 ( a 1 2 + a 3 2 ) 0 a 1 a 2 2 + a 1 ( a 1 2 + a 3 2 ) a 2 a 3 2 + a 2 ( a 1 2 + a 2 2 ) − a 1 a 3 2 − a 1 ( a 1 2 + a 2 2 ) 0 )

    注意到 a21+a22+a23=1 a 1 2 + a 2 2 + a 3 2 = 1 ,且
    a⃗ =0a3a2a30a1a2a10 − a → ∧ = ( 0 a 3 − a 2 − a 3 0 a 1 a 2 − a 1 0 )

    所以: a⃗ a⃗ a⃗ =a⃗  a → ∧ a → ∧ a → ∧ = − a → ∧

5 验证 Rp⃗ R=(Rp⃗ ) R p → ∧ R ⊤ = ( R p → ) ∧ .
证明比较难,暂没有时间钻研,留待以后再补上。
6 比较重要的几个公式

(1)

Rp⃗ R=(Rp⃗ ) R p → ∧ R ⊤ = ( R p → ) ∧

(2) SO(3)的伴随

Rexp(p⃗ )R=exp((Rp⃗ )) R exp ⁡ ( p → ∧ ) R ⊤ = exp ⁡ ( ( R p → ) ∧ )

(3) SE(3)的伴随性质
Texp(ξ)T1=exp((Ad(T)ξ)) T exp ⁡ ( ξ ) T − 1 = exp ⁡ ( ( A d ( T ) ξ ) ∧ )

其中:
Ad(T)=[R0t⃗ RR] A d ( T ) = [ R t → ∧ R 0 R ]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《视觉SLAM十四讲》学习笔记-第四讲部分习题的证明思路 的相关文章

  • 大师兄!SLAM 为什么需要李群与李代数?

    from https mp weixin qq com s sVjy9kr 8qc9W9VN78JoDQ 作者 electech6 来源 计算机视觉life 编辑 Tony 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候 都有点
  • ROS STAGE教程2(地图定义和GMAPPING建图)

    目前用在ROS Kinetic上的stage版本为4 1 官方教程http rtv github io Stage modules html 用户可以用stage或者gazebo来创建地图和机器人 传感器模型来进行仿真 并与自己的SLAM模
  • ubuntu系统下配置vscode编译cmake

    文章目录 一 配置vs code运行c 代码 三个关键文件介绍 1 tasks json run helloworld cpp 1 1 打开cpp文件 使其成为活动文件 1 2 按编辑器右上角的播放按钮 1 3生成task文件 1 4 此时
  • LIO-SAM:在高斯牛顿法求解过程中用SO3代替欧拉角

    LIO SAM发表于IROS2020 是一个效果非常好的惯性 激光紧耦合里程计 我打算给我们的机器人搞一个激光里程计 于是打算把LIO SAM改一改搞过来 修改过程中发现一个问题 在里程计求解 mapOptimization的LMOptim
  • 基于深度相机的三维重建技术

    本文转载自http www bugevr com zblog id 14 原创作者bugeadmin 转载至我的博客 主要是为了备份 日后查找方便 谢谢原创作者的分享 三维重建 3D Reconstruction 技术一直是计算机图形学和计
  • 【大一立项】如何亲手搭建ROS小车:硬件和软件介绍

    本次博客将详细介绍上篇博客中提到的ROS小车的硬件和软件部分 由于十一实验室不开门 所以部分代码还没有上传到Github 下位机 下位机使用Arduino 因为大一上刚学完用Arduino做循迹小车 其实Arduino作为ROS小车的下位机
  • 视觉SLAM实践入门——(20)视觉里程计之直接法

    多层直接法的过程 1 读图 随机取点并计算深度 2 创建图像金字塔 相机内参也需要缩放 并计算对应点的像素坐标 3 应用单层直接法 使用G N L M等方法 或者使用g2o ceres库 进行优化 源码中有一些地方会引起段错误 修改方法见下
  • 对最小二乘法的一点理解 - slam学习笔记

    我对最小二乘法的理解 在给定参数个数和函数模型之后 根据测试数据 找出与所有测试数据的偏差的平方和最小的参数 这里面应该有两个问题 1 为什么选取与真实数据平方和最小的拟合函数 2 如何求参数 为什么选取与真实数据平方和最小的拟合函数 极大
  • 视觉SLAM漫谈(二):图优化理论与g2o的使用

    视觉SLAM漫谈 二 图优化理论与g2o的使用 1 前言以及回顾 各位朋友 自从上一篇 视觉SLAM漫谈 写成以来已经有一段时间了 我收到几位热心读者的邮件 有的希望我介绍一下当前视觉SLAM程序的实用程度 更多的人希望了解一下前文提到的g
  • [SLAM四元数基础系列一] 四元数定义 Hamilton vs JPL

    四元数定义 Hamilton vs JPL 简介 四种区分方式 Hamilton vs JPL 引用 不管是卡尔曼滤波或者BA优化形式的SLAM或者VIO系统中 都需要用到单位四元数 Quaternion 来表示旋转 主要是单位四元数表示旋
  • LeGO-LOAM 系列(1): LeGO-LOAM 安装以及概述

    一 github GitHub RobustFieldAutonomyLab LeGO LOAM 二 安装依赖 1 ROS Ubuntu 64 bit 16 04 ROS Kinetic 比较常规 就不赘述了 2 gtsam Georgia
  • 图像匹配算法

    图像匹配算法分为3类 基于灰度的匹配算法 基于特征的匹配算法 基于关系的匹配算法 1 基于灰度的模板匹配算法 模板匹配 Blocking Matching 是根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像 基于灰度的匹配算法也称作
  • 互转(经纬度、地心坐标、东北天坐标)

    Part1三种坐标系介绍 经纬度坐标 假设空间某点P 用经纬度表示的话 你们B代表纬度 L代表经度 H代表大地高 纬度B P点沿着地球法线方向与赤道面的夹角 向北为正称为北纬 0 90 向南为负称为南纬 0 90 实际表示可以用 90 90
  • IMU预积分的一些理解

    IMU预积分 算是比较简单的一个算法 无奈网上找到的资料都讲的晦涩难懂 看明白了也觉得不过如此 讲一下我的理解 整体流程 1 推导IMU离散运动方程 2 根据离散运动方程 进行预积分 并将预积分的误差项拆分出来 因为我们在定义误差的时候 有
  • Lego-LOAM IMU坐标系变换的详细记录

    Lego LOAM IMU坐标系变换的详细记录 0 基础知识 1 IMU 重力加速度消除 2 相机坐标系 camera 到初始坐标系 camera init 的转换 最近看了Lego LOAM 的IMU部分 没看懂IMU的坐标系变换 看其它
  • Eigen::aligned_allocator

    如果STL容器中的元素是Eigen库数据结构 例如这里定义一个vector容器 元素是Matrix4d 如下所示 vector
  • lego-LOAM跑自己的数据包无法显示全局点云地图解决(速腾聚创RS-LiDAR-16 雷达 )---SLAM不学无术小问题

    LeGo LOAM跑自己的数据包无法显示全局地图问题 注意 本文笔者使用环境 Ubuntu18 04 ROS melodic 版本 背景 3D SLAM新手 在看到了各种狂拽炫酷的3D点云图的之后决定亲自上手一试 首先当然的是最为经典的LO
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • SLAM练习题(十一)—— G2O实战

    SLAM 学习笔记 写在前面的话 算是一点小小的感悟吧 估计位姿的方法有线性方法和非线性方法 线性方法就是特征点法中的2D 2D的对极约束 3D 2D的PnP问题 非线性方法有BA优化 它将位姿的估计问题转换成了一个误差关于优化量的最小二乘
  • Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

    文章目录 一 下载Autoware1 15源码 二 安装依赖 三 修改CUDA版本 四 编译以及报错解决 编译 1 报 undefined reference to cv Mat Mat 的错就按照下面方式改相应包 2 遇到OpenCV的C

随机推荐

  • 【工具分享】配置淘宝镜像

    配置淘宝镜像 淘宝镜像地址 https registry npmmirror com 命令行配置 npm config set registry https registry npmmirror com 使用 nrm 配置 使用 npm 全
  • java 断言 assert 详解:断言开启、断言使用

    java中的断言Assert的使用 一 背景 二 如何判断是否开启了断言 三 开启断言 四 断言的使用 方法一 assert
  • unity 3D 自学笔记

    刚开始 创建一个正方体 窗口布局 恢复默认窗口 场景 默认场景中只有一个主摄像机和平行光源 3D物体 Duplicate 复制 Delete 删除 3D视图 导航器 Gizmo 表示世界坐标的方向 栅格 Grid 表示XZ坐标平面 天空盒
  • oracle 查询本年12月,Oracle查询1-12月数据

    模拟数据表 create table TB id int time datetime count int 添加模拟数据 insert TB select 1 2012 12 01 02 00 00 42 union all select 1
  • 神经网络:Epoch、Batch Size和迭代

    Epoch Batch Size和迭代 深度学习模型离不开这3个术语 下面我们来了解下它们的区别 和联系 背景知识 梯度下降 分三点 1 直观理解 2 梯度下降怎么做 3 梯度下降有啥用 1 直观理解梯度下降 其实它没啥就是让计算机不断猜最
  • Java 中正则表达式的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 Java提供正则表达式技术 专门用于处理文本问题 简单的说 正则表达式 regular expression 是对字符串执行模式匹
  • cpu,内存条,硬盘,显卡,主板,显示器之间的关系

    cpu不能直接处理硬盘上的数据 操作系统将硬盘上的数据传输到内存条上 cpu再处理内存条上的数据 如果是图像则通过显卡在显示器上输出 如果是声音数据则被发送到声卡 cpu 内存条 硬盘 显卡都是插在主板上的 这几个都是通过主板将其组织起来
  • ERROR in ./src/vue/login.vue?vue&type=template&id=28b333d2& 2:0 Module parse failed: Unexpected toke

    简单 https blog csdn net qq 25835645 article details 83473078 通俗易懂 清晰 https blog csdn net cominglately article details 805
  • vue富文本编辑器 组件封装

    Vue Quill Editor vue quill editor基本配置 gt npm install vue quill editor s main js中引入 import VueQuillEditor from vue quill
  • N+1查询问题

    一 概述 N 1的问题主要出现在发起关联查询时 例如 select from CUSTOMERS select from ORDERS where CUSTOMER ID 1 select from ORDERS where CUSTOME
  • 安装npm 并启动vue 项目

    1 windows查看是否安装npm Win R 输入cmd 输入npm v D wwwroot etc com gt node v 6 13 4 D wwwroot etc com gt v8 17 0 2 解决 npm ERR miss
  • POWER BI - 与其他BI工具的比较

    Power BI vs Tableau Tableau被认为是BI市场中的领先工具之一 Power BI被认为是与Tableau紧密竞争的新兴工具 因为它具有后端数据处理功能以及与数据源列表的连接 Tableau是市场上最好的数据可视化工具
  • 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt moviepy音视频剪辑实战 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 引言 笔者本人对音视频编码处理的基本概念
  • linux网络编程(四)多路I/O转接服务器

    文章目录 1 多路I O转接服务器 2 select 方式的多路I O转接服务器 3 poll 方式的多路I O转接服务器 4 epoll 方式的多路I O转接服务器 1 多路I O转接服务器 多路IO转接服务器也叫做多任务IO服务器 该类
  • QT自定义Tab标签页,可以删除、添加、修改和选中

    先看效果 部分源码 pragma once include
  • 破解Zip加密文件常用的几种方法

    前言 在互联网的浪潮中 大家也许碰到过这种情况 从网络上下载了一个zip文件 最后却发现它是用密码保护的 或者自己用密码加密了一个很重要zip文件 但是一段时间后忘记了密码 无法打开 这个时候 我们就可能就需要对这个加密文件进行破解了 而随
  • 第六站:零基础认识JS的基础语法

    欢迎来到 JavaWeb的奇妙冒险 教学系列 在这里 我们将继续探索Web开发的精彩世界 本站将为你揭开JavaScript的神秘面纱 让我们在学习的过程中既轻松愉快 又能掌握高质量的知识 准备好进入第六站的学习之旅了吗 让我们开始吧 第六
  • Java定时任务调度工具Quartz(一)——简单介绍

    引言 最近因为疫情闹得严重 业务部门需求少了很多 我这边相对比以前轻松一丢丢 终于可以把许多年前心头大患梳理一下搞一搞了 我的心头大患是什么呢 就是这个系统的26个跑批 完全依赖JAR包 没有可视化操作页面 没有系统监控调度工具 就那么跑
  • sqli-labs Less18 原理到实现详解

    目录 前期知识储备 一 初始思路 1 思路 2 user agent后加入 发现出现sql错误日志 3 我尝试了之前用的各种闭合方法 都已失败告终 4 新的问题 5 现在想的是如何利用mysql插入语句insert实现注入 前期知识储备 从
  • 《视觉SLAM十四讲》学习笔记-第四讲部分习题的证明思路

    1 验证SO 3 SE 3 和Sim 3 关于乘法成群 证明 先看SO 3 定义为 SO 3 R R3 3 RR I det R 1 S O 3 R