
# CamVox：一种低成本且高精度的激光雷达辅助视觉SLAM系统

朱月文、郑春然、袁崇健、黄旭、洪晓平

摘要—在基于相机的同步定位与建图（SLAM）中结合激光雷达，是提高整体精度的有效方法，尤其是在大规模户外场景中。近年来低成本激光雷达（如Livox激光雷达）的发展，使我们能够以更低的预算开发出性能更高的此类SLAM系统。本文提出的CamVox系统，通过利用Livox激光雷达的独特特性，将其适配到视觉SLAM算法（ORB-SLAM2）中。基于Livox激光雷达的非重复扫描特性，我们提出了一种可在无约束场景下使用的自动激光雷达-相机标定方法。其较长的深度探测范围也有助于提升建图效率。我们通过在相同数据集上对CamVox与视觉SLAM（VINS-mono）及激光雷达SLAM（LOAM）进行性能对比，来验证其表现。我们已将相关硬件、代码和数据集开源至GitHub $^{1}$。

## I. 引言

同步定位与建图（SLAM）是自主机器人领域的关键技术，近年来受到了学术界和工业界的广泛关注。低成本传感器的出现极大地推动了SLAM技术的发展。例如，摄像头能够提供丰富的角度和颜色信息，促成了ORB-SLAM等视觉SLAM算法的诞生 [^1]。随后，由于智能手机行业的广泛应用，惯性测量单元（IMU）的价格不断下降，将其应用于SLAM中以获得额外的模态信息和更高性能也变得更为简便，比如VINS-mono [^2] 和ORB-SLAM3 [^3]。在其他传感器中，深度传感器（双目摄像头、RGB-D摄像头）能够直接提供深度测量数据，从而让ORB-SLAM2等SLAM算法实现高精度表现 [^4]。高端深度传感器具备长距离户外探测能力、精准的测量结果以及系统鲁棒性，已被广泛应用于自动驾驶等要求更高的领域 [^5]，但通常价格不菲。随着自动驾驶行业的发展，近期多项新技术突破使得低成本激光雷达得以商业化，比如Ouster和Livox激光雷达。Livox激光雷达具有非重复扫描模式，在低成本激光雷达辅助的SLAM系统中具备独特优势。本文我们首次提出了性能优异且能实时运行的Livox激光雷达辅助视觉SLAM系统（CamVox）。我们的CamVox SLAM基于最先进的ORB-SLAM2算法构建，将Livox激光雷达用作深度传感器，具备以下新特性：

1) 包含激光雷达与相机输入融合的预处理步骤。系统会进行精细的时间同步处理，利用IMU数据修正非重复扫描的激光雷达点云中的畸变，并将其转换到相机坐标系下。

2) 与其他深度摄像头相比，该激光雷达点云的精度和探测范围更具优势，所提出的SLAM系统能够更高效地进行大规模建图，并且可以在户外强日光环境下稳定运行。

3) 我们利用Livox激光雷达的非重复扫描特性，在无约束场景下实现了相机与激光雷达之间的自动标定。

4) 我们针对CamVox的性能与一些主流框架进行了对比测试，结果显示其轨迹计算结果非常精准。我们还开源了本研究的硬件、代码和数据集，旨在为用户提供开箱即用的CamVox（摄像头+Livox激光雷达）SLAM解决方案。

![Image](images/e3947f227800e3bcecc54e54b95c5496792a971c98121712f30474b1ed9712ae.jpg)

<div style="text-align: center;">Fig. 1. Example of CamVox performance. (a) the trajectory of the robot from CamVox; (b) the dense RGBD map from CamVox; (c) a magnified and rotated part of (b) demonstrating high point cloud quality.</div>

图1展示了来自CamVox的轨迹与地图构建示例。该地图的长边尺度约为200米。本文其余部分的结构如下：第二节对相关工作进行了综述；第三节详细描述了CamVox系统的硬件与软件框架；第四节给出了实验结果及评估；最后，第五节总结了全文并展望了未来研究方向。

### 二、相关工作

由于相机具备丰富的角度分辨率与丰富的色彩信息，通过简单的投影模型和束调整算法，便能实现出色的定位与建图性能。最著名的单目相机SLAM系统之一便是ORB-SLAM [^1]。ORB-SLAM通过提取图像中的ORB特征来追踪物体，

