当前位置: 首页 > news >正文

论文阅读:Correcting Motion Distortion for LIDAR HD-Map Localization

目录

概要

Motivation

整体架构流程

技术细节

小结


论文地址:http://arxiv.org/pdf/2308.13694.pdf

代码地址:https://github.com/mcdermatt/VICET

概要

激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建点云,所以一次扫描过程中传感器的运动会导致点云发生畸变,这种现象被称为运动畸变或者卷帘快门。运动畸变校正方法已经存在,但是它们依赖于外部测量或者多次激光雷达扫描上的贝叶斯滤波。本文提出了一种新型算法,其执行快照处理以实现运动畸变校正。

Motivation

  • 传统的运动畸变校正方法存在一些局限性,比如依赖于外部测量设备或者贝叶斯滤波器,这些方法可能不够实时或者成本较高。而本文提出的VICET算法通过快照处理技术,直接从当前LIDAR扫描中提取信息,校正运动畸变,不需要额外的设备,因此更具实用性和经济性。
  • 提出了一种能够对测量不确定性进行有意义预测的新方法,鲁棒误差边界的计算是自动驾驶乘用车等安全关键导航系统的一个重要方面。
  • 通过加入运动畸变补偿来改进NDT算法,以提高配准精度。

整体架构流程

该算法的整体架构流程包括快照处理、初始配准、扩展NDT匹配和优化、校正等关键步骤。首先,通过快照处理技术将当前LIDAR扫描与参考图像进行配准,得到初始的刚性变换估计。然后,利用扩展的NDT算法,同时优化刚性变换和运动失真参数。最后,根据优化后的参数对LIDAR扫描进行校正,以获得准确的校正结果。

考虑放置在矩形房间内的 机械旋转 LIDAR 单元,如图 所示。每次 LIDAR 绕 LIDAR 垂直 (z) 轴旋转 360 ° 时,都会生成 ALIDAR 图像(或扫描)。定义当旋转光束与连接 到 LIDAR 定子的坐标系统中的正 x 方向对齐时开始 LIDAR 扫描,我们将其标记为车身框架。在图中, 激光雷达的起始和结束位置由向量基表示,其中旋转 轴以蓝色显示,扫描起始轴以红色显示。现在考虑三 种情况,一种情况是传感器在扫描期间保持静止(以 标记为 a 的姿势开始和结束),第二种情况其中传感器进行纯平移(从 a 开始并在 b 结束), 第三种情况是传感器同时进行平移和旋转(从 a 开 始并在 c 结束)。这三种情况中的每一种都会创建 一个不同的 LIDAR 点云,如下所示:鸟瞰图,位于 标有"原始点云"(红色)的列中。在所有情况 下,点云中间都会出现一个圆圈,反映高程截止 点,模拟 LIDAR 单元无法生成地平线以下 30 ° 以 下的样本。点云是假设起点和终点之间的运动速率 一致而生成的。重要的是,原始图像是扭曲的(静 止情况除外),因此房间的墙壁不会形成完美的正 方形。然而,考虑到平台运动,点可以从主体坐标 系坐标转移到世界坐标系坐标。未扭曲的点云如图 2 所示。 1 作为标记为"失真校正"的一列图像 (蓝色)。重要的是,这些畸变校正图像都恢复了 正确的房间形状,以方形墙为界。在最后一种情况 (a → c)中,出现了缺失数据的楔形,因为 LIDAR 定子顺时针旋转,与 LIDAR 转子逆时针旋 转相反,这样在单次扫描期间无法看到整个房间。对于地图匹配应用,姿态是相对于参考图像进行估 计的。例如,可以通过记录移动激光雷达的一系列 顺序扫描来构建参考图像,以创建马赛克图像或高 清 (HD) 地图。如果在配准到地图之前可以对当前 扫描(在激光雷达的框架中捕获)进行反扭曲(转 换为世界框架),则该配准操作的性能将大大提 高。在图(1)的矩形房间的情况下,地图看起来非 常像静态情况下的扫描 (a → a)。如果在平移 (a → b) 或组合平移和旋转 (a → c) 过程中生成新的 LIDAR 图像,则生成的原始图像(红色)将与相应 的失真校正图像(蓝色)相比,更难与房间地图对 齐。本文的主要焦点是仅使用当前的激光雷达扫描和地 图就可以进行畸变校正。如果 LIDAR 运动未知,那 么我们可以通过将当前图像配准到地图来推断运 动,同时还测试各种反扭曲变换,以确定导致最佳 对准的配准和反扭曲的组合。

