当前位置:网站首页>Classical Literature Reading--DLO
Classical Literature Reading--DLO
2022-08-01 23:36:00 【Hermit_Rabbit】
0. 简介
这篇SLAM论文《Direct LiDAR Odometry: Fast Localization with Dense Point Clouds》作为NASA喷气推进实验室CoSTARNew work researched and developed by the team,received extensive attention from academia.It is mainly usedDARPAThe odometer of the underground challenge,A laser odometry capable of high-speed, high-precision processing and high-speed real-time processing of dense point clouds is proposed(LO)的思路,下面是他们的Github开源代码.
1. 文章贡献
This paper proposes a lightweight front-end lidar odometry solution,用于在计算能力受限的机器人平台上,具有快速和精确的定位能力,我们的直接激光雷达里程计(DLO)方法包括几个关键的算法上的创新,这些创新优先考虑计算效率,并使用稠密的、预处理最少的点云实时提供准确的姿势估计.The following are the main innovations of the article:
- A customized speed-first processing flow is proposed,This process can accurately estimate the pose in real time,The need for preprocessing is relatively small,并且IMU是可选项.
- A new keyframe system is proposed,Keyframes can be adaptively selected according to environmental signals,And can quickly generate subgraphs through convex optimization.
- Several important algorithmic insights developed from the experiments,to further reduce computational overhead,从而产生了NanoGICP(Custom iterative closest point solver,For lightweight point cloud scanning and cross-object data sharing matching).
The figure below shows two robotic platforms with limited computing resources for this lidar odometry application(A) 定制的四旋翼平台,顶部有一个驱逐OS1激光雷达传感器.(B) Boston Dynamics Spot机器人,装有负载和带防护装置的Velodyne VLP-16.(C) 使用我们的轻型里程计方法在这些机器人上绘制的石矿的俯视图
2. 整体思路
The whole system is throughRANSACExclude outliers and useIMUto obtain the rotation prior,The frame-to-frame relative pose is then obtained.This relative pose is then propagated to the world coordinate system,and for secondaryGICP的初始化值.
2.1 预处理
在预处理过程中只使用了两个滤波器:首先,通过原点周围大小为1立方米的盒子滤波器删除机器人自身可能返回的所有点云.然后,生成的点云通过分辨率为0.25m的三维体素网格滤波器发送,以便在保持周围环境中的主要结构的同时,略微减少后续任务的数据采样.在这项工作中,我们Does not correct for motion distortion,因为非刚性变换可能会带来计算负担,我们直接使用稠密点云,而不是提取特征,平均而言,每帧点云包含了预处理后得到1000点.
2.2 基于GICP(Generalized-ICP)pose calculation
This part is divided into two steps,The first step is to provide an instantaneous pose estimate(frame-to-frame pose), The second step is to provide the optimized pose(Frame picture optimization).This part is also mentioned at the end of the followingNanoGICP高效匹配.To facilitate point cloud scans and cross-object data sharing matching,Developed in the textNanoGICP,This is a custom iterative closest point solver,Essentially it will be open sourceFastGICP和NanoFLANNThe two packages are merged,使用NanoGICP的NanoFLANNto build efficientlyKD-tree, 然后通过FastGICPfor efficient matching.
A. 帧间匹配
Lidar-based odometers can be considered pass-throughCompare the continuous point cloud with the in-memory point cloud for recoverySE(3)变换To analyze the process of robot self-motion.此过程通常分两个阶段运行,首先是提供最佳初始值,随后将其优化为与先前关键帧位置保持其全局一致.
The objective function is the following formula,其中 X ^ k L \hat{\mathbf{X}}_{k}^{\mathcal{L}} X^kL代表了在 s s s时刻和 t t tThe relative transformation of the pose at the moment, P k s \mathcal{P}_{k}^{\mathrm{s}} Pks代表了sourceof scanned point clouds, P k t \mathcal{P}_{k}^{\mathrm{t}} Pkt代表了targetof scanned point clouds( P k t = P k − 1 s \mathcal{P}_{k}^{\mathrm{t}}=\mathcal{P}_{k-1}^{\mathrm{s}} Pkt=Pk−1s这代表了 k k k时刻的target点云与 k − 1 k-1 k−1时刻的source点云).
X ^ k L = arg min x k L E ( X k L P k s , P k t ) \hat{\mathbf{X}}_{k}^{\mathcal{L}}=\underset{\mathbf{x}_{k}^{\mathcal{L}}}{\arg \min } \mathcal{E}\left(\mathbf{X}_{k}^{\mathcal{L}} \mathcal{P}_{k}^{\mathrm{s}}, \mathcal{P}_{k}^{\mathrm{t}}\right) X^kL=xkLargminE(XkLPks,Pkt)
其中 E \mathcal{E} E为误差函数,这里被定义为:
E ( X k L P k s , P k t ) = ∑ i N d i T ( C k , i t + X k C C k , i s X k L ) − 1 d i d i = p i t − X k L p i s , p i s ∈ P k s , p i t ∈ P k t \mathcal{E}\left(\mathbf{X}_{k}^{\mathcal{L}} \mathcal{P}_{k}^{\mathrm{s}}, \mathcal{P}_{k}^{\mathrm{t}}\right)=\sum_{i}^{N} d_{i}^{\mathrm{T}}\left(\mathcal{C}_{k, i}^{\mathrm{t}}+\mathbf{X}_{k}^{\mathcal{C}} \mathcal{C}_{k, i}^{\mathrm{s}} \mathbf{X}_{k}^{\mathcal{L}}\right)^{-1} d_{i}\\ d_{i}=p_{i}^{t}-\mathbf{X}_{k}^{L} p_{i}^{\mathrm{s}}, p_{i}^{\mathrm{s}} \in \mathcal{P}_{k}^{\mathrm{s}}, p_{i}^{\mathrm{t}} \in \mathcal{P}_{k}^{\mathrm{t}} E(XkLPks,Pkt)=i∑NdiT(Ck,it+XkCCk,isXkL)−1didi=pit−XkLpis,pis∈Pks,pit∈Pkt
其中 d i = p i t − X k L p i s , p i t ∈ P k t , p i s ∈ P k s d_{i}=p_i^t-\mathbf{X}_{k}^{\mathcal{L}}p_i^s,p_i^t\in\mathcal{P}_{k}^{\mathrm{t}}, p_i^s\in\mathcal{P}_{k}^{\mathrm{s}} di=pit−XkLpis,pit∈Pkt,pis∈PksRepresents the distance difference between two points in the point cloud. C k , i s , C k , i t \mathcal{C}_{k, i}^{\mathrm{s}}, \mathcal{C}_{k, i}^{\mathrm{t}} Ck,is,Ck,itRefers to each point in both point clouds i i iThe corresponding estimated covariance matrix.
B. 帧图匹配
…详情请参照古月居
边栏推荐
- From 0 to 1: Design and R&D Notes of Graphic Voting Mini Program
- [LeetCode304周赛] 两道关于基环树的题 6134. 找到离给定两个节点最近的节点,6135. 图中的最长环
- 6132. 使数组中所有元素都等于零-快速排序法
- What is CICD excuse me
- 6134. 找到离给定两个节点最近的节点-力扣双百代码
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
- 【C语言进阶】文件操作(二)
- 仿牛客网项目第三章:开发社区核心功能(详细步骤和思路)
- 论文理解【RL - Exp Replay】—— Experience Replay with Likelihood-free Importance Weights
- 程序员如何优雅地解决线上问题?
猜你喜欢

