激光SLAM(二):点云拟合和平面参数化

news2025/1/11 2:24:15

点云拟合和平面参数

  • 一、平面拟合:特征值法和SVD法
  • 二、平面参数化
    • 1)Hesse形式
    • 2)球坐标
    • 3)最近点
    • 4) 单位四元数
  • 三、直线拟合

一、平面拟合:特征值法和SVD法

平面方程如下,n是法向量,d是截距
在这里插入图片描述
当多个点拟合平面时,需要求解下述最小二乘问题
在这里插入图片描述
取齐次坐标
在这里插入图片描述
最小二乘问题可以表示成如下矩阵形式
在这里插入图片描述
转换为通用的线性代数问题:对任意矩阵A,寻找x,使得Ax最小化,其中
在这里插入图片描述
求解的问题可以表示为
在这里插入图片描述
A T A A^TA ATA是实对称矩阵,可以对角化,因此可以进行如下特征值分解

在这里插入图片描述
对角特征值矩阵,这里认为它们按照从大到小的顺序排列,则:
在这里插入图片描述

上面问题也可用SVD分解来解释,A不论什么矩阵形式,都可以进行SVD分解
在这里插入图片描述
带入最小二乘问题得到
在这里插入图片描述
注意:这里奇异值的平方等于 A T A A^TA ATA的特征值,V和特征值分解的V是一样的,两种方法等价。

二、平面参数化

平面实际上只有3个自由度,这里介绍不同的平面参数化形式,拟合时不需要考虑参数化形式,但如果想对平面进行优化或者将其加入

1)Hesse形式

最常见的一个参数化形式就是Hesse形式,用一个平面的单位法向量和距原点的距离d组成的向量表示:
在这里插入图片描述
但存在过参数化问题,平面实际上只有3个自由度,但是Hesse形式有4个参数,导致过参数化知乎,优化过程中计算出的Hessian矩阵不会满秩,不能求逆,解决方法是LM提供正则化。但收敛度会变慢。

2)球坐标

平面的Hesse参数化形式可以被分成两个部分,一个单位法向量部分和一个距离部分。平面的Hesse形式的过参数化就是因为单位法向量部分有3个参数,但是实际只有两个自由度导致的。那么我们就可以从这个法向量着手解决过参的问题。单位法向量可以被看成是一个单位圆球上的一点。那么我们就可以用两个角度 θ和Θ来参数化点,从而表示出这个单位法向量。那么我们就可以把Hesse形式变化成如下的形式:
在这里插入图片描述
但是这种形式的参数化虽然是最小参数化形式,但在优化的时候会产生奇异性。

3)最近点

这种方式是用在平面上距离当前表示坐标系原点最近的3D坐标点来表示平面。这种表示方式有两个优点:1.是最小化参数形式;2.具有真实的物理意义。
在这里插入图片描述

4) 单位四元数

直接上论文:The homogeneous plane representation is over- parametrized and therefore requires some special care during optimization—we will apply a similar solution as is commonly used for quaternions, and therefore start with a review of the quaternion case.
在这里插入图片描述
细节比较多,参考论文:Simultaneous Localization and Mapping with Infinite Planes

三、直线拟合

我们使用直线上一点再加上直线方向矢量来描述直线,直线上的点 x 满足方程:

在这里插入图片描述
d为直线的方向,满足 ||d∥ = 1;p为直线 l 上某个点,t 为直线参数。我们想求的是d和p,共 6 个未知数。显然,当给定的点集较大时,这依然是一个超定方程,需要 构造最小二乘问题进行求解。
对于任意一个不在 l 上的点 x k x_k xk,我们可以利用勾股定理,计算它离直线垂直距离的平方
在这里插入图片描述

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

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

相关文章

python协程—asyncio模块

目录 什么是协程 协程的特点 为什么使用协程 asyncio协程模块 多任务的协程 总结 什么是协程 协程(Coroutine)是一种并发编程的技术,它允许程序在执行过程中暂停和恢复。协程可以看作是一种特殊的函数,它可以暂停执行&#…

快速安装Kibana,head插件以及IK分词器

安装Kibana Kibana是基于node.js的,安装这个之前要先安装node.js 1 压缩包下载地址: Kibana 6.2.4 | Elastic 2.将下载的Kibana压缩包解压到任意一个没有中文没有空格的目录下,进入Kibana安装目录下的config目录,修改kibana.yml文件,添加Elasticsearch服…

钳形表校准装置 “定点输出”方式

装置具有“定点输出”方式,通过点击触摸屏,直接设置所需输出的量值,装置将全自动切换至最佳量程输出,使得校准数字式仪表变得非常方便。特别是在设定交流电压/电流输出时,直接同时输入幅值和频率即可,使用十…

【计算机视觉】对比学习综述(自己的一些理解)

对比loss 对比学习的 loss(InfoNCE)即以最 大化互信息为目标推导而来。其核心是通过计算样本表示间的距离,拉近正样本, 拉远负样本,因而训练得到的模型能够区分正负例。 具体做法为:对一个 batch 输入的图…

