第二天:ALOAM前端讲解【第3部分】

(2)面特征

点到面的距离公式:
在这里插入图片描述

d H = ∣ ( X ~ ( k + 1 , i ) L − X ˉ ( k , j ) L ) ⋅ ( ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) × ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) ) ∣ ∣ ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) × ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) ∣ (2) d_{\mathcal{H}} = \frac{\left| \left( \tilde{X}_{(k+1,i)}^L - \bar{X}_{(k,j)}^L \right) \cdot \left( \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,l)}^L \right) \times \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,m)}^L \right) \right) \right|}{\left| \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,l)}^L \right) \times \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,m)}^L \right) \right|} \quad \text{(2)} dH= (Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L) (X~(k+1,i)LXˉ(k,j)L)((Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L)) (2)

公式解释

这个公式计算点 X ~ ( k + 1 , i ) L \tilde{X}_{(k+1,i)}^L X~(k+1,i)L 到平面的距离。平面由三点 X ˉ ( k , j ) L \bar{X}_{(k,j)}^L Xˉ(k,j)L X ˉ ( k , l ) L \bar{X}_{(k,l)}^L Xˉ(k,l)L X ˉ ( k , m ) L \bar{X}_{(k,m)}^L Xˉ(k,m)L 确定。

  1. 分子部分 ( X ~ ( k + 1 , i ) L − X ˉ ( k , j ) L ) ⋅ ( ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) × ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) ) \left( \tilde{X}_{(k+1,i)}^L - \bar{X}_{(k,j)}^L \right) \cdot \left( \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,l)}^L \right) \times \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,m)}^L \right) \right) (X~(k+1,i)LXˉ(k,j)L)((Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L))

    • 计算点 X ~ ( k + 1 , i ) L \tilde{X}_{(k+1,i)}^L X~(k+1,i)L 到平面上的一个点 X ˉ ( k , j ) L \bar{X}_{(k,j)}^L Xˉ(k,j)L 的向量 v 3 \mathbf{v3} v3,与平面法向量 n \mathbf{n} n 的点积。
    • n \mathbf{n} n 是由两个平面向量 v 1 = ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) \mathbf{v1} = \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,l)}^L \right) v1=(Xˉ(k,j)LXˉ(k,l)L) v 2 = ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) \mathbf{v2} = \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,m)}^L \right) v2=(Xˉ(k,j)LXˉ(k,m)L) 叉乘得到。
  2. 分母部分 ∣ ( X ˉ ( k , j ) L − X ˉ ( k , l ) L ) × ( X ˉ ( k , j ) L − X ˉ ( k , m ) L ) ∣ \left| \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,l)}^L \right) \times \left( \bar{X}_{(k,j)}^L - \bar{X}_{(k,m)}^L \right) \right| (Xˉ(k,j)LXˉ(k,l)L)×(Xˉ(k,j)LXˉ(k,m)L)

    • 计算平面法向量 n \mathbf{n} n 的模长。

这个公式计算点到平面的垂直距离,通过点积和叉积的结合,得出最终的距离值。

公式证明:

  1. 点到平面距离公式
    P \mathbf{P} P 到平面(定义为法向量 N \mathbf{N} N 和平面上的点 Q \mathbf{Q} Q)的距离公式为:
    d = ∣ N ⋅ ( P − Q ) ∣ ∣ N ∣ d = \frac{|\mathbf{N} \cdot (\mathbf{P} - \mathbf{Q})|}{|\mathbf{N}|} d=NN(PQ)

  2. 识别公式中的分量

    • X ~ ( k + 1 , i ) L \tilde{X}_{(k+1,i)}^L X~(k+1,i)L 代表点 P \mathbf{P} P
    • X ˉ ( k , j ) L \bar{X}_{(k,j)}^L X

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

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

相关文章

Vue如何引用组件

在 Vue.js 中,你可以通过几种方式引用组件: 全局注册 在 main.js 或你的主入口文件中,你可以使用 Vue.component() 方法来全局注册一个组件。这意味着这个组件可以在你的 Vue 应用的任何地方使用。 import MyComponent from ./components/…

Linux常用命令大全(超详细!!!)

文章目录 1.Linux是什么1.1 关于Linux我们主要学习什么1.1 学习Linux常见命令的前置知识 2. Linux常见命令2.1 ls命令2.2 cd命令2.3 pwd命令2.4 touch命令2.5 cat命令2.6 echo命令2.7 vim命令2.8 mkdir 命令2.9 rm命令2.10 cp命令2.11 mv命令2.12 grep命令2.13 ps命令2.14 nets…

文华财经通达信同花顺期货通盘立方博易大师主图指标公式源码

买线:EMA(C,2); 卖线:EMA(SLOPE(C,21)*20C,42); BU:CROSS(买线,卖线); SEL:CROSS(卖线,买线); STICKLINE1(买线>卖线,LOW,MIN(O,C),0.1,1),COLORRED; STICKLINE1(买线>卖线,MAX(O,C),HIGH,0.1,1),COLORRED; STICKLINE(买线>卖线,CLOSE,OPEN,8,1),COLORRED; STI…

【简单讲解下OneFlow深度学习框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

AD如何将厂家的元器件库,添加到自己的元器件库