---

并利用回环检测来全局优化地图与位姿，这一过程通常快速且稳定。不过，由于相机无法获知绝对深度尺度，因此无法准确恢复真实的尺度因子。

为解决单目相机无法恢复真实世界尺度的问题，Mur等人提出了对ORB-SLAM的改进版本——ORB-SLAM2 [^4]，该版本新增了对立体相机和RGBD相机的支持以实现深度估计。不过，这两类相机都存在缺陷，尤其是在估计远距离户外物体时。立体相机需要较长的基线才能准确估计远距离深度，而这一要求在现实场景中往往难以满足；此外，两台相机之间的校准容易受机械变动影响，进而会对远距离深度估计精度产生不利影响。RGBD相机通常易受阳光干扰，且其有效工作范围一般不超过10米。融合相机与IMU是另一种常见解决方案：相机可部分修正IMU的积分漂移问题，同时校准IMU偏差；而IMU则能克服单目系统的尺度模糊问题。Qin等人提出的视觉惯性单目SLAM（VINS）[^2]便是一个优秀的相机与IMU融合系统。类似地，Campos等人对ORB-SLAM2进行了扩展，通过融合相机与IMU数据提出了ORB-SLAM3 [^3]。不过，消费级IMU仅能在较低精度要求下正常工作，且存在偏差、噪声和漂移问题；而高端IMU的成本则高得令人却步。

另一方面，激光雷达能够提供直接的空间测量数据。激光雷达SLAM框架已经得到发展。其中一项开创性工作就是LOAM [^6]。与视觉SLAM相比，由于激光雷达点云能提供精确的深度估计，它在动态环境中更为稳健。然而，由于复杂的扫描机制，激光雷达无法像相机那样提供高角度分辨率，因此在隧道或走廊等结构不明显的环境中容易失效。此外，它缺乏回环检测功能，导致算法只能专注于局部精度，而无法实现全局位姿和地图优化。为了在LOAM中加入回环检测功能，Shan等人 [^7] 提出了改进的LOAM算法——LeGO-LOAM。与LOAM相比，LeGO-LOAM通过分割和聚类来优化特征提取过程以提高效率，同时加入了回环检测功能以减少长时间运行产生的漂移。将激光雷达和相机结合在SLAM框架中是一种理想的解决方案：既能获取具有精确深度信息的点云，又能利用相机提供的高角度分辨率和色彩信息。Zhang等人提出的VLOAM [^8] 采用了单目相机与激光雷达的松散融合方式。与LOAM类似，该算法声称其估计结果足够精确，且无需回环检测。Shin等人也尝试使用直接法而非特征点来结合单目相机和激光雷达以估计位姿；该方法紧密耦合了视觉数据与点云，并输出估计的位姿。Shao等人 [^9] 更进一步，他们同时使用了立体相机、惯性测量单元和激光雷达。凭借立体视觉-惯性里程计（VIO）的回环检测功能，他们在户外真实场景中也取得了优异的表现。不过，VIO与激光雷达制图之间是松散耦合的，后端没有进一步优化，且这种方法也受到复杂性和成本的限制。

过去，激光雷达的成本通常过高，难以在实际应用中发挥作用。幸运的是，Livox推出了一种基于棱镜扫描的新型激光雷达 [^10]。得益于这种新型扫描方式，成本得以大幅降低，从而推动其广泛应用。此外，这种扫描方式能产生非重复的扫描模式 $^{2}$，累积后可获得分辨率相对较高的点云（见图2）。即便仅累积100毫秒，Livox Horizon的点云密度就已达到64线，且还会继续增加。这一特性在激光雷达与相机的校准中极具价值，因为传统多线激光雷达在线条之间的精度不足。棱镜设计还具备最大的光学孔径，有利于信号接收并实现远距离探测。例如，在强阳光下，Livox Horizon的探测距离可达260米 $^{3}$。凭借出色的性价比，Lin等人提出了Livox-LOAM [^11]，这是对适配Livox Mid的LOAM算法的改进版本。基于此，Livox还为Livox Horizon发布了名为livox_horizon_loam的LOAM框架 $^{4}$。

![Image](images/8a75064bf11cacba41ea65864b3d11c585d9fa7b55692abb19856260f8e05af0.jpg)

<div style="text-align: center;">Fig. 2. Point cloud density of three Livox lidar models compared to traditional lidars as a function of integration time.</div>

