lnex的个人博客

传感器标定

Voxelmap++

相关文件/Github/视频: ArXiv Github VoxelMap++: Mergeable Voxel Mapping Method for Online LiDAR(-inertial) Odometry 是电子科大近期挂在ArXiv上的一篇论文。我个人觉得这篇论文解决了很多在VoxelMap使用过程中的问题,因此写个笔记。 背景 由于VoxelMap能够估计平面的不确定性,使得VoxelMap具有极佳的精度及鲁棒性。但是VoxelMap同样存在若干不足: VoxelMap使用6自由度表示平面,造成了时间和空间复杂度的增长; VoxelMap没有处理不同voxel之间的关系,导致在VoxelMap中一个平面会有大量重复的voxel; 为了解决这些问题,作者基于VoxelMap提出了VoxelMap++,一种在线的可合并体素建图方法,并以三自由度表示平面。 作者认为VoxelMap++的主要贡献有如下几点: 使用最小二乘估计(LSE)将平面拟合和方差估计方法从6自由度降低到3自由度; 提出了一种基于并查集的在线体素合并方法; 在大量不同场景下对比了VoxelMap++和其他SOTA算法,展现了VoxelMap++在精度和效率上的优势; 使得VoxelMap++能够适应不同类型的激光雷达(包括多线旋转式激光雷达和固态雷达),并开源了VoxelMap++的代码; 方法 算法流程 VoxelMap++的流程同VoxelMap基本一致,仅修改了体素拟合模块并新增了体素合并模块。 3自由度平面表示 由VoxelMap中的推导,可以计算局部坐标系下的点$^L \boldsymbol p_i$的协方差并将其转换到世界坐标系下,如下所示: $$ \textbf{A}_i = \begin{bmatrix}\omega_i & -d_i \lfloor\omega_i\rfloor_{\times}\textbf{N}(\omega_i)\end{bmatrix}\tag{1} $$ $$ \Sigma_{^L\textbf{p}_i} = \textbf{A}_i \begin{bmatrix}\Sigma_{d_i} & \textbf{0}_{1\times 2} \\ \textbf{0}_{2\times 1} & \Sigma_{ \omega_i}\end{bmatrix}\textbf{A}_i^T \tag{2} $$ $$ {}^W\textbf{p}_i ={}_{L}^{W}\textbf{R}{}^L\textbf{p}_i + {}^W_L\textbf{t} \tag{3} $$ 作者指出,对于一组方差为$\Sigma_{W_{\textbf p_i}}$的共面点云$W_{\textbf p_i},(i=1,…,N)$,平面可以参数化为以下形式: $$ ax+by+z+d=0 \tag{4} $$ 由于所有的点$W_{\textbf p_i}$都满足上式,则可以构建一个最小二乘优化函数,如(5)所示,其中 $\textbf n^T=[a,b,d]$ ....

九月 1, 2023 · 2 分钟 · 219 字 · lnex

论文阅读:LIC-Fusion: LiDAR-Inertial-Camera Odometry

相关文件&视频: IROS 2019 slides Youtube 背景 LIC-Fusion: LiDAR-Inertial-Camera Odometry是2019年发表的文章。作者在相关工作中将Zhang和Singh提出的Laser-visual-inertial Odometry and Mapping with High Robustness and Low Drift作为对比,并指出该论文中无论是迭代优化还是ICP配准都需要复杂的流水线和并行处理以实现实时运行。同时,该论文中的方法仅将VIO系统的位姿同激光雷达扫描进行松耦合,损失了激光雷达和VIO系统的相关信息。 贡献 本文提出了一种快速、紧耦合、单线程的激光雷达-IMU-相机里程计。该里程计基于MSCKF开发(感觉事实上就是OpenVINS),并实现了在线的传感器时偏和外参标定。具体贡献如下: 开发了紧耦合的激光雷达-IMU-相机里程计(LIC-Fusion),在实现高效的6自由度位姿估计的同时对传感器时差和外参进行在线标定。提出的LIC-Fusion在MSCKF框架下有效地结合了IMU测量、稀疏视觉特征以及两种不同的激光雷达特征(线,面)。并清晰地建模和推导l待标定的外参、位姿估计值和各观测值之间的关系; 在真实世界场景(室内、室外)下对提出的方法进行了大量的实验验证,证明提出的LIC-Fusion比SOTA方法更精确和鲁棒; LIC-Fusion 状态变量 $$ \bold x = \begin{bmatrix} \bold x_I^T & \bold x_{calib_C}^T & \bold x_{calib_L}^T & \bold x_C^T & \bold x_L^T \end{bmatrix}^T $$ 分别为: IMU状态(PVQ) 相机标定参数(外参PQ,时差) 激光雷达标定参数(外参PQ,时差) 滑窗中的相机位姿 滑窗中的激光雷达位姿 IMU传播 状态增广 测量模型 激光雷达 该文中使用的激光雷达是机械式的,所以在文中作者通过计算激光雷达扫描线上点的曲率以提取特征点(线/面),并在帧间利用KD-tree做索引对特征进行跟踪。 对于当前帧的每个线特征点$^{L_{l+1}}\bold p_{fi}$,将其投影到上一帧得到:$^{L_{l}}\bold p_{fi}$。在上一帧中搜索两个最近邻的线特征点$^{L_{l}}\bold p_{fj},^{L_{l}}\bold p_{fk}$。若$^{L_{l}}\bold p_{fj}$位于激光雷达的第$r$条扫描线上,则$^{L_{l}}\bold p_{fk}$应当位于第$r$或$r+1$条扫描线上。 根据三个线特征点$^{L_{l}}\bold p_{fi},^{L_{l}}\bold p_{fj},^{L_{l}}\bold p_{fk}$可以计算残差: $$ r(^{L_{l+1}}\bold p_{fi}) = \cfrac{ \lVert (^{L_{l}}\bold p_{fi} - ^{L_{l}}\bold p_{fj}) \times (^{L_{l}}\bold p_{fi} - ^{L_{l}}\bold p_{fk})\rVert_2 }{ \lVert ^{L_{l}}\bold p_{fj} - ^{L_{l}}\bold p_{fk} \rVert_2 } $$...