用于研究运动畸变校正的简单测试场景。等距房间视图显示了三个可能的激光雷达位置,标记为a、b和c。
在每个位置上,激光雷达单元的方向由一组正交基向量描述。对于每种配置,假设激光雷达束从红色箭头开始与垂直(蓝色)轴逆时针旋转。在扫描过程中,激光雷达单元可以保持静止(a → a),前向线性运动(a → b),或进行复合平移和旋转(a → c)。在每种情况下,激光雷达束在激光雷达定子的参考系中旋转360度,而定子本身也在移动,导致畸变的原始点云(从上方视角看,用红色表示)。通过补偿定子运动,可以将原始图像转换为固定于房间的坐标系(用蓝色表示),从而恢复出房间的正方形形状。

技术细节

LIDAR 定子(或主体)B 的框架相对于地图框架 M 移 动。出于说明目的,底座以 2D 形式显示(从上方观察)。时 间的进展由灰色阴影箭头表示,激光雷达光束在时间 t = 0 和时 间 t = T 之间扫过一整圈时记录测量结果(红点)。

200 次扫描中每一次的地面实况,叠加在高清地图上

时间戳:可以通过使用光束角度𝜓来近似激光雷达点的时间戳。重要的是不要将记录在不同时间(例如在扫描开始和结束时)的点分组在一起。通过在0°(扫描开始)处定义一个体素边界,然后移除𝜓<0°或𝜓≥360°的偶发异常点来解决混叠问题。

初始化:VICET假设对初始姿态有一个合理的估计。通过首先运行标准的扫描匹配算法(具体为NDT)来获得初始姿态,然后VICET通过补偿运动畸变来改进这个估计。

扩展表面:NDT无法识别墙壁(以及跨越体素边界的其他平面表面)仅在表面法线方向上提供有用信息;为了增强收敛可靠性和准确性,采用ICET 的扩展表面抑制方法。

小结

在静态高清地图上注册 200 个原始 LIDAR 扫描时的平移误差(顶部)和偏航误 差(底部)

在本文中,引入了VICET,这是一种求解单帧激光雷达点云的扫描到地图匹配问题的新型算法。VICET求解了12种状态,其中6种状态描述了将扫描与地图对齐的刚体变换,另外6种状态考虑了在创建点云过程中平台运动所造成的畸变。与其它运动畸变方法相比,本文方法仅需要单帧激光雷达扫描,并且不需要外部传感器数据。

通过在现实世界数据上进行实验,本文证明了VICET比传统的NDT和ICP提高了精度,降低了地图匹配的平移偏差(从6.9cm降低到0.27cm,降低了一个数量级),同时减少了一个sigma变化(从5.4cm到2.6cm)。VICET还降低了姿态估计的偏差和方差。这些改进与精密汽车和城市空中交通应用相关。

相关文章:

论文阅读:Correcting Motion Distortion for LIDAR HD-Map Localization

目录 概要 Motivation 整体架构流程 技术细节 小结 论文地址&#xff1a;http://arxiv.org/pdf/2308.13694.pdf 代码地址&#xff1a;https://github.com/mcdermatt/VICET 概要 激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建…...

Git操作笔记

学git已经好多次了。但是还是会忘记很多的东西&#xff0c;一些常用的操作命令和遇到的bug以后在这边记录汇总下 一.github图片展示 图片挂载&#xff0c;我是创建了一个库专门存图片&#xff0c;然后在github的md中用专用命令展示图片&#xff0c;这样你的md就不会全是文字那…...

使用Python进行数据分析的基本步骤

简介&#xff1a; 在当今的数据驱动世界中&#xff0c;数据分析已成为各行各业不可或缺的一部分。Python作为一种强大的编程语言&#xff0c;提供了丰富的库和工具&#xff0c;使得数据分析变得简单易行。本文将带你了解使用Python进行数据分析的基本步骤。 一、数据获取 从外…...

NGINX优化

NGINX优化分为两个方面&#xff1a; 一. nginx应用配置文件的优化&#xff1a; 1.nginx的性能优化: 全局块&#xff1a; 设置工作进程数&#xff1a; work_processes #设置工作进程数 设置工作进程连接数&#xff1a;work_rilmit_nofile #设置每个worker进程最大可…...

【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值

【LeetCode刷题】Day 13 题目1&#xff1a;852.山脉数组的峰顶索引思路分析&#xff1a;思路1&#xff1a;暴力枚举O(N)思路2&#xff1a;二分查找O(logN) 题目2&#xff1a;162.寻找峰值思路分析&#xff1a;思路1&#xff1a;二分查找O(logN) 题目1&#xff1a;852.山脉数组的…...

《Python学习》-- 实操篇一