由于激光雷达具备远距离探测和高精度的特点，相机与激光雷达之间的外部参数校准便显得愈发重要。在[^12]中，针对激光雷达-相机校准的解决方案可分为两类：第一类是校准过程是否需要校准目标；第二类是校准能否在无人工干预的情况下完成。近年来，许多校准技术都依赖于固定的校准目标或人工操作，比如[^13]和[^14]。在

---

[^15]，Pandey等人利用克拉美-罗下界（CRLB）来证明校准参数的存在性，并通过计算最小方差无偏（MVUB）估计量来估算这些参数。Iyer等人提出了一种名为CalibNet的网络，这是一种基于几何监督的深度网络，用于估算激光雷达与摄像头之间的变换关系[^16]。上述两种方法均无需特定的场景要求。此外，Levinson等人在[^12]中提出了一种在线校准方法，他们声称该方法能够实时校准激光雷达和摄像头，且适用于任何场景。但迄今为止，校准仍是一项具有挑战性的任务，目前还没有用于在非受控场景下校准激光雷达和摄像头的开源算法。正如我们将要展示的那样，Livox激光雷达的非重复扫描模式或许能提供一个更为简便的解决方案。

### III. CamVox框架

所提出的CamVox基于ORB-SLAM2（RGBD模型），具备针对非受控场景的独立RGBD输入预处理和自动校准功能。该框架利用激光雷达辅助的视觉关键帧来生成局部地图，得益于ORB-SLAM2中多层次的束调整（BA）及闭环检测机制，后端轻量级的位姿图优化使其表现出极高的鲁棒性。

在原始的ORB-SLAM2中，关键点被分为近景点和远景点两类：近景点具有较高的深度确定性，可用于尺度、平移和旋转估计；而远景点仅用于旋转估计，信息量较少。借助Livox激光雷达获取的密集、远距离且精确的点云数据，结合摄像头图像，可生成的近景点数量远多于传统RGBD摄像头（受探测范围限制）或立体视觉摄像头（受基线长度限制）。如此一来，摄像头（具备高角分辨率，利于ORB特征检测与跟踪）和激光雷达（远距离且深度测量精确）的优势便能以紧密耦合的方式得到充分发挥。

![Image](images/62b55972a72f2b5e3b19b4407e6aa2bc5d2b2883136317bee5e231658b7829b8.jpg)

<div style="text-align: center;">Fig. 3. (a) The complete robot platform. CamVox hardware is mounted on top of this robot. An additional RGBD camera is mounted for comparison. (b) CamVox hardware close-up including a camera, Livox Horizon, and IMU. Additional GPS/RTK is used for ground truth estimation. (c-d) an example of acquired RGB image, and depth image from lidar point cloud (colored in depth).</div>

### A. 硬件与软件

CamVox的硬件包括一台MV-CE060-10UC卷帘式摄像头、一台Livox Horizon激光雷达以及一台惯性测量单元（Inertial Sense $\mu$INS）。额外的GPS-RTK（Inertial Sense $\mu$INS）用于真实值估计。所有传感器通过10 Hz的触发信号实现硬件同步；摄像头在每次触发信号时输出数据（10 Hz）。激光雷达内置时钟（与GPS-RTK同步），可持续输出带有精确时间戳的扫描点云。与此同时，惯性测量单元以200 Hz的频率输出数据，且与触发信号同步。GPS-RTK的数据也会被记录下来，以便与真实值进行对比。系统中还安装了一台Intel RealSense D435 RGBD摄像头用于对比测试。整个系统搭载于移动机器人平台（Agile X Scout mini）上。值得注意的是，Livox Horizon激光雷达的售价仅为800美元，远低于其他性能相近的激光雷达产品（1万至8万美元），因此能够在合理的预算内搭建完整的硬件系统。

软件流程如图4所示，由多个并行线程运行。除了ORB-SLAM2原有的主要线程外，还新增了一个RGBD输入预处理线程，用于采集同步后的摄像头与激光雷达数据（经惯性测量单元校正），并将其处理为统一的RGBD帧。当检测到机器人静止或用户发起指令时，可自动触发自动校准线程来对摄像头和激光雷达进行校准，校准结果会经过评估后输出，以便更新相关参数。

