SLAM从入门到精通(lidar的运动畸变矫正)

news2024/11/16 7:44:18

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

        前面我们说过,很多时候传感器的数据并不能直接拿过来使用。这里面除了噪声的原因之外,另外一部分原因就是传感器数据本身也有可能是脏数据,存在运动畸变的可能性。以激光雷达为例,假设一个机器人往前行走,速度是1m/s,lidar旋转的速度是10次/s。一开始的时候,lidar检测前面1m处有一个物体。那么100ms之后,同样的物体,其实这个时候距离只有0.9m了。如果lidar的裸数据没有经过畸变矫正的话,那么不管制图还是定位,本身都是一个错误的结果。

1、处理方法

        目前主要的处理办法,就是利用其它传感器数据对lidar数据进行修正。由于其他传感器的频率,本身要比lidar快的多,所以默认短时间内其他传感器的数据是可靠、有效的。通常实践中,一般会用imu对lidar的theta进行修正,而用odom对lidar的x、y进行修正。

2、参考blog

        网上有一篇针对运动畸变非常好的文章,非常适合拿来一读,它的地址如下所示,

https://blog.csdn.net/tiancailx/article/details/114924197

        相关的代码可以参考这个链接,

https://github.com/xiangli0608/Creating-2D-laser-slam-from-scratch

3、收集imu和odom数据

        在处理lidar数据之前,一般需要对imu和odom的数据进行收集。收集的方法通常就是用queue保存接收到的imu和odom数据。主要目的,则是在处理lidar数据之前找到合适的imu和odom区间,这样才能对lidar数据进行调优处理。

4、lidar数据处理

        lidar数据主要分成这几个步骤。首先,需要缓存一帧lidar数据。这帧数据的结束时间,也就是下一帧数据的开始时间。另外,lidar上电的时候,一般也是机器人刚刚工作的时候。此时机器人还没有开始工作,也就没有移动,所以缓存一帧,一般问题不大。

        其次,对imu和odom数据分别进行裁剪。裁剪的目的主要是挑出合适的区间数据,然后对这些数据进行掐头去尾的操作,留出合适的数据范围。对每一个范围,计算出对应的角度偏移量和x、y偏移量。

        接着就是用imu和odom的数据对lidar数据进行修正。先确认当前数据的时间点,找出对应的imu和odom区间,通过角度偏移、x&y偏移以及插值的方法计算出总的偏移量,最后再用这些总的偏移量对lidar数据一个一个进行矫正。

        剩下来的工作就比较简单了,只需要发布数据和重置参数就可以了。发布lidar数据比较好理解,重置参数则是对imu和odom中过时的数据进行清空处理。

5、注意事项

        对lidar数据的矫正处理本质上需要有一定的soc算力做支撑。如果机器人本身行走的很慢,不做x和y方向的矫正也可以的。但是机器人旋转的话,对于lidar数据的影响还是蛮大的,最好借助于imu对于lidar的角度数据进行一下矫正。

        此外,最好不要用odom的角度数据对lidar数据进行矫正,因为odom的角度也是近似求解出来的,本身精度其实也比较差。

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

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

相关文章

Linux 多架构支持介绍和实践

Linux 多架构支持介绍和实践 1. Linux 上多架构支持指的是什么意思? 在Linux 上开启多架构支持(multi-arch support),指的是可以让您在同一系统上安装多个不同架构的软件包,这在交叉编译的场景显得格外重要。 以下实…

分享一下怎么做一个微信抽奖活动

抽奖活动是当今社会中非常流行的一种营销方式,它能够有效地吸引消费者的注意力,提高品牌知名度和销售额。在举办抽奖活动时,需要制定相应的规则和奖励设置,以确保活动的公平性和吸引力。本文将详细介绍如何制作一个有效的抽奖活动…

外汇天眼:如何有效地交易外汇?15个基本提示!

外汇是买卖货币的行为。日均交易量超过6万亿美元,是世界上最大的金融市场。鉴于其规模和可及性,许多人被高回报的承诺所吸引。但是,如果没有适当的知识和纪律,交易可能会有风险。在本文中,很好地分解了有效交易外汇的基…

2023高频前端面试题-浏览器

1. 浏览器是如何解析 CSS 选择器的? 在生成渲染树的过程中,渲染引擎会根据选择器提供的信息来遍历 DOM 树,找到对应的 DOM 节点后将样式规则附加到上面。 来看一段样式选择器代码、以及一段要应用样式的 HTML: .mod-nav h3 spa…

AI口语APP第三方接口

AI口语练习应用程序通常可以通过第三方接口来集成语音识别、自然语言处理和其他相关功能。以下是一些常见的第三方接口及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Google Cloud Speech…

