《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识

目录

2.1 几何学

        向量的内积和外积

        旋转矩阵

        旋转向量

        四元数 

         李群和李代数

        SO(3)上的 BCH 线性近似式 

 2.2 运动学

        李群视角下的运动学

        SO(3) + t 上的运动学

         线速度和加速度

        扰动模型和雅可比矩阵

         典型算例:对向量进行旋转

        典型算例:旋转的复合

2.3 滤波器和最优化理论 

        状态估计问题与最小二乘

           KF 卡尔曼滤波(线性系统)

        EKF 扩展卡尔曼 (非线性系统)

         最优化方法和图优化​编辑

        优化和滤波


2.1 几何学

        向量的内积和外积

        旋转矩阵

        旋转向量

        四元数 

        三维旋转也可以由单位四元数表示。注意:单位四元数的逆等于其共轭。即 q_{unit}^{-1}=q_{unit}^{*} 。任意的旋转都可以由两个互为相反数的四元数表示。

        旋转向量和四元数的转换关系如下:

         李群和李代数

        SO(3)上的 BCH 线性近似式 

        J_{l}(\phi) 和 J_{r}(\phi) 的括号里面只能是 \phi ,或者 log[(R)^{\vee}] ,或者 Log(R)。如果是 R 或者没有括号,表示省略。

 2.2 运动学

        李群视角下的运动学

        SO(3) + t 上的运动学

        其中 t 为平移向量。

         线速度和加速度

        注意:能被各种传感器(车速传感器,轮速计)测量到的速度是车体系速度,v_{b}

        线速度的变换式:

        加速度的变换式:

        在实际的处理中,由于测量传感器只能测量离散化的值,在精度不高的应用场景中,我们通常会选择忽略后面三项,只保留最简单的转换关系。

        扰动模型和雅可比矩阵

         典型算例:对向量进行旋转

        设扰动 \Delta R 对应的李代数为 \Delta\phi :

 \Delta R=exp[(\Delta\phi)^{\wedge}]=Exp(\Delta\phi) 

\Delta\phi=log[(\Delta R)^{\vee}]=Log(\Delta R)

       对 Exp(\Delta\phi) 进行泰勒展开并保留一阶项:

Exp(\Delta\phi)=exp[(\Delta\phi)^{\wedge}]=I+(\Delta\phi)^{\wedge}

         右扰动:

\begin{aligned} \frac{\partial Ra}{\partial R} & =\lim_{\Delta\phi\to0}\frac{RExp\left(\Delta\phi\right)a-Ra}{\Delta\phi} \\ & =\lim_{\Delta\phi\to0}\frac{R\left[I+\left(\Delta\phi\right)^{\wedge}\right]a-Ra}{\Delta\phi} \\ & =\lim_{\Delta\phi\to0}\frac{R\left(\Delta\phi\right)^{\wedge}a}{\Delta\phi} \\ & = \lim_{\Delta\phi\to0}\frac{-Ra^{\wedge}\Delta\phi}{\Delta\phi}\\ &=-Ra^{\wedge} \end{aligned}

        左扰动:

\begin{aligned} \frac{\partial Ra}{\partial R} & =\lim_{\Delta\phi\to0}\frac{Exp\left(\Delta\phi\right)Ra-Ra}{\Delta\phi} \\ & =\lim_{\Delta\phi\to0}\frac{\left[I+\left(\Delta\phi\right)^{\wedge}\right]Ra-Ra}{\Delta\phi} \\ & =\lim_{\Delta\phi\to0}\frac{\left(\Delta\phi\right)^{\wedge}Ra}{\Delta\phi} \\ & = \lim_{\Delta\phi\to0}\frac{-(Ra)^{\wedge}\Delta\phi}{\Delta\phi}\\ &=-(Ra)^{\wedge} \end{aligned} 

        典型算例:旋转的复合

        BCH 的一阶线性近似式 (视觉SLAM十四讲,p82):