![Image](images/4e26c4ac817fe8e79c32162327b5cfc6701181767f82e699f7bd2ba19e241300.jpg)

<div style="text-align: center;">Fig. 4. CamVox SLAM pipeline. In addition to the ORB-SLAM2 major threads, a RGBD input preprocessing thread is used to convert lidar and camera data to the RGBD format, and an automatic calibration thread can be automatically/manually triggered for camera and lidar extrinsic calibration, which is shown in Section C.</div>

### B. 预处理

预处理线程会获取激光雷达采集的原始点云数据，这些数据会先经过惯性测量单元（IMU）校正，再根据与摄像头的外部标定参数投影为深度图像。随后，RGB图像会与深度图像结合，生成RGBD帧作为输出；如图3c和图3d所示，这两幅图像的尺寸相同，且像素一一对应。基于该输出结果，后续追踪线程会执行ORB特征提取、关键点生成等操作。由于激光雷达会持续扫描周围环境，每个数据点都是在略微不同的时间戳下获取的，因此需要通过IMU进行校正。这与摄像头的情况不同，摄像头拍摄的图像几乎是在同一时刻获取的。图5展示了机器人连续运动时点云发生畸变的一个示例。为了修正这种畸变，需根据每个激光雷达点输出时刻的IMU位姿对机器人运动进行插值，进而完成坐标变换。

---

将激光雷达点转换到触发信号产生时的激光雷达坐标系下，这一时刻也正是摄像头拍摄图像的时刻。这种变换可由公式(1)和公式(2)描述。

 $$ T_{si}=\frac{t_{i}-t_{s}}{t_{e}-t_{s}}T_{se} $$

 $$ P_{i}^{s}=T_{si}P_{i}^{i} $$

其中，$t_{s}$和$t_{e}$分别为激光雷达帧的起始时间戳和结束时间戳。激光雷达帧中任意三维点的坐标时间戳可表示为$t_{i}$。根据IMU测量的$T_{se}$到$t_{s}$时间段内的机器人位姿变换矩阵$t_{e}$，即可通过公式(1)计算出$T_{si}$到$t_{s}$之间的变换关系$t_{i}$。最终，所有激光雷达点都会被转换到$t_{s}$时刻的激光雷达坐标系中，这一过程如公式(2)所示。

![Image](images/4387bf4fd4641113ebab623009443c45a205e3cec630ed09a824a1414392dac8.jpg)

<div style="text-align: center;">Fig. 5. Example of motion distortion correction by IMU. (a) the RGB image of a corner scene; (b) the raw point cloud during a scan while the robot is moving; (c) the distortion corrected point cloud after processing with IMU data.</div>

![Image](images/2d9e29b15e56a7f630e6a9b3f4a9ec4c5bfb8600b4432f899a04ba8a9d3c4151.jpg)

<div style="text-align: center;">Fig. 6. Student dormitory at SUSTech, captured by (a) RGB camera, (b) Realsense D435 and (c) CamVox RGBD output. The blue rectangles show the position of the coconut tree leaf at the three pictures. It is clear that typical RGBD camera are much worse than the CamVox RGBD output in detection distance and resistance to sunlight noise.</div>

此外，借助远距离探测型Livox激光雷达，我们能够可靠地检测到100米以外的许多与深度相关的摄像头特征点。相比之下，Real-sense RGBD摄像头无法检测到10米以外的点，还会受到阳光噪声的干扰，这一点在图6中清晰可见。因此，在CamVox系统中，我们可以将距离小于130米的关联深度点定义为近景关键点。这一距离远超立体基线长度的40倍——而商用立体摄像头常用的立体基线长度通常仅为10厘米左右。

### C. 标定

由于激光雷达具备远距离探测能力，标定精度在CamVox系统中至关重要。微小的角度偏差就可能在远距离场景下导致较大的绝对误差。现场并不总能找到棋盘格这类可控的标定目标，而且随机的固定失效或碰撞后也可能会出现对齐偏差。因此，需要开发一种能在无控制场景下进行标定、并在发现更优标定匹配结果时更新参数的方法。得益于Livox激光雷达信号的非重复性特点，只要能积累几秒钟的扫描点，深度图像的分辨率就能达到与摄像头图像相当的水平（见图7），从而轻松找到其与摄像头图像的对应关系。因此，我们几乎能在所有现场场景中基于场景信息自动完成标定。为了消除运动模糊，这种自动标定的触发条件设定为检测到机器人处于静止状态。此时机器人保持静止，激光雷达会积累几秒钟的点云数据，同时摄像头也会拍摄图像。

