SLAM 几何基础

news2024/9/29 9:37:19

SLAM 几何基础

  • 1. 向量运算及其几何意义
    • 1.1 内积
      • 1.1.1 内积定义
      • 1.1.2 内积几何意义
      • 1.1.3 内积微分性质
    • 1.2 外积
      • 1.2.1 外积定义
      • 1.2.2 外积几何意义
      • 1.2.3 外积微分性质
  • 2. 线面特征运算
    • 2.1 点到直线距离
    • 2.2 点到平面距离

Reference:

  1. 深蓝学院-多传感器融合

1. 向量运算及其几何意义

1.1 内积

1.1.1 内积定义

内积,又叫数量积,是向量的点乘。
a = ( x 1 , y 1 , z 1 ) , b = ( x 2 , y 2 , z 2 ) a ⋅ b = x 1 x 2 + y 1 y 2 + z 1 z 2 \mathbf{a}=(x_1, y_1, z_1),\quad \mathbf{b}=(x_2, y_2, z_2) \\ \mathbf{a} \cdot\mathbf{b} = x_1x_2+y_1y_2+z_1z_2 a=(x1,y1,z1),b=(x2,y2,z2)ab=x1x2+y1y2+z1z2

1.1.2 内积几何意义

b \mathbf{b} b为单位向量时,内积就是 a \mathbf{a} a b \mathbf{b} b上的投影分量。
a ⋅ b = ∣ a ∣ ∣ b ∣ c o s θ \mathbf{a} \cdot\mathbf{b} = |\mathbf{a}| |\mathbf{b}|cos\theta ab=a∣∣bcosθ在这里插入图片描述

1.1.3 内积微分性质

从内积的定义出发,有:
∂ a ∙ b ∂ a = b \frac{\partial \boldsymbol{a} \bullet \boldsymbol{b}}{\partial \boldsymbol{a}}=\boldsymbol{b} aab=b证明:
∂ a ∙ b ∂ x 1 = ∂ ( x 1 x 2 + y 1 y 2 + z 1 z 2 ) ∂ x 1 = x 2 ∂ a ∙ b ∂ y 1 = ∂ ( x 1 x 2 + y 1 y 2 + z 1 z 2 ) ∂ y 1 = y 2 ∂ a ∙ b ∂ z 1 = ∂ ( x 1 x 2 + y 1 y 2 + z 1 z 2 ) ∂ z 1 = z 2 \begin{aligned} & \frac{\partial \boldsymbol{a} \bullet \boldsymbol{b}}{\partial x_1}=\frac{\partial\left(x_1 x_2+y_1 y_2+z_1 z_2\right)}{\partial x_1}=x_2 \\ & \frac{\partial \boldsymbol{a} \bullet \boldsymbol{b}}{\partial y_1}=\frac{\partial\left(x_1 x_2+y_1 y_2+z_1 z_2\right)}{\partial y_1}=y_2 \\ & \frac{\partial \boldsymbol{a} \bullet \boldsymbol{b}}{\partial z_1}=\frac{\partial\left(x_1 x_2+y_1 y_2+z_1 z_2\right)}{\partial z_1}=z_2 \end{aligned} x1ab=x1(x1x2+y1y2+z1z2)=x2y1ab=y1(x1x2+y1y2+z1z2)=y2z1ab=z1(x1x2+y1y2+z1z2)=z2

1.2 外积

1.2.1 外积定义

外积,又叫叉积、向量积,是向量的叉乘。
a = ( x 1 , y 1 , z 1 ) b = ( x 2 , y 2 , z 2 ) a × b = ∣ i j k x 1 y 1 z 1 x 2 y 2 z 2 ∣ = ( y 1 z 2 − y 2 z 1 ) i − ( x 1 z 2 − x 2 z 1 ) j + ( x 1 y 2 − x 2 y 1 ) k \begin{aligned} &\boldsymbol{a}= \left(x_1, y_1, z_1\right) \\ &\boldsymbol{b}= \left(x_2, y_2, z_2\right) \\ & \boldsymbol{a} \times \boldsymbol{b} = \left|\begin{array}{ccc} \mathrm{i} & \mathrm{j} & \mathrm{k} \\ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \end{array}\right| = \left(y_1 z_2-y_2 z_1\right) i -\left(x_1 z_2-x_2 z_1\right) j +\left(x_1 y_2-x_2 y_1\right) k \end{aligned} a=(x1,y1,z1)b=(x2,y2,z2)a×b= ix1x2jy1y2kz1z2 =(y1z2y2z1)i(x1z2x2z1)j+(x1y2x2y1)k

1.2.2 外积几何意义