首先,去官网下载对应芯片的原理图和封装,之后用分别双击打开原理图和封装。之后打开自己的原理图库和封装库。如下图: 打开原理图和封装后框选,之后crlC复制,之后点开自己的原理图库和封装库,随便单击一个元…

Linux(Ubuntu20.04)系统中安装deb软件包错误(依赖关系问题-仍未被配置)解决的办法

在Ubuntu16.04下采用如下dpkg命令安装deb软件安装包时: sudo dpkg -i XXXX.deb 发生安装失败,返回信息为"正处理时有错误发生",并且在安装过程中出现"依赖关系问题-仍未被配置"的提示&#xff0…

【数据分析“三剑客”】—— NumPy

本系列数据分析博客使用jupyter notebook作为开发环境,如果你还不是很熟悉jupyter notebook,我推荐你可以先花几十分钟实现学习一下我关于python开发环境搭建介绍的博客:python开发环境搭建——pycharm和jupyternotebook_jupyter跟pycharm代码…

RClone挂载有阿里云的AList

转自个人博客:https://www.jjy2023.cn/2024/05/23/rclone%e6%8c%82%e8%bd%bd%e6%9c%89%e9%98%bf%e9%87%8c%e4%ba%91%e7%9a%84alist-md/ RClone挂载一般的AList可以直接使用mount命令,但是阿里云需要使用指定头部Referer:https://www.aliyundrive.com/ &a…

51单片机第11步_在C语言中插入汇编语言

本章重点介绍如何在C语言中插入汇编语言。要不是有记录,真不知道怎么搞。 /* 你在 Project Workspace窗口中,将光标移到DELAY.c处,点下鼠标右键,选择"Options for file DELAY.c", 点击右边的"Generate Assembler SRC File"和“Assemble SRC …

【PL理论深化】(12) Ocaml 语言:高阶函数 | map 函数 | filter 函数 | fold 函数

💬 写在前面:在函数式编程中,除了递归函数外,还经常使用高阶函数。高阶函数是指接收其他函数作为参数或返回另一个函数的函数。高阶函数通过抽象编程模式以实现重用,使程序可以在更高层次上进行编写。让我们重点看看常…

K8S基础简介

用于自动部署,扩展和管理容器化应用程序的开源系统。 功能: 服务发现和负载均衡; 存储编排; 自动部署和回滚; 自动二进制打包; 自我修复; 密钥与配置管理; 1. K8S组件 主从方式架…

A - ABA and BAB-AtCoder Regular Contest 180

A - ABA and BAB 一、分析 这道题要计算出ABA和BAB组合出的字符串的变化情况并对MOD取模。 首先想到子串中出现ABAB和BABA这两种情况的处理是一样的,他们的变换只会产出两种变化,如ABAB>ABAB/AB;只会变成这两种情况,那么将长…

$nextTick

一、词义简介: next下一次 Tick轮询 二、应用场景: 当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调中执行 三、原理: n e x t T i c k 下一次轮询的时候再执行, v u e 并不是说…

socket编程常见操作

1、连接的建立 分为两种:服务端处理接收客户端的连接;服务端作为客户端连接第三方服务 //作为服务端 int listenfd socket(AF_INET, SOCK_STREAM, 0); bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))) listen(listenfd, 10); //…

SARscape打开Sentinel1A SAR SLC产品(CSDB_20240630)

1.打开envi,在右侧工具包栏输入“sentinel-1”,并点击打开工具包。 2. 弹出文件导入界面,点击右侧Browse按钮。 3. 选在本地下载好的Sentinel1产品,文件路径最好全是英文,不要出现中文和特殊字符。 4 点击下方“Exec”…

python项目实战——人生重开模拟器

文章目录 1.菜单栏的编写2.玩家确定颜值、体质、智力、家境3.生成性别4.设定角色出生点5.各个年龄段的变化5.1 幼年阶段5.2 青年阶段5.3中年阶段5.4 晚年阶段 6.整体代码 人生重开模拟器是一款文字类小游戏. 玩家可根据提示输入角色的初始属性之后, 就可以开启不同的人生经历. …

BLACKBOX.AI:解锁编程学习新纪元,加速开发的AI得力助手

文章目录 💯BLACKBOX.AI 官网🍁1 BLACKBOX.AI 工具使用教程🍁2 BLACKBOX.AI工具使用界面介绍🍁3 Chat(聊天)功能🍁4 Explore (探索)功能💎4.1 Terminal(终端)功能💎4.2 Discover(发现)功能&…

负载均衡算法

负载均衡是一种将传入的网络流量分配到多个服务器或资源上的技术,以确保每个服务器的负载都在可接受的范围内,从而提高系统的性能和可靠性。常见的负载均衡策略有很多,以下是一些常见的策略以及它们的优缺点: 1. 随机&#xff08…

ros1仿真导航机器人 hector_mapping gmapping

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1 hector_mapping 建图过程 &#xff08;1&#xff09;gazebo仿真 roslaunch why_simulation why_slam.launch <launch><!-- We resume the logic in empty_world.launch, changing only the name of t…

助农扶贫网站

摘要&#xff1a;随着信息科技的快速发展和互联网的普及&#xff0c;信息技术在助力农业发展、促进农村振兴以及扶贫工作中发挥着越来越重要的作用。本文基于Spring Boot框架和Vue.js前端开发技术&#xff0c;设计完成了一个助农扶贫电商网站。网站提供便捷的农产品信息发布、农…