![Image](images/a07d23ef87eb1d1d0e11f83d17de49ac2dfecd94589e0678eb90a549df09c6b2.jpg)

<div style="text-align: center;">Fig. 7. Calibration thread pipeline with examples. The captured data from camera and lidar (remaining still and accumulate for a few seconds) are processed with initial calibration parameters to form three images (grayscale, reflectivity and depth, the latter two are from lidar). Calibration is performed on the edges detected from these images until a satisfactory set of parameters is obtained.</div>

整体校准算法的结构如图7所示。首先利用初始外部参数，通过反射率和深度值将密集点云投影到成像平面上，随后进行轮廓提取，以便与相机图像的轮廓进行比较。成本函数由改进的ICP算法构建，该算法可通过Ceres [^17]进行优化，从而得到相对更精确的外部校准参数。接着，用这些新参数计算出的成本函数会与之前的值进行对比，以此决定是否在输入预处理线程中更新外部校准参数。

假设激光雷达坐标系中某一点的坐标值为 $X = (x, y, z, 1)^T$，相机坐标系中该点的z坐标值为 $Z_c$，且该点对应的像素坐标为

---

该点在二维图像中的位置为 $Y = (u, v, 1)^T$。给定从激光雷达到相机的初始外部变换矩阵 $T_{lidar}^{cam}$ 以及相机的内部参数 $(f_u, f_v, c_u, c_v)$，便可利用公式(3)和公式(4)将三维点云投影到二维图像上。

 $$ P_{rect}=\left(\begin{array}{cccc}{{{f_{u}}}}&{{{0}}}&{{{c_{u}}}}&{{{0}}} \\{{{0}}}&{{{f_{v}}}}&{{{c_{v}}}}&{{{0}}} \\{{{0}}}&{{{0}}}&{{{1}}}&{{{0}}}\end{array}\right) $$

 $$ Z_{c}Y=P_{rect}T_{lidar}^{cam}X $$

将激光雷达点云投影到二维图像后，我们对所有图像进行直方图均衡化处理，并使用Canny边缘检测器[^18]提取边缘。由于深度图像和反射率图像均来自同一激光雷达但包含不同信息，因此会将两者提取出的边缘合并。为了提取更可靠的边缘，会对这些边缘图像中的两类边缘进行过滤：第一类是长度小于200像素的边缘；第二类是相互堆叠在一起的内部边缘。最终，我们就能得到同时存在于相机图像和激光雷达图像中的特征边缘，再根据最近边缘距离进行边缘匹配。

图7右下角展示了初步匹配结果：橙色线代表相机图像的边缘，蓝色线代表Horizon图像的边缘，红色线则表示最近点之间的距离。此处我们采用了ICP算法[^19]，并利用K-D树来加快最近邻点的搜索速度。不过有时会出现错误匹配，导致参与距离计算的点极少，使得成本函数值陷入局部最小值。针对这种情况，我们通过增加不匹配程度来改进ICP中的成本函数。改进后的成本函数如公式(5)所示，其中n表示与激光雷达边缘点距离阈值内的相机边缘点数量，m为最近邻点数量，N为所有相机点的总数，b为权重因子。我们发现b取10作为默认值是个不错的起点。需要注意的是，成本函数是每个点的平均值，因此可用于不同场景下的横向比较。

 $$ CF=\sum_{i=1}^{n}\sum_{i=1}^{m}\frac{Distance(P_{i}^{cam},P_{ik}^{lidar})}{n\times m}+b\times\frac{N-n}{N} $$

在优化该成本函数时，我们采用了坐标下降算法[^20]，并通过Ceres [^17]迭代优化（横滚、俯仰、偏航）坐标。这样似乎能获得更好的收敛效果。

### 四、实验结果

本节将展示CamVox的评估结果。具体而言，我们首先展示自动校准的结果，同时评估选取近距离关键点的深度阈值所产生的影响。最后，我们将CamVox的轨迹与一些主流SLAM框架进行对比，并给出时间分析结果。

### A. 自动校准结果