一、文件操作 1. 1 读取文本文件 # 文件操作模式 # r (默认) - 只读模式。文件必须存在&#xff0c;否则会抛出FileNotFoundError。在这种模式下&#xff0c;你只能读取文件内容&#xff0c;不能写入或追加。 # w - 写入模式。如果文件存在&#xff0c;内容会被清空&#xff…...

C# 集合(二) —— List/Queue类

总目录 C# 语法总目录 集合二 List/Queue 1. List2. Queue 1. List List有ArrayList和LinkedList ArrayList 类似数组&#xff0c;查找快&#xff0c;插入删除慢(相对)LinkedList 类似双向链表&#xff0c;查找慢(相对)&#xff0c;插入删除快 //ArrayList //ArrayList Arr…...

【TB作品】MSP430 G2553 单片机口袋板,读取单片机P1.4电压显示,ADC

功能 读取P1.4电压&#xff0c;显示到口袋板显示屏&#xff0c;电压越高亮灯越多。 部分程序 while (1){ADC10CTL0 | ENC ADC10SC; // Sampling and conversion startLPM0;adcvalue ADC10MEM; //原始数据 0到1023adtest (float) adcvalue / 1024.…...

知乎x-zse-96、x-zse-81

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…...

【Linux】Linux工具——yum,vim

1.Linux 软件包管理器——yum Linux安装软件&#xff1a; 源代码安装&#xff08;不建议&#xff09;rpm安装&#xff08;类似Linux安装包&#xff0c;版本可能不兼容&#xff0c;不推荐&#xff0c;容易报错&#xff09;yum安装&#xff08;解决了安装源&#xff0c;安装版本&…...

ES 生命周期管理

一 .概念 ILM定义了四个生命周期阶段&#xff1a;Hot&#xff1a;正在积极地更新和查询索引。Warm&#xff1a;不再更新索引&#xff0c;但仍在查询。cold&#xff1a;不再更新索引&#xff0c;很少查询。信息仍然需要可搜索&#xff0c;但是如果这些查询速度较慢也可以。Dele…...

【JavaScript脚本宇宙】揭秘HTTP请求库:深入理解它们的特性与应用

深度揭秘&#xff1a;六大HTTP请求库的比较与应用 前言 在这篇文章中&#xff0c;我们将探讨六种主要的HTTP请求库。这些库为处理网络请求提供了不同的工具和功能&#xff0c;包括Axios、Fetch API、Request、SuperAgent、Got和Node-fetch。通过本文&#xff0c;你将对每个库…...

【强化学习】DPO(Direct Preference Optimization)算法学习笔记

【强化学习】DPO&#xff08;Direct Preference Optimization&#xff09;算法学习笔记 RLHF与DPO的关系KL散度Bradley-Terry模型DPO算法流程参考文献 RLHF与DPO的关系 DPO&#xff08;Direct Preference Optimization&#xff09;和RLHF&#xff08;Reinforcement Learning f…...

vue3 todolist 简单例子

vue3 简单的TodList 地址&#xff1a; https://gitee.com/cheng_yong_xu/vue3-composition-api-todo-app-my 效果 step-1 初始化项项目 我们不采用vue cli 搭建项目 直接将上图文件夹&#xff0c;复制到vscode编辑器&#xff0c;清空App.vue的内容 安装包 # 安装包 npm…...

Linux项目编程必备武器!