如何设计元宇宙展厅,元宇宙展厅的展示和交互形式有哪些?

引言: 元宇宙是当下科技界最为炙手可热的话题之一,被誉为数字世界的未来。将元宇宙与展厅结合,展示产品信息成了很多人关注的热点,那么元宇宙展厅应该如何设计呢? 一.元宇宙展厅设计理念 1.创造虚拟与现实…

为什么选择Codigger静态分析?

开发每个阶段的安全代码 Codigger是一种很流行的静态分析工具,用于持续检查代码库的代码质量和安全性,并在代码评审期间指导开发团队。代码审查是一种系统的软件质量保证技术,通过审查开发人员的代码来发现和修复问题、提高代码质量并执行编码…

九月手游出海三黑马,营销上如何做到成功?

从2022年开始,手游出海红利几乎完全消失,在经历高速发展的黄金阶段过渡到竞争激烈的精品化阶段,再到目前“不上不下”的存量竞争时代。 现在手游出海到底面临怎么样的困境?是全球经济下行、隐私政策更新频繁、国际形势变化莫测、…

【工具使用】使用Audition增加增益的方法

一,简介 本文主要介绍如何在Adobe Audition 2020中改变波形的幅值。供参考。 二,操作方法 这里使用1KHz,-120dB信号为例。 2.1 方法一:直接使用悬浮窗口 窗口中输入6,波形的幅值就变成了-114dB。 注意&#xff1a…

ChatGLM系列五:Lora微调

目前主流对大模型进行微调方法有三种:Freeze方法、P-Tuning方法和Lora方法 LoRA: 在大型语言模型上对指定参数(权重矩阵)并行增加额外的低秩矩阵,并在模型训练过程中,仅训练额外增加的并行低秩矩阵的参数,冻结其他参数…

Java中级面试题记录(四)

一面面试题 1.Innodb的行数据存储模式 https://baijiahao.baidu.com/s?id1775090633458928876&wfrspider&forpc 2.行数据包含哪些信息? https://baijiahao.baidu.com/s?id1775090633458928876&wfrspider&forpc 3.MySQL在进行存储VARCHAR的时…

qq怎么发长视频?超级好用!

在平时的工作和生活中,我们会想分享一些比较长的内容。但是我们会发现视频文件过大,可能会超过腾讯规定的单次发送文件的大小限制,导致无法发送成功。这时候就需要借助一些视频压缩工具,下面介绍了四种方法,一起来看看…

浅谈信息化与数字化

一、信息化/数字化的概念 信息化、数字化按字面意思理解,这两个词的确代表了不同的含义。但是也不可否认,在目前我们可以接触到的信息平台来看。信息化、数字化很多时候都被混在一起了。 那么,既然今天要聊这个话题。我们得先把这两个词分清…

【C++】:拷贝构造函数与赋值运算符重载的实例应用之日期类的实现

C实现日期类 ├─属性: │ ├─年份 │ ├─月份 │ └─日期 ├─方法: │ ├─构造函数 │ ├─拷贝构造函数 │ ├─析构函数 │ ├─设置年份 │ ├─设置月份 │ ├─设置日期 │ ├─获取年份 │ ├─获取月份 │ ├─获取日期 │ ├…

mysql-linux归档版安装

什么是归档版安装?简单来说就是编译好的软件压缩打包版。 说明:我这里服务器之前已经装过一个不同版本的mysql,已经占用了3306端口,所以这里我用3307端口来演示,命令和官方的稍有不同,不过步骤都是差不多的…

next项目部署到云服务器上(手动)

准备环境: 云服务器 ECS,服务器安装好了docker 自己的next项目 开始: 1.在next项目根目录下创建Dockerfile文件 FROM node:18-alpine AS base# Install dependencies only when needed FROM base AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333d…

SpringMVC Day 05 : Spring 中的 Model

前言 欢迎来到 SpringMVC 系列教程的第五天!在之前的教程中,我们已经学习了如何使用控制器处理请求和返回视图。今天,我们将深入探讨 Spring 中的 Model。 在 Web 应用程序开发中,数据的传递和展示是非常重要的。SpringMVC 提供…

flutter版本选择

使用命令dart --version查看dart版本 使用命令flutter doctor查看flutter版本 Flutter 有 3 个发布渠道,分别是 stable、beta 和 master。我们推荐使用 stable 渠道除非你需要体验最新更新的 Flutter 特性。 要查看你当前使用的哪个渠道,使用下面的命令&…

山西电力市场日前价格预测【2023-10-28】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-28)山西电力市场全天平均日前电价为324.42元/MWh。其中,最高日前电价为601.09元/MWh,预计出现在18:15。最低日前电价为0.00元/MWh,预计出…