SLAM从入门到精通(参数标定)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        标定是slam开发过程中很重要的一个环节。这部分内容涉及到很多方面,比如说传感器、比如说算法、比如说机械,总之好的标定不仅仅决定了系统的稳定性,还对整个系统的性能产生很大的影响。以汽车行业为例,标定工程师早就是一个被广泛接受的职业类型。拿发动机来说,我们都知道现在的汽车一般都会有很多的工作模式,有经济型、舒适性和运动型这几种。其实,不管哪种模式,这发动机里面的算法都是一样的,只是不同的工作模式对应着不同的参数标定。

1、传感器内参标定

        传感器内参标定,相信大家应该比较好理解。这些内参有的是制造过程造成的,比如imu内部的x/y/z轴方向差异;有的是传感器特性造成的,比如摄像头图像的畸变;还有的是由于设备运动造成的,比如说lidar数据在设备运动中造成的运动畸变等等。当然,不管是什么原因,只要我们发现传感器产生了数据畸变,就有必要对它进行建模和处理,这是少不了的。

2、传感器外部标定

        外部标定,也就是传感器安装位置差异造成的系统差异。我们都知道,不管设备安装的多么好,位置有多么准,那么它和实际的要求还是会产生一定的偏差。这些偏差,对于精度常常会有很大的影响。比如说机器人舵轮的初始位置偏差、lidar的安装位置偏差、里程计的位置偏差等等,这些偏差都要想办法通过建模的方法去进行处理,尽可能地去降低和消弭。

3、传感器功能标定

        我们使用传感器,一般都是为了解决特定的问题而引入的。通常情况下,传感器商家已经实现了内部算法。但对于传感器厂家来说,他很多时候并不知道这个传感器是用来做什么用的。所以,大多数厂家会提供一个上位机工具,用户可以用这个工具对传感器进行功能标定,比如避障雷达里面的避障范围设定、camera里面的roi区域设定等等,都属于传感器功能标定。

4、自定义算法标定

        算法标定涉及到很多方面,比如说精度,比如说算力,比如说响应速度等等。大家能够想起来比较多的算法标定估计就是pid了,这是最容易直观感受到的算法标定。在实际生产中,基本上只要和物理世界产生联系,都少不了算法标定,这是难免的。因为一方面要保证产品性能和稳定性,而另外一方面先验知识、安全性和产品差异,这些也需要通过参数标定的方式落实下去,这样才能保证系统的稳定性。

5、机械差异标定

        机械差异比较好理解,主要就是生产环节的差异、产品本身的差异等的。以机器人为例,它的底盘类型、长、宽、高、重心的位置、舵轮的位置、lidar的位置、最小速度、最大速度、最小加速度、最大加速度、最小减速度、最大减速度、最小转弯半径等等,这些都属于机械差异的范畴,都是需要我们去进行配置和处理的。

6、和其他设备对接的参数设置

        机器人在实际应用中一般是需要和其他设备进行对接的,这个时候485的串口编号、波特率、ip、web服务器ip、端口、数据库配置、用户名、账号、485寄存器地址、485寄存器偏移位置等等,这些也是需要进行配置处理的。通常情况下,我们也会把这些需要的信息放到一个配置文件里面,而不是硬编码到代码当中。

7、标定的基本原则

        要想完成标定,第一,需要知道标定的内容和背后的基本原理,不能为了标定而标定;第二,如果是传感器的标定,一般是拿精度高的传感器,去标定低精度的传感器,比如说,用lidar去标定其他传感器的外参。

        此外很多的时候,标定方法不一定只有一种,如果能用多种方法来交叉标定,往往可以帮助我们确认当前标定是否正确。此外,对于研发工程师来说,最好将标定的过程做成自动标定的算法,这样方便现场工程师快速地利用软件进行现场标定。

8、关于标定更多的信息

        网上关于标定的文章,都比较零散。下面这个链接,算是不多的有价值的系列标定文章,有兴趣的同学可以好好看一下,肯定有不少的收获。

https://docs.seer-group.com/d/1557959282007326722.html

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

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

相关文章

Ubuntu18.04系统镜像制作

安装使用systemback # 添加源 sudo add-apt-repository --remove ppa:nemh/systemback sudo add-apt-repository "deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main"# 下载 sudo apt update sudo apt install systemback打开systemback,点击创建li…

【Python机器学习】零基础掌握VotingClassifier集成学习

为什么一些数据预测模型在复杂场景下表现不如预期? 在当今数据驱动的世界中,企业和研究者面临着如何从大量数据中提取有价值信息的挑战。假设一个电商公司想要通过用户行为数据预测产品销量,通常会使用单一的算法模型,如逻辑回归、随机森林或朴素贝叶斯。但问题来了,如果…

树结构及其算法-二叉排序树

目录 树结构及其算法-二叉排序树 C代码 树结构及其算法-二叉排序树 事实上,二叉树是一种很好的排序应用模式,因为在建立二叉树的同时,数据已经经过初步的比较,并按照二叉树的建立规则来存放数据,规则如下&#xff1…

人们常常下定决心“不改变”

"因为我的性格很悲观" 有的人会觉得一些事情发生,是自己性格使然,改变不了。 但其实性格是可以改变的。 这听起来似乎不太现实,自己的性格就是这样,怎么会改变? 那换种表达,我们看待世界的方式可…

源码编译 7z