我们的自动校准结果如图8所示。图8a展示了传感器和摄像头未校准时（偏差超过2度）激光雷达点云在RGB图像上的叠加情况，此时代价函数值为7.95。启动自动校准后，校准结果如图8(b)所示，代价函数值降至6.11；而人工操作所能达到的最佳校准结果如图8(c)所示，代价函数值为5.88。自动校准得到的结果与最佳人工校准结果非常接近。此外，得益于类图像的校准方案，自动校准在大多数无约束场景下都能稳定工作。图8(d-f)评估了多种不同场景，得到的代价值均在6左右或更低，我们认为这一数值相当理想。

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(d)</div>

![Image](images/37d0d92ec253b9f3fd24e481fc91a42b563418eca51a254015465a85190f44d3.jpg)

<div style="text-align: center;">Fig. 8. An example of RGB camera and point cloud overlay after calibration. (a) not calibrated. (b) automatically calibrated. (c) the best manual calibration. The automatic calibration algorithms is verified at various scenes, (d) outdoor road with natural trees and grasses, (e) outdoor artificial structures, (f) indoor underexposed structures.</div>

### B. 关键点深度阈值的评估

由于激光雷达的探测距离可达260米，融合帧中存在大量可归类为近距离点的关键点，这些点在定位与建图过程中发挥着重要作用。从图9(a-d)可以看出，将近距离关键点的深度阈值从20米设为130米后，建图规模与映射特征数量均显著增加。图9e中，我们评估了启动CamVox后前100帧（帧率为10 FPS）内随时间变化的匹配点数量；随着采集帧数的增加，特征数量也随之增多（见图9f，启动后0.5秒），显然更大的阈值在初期能追踪到更多特征，有助于实现稳定的定位与建图。针对CamVox系统，我们建议将默认阈值设为130米。

### C. 轨迹对比

我们利用evo工具[^21]，在SUSTech数据集上评估了CamVox、两种主流SLAM框架以及真实轨迹之间的轨迹对比结果，相关内容如图10和表I所示。得益于精准的校准、丰富的深度关联视觉特征以及可靠的追踪能力，CamVox系统的表现与真实轨迹极为接近，且显著优于Livox Horizon Loam、VINS-mono等其他框架。

---

![Image](images/a3430430e6f2da770ea4746b7236611d53d140a32b8c497f715ea4a870948af6.jpg)

![Image](images/f82dbe73b8a5ce52171117797e94f43db8582398b93db5a14240f47f160772cf.jpg)

<div style="text-align: center;">Fig. 9. Evaluation of close keypoints threshold. (a-d) The reconstructed point cloud map by selecting different values of close keypoints threshold. (e) the number of matching points as a function of frame sequence (10 FPS) from start. (f) the number of matching points as a function of close keypoints threshold, evaluated at the beginning (5th frame) of SLAM process.</div>

在跟踪方面，CamVox系统的结果与真实值极为接近，且性能显著优于livox_horizon_loam和VINS-mono等其他框架。

![Image](images/f3081e6963a57100f4bafe8319fae200bd0bf158e36431202d4114056895d807.jpg)

<div style="text-align: center;">Fig. 10. Trajectories from livox_horizon_loam, VINS-mono and CamVox together with ground truth from SUSTech dataset.</div>

我们对CamVox框架的时序分析如表II所示。评估是在搭载四核Intel Core i7-8550U处理器的Manifold 2C嵌入式计算机系统上进行的。在该系统上，CamVox能够实现实时运行；自动校准过程大约需要58秒即可完成。由于校准线程仅在机器人静止状态下偶尔运行，且参数更新可在后续进行，因此这样的计算时间不会对实时性能造成影响。

### D. 时间测试结果

<div style="text-align: center;">TABLE I</div>