外积模长等于 a \mathbf{a} a b \mathbf{b} b组成的平行四边形的面积,外积的方向满足右手定则, a \mathbf{a} a b \mathbf{b} b张成平面的单位法向量为: n = a × b ∣ a × b ∣ \mathbf{n}=\frac{\mathbf{a} \times \mathbf{b}}{|\mathbf{a} \times \mathbf{b} |} n=a×ba×b
a × b = ∣ a ∣ ∣ b ∣ s i n θ \mathbf{a} \times \mathbf{b} = |\mathbf{a}| |\mathbf{b}|sin\theta a×b=a∣∣bsinθ在这里插入图片描述

1.2.3 外积微分性质

根据外积的定义,有:
a × b = a ∧ b \boldsymbol{a} \times \boldsymbol{b}=\boldsymbol{a}^{\wedge} \boldsymbol{b} a×b=ab其中 a ∧ a^{\wedge} a a a a反对称矩阵
a ∧ = [ 0 − z 1 y 1 z 1 0 − x 1 − y 1 x 1 0 ] \boldsymbol{a}^{\wedge}=\left[\begin{array}{ccc} 0 & -z_1 & y_1 \\ z_1 & 0 & -x_1 \\ -y_1 & x_1 & 0 \end{array}\right] a= 0z1y1z10x1y1x10 则:
a ∧ b = − b ∧ a ∂ a ∧ b ∂ a = − b ∧ ∂ a ∂ a = − b ∧ \begin{aligned} \boldsymbol{a}^{\wedge} \boldsymbol{b} & =-\boldsymbol{b}^{\wedge} \boldsymbol{a} \\ \frac{\partial \boldsymbol{a}^{\wedge} b}{\partial a} & =-\frac{b^{\wedge} \partial a}{\partial a}=-\boldsymbol{b}^{\wedge} \end{aligned} abaab=ba=aba=b

2. 线面特征运算

2.1 点到直线距离

A A A 到直线 B C BC BC 的距离为: ∣ A D → ∣ = ∣ A B → × A C → ∣ ∣ B C → ∣ |\overrightarrow{A D}|=\frac{|\overrightarrow{A B} \times \overrightarrow{A C}|}{|\overrightarrow{B C}|} AD =BC AB ×AC ,即平行四边形面积除以对角线长度。
在这里插入图片描述

2.2 点到平面距离

平面 B C D B C D BCD 的单位法向量为 n = B C → × B D → ∣ B C → × B D → ∣ \boldsymbol{n}=\frac{\overrightarrow{B C} \times \overrightarrow{B D}}{|\overrightarrow{B C} \times \overrightarrow{B D}|} n=BC ×BD BC ×BD A A A 到平面 B C D B C D BCD 的距离为:
∣ A E → ∣ = ∣ A B → ∣ cos ⁡ θ = A B → ∙ n |\overrightarrow{A E}|=|\overrightarrow{A B}| \cos \theta=\overrightarrow{A B} \bullet \boldsymbol{n} AE =AB cosθ=AB n(即先计算单位向量给出方向,再使用点乘计算距离)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT系列第4节 QT包含模块以及常用的数据类型和容器

QT中包含很多模块,这些模块都是建立在常用数据类型和容器基础之上的。本篇简单介绍一下常用模块,常用数据类型,常用容器类。 目录 1.QT模块分类 2.QT基本数据类型 3.QString和QByteArray区别 4.QT中的容器 1.QT模块分类 (1&…

jdk11新特性——更简化的编译运行程序

目录一、概述二、注意事项三、注意事项1——代码示例3.1、示例13.2、示例23.3、示例3四、注意事项2——代码示例4.1、示例14.2、示例2一、概述 JEP 330 : 增强java启动器支持运行单个java源代码文件的程序。 在我们的认知里面,要运行一个 Java 源代码必须先编译&am…

CentOS 8:FTP服务器

FTP服务器 vsftpd , 是 CentOS 系统自带的 FTP 服务 其中,d 表示 daemon , 后台、守护进程的意思 FTP文件传递示意图: 检查 vsftpd 是否安装 ls /usr/sbin/vsftpd 安装vsftpd软件包 yum install vsftpd 其中,yum 是 CentOS 下的软件包…

低代码平台丨仪表盘实用技巧—【倒计时】

学生时代,我们经常能够看到所谓的中考倒计时、高考倒计时…… 这些白纸黑字的倒计时看板,不仅贯穿着我们的学生生涯。在步入职场之后,随之而来的项目倒计时、季度倒计时,年度倒计时……各种各样的倒计时看板,充斥着我…

卷积神经网络-基础篇Basic-CNN

卷积神经网络-基础篇Basic-CNN CNN的全称是"Convolutional Neural Network"(卷积神经网络)。而神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的数学模型或计算模型。 CNN原理 CNN被广泛应用在图像识…

Supervisor详解

是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死…

蓝桥杯C/C++百校真题赛(1期)Day1题解(九进制转十进制、数字三角形)

Q1 进制转化 进制转化&#xff0c;口算啥的都行。 #include <iostream> using namespace std; int main() {cout << 2 2 * 9 2 * 9 * 9 * 9 << endl;return 0; }Q2 数字三角形 #include<iostream> using namespace std;const int N 110; int f[N][…

QT 项目 智能家居系统 上位机

有哪些文件 &#xff1a; 头文件&#xff1a; 1. auidio .h 语音识别 模块 2. camera.h 人脸识别登录模块 3. chooselevelscene.h 翻金币游戏的 4. dataconfig.h 翻金币游戏的 关卡 的数据 5.entry_mode.h 登录方式的界面类 6.luck_draw.h 开心一天的界面类 …

[附源码]Node.js计算机毕业设计公司办公自动化系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

CS61A Proj 4

更好的阅读体验 Project 4: Scheme Interpreter Eval calls apply, which just calls eval again! When does it all end? Introduction Note: If you’re interested in an alternate version of this project that gives you considerably less scaffolding and guidanc…

【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)