八月 4, 2023 · 1 分钟 · 109 字 · lnex

论文阅读: From coarse to fine: robust hierarchical localization at large scale

From coarse to fine: robust hierarchical localization at large scale 是目前正在ETHZ的CVG组读博的Paul-Edouard Sarlin在硕士期间发表在CVPR 2019的一篇论文。这篇论文还附带了一个开源的定位工具箱hloc. 总体而言这篇工作的思想还是比较简单直观的,这篇工作要解决的问题是在大场景下的6-DoF视觉定位,为了提高定位的效率以及鲁棒性,作者使用了 “from coarse to fine” 的定位方式,即从粗到细的定位。本篇工作的主要内容为一分层特征网络(Hierarchical Feature Network, HF-Net)。 背景 视觉定位是计算机视觉中的一项关键任务,在机器人、自动驾驶等等领域有着广泛的应用。随着视觉定位应用的范围增长,其所需要解决的问题也就更多,诸如明暗变化、天气,季节变化、室内外定位等等。因此鲁棒性对于该任务是至关重要的。同时,在机器人和各种载具上的资源是有限的,因此,本文的目的即是研究在计算资源受限条件下的大尺度变化场景鲁棒定位。 作者指出目前的定位方法主要可分为两类: 利用局部描述子对2D图像特征点和3D模型中的特征点进行匹配的定位。该方法无法同时达到高效和鲁棒两个目标。 利用全局描述子进行图像检索(image retrieval)。该方法鲁棒性和效率好,但是精度差。 框架 作者提出了一种从粗到细的定位方式,利用到了图像的全局特征和局部特征进行定位。也就是说结合了特征点匹配定位和图像检索定位的优势: 先进行图像检索确定大致的6-DoF位姿,从而降低下一步进行特征点匹配时的计算复杂度; 根据图像检索得到的大致位姿,将图像的局部特征子和图像附近的3D模型中的特征子进行匹配,利用PnP+RANSAC进行精细定位,得到最终的结果; Pipeline 如pipeline所示:首先离线提取图片的全局特征构建 global index,以及利用 SfM 重建3D模型得到局部特征在三维空间中的位置。然后再进行在线定位(即先进行图像检索,再根据PnP的方式求得最终位姿) 作者也指出了近年来基于神经网络的特征在变化场景下具有较好的鲁棒性。因此,为了进一步提升计算效率,作者提出了HF-Net以同时提取局部特征和全局特征。同时作者利用模型蒸馏的方式将多个SOTA的预测头(也就是局部特征层和全局特征层)结合起来,提升了计算效率。 HF-Net的整体框架如下: HF-Net 由于图片的全局特征(如VLAD等)往往是由局部特征聚合而来,因此全局特征网络和局部特征网络共用一个backbone是很合理的一个想法。本文中作者选用MobileNet作为backbone,降低模型参数,提升推理速度。 同时作者选用 NetVLAD 作为 global teacher model,选用 Superpoint 作为 local teacher model. 通过模型蒸馏的方式去直接地去联合学习全局特征和局部特征,能够有效地缩小 student network 的大小并且加速训练。 实验 作者在Aachen Daynight, RobotCar 和 CMU Seasons这类包含了昼夜、天气、季节变化的大场景数据集上进行了测试,并且与其他多种方式进行了对比。最终得出的结论是相对于单一的特征点定位或图像检索定位,这种层次化定位的精度得到了巨大的提升。同时作者也将层次化定位中的Superpoint特征更换为SIFT特征进行测试,结论是相对于SIFT这种传统手工特征,Superpoint特征在变化场景下展现出了更好的鲁棒性。 针对于HF-Net定位的速度,作者也给出了数据:在GTX 1080上,HF-Net能够达到20fps左右的运行速度。 个人评价 这一套层次化定位思想简单但有效,HF-Net作为一种神经网络能够达到很高的运行速度,足以在移动设备上运行。而且再加上很多场景下可以利用其他传感器提供位置信息,这里的层次化视觉定位可以仅用于提供一个先验的约束。而在NVIDIA Jetson嵌入式开发板上运行时预估能够达到的数fps的速度已经能够有效地提供先验定位结果了。

八月 28, 2022 · 1 分钟 · 69 字 · lnex

Record Synchronized Image Pair with AirSim

Some tricks

八月 4, 2022 · 2 分钟 · 318 字 · lnex

SIGEYI盘爪功率计初体验

又菜又爱玩

七月 20, 2022 · 1 分钟 · 21 字 · lnex

境外服务器重新建站

果然还是不想搞备案啥的,太麻烦了

七月 4, 2022 · 1 分钟 · 1 字 · lnex

Point Cloud Change Detection With Stereo V-SLAM: Dataset, Metrics and Baseline

This is the project website of our paper: Point Cloud Change Detection With Stereo V-SLAM:Dataset, Metrics and Baseline

七月 4, 2022 · 4 分钟 · 788 字 · lnex