当前位置:网站首页>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. 帧图匹配
…详情请参照古月居
边栏推荐
猜你喜欢

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

中职网络安全竞赛B7比赛部署流程

软件测试之移动APP安全测试简析,北京第三方软件检测机构分享

6134. 找到离给定两个节点最近的节点-力扣双百代码

Sql之各种Join

数据机构---第五章树与二叉树---二叉树的概念---应用题

How do programmers solve online problems gracefully?

CAKE:一个用于多视图知识图谱补全的可扩展性常识感知框架
![[LeetCode304 Weekly Competition] Two questions about the base ring tree 6134. Find the closest node to the given two nodes, 6135. The longest cycle in the graph](/img/63/16de443caf28644d79dc6e6889e5dd.png)
[LeetCode304 Weekly Competition] Two questions about the base ring tree 6134. Find the closest node to the given two nodes, 6135. The longest cycle in the graph

邻接表与邻接矩阵
随机推荐
numpy.where
excel vertical to horizontal
npm npm
2022/7/31
数据机构---第五章树与二叉树---二叉树的概念---应用题
When using DocumentFragments add a large number of elements
GIF制作-灰常简单的一键动图工具
cmd指令
Calculate the midpoint between two points
研发团队数字化转型实践
加载字体时避免隐藏文本
如何更好的理解的和做好工作?
[Camp Experience Post] 2022 Cybersecurity Summer Camp
What is CICD excuse me
qt-faststart installation and use
Convert LocalDateTime to Date type
Sql之各种Join
DRF generating serialization class code
程序员还差对象?new一个就行了
架构基本概念和架构本质