一、Spark概述 Spark最初由美国加州伯克利大学&#xff08;UCBerkeley&#xff09;的AMP&#xff08;Algorithms&#xff0c; Machines and People&#xff09;实验室于2009年开发&#xff0c;是基于内存计算的大数据并行计算框架&#xff0c;可用于构建大型的、低延迟的数据分…

你评论,我赠书~【TFS-CLUB社区 第9期赠书活动】〖HTML5+CSS3+JavaScript从入门到精通(微课精编版)(第2版)〗等你来拿

文章目录❤️‍&#x1f525; 赠书活动 - 《Python从入门到精通&#xff08;微课精编版&#xff09;》❤️‍&#x1f525; 编辑推荐❤️‍&#x1f525; 抽奖方式与截止时间❤️‍&#x1f525; 赠书活动 → 获奖名单❤️‍&#x1f525; 赠书活动 - 《Python从入门到精通&…

详细复习云开发~小程序【云数据库、云函数】

文章目录一&#xff0c;云数据库1-1&#xff0c;在数据库里新建集合(数据表)1-2&#xff0c;数据库权限管理1-3&#xff0c;数据库的增删改查1-3-1&#xff0c;查询 get()1-3-2&#xff0c;条件查询 where()1-3-3&#xff0c;查询单条数据doc()1-3-4&#xff0c;添加数据 add()…

NC22 合并两个有序的数组 - java语言实现

文章目录1. 题目描述2. 题目解读3. 思路4. 代码实现总结✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来&#xff01; 编程真是一件很奇妙的东西。你只是浅尝辄止&#xff0c;那么只会觉得枯燥乏味&#xff0c;像对待任务似的应付它。但你如果深入探索&#xff0c;就会…

用 Python 将 html 转为 pdf、word

在日常中有时需将 html 文件转换为 pdf、word 文件。网上免费的大多数不支持多个文件转换的情况&#xff0c;而且在转换几个后就开始收费了。 转 pdf 转 pdf 中使用 pdfkit 库&#xff0c;它可以让 web 网页直接转为 pdf 文件&#xff0c;多个 url 可以合并成一个文件。 安装…

供应科研试剂Biotin-PEG-Thiol,Biotin-PEG-SH,生物素peg巯基

一&#xff1a;产品描述 1、名称 英文&#xff1a;Biotin-PEG-Thiol&#xff0c;Biotin-PEG-SH 中文&#xff1a;生物素-聚乙二醇-巯基 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Biotin PEG Thiol PEG 4、分子量&#xff1a;可定制&#xff0c;1k、2k、3.4k、1…

linux red hat 8.0 搭建httpd服务

简介&#xff1a; Apache HTTP Server&#xff08;简称Apache&#xff09;&#xff0c;是Apache软件基金会的一个开源的网页服务器&#xff0c;可以在大多数电脑操作系统中运行&#xff0c;由于其具有的跨平台性和安全性&#xff0c;被广泛使用&#xff0c;是最流行的Web服务器…

Altium Designer输出GERBER文件与华秋DFM对比

Altium Designer是原Protel软件开发商Altium公司推出的PCB设计软件。Altium Designer &#xff08;AD&#xff09;软件一款功能强大、界面友好、操作简单、易容上手等优点&#xff0c;&#xff0c;因此成为各电子工程师、PCB设计工程师、电子发烧友首选EDA设计工具。掌握AD软件…

【简单项目实战】用C++实现通讯录管理系统 | [普通实现]

目录 ●功能介绍 ●案例 ●代码展示 ●结果展示 ●功能介绍 用C设计一个程序&#xff0c;能够提供以下功能&#xff1a; 1.录入联系人的基本信息。包括姓名、性别、年龄、电话号和地址。 2.展示所有已录入联系人的基本信息。以姓名、性别、年龄、电话号和地址的方式按列…

链表的实际应用

1. 删除链表中等于给定值 val 的所有节点。 链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;Leetcode&#xff09; 假设&#xff1a;我们有这么个链表&#xff1a; 我们需要删除所有date域为key的结点。 假设key为4&#xff1a; 思路&#xff08;快慢指针&#xff09…