\log\left(\left(R_1R_2\right)^ {\vee}\right)=\log\left(\left[exp(\phi _{1}^{\wedge})exp(\phi _{2}^{\wedge})\right]^ {\vee}\right) \approx \begin{cases} J_{l}(\phi_{2})^{-1}\phi_{1}+\phi_{2}\\ J_{r}(\phi_{1})^{-1}\phi_{2}+\phi_{1} \end{cases}

      ①  Log(R_1R_2) 对 R_1 求导,对 R_1 进行右扰动:

     \begin{aligned} \frac{\partial Log\left(R_1R_2\right)}{\partial R_1} &= \lim_{\Delta\phi\to0}\frac{Log\left(R_1\mathrm{Exp}\left(\Delta\phi\right)R_2\right) - Log\left(R_1R_2\right)}{\Delta\phi} \\ &= \lim_{\Delta\phi\to0}\frac{Log\left(R_1R_2 \mathrm{Exp}\left(R_2^\top\Delta\phi\right)\right) - Log\left(R_1R_2\right)}{\Delta\phi} \\ &= \lim_{\Delta\phi\to0}\frac{Log\left(R_1R_2\right) + J_{r}^{-1}[Log\left(R_1R_2\right)]R_2^\top \Delta\phi - Log\left(R_1R_2\right)}{\Delta\phi} \\ &= \lim_{\Delta\phi\to0}\frac{ J_{r}^{-1}[Log\left(R_1R_2\right)]R_2^\top \Delta\phi }{\Delta\phi}\\ &= J_{r}^{-1}[Log\left(R_1R_2\right)]R_2^\top \end{aligned}

         其中第 3 行的 Log(R_1 R_2 Exp(R_2^\top \Delta\phi)),根据 BCH 的一阶线性近似式得:

\phi_{1}=Log(R_1R_2)

\phi_{2}={R}_2^\top {\Delta\phi}

Log(R_1 R_2 Exp(R_2^\top \Delta\phi))=Log(R_1R_2)+J_{r}^{-1}[Log(R_1R_2)]{R}_2^\top {\Delta\phi}

        ②  Log(R_1R_2) 对 R_2 求导,对 R_1 进行右扰动:

     \begin{aligned} \frac{\partial Log\left(R_1R_2\right)}{\partial R_1} &= \lim_{\Delta\phi\to0}\frac{Log\left(R_1R_2\mathrm{Exp}\left(\Delta\phi\right)\right) - Log\left(R_1R_2\right)}{\Delta\phi} \\ &= \lim_{\Delta\phi\to0}\frac{Log\left(R_1R_2\right) + J_{r}^{-1}[Log\left(R_1R_2\right)]\Delta\phi - Log\left(R_1R_2\right)}{\Delta\phi} \\ &= \lim_{\Delta\phi\to0}\frac{ J_{r}^{-1}[Log\left(R_1R_2\right)] \Delta\phi }{\Delta\phi}\\ &= J_{r}^{-1}[Log\left(R_1R_2\right)] \end{aligned}

         其中第 2 行的 Log(R_1 R_2 Exp(R_2^\top \Delta\phi)),根据 BCH 的一阶线性近似式得:

\phi_{1}=Log(R_1R_2)

\phi_{2}={\Delta\phi}

Log(R_1 R_2 Exp(\Delta\phi))=Log(R_1R_2)+J_{r}^{-1}[Log(R_1R_2)] {\Delta\phi}

2.3 滤波器和最优化理论 

        状态估计问题与最小二乘

        注意:这里的运动噪声为 R_k ,观测噪声为 Q_k ,后续噪声的符号会变化,但表示的意义不变。

           KF 卡尔曼滤波(线性系统)

        EKF 扩展卡尔曼 (非线性系统)

        矢量函数 f(x) 在 x_k 点处进行线性化 。f(x) 在某一点 x_k 进行线性化的意思是:矢量函数 f(x) 对状态 x 的雅可比矩阵,代入状态 x_k 的具体值。