<div style="text-align: center;">ABSOLUTE POSE ERROR (APE) (UNIT: M)</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>APE</td><td style='text-align: center; word-wrap: break-word;'>CamVox</td><td style='text-align: center; word-wrap: break-word;'>VINS-mono</td><td style='text-align: center; word-wrap: break-word;'>livox_horizon_loam</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>max</td><td style='text-align: center; word-wrap: break-word;'>3.3</td><td style='text-align: center; word-wrap: break-word;'>27.2</td><td style='text-align: center; word-wrap: break-word;'>9.9</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>mean</td><td style='text-align: center; word-wrap: break-word;'>1.7</td><td style='text-align: center; word-wrap: break-word;'>6.7</td><td style='text-align: center; word-wrap: break-word;'>6.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>median</td><td style='text-align: center; word-wrap: break-word;'>1.6</td><td style='text-align: center; word-wrap: break-word;'>6.1</td><td style='text-align: center; word-wrap: break-word;'>6.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>min</td><td style='text-align: center; word-wrap: break-word;'>0.2</td><td style='text-align: center; word-wrap: break-word;'>2.8</td><td style='text-align: center; word-wrap: break-word;'>1.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>rmse</td><td style='text-align: center; word-wrap: break-word;'>1.8</td><td style='text-align: center; word-wrap: break-word;'>7.5</td><td style='text-align: center; word-wrap: break-word;'>6.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>sse</td><td style='text-align: center; word-wrap: break-word;'>16066.5</td><td style='text-align: center; word-wrap: break-word;'>50788.6</td><td style='text-align: center; word-wrap: break-word;'>101223.7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>std</td><td style='text-align: center; word-wrap: break-word;'>0.7</td><td style='text-align: center; word-wrap: break-word;'>3.5</td><td style='text-align: center; word-wrap: break-word;'>1.9</td></tr></table>

<div style="text-align: center;">TABLE II</div>

<div style="text-align: center;">TIME ANALYSIS</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Framework</td><td style='text-align: center; word-wrap: break-word;'>CamVox</td><td style='text-align: center; word-wrap: break-word;'>ORB-SLAM2</td></tr><tr><td rowspan="4">Setting</td><td style='text-align: center; word-wrap: break-word;'>Dataset</td><td style='text-align: center; word-wrap: break-word;'>SUSTech</td><td style='text-align: center; word-wrap: break-word;'>TUM</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Resolution</td><td style='text-align: center; word-wrap: break-word;'>$1520 \times 568$</td><td style='text-align: center; word-wrap: break-word;'>$640 \times 480$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Camera FPS</td><td style='text-align: center; word-wrap: break-word;'>10 Hz</td><td style='text-align: center; word-wrap: break-word;'>30 Hz</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ORB Features</td><td style='text-align: center; word-wrap: break-word;'>1500</td><td style='text-align: center; word-wrap: break-word;'>1000</td></tr><tr><td rowspan="4">Thread</td><td style='text-align: center; word-wrap: break-word;'>Calibration</td><td style='text-align: center; word-wrap: break-word;'>58.16 s</td><td style='text-align: center; word-wrap: break-word;'>/</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Tracking</td><td style='text-align: center; word-wrap: break-word;'>42.27 ms</td><td style='text-align: center; word-wrap: break-word;'>25.58 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mapping</td><td style='text-align: center; word-wrap: break-word;'>252.41 ms</td><td style='text-align: center; word-wrap: break-word;'>267.33 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Loop Closing</td><td style='text-align: center; word-wrap: break-word;'>7821.22 ms</td><td style='text-align: center; word-wrap: break-word;'>598.70 ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RGBD</td><td style='text-align: center; word-wrap: break-word;'>IMU Correticion</td><td style='text-align: center; word-wrap: break-word;'>0.89 ms</td><td style='text-align: center; word-wrap: break-word;'>/</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Preprocessing</td><td style='text-align: center; word-wrap: break-word;'>Pcd2Depth</td><td style='text-align: center; word-wrap: break-word;'>16.35 ms</td><td style='text-align: center; word-wrap: break-word;'>/</td></tr></table>

### V. 结论与展望

总而言之，我们提出了CamVox这一新型低成本激光雷达辅助视觉SLAM框架，旨在结合两者的优势——即摄像头的高角分辨率以及激光雷达的优异深度探测能力与探测范围。借助Livox激光雷达独特的工作原理，我们开发了能在无约束场景下运行的自动校准算法。我们对这一新框架进行了自动校准精度、近距离关键点分类的深度阈值以及轨迹对比等方面的评估，它还能在嵌入式计算机上实现实时运行。我们希望这一新框架能为机器人与传感器研究提供帮助，成为业界开箱即用的低成本解决方案。

## 致谢

作者感谢Livox Technology的同事们给予的有益讨论和支持。

## 参考文献