Tensorflow入门(1)——深度学习框架Tesnsflow入门 环境配置 认识Tensorflow

目录 一、环境配置1.Anaconda以及Tensorflow的安装2.CONDA环境安装3.测试是否成功 二、认识TensorFlow1.图 Graph()2.会话 Session()3.张量 Tensor(1)张量的形状(2)数据类型张量的动态形状与静态形状 4.张量操作(1&…

No9.精选前端面试题,享受每天的挑战和学习

文章目录 从recat源码角度说明下setState流程同源策略限制什么行为computed和watch的区别http和https的区别vue中的route和router的异同点,区别 从recat源码角度说明下setState流程 在 React 的源码中,setState 方法是用于更新组件的状态(st…

java中预览pdf或者图片

GetMapping("preview1")ApiOperation(value "根据文件名实现预览功能")public void previewFile1( HttpServletResponse response) throws IOException {String filePath"C:\\Users\\Harbor Lau\\Desktop\\哈哈\\""11月燃油费(公开).pdf&q…

照片如何恢复?试试这3个简单操作!

我的电脑里保存了很多照片,都是对我来说意义重大的,但最近电脑内存不足了,在清理内存时,我不小心把照片也清空了,这些照片应该如何恢复呢?谁有什么好的方法恢复电脑里的照片吗? 可能很多人都会选…

【UnityDOTS 小知识】RequireMatchingQueriesForUpdate与RequireForUpdate

RequireMatchingQueriesForUpdate与RequireForUpdate 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 一、RequireMatchingQueriesForUpdate 将这个特性放置于System类上…

【算法与数据结构】字符串匹配算法

文章目录 一、暴力穷解法二、KMP算法二、BM算法三、Sunday算法四、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、暴力穷解法 思路分析:首先判断字符串是否合法,然后利用for循环,取出…

2024考研408-操作系统 第一章-计算机系统概述学习笔记

文章目录 前言一、操作系统的基本概述1.1、操作系统的概念1.2、操作系统的功能1.2.1、操作系统提供的功能及示例1.2.2、操作系统提供的方便易用服务1.2.2.1、操作系统刚普通用户使用(GUI用户界面、命令接口)1.2.2.2、给程序员提供的程序接口小总结&#…

Cesium中加载WMS、WMTS、WFS三类服务,并进行点击查询

近期工作中需要使用Cesium加载各类服务,并进行点击查询。故针对不同的服务对加载方法和点击查询方法进行了整理。 一、加载方法 1.1加载WMS export function wmsService(url,layer){let wmsnew Cesium.WebMapServiceImageryProvider({url : url,//如http://106.12…

【Spring Boot】Spring Boot配置文件详情

前言 Spring Boot是一个开源的Java框架,用于快速构建应用程序和微服务。它基于Spring Framework,通过自动化配置和约定优于配置的方式,使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件,包括嵌…

【笔记】微机原理及接口技术4 -- ADC/DAC

模数数模转换器 控制系统中的模拟接口 A/D 转换器 把模拟信号转成数字信号,供微处理器使用; D/A 转换器 输出模拟信号,供外部控制装置使用; D/A 原理 D/A 转换器的主要部件是电阻开关网络 通常是由输入的二进制数的各位控制一些…

EasyCVR如何在不修改分辨率的情况下进行H.265自动转码H.264?

EasyCVR视频融合平台基于云边端一体化架构,可支持多协议、多类型设备接入,在视频能力上,平台可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、H.265转码、智能分析以及平台级联等。 我们在此前的文章中介绍过…

【Python实战】Python采集某大夫文字数据

前言 今天,有一位粉丝找到我,希望我出一期关于某大夫数据采集的文章,今天,我们就来采集某大夫的问诊数据。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 requests requests是一个很实用的Python HTTP客户端库&…

java 健身营养师网站系统myeclipse定制开发mysql数据库B/S模式java编程计算机网页

一、源码特点 JSP 健身营养师网站系统 是一套完善的系统源码,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。研究的基本内容是基于网上 书店系统,使用JSP作为页面开发工具。Web服…

MMaction2 使用记录1——config介绍

目录 了解config (模型训练测试的整体过程配置文件) 通过脚本参数修改config Config 文件 结构 config文件的命名规则 动作识别的config系统 了解config (模型训练测试的整体过程配置文件) 我们使用python文件作为config&a…

FreeRTOS学习笔记—任务挂起和恢复

文章目录 一、任务挂起和恢复API函数1.1 vTaskSuspend()函数1.2 vTaskResume()函数1.3 xTaskResumeFromISR()函数 二、任务挂起和恢复2.1 任务1挂起解挂任务22.2 中断中解挂任务1 三、补充内容3.1 FreeRTOS数据类型3.2 中断优先级分组3.3 错误问题 一、任务挂起和恢复API函数 …

ChatGPT | Word文档如何更好地提取表格内容给ChatGPT

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! Word文档如何更好地提取表格内容给ChatGPT做知识库,这属于文本预处理工作。 本文只讲思路、测试结果,技术实现用Python和Java都能完成,下一篇文章再贴源码…