当前位置:网站首页>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. 帧图匹配
…详情请参照古月居
边栏推荐
- Avoid hidden text when loading fonts
- vscode hide menu bar
- Always use "noopener" or "noreferrer" for links that open in a new tab
- 问题解决方式了
- 6133. 分组的最大数量
- Flink学习第四天——完成第一个Flink 流批一体案例
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
- Spark Sql之join on and和where
- Chapter 12 End-User Task As Shell Scripts
- 2022第六届强网杯部分wp
猜你喜欢
Building a cloud-native DevOps environment
C#大型互联网平台管理框架源码:基于ASP.NET MVC+EF6+Bootstrap开发,支持多数据库
Quartus 使用 tcl 文件快速配置管脚
sys_kill系统调用
经典文献阅读之--DLO
访问控制台中的选定节点
From 0 to 1: Design and R&D Notes of Graphic Voting Mini Program
Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
cdh6打开oozieWeb页面,Oozie web console is disabled.
sys_kill system call
随机推荐
Is TCP reliable?Why?
What can be done to make this SQL into a dangerous SQL?
Spark Sql之join on and和where
numpy.where
Flink学习第五天——Flink可视化控制台依赖配置和界面介绍
获取小猪民宿(短租)数据
6132. 使数组中所有元素都等于零-快速排序法
From 0 to 100: Notes on the Development of Enrollment Registration Mini Programs
Interpretation of the paper (GSAT) "Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism"
检查点是否在矩形内
CAKE:一个用于多视图知识图谱补全的可扩展性常识感知框架
DRF generating serialization class code
Additional Features for Scripting
nodejs--process
Convert LocalDateTime to Date type
cdh6打开oozieWeb页面,Oozie web console is disabled.
6133. Maximum number of packets
程序员还差对象?new一个就行了
Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
论文理解【RL - Exp Replay】—— Experience Replay with Likelihood-free Importance Weights