本文目录 一、更换源服务器二、下载man开发手册(一般都自带&#xff0c;没有的话使用下面方法下载) 一、更换源服务器 我们使用apt-get等下载命令下载的软件都是从源服务器上获取的&#xff0c;有些软件包在某个服务器上存在&#xff0c;而另一个服务器不存在。所以我们可以添加…...

AndroidStudio编译很慢问题解决

如果gradle同步、编译下载很慢&#xff0c;可以换一下仓库阿里云镜像 repositories {maven { url https://maven.aliyun.com/repository/google } maven { url https://maven.aliyun.com/repository/jcenter } maven { url https://maven.aliyun.com/repository/public } goog…...

PHAR反序列化

PHAR PHAR&#xff08;PHP Archive&#xff09;文件是一种归档文件格式&#xff0c;phar文件本质上是一种压缩文件&#xff0c;会以序列化的形式存储用户自定义的meta-data。当受影响的文件操作函数调用phar文件时&#xff0c;会自动反序列化meta-data内的内容,这里就是我们反序…...

Rust安装

目录 一、安装1.1 在Windows上安装1.2 在Linux下安装 二、包管理工具三、Hello World3.1 安装IDE3.2 输出Hello World 一、安装 1.1 在Windows上安装 点击页面 安装 Rust - Rust 程序设计语言 (rust-lang.org)&#xff0c;选择"下载RUSTUP-INIT.EXE(64位&#xff09;&qu…...

513.找树左下角的值

给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 示例 1: 示例 2: 思路&#xff1a; 深度最大的叶子结点一定是最后一行。 优先左边搜索&#xff0c;记录深度最大的叶子节点&#xff0c;此时就是树的最后一行最左边的值 代码&#xff1a; class Solution:def fi…...

docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令

核心功能操作镜像 Docker安装mysql docker run -d --name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORDlcl15604007179 mysql docker的基本操作 docker rm 容器名称即可 docker ps 查看当前运行的容器 docker rm 干掉当前容器 docker logs 查看容器命令日…...

JMeter接口测试实战:从登录闭环到分布式压测

1. 为什么接口测试不能只靠“点点点”——从一个被忽略的500错误说起我第一次在客户现场接手一个电商后台系统时&#xff0c;开发说“所有接口都测过了&#xff0c;Postman跑了一遍&#xff0c;没问题”。上线前夜&#xff0c;支付回调接口突然返回500&#xff0c;日志里只有一…...

全志T113-S3开发板网络配置实战:从DHCP到静态IP与故障排查

1. 项目概述&#xff1a;从零上手T113-S3的网络配置刚拿到一块新的全志T113-S3开发板&#xff0c;比如眺望电子的EVM-T113-S3&#xff0c;第一件事你会做什么&#xff1f;我的习惯是&#xff0c;先把它“连上网”。这听起来简单&#xff0c;但却是后续所有高级操作——无论是通…...

安卓上架权限弹窗

https://ask.dcloud.net.cn/article/41194 直接这个网站看&#xff0c;但是要注意&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;真机运行的时候&#xff0c;改了manifest.json的配置要重新打基座...

3个核心操作:让网络架构可视化变得如此简单

3个核心操作&#xff1a;让网络架构可视化变得如此简单 【免费下载链接】easy-topo vuesvgelement-ui 快捷画出网络拓扑图 项目地址: https://gitcode.com/gh_mirrors/ea/easy-topo 在数字时代的网络管理中&#xff0c;技术文档的可视化呈现已经成为专业沟通的关键。面对…...

NY382固态MT29F32T08GSLBHL8-24QM:B

NY382固态MT29F32T08GSLBHL8-24QM:B当工业设备在极端环境下稳定运行&#xff0c;其核心存储的每一次数据读写&#xff0c;都决定着生产线的效率与安全。一颗看似平凡的存储芯片&#xff0c;背后是无数工程师在稳定性、耐久性与环境适应性之间的精妙权衡。今天&#xff0c;我们聚…...

NY379固态MT29F32T08GSLBHL8-36QA:B

NY379固态MT29F32T08GSLBHL8-36QA:B在数据爆炸的时代&#xff0c;企业级存储对性能与可靠性的要求不断攀升。作为核心存储元件&#xff0c;NAND Flash 的选型直接决定系统的稳定性与寿命。美光 MT29F32T08GSLBHL8-36QA:B&#xff0c;以其32Tb&#xff08;约4TB&#xff09;的大…...

snnTorch NIR导出功能详解:实现跨框架模型转换

snnTorch NIR导出功能详解&#xff1a;实现跨框架模型转换 【免费下载链接】snntorch Deep and online learning with spiking neural networks in Python 项目地址: https://gitcode.com/gh_mirrors/sn/snntorch snnTorch是一个基于Python的脉冲神经网络&#xff08;SN…...

DreamTalk多语言支持深度分析:从中文到德语的语音驱动生成

DreamTalk多语言支持深度分析&#xff1a;从中文到德语的语音驱动生成 【免费下载链接】dreamtalk Official implementations for paper: DreamTalk: When Expressive Talking Head Generation Meets Diffusion Probabilistic Models 项目地址: https://gitcode.com/gh_mirro…...

深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(1)

请看下面这个抽象基类的声明&#xff1a;你能看出什么问题吗&#xff1f;该类被设计成抽象基类&#xff08;纯虚函数的存在禁止创建 Abstract_base 的独立实例&#xff09;&#xff0c;但它仍然需要一个显式的构造函数来初始化其唯一的数据成员 _mumble。如果没有这个初始化&am…...

AI+HR 全生命周期智能管理实战指南:从概念到落地,解锁组织效能新增长!​

在企业数字化转型的浪潮中&#xff0c;人力资源管理正经历着前所未有的变革。据行业数据&#xff0c;61% 的 HR 领导者已进入 GenAI 实施进阶阶段&#xff0c;82% 的企业计划在 12 个月内部署 AI 智能体&#xff0c;而 AI 驱动的企业人均效能已实现3.2 倍提升。当传统 HR 深陷事…...