f(x)=f(x_k+\Delta x)=f(x_k)+J(x_k)\Delta x+\frac{1}{2}\Delta x^\top H(x_k)\Delta x+O(\Delta x^2)         

\mathbf{J}(x_k)=\frac{\partial f(\mathbf{x})}{\partial\mathbf{x}}|_{\mathbf{x}=x_k} 

        F_k 为运动方程在上一时刻状态 x_{k-1} 进行线性化得到的雅可比矩阵,即运动方程对状态 x 的雅可比矩阵,代入上一时刻状态 x_{k-1} 的具体值:

\mathbf{F}_k=\frac{\partial f(\mathbf{x})}{\partial\mathbf{x}}|_{\mathbf{x}=x_{k-1}}

        H_k 为观测方程在当前时刻预测状态 x_{k, pred} 进行线性化得到的雅可比矩阵,即观测方程对状态 x 的雅可比矩阵,代入当前时刻预测状态 x_{k, pred} 的具体值:

\mathbf{H}_k=\frac{\partial h(\mathbf{x})}{\partial\mathbf{x}}|_{\mathbf{x}=x_{k, pred}}

        这一块内容可以参考《机器人学中的状态估计》p89页,内容如下:

         最优化方法和图优化

        优化和滤波

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1002.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比

众所周知,不管是什么框架,在前端 UI 渲染时,都会有构造出一套相关的渲染树,并且在 UI 更新时,为了尽可能提高性能,一般都只会进行「差异化」更新,而不是对整个 UI Tree 进行刷新,所以…

Elasticsearch—索引库操作(增删查改)

Elasticsearch中Index就相当于MySQL中的数据库表 Mapping映射就类似表的结构。 因此我们想要向Elasticsearch中存储数据,必须先创建Index和Mapping 1. Mapping映射属性 Mapping是对索引库中文档的约束,常见的Mapping属性包括: type:字段数据类…

occ的开发框架

occ的开发框架 1.Introduction This manual explains how to use the Open CASCADE Application Framework (OCAF). It provides basic documentation on using OCAF. 2.Purpose of OCAF OCAF (the Open CASCADE Application Framework) is an easy-to-use platform for ra…

esp32在编译是报错在idf中有该文件,但是说没有

报错没有头文件esp_efuse_table.h D:/Espressif/frameworks/esp-idf-v5.3.1/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include driver/i2s_std.h, driver/i2s_pdm.h or driver/i2s_tdm.h …

git - 用SSH方式迁出远端git库

文章目录 git - 用SSH方式迁出远端git库概述笔记以gitee为例产生RSA密钥对 备注githubEND git - 用SSH方式迁出远端git库 概述 最近一段时间,在网络没问题的情况下,用git方式直接迁出git库总是会失败。 失败都是在远端, 显示RPC错误。 但是git服务器端…

http和https有哪些不同

http和https有哪些不同 1.数据传输的安全性:http非加密,https加密 2.端口号:http默认80端口,https默认443端口 3.性能:http基于tcp三次握手建立连接,https在tcp三次握手后还有TLS协议的四次握手确认加密…

超详细-java-uniapp小程序-引导关注公众号、判断用户是否关注公众号

目录 1、前期准备 公众号和小程序相互关联 准备公众号文章 注册公众号测试号 微信静默授权的独立html 文件 2: 小程序代码 webview页面代码 小程序首页代码 3:后端代码 1:增加公众号配置项 2:读取公众号配置项 3&…

【Python进阶——分布式计算框架pyspark】

Apache Spark是用于大规模数据处理的统一分析引擎 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据,Spark作为全球顶级的分布式计算框架,支持众多的编程语言进行开…

基于 FastExcel 与消息队列高效生成及导入机构用户数据