深度学习基础-基于Numpy的循环神经网络(RNN)实现和反向传播训练

Sql之各种Join
Background project Express-Mysql-Vue3-TS-Pinia page layout-sidebar menu

System availability: 3 9s, 4 9s in SRE's mouth... What is it?

cdh的hue上oozie启动报错,Cannot allocate containers as requested resource is greater than maximum allowed

研发团队数字化转型实践

C语言——分支语句和循环语句

How do programmers solve online problems gracefully?

访问控制台中的选定节点

cdh6打开oozieWeb页面,Oozie web console is disabled.
随机推荐
Chapter 12 End-User Task As Shell Scripts
测试岗月薪5-9k,如何实现涨薪到25k?
Chapter 11 Working with Dates and Times
cdh的hue上oozie启动报错,Cannot allocate containers as requested resource is greater than maximum allowed
Flink学习第三天——一文带你了解什么是Flink流?
添加大量元素时使用 DocumentFragments
C#大型互联网平台管理框架源码:基于ASP.NET MVC+EF6+Bootstrap开发,支持多数据库
斜堆、、、
chrome复制一张图片的base64数据
Chapter 19 Tips and Traps: Common Goofs for Novices
PDF转Word有那么难吗?做一个文件转换器,都解决了
毕业作业
Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
[C language advanced] file operation (2)
Secondary Vocational Network Security Competition B7 Competition Deployment Process
bat 之 特殊字符&转义
Flink学习第五天——Flink可视化控制台依赖配置和界面介绍
请问什么是 CICD
避免使用 <b>、<i>、<s> 和 <u> 标签
Oracle 数据库设置为只读及读写