[^1]: R. Mur-Artal, J. M. M. Montiel, and J. D. Tardos, “Orb-slam: a versatile and accurate monocular slam system,” IEEE transactions on robotics, vol. 31, no. 5, pp. 1147–1163, 2015.

[^2]: T. Qin, P. Li, and S. Shen, “Vins-mono: A robust and versatile monocular visual-inertial state estimator,” IEEE Transactions on Robotics, vol. 34, no. 4, pp. 1004–1020, 2018.

[^3]: C. Campos, R. Elvira, J. J. G. Rodríguez, J. M. Montiel, and J. D. Tardós, “Orb-slam3: An accurate open-source library for visual, visual-inertial and multi-map slam,” arXiv preprint arXiv:2007.11898, 2020.

## [^4]: R. Mur-Artal and J. D. Tardós, “Orb-slam2: An open-source slam system for monocular, stereo, and rgb-d cameras,” IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255–1262, 2017

---

[^5]: C. Urmson, J. Anhalt, D. Bagnell, C. Baker, R. Bittner, M. Clark, J. Dolan, D. Duggins, T. Galatali, C. Geyer et al., “Autonomous driving in urban environments: Boss and the urban challenge,” Journal of Field Robotics, vol. 25, no. 8, pp. 425–466, 2008.

[^6]: J. Zhang and S. Singh, “Loam: Lidar odometry and mapping in real-time.” in Robotics: Science and Systems, vol. 2, no. 9, 2014.

[^7]: T. Shan and B. Englot, “Lego-loam: Lightweight and ground-optimized lidar odometry and mapping on variable terrain,” in 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018, pp. 4758–4765.

[^8]: J. Zhang and S. Singh, “Visual-lidar odometry and mapping: Low-drift, robust, and fast,” in 2015 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2015, pp. 2174–2181.

[^9]: W. Shao, S. Vijayarangan, C. Li, and G. Kantor, “Stereo visual inertial lidar simultaneous localization and mapping,” arXiv preprint arXiv:1902.10741, 2019.

[^10]: Z. Liu, F. Zhang, and X. Hong, “Low-cost retina-like robotic lidars based on incommensurable scanning,” arXiv preprint arXiv:2006.11034, 2020.

[^11]: J. Lin and F. Zhang, "Loam livox: A fast, robust, high-precision lidar odometry and mapping package for lidars of small fov," in 2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2020, pp. 3126–3131.

[^12]: J. Levinson and S. Thrun, “Automatic online calibration of cameras and lasers.” in Robotics: Science and Systems, vol. 2, 2013, p. 7.

[^13]: R. Unnikrishnan and M. Hebert, “Fast extrinsic calibration of a laser rangefinder to a camera,” Robotics Institute, Pittsburgh, PA, Tech. Rep. CMU-RI-TR-05-09, 2005.

[^14]: A. Geiger, F. Moosmann, O. Car, and B. Schuster, “Automatic camera and range sensor calibration using a single shot,” in 2012 IEEE International Conference on Robotics and Automation. IEEE, 2012, pp. 3936–3943.

[^15]: G. Pandey, J. R. McBride, S. Savarese, and R. M. Eustice, “Automatic targetless extrinsic calibration of a 3d lidar and camera by maximizing mutual information.” in AAAI. Citeseer, 2012.

[^16]: G. Iyer, R. K. Ram, J. K. Murthy, and K. M. Krishna, “Calibnet: Geometrically supervised extrinsic calibration using 3d spatial transformer

“网络”，载于2018年IEEE/RSJ智能机器人与系统国际会议（IROS）。IEEE，2018年，第1110–1117页。

[^17]: S. Agarwal, K. Mierle, and Others, "Ceres solver," <http://ceres-solver.org>.

[^18]: J. Canny, “A computational approach to edge detection,” IEEE Transactions on Pattern Analysis and Machine Intelligence, no. 6, pp. 679–698, 1986.

[^19]: P. J. Besl and N. D. McKay, “Method for registration of 3-d shapes,” in Sensor fusion IV: control paradigms and data structures, vol. 1611. International Society for Optics and Photonics, 1992, pp. 586–606.

[^20]: S. J. Wright, “Coordinate descent algorithms,” Mathematical Programming, vol. 151, no. 1, pp. 3–34, 2015.

[^21] M. Grupp著，《evo：用于评估里程计与SLAM的Python软件包》。<https://github.com/MichaelGrupp/evo>，2017年。