🎯 本文档详细介绍了开发机构用户数据导入功能的必要性及实现方法,如针对教育机构如学校场景下提高用户体验和管理效率的需求。文中首先分析了直接对接学生管理系统与平台对接的优势,包括减少人工审核成本、提高身份验证准确性等。接着介绍了…

校园跑腿小程序---轮播图,导航栏开发

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

前端练习题

图片&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>用户信息页面</title><style>body {font-family: Arial, sans-serif;margin: 20px;}.user-info {display: flex;align-it…

AllData是怎么样的一款数据中台产品?

&#x1f525;&#x1f525; AllData大数据产品是可定义数据中台&#xff0c;以数据平台为底座&#xff0c;以数据中台为桥梁&#xff0c;以机器学习平台为中层框架&#xff0c;以大模型应用为上游产品&#xff0c;提供全链路数字化解决方案。 ✨奥零数据科技官网&#xff1a;…

一学就废|Python基础碎片,OS模块

Python 中的操作系统模块提供了与操作系统交互的功能。操作系统属于 Python 的标准实用程序模块。该模块提供了一种使用依赖于操作系统的功能的可移植方式。os和os. path模块包括许多与文件系统交互的函数。 Python-OS 模块函数 我们将讨论 Python os 模块的一些重要功能&…

2.Numpy练习(1)

一.练习一&#xff1a; 1.打印当前numpy版本&#xff1a; 2.构造一个全零的矩阵&#xff0c;并打印其占用内存大小&#xff1a; 3.打印一个函数的帮助文档&#xff0c;比如numpy.add&#xff1a; 4.创建一个10~49数组&#xff0c;并将其倒序排列: 5.找到一个数组中不为0的索引…

Ubuntu Server挂载AWS S3成一个本地文件夹

2023年&#xff0c;AWS出了个mountpoint的工具&#xff1a; https://github.com/awslabs/mountpoint-s3 如下是另外一种方式&#xff0c;通过s3fs-fuse 这个工具 sudo apt-get install automake autotools-dev \fuse g git libcurl4-gnutls-dev libfuse-dev \libssl-dev libx…

CSS3的aria-hidden学习

前言 aria-hidden 属性可用于隐藏非交互内容&#xff0c;使其在无障碍 API 中不可见。即当aria-hidden"true" 添加到一个元素会将该元素及其所有子元素从无障碍树中移除&#xff0c;这可以通过隐藏来改善辅助技术用户的体验&#xff1a; 纯装饰性内容&#xff0c;如…

nvm use使用nodejs版本时报错

文章目录 报错原因分析解决方法 报错 nvm use报错出现乱码&#xff1a; 比如nvm use 22.12.0&#xff0c;出现下面报错&#xff1a; exit status 1: ‘D:\Program’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&…

C++中线程同步与互斥的4种方式介绍、对比、场景举例

在C中&#xff0c;当两个或更多的线程需要访问共享数据时&#xff0c;就会出现线程安全问题。这是因为&#xff0c;如果没有适当的同步机制&#xff0c;一个线程可能在另一个线程还没有完成对数据的修改就开始访问数据&#xff0c;这将导致数据的不一致性和程序的不可预测性。为…

1、docker概念和基本使用命令

docker概念 微服务&#xff1a;不再是以完整的物理机为基础的服务软件&#xff0c;而是借助于宿主机的性能。以小量的形式&#xff0c;单独部署的应用。 docker&#xff1a;是一个开源的应用容器引擎&#xff0c;基于go语言开发的&#xff0c;使用时apache2.0的协议。docker是…

信息安全、网络安全和数据安全的区别和联系

信息安全、网络安全和数据安全是信息安全领域的三大支柱&#xff0c;它们之间既存在区别又相互联系。以下是对这三者的详细比较&#xff1a; 一.区别 1.信息安全 定义 信息安全是指为数据处理系统建立和采用的技术和管理的安全保护&#xff0c;保护计算机硬件、软件和数据不…