源码编译 7z 2023.11.04 ChrisZZ 1. 目的 在 macOSX 电脑上,编译 7zip 的控制台应用程序 7zz, 复刻官方给的/homebrew 提供的 7zz 程序。 2. 下载源码 https://www.7-zip.org/a/7z2301-src.tar.xz 3. 查询编译规则描述文件 7zz 是控制台程序&…

【蓝桥每日一题]-倍增(保姆级教程 篇1)

今天讲一下倍增 目录 题目:忠诚 思路: 题目:国旗计划 思路: 查询迭代类倍增: 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂,减去之后,再重复这…

element UI DatePicker 日期选择器 点击时间点可选限制范围前后十五天

<el-date-picker v-model"timeRange" type"datetimerange" align"right" :default-timedefaultTimevalue-format"yyyy-MM-dd HH:mm:dd" range-separator"至" start-placeholder"开始日期"end-placeholder"…

编码器的分类

目录 光电编码器 一、增量式编码器 二、绝对式编码器 三、混合式绝对值编码器 四、旋转变压器 五、正余弦伺服电机编码器 光电编码器 光电编码器主要有增量式编码器、绝对式编码器、混合式绝对值编码器、旋转变压器、正余弦伺服电机编码器等&#xff0c;其中增量式编码器…

PackageManagerService初始化

参考资料&#xff1a;PMS 第 1 篇 - PackageManagerService 初始化 这个是基于Android 7的&#xff0c;我看的代码是Android 9 前言 PMS 用来管理所有的 package 信息&#xff0c;包括安装、卸载、更新以及解析 AndroidManifest.xml 以组织相应的数据结构&#xff0c;这些数…

《研发效能(DevOps)工程师》课程简介(三)丨IDCF

在研发效能领域中&#xff0c;【开发与交付】的学习重点在于掌握高效的开发工具和框架&#xff0c;了解敏捷开发方法&#xff0c;掌握持续集成与持续交付技术&#xff0c;以及如何保证应用程序的安全性和合规性等方面。 由国家工业和信息化部教育与考试中心颁发的职业技术证书…

leetCode 322.零钱兑换 完全背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化 + 画递归树

关于此题我的往期文章&#xff1a;LeetCode 322.零钱兑换 完全背包 动态规划_呵呵哒(&#xffe3;▽&#xffe3;)"的博客-CSDN博客https://heheda.blog.csdn.net/article/details/133386579看本期文章时&#xff0c;可以先回顾一下动态规划入门知识和完全背包理论和实战…

面试算法50:向下的路径节点值之和

题目 给定一棵二叉树和一个值sum&#xff0c;求二叉树中节点值之和等于sum的路径的数目。路径的定义为二叉树中顺着指向子节点的指针向下移动所经过的节点&#xff0c;但不一定从根节点开始&#xff0c;也不一定到叶节点结束。例如&#xff0c;在如图8.5所示中的二叉树中有两条…

Nodejs和npm的使用方法和教程

Nodejs简介 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具&#xff01; &#xff08; 运行环境&#xff0c;是不是很熟悉&#xff0c;对。就是 java JRE&#xff0c;Java 运行时环境&#xff09; Node.js 在浏览器之外运行 V8 Java…

WSL 下载

可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符&#xff0c;方法是右键单击并选择“以管理员身份运行”&#xff0c;输入 wsl --install 命令&#xff0c;然后重启计算机。 首先查看可以下载的版本 最后再运行wsl --ins…

企业电脑屏幕监控有哪些?如何实现电脑屏幕监控

企业电脑屏幕监控有哪些&#xff1f;如何实现电脑屏幕监控 下载使用安企神电脑屏幕监控软件 企业电脑屏幕监控是一种监测和记录员工在工作时间内在他们的计算机上执行的活动的技术。这种监控可以有多种目的&#xff0c;包括确保员工的生产力、确保数据安全性&#xff0c;或满…

【总】HEC-RAS学习记录

【总】HEC-RAS学习记录 目标HEC-RAS简介和下载渠道简介下载渠道指导教程 目标 为了进行溃坝模拟&#xff0c;了解了很多软件&#xff0c;最终决定使用HEC-RAS HEC-RAS简介和下载渠道 简介 HEC-RAS 是美国陆军工程兵团工程水文中心&#xff08;HEC&#xff09;开发的河道水力…

【Qt-22】Qt乱码问题解决

最近在Qt项目中遇到TCP通信接收数据乱码的问题&#xff0c;很是苦恼&#xff0c;经过多次尝试&#xff0c;终于得以解决。 感谢Qt TcpSocket 传递数据乱码显示_qt中socket接受到的客户端数据显示不出来-CSDN博客 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)_XX風的博客…

编程新手的犯错之路

第1名&#xff1a;无尽的if-else陷阱 在我刚刚学习编程的时候&#xff0c;我对if-else语句的使用充满了好奇。我曾经写下了这样一个愚蠢的代码块&#xff0c;用来判断一个数字属于哪个范围&#xff1a; if (number > 1 && number < 10) {// 做一些事情 } else …

Open3D(C++) 最小二乘拟合平面(间接平差法)

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。 一、算法原理 1、原理概述 通过传统最小二乘法对点云数据进行平面拟合时,可将误差只归因于一个方向上,本文假设误差只存在于 Z Z

Spring源码编译步骤

Spring源码学习 一、Gradle 为什么下载gradle呢&#xff1f;我们平时不都是用maven吗&#xff1f;原因只有一个&#xff0c;spring源码是用gradle构建的&#xff0c;所以&#xff0c;你想看spring源码必须安装和学会使用gradle&#xff0c;那么&#xff0c;让我们开始gradle之…