近年来,随着无人驾驶技术和UGV(无人地面车辆)技术的兴起,SLAM算法成了机器人领域的研究热点。SLAM算法根据主要采用的外部感知传感器类型可分为视觉SLAM与激光SLAM。其中,基于激光雷达的SLAM算法因其对光照不敏感、距离度量准确、便于生成导航地图等优势,已成为目前无人驾驶和UGV领域不可缺少的关键性技术[1]。
传统的2D激光SLAM算法,如Hector[2]和Cartographer[3]等,在几何特征丰富的室内环境中具有良好的表现。但在室内长走廊、空旷停车场等场景中,若没有精确的轮式里程计辅助,上述算法会产生极大的定位误差。
在3D激光SLAM中,一般使用ICP(iterative closest point)算法[4]和NDT(normal distributions transform)算法[5]或它们的变种算法进行激光点云配准,以估计2帧点云之间的相对位置和姿态(简称为“位姿”)。经典ICP算法基于欧氏距离进行数据关联,点云配准的精度高,但运行速度慢,需要根据场景调整参数,依赖于准确的迭代初值。其思想在LOAM[6](LiDAR odometry and mapping in real-time)和LeGO-LOAM[7](lightweight and ground-optimized LOAM)算法中均有体现。NDT算法则假设激光点云数据符合正态分布,并引入非线性优化法迭代求解相对位姿,运行速度和鲁棒性较ICP算法有极大提升。基于NDT算法的激光SLAM方法中最具代表性的是Koide所设计的hdl_graph_slam算法[8]。
然而,大多数纯激光SLAM算法在长廊、隧道、矿道和桥梁等场景中,定位性能均会快速劣化,甚至完全失效。在这些场景中,激光雷达观测到的数据会在某一维度呈现高度的相似性,以致点云配准结果收敛至错误位姿,严重地影响了SLAM整体的性能,也限制了机器人在此类环境下的自主作业能力。在视觉SLAM的研究中,纹理缺失的场景同样会导致其定位效果严重劣化,因此被一些学者称为“退化场景”[9]。本文所讨论长廊、隧道等场景更侧重于场景几何结构上的相似性,而非其光学纹理上的相似性。为了与视觉SLAM场景区分,本文将此类场景称为“相似场景”。
目前处理该问题的一种措施是使用鲁棒性更高的点云配准算法。文[10]在地下矿道场景中对比了NDT [5]和GICP[11](generalized-ICP)算法的建图性能,最终选择了鲁棒性更高的GICP。然而,GICP算法的耗时远大于NDT算法,不利于在算力限制较大的机器人上广泛应用。另外一种常见的解决措施是在SLAM中进行多传感器融合,实现信息互补,提高整体精度。文[12]在激光里程计之外,使用相机来识别场景中事先放置的二维码路标,以产生闭环信号,提高SLAM的全局一致性。然而,该方法需要额外增加光学相机,对场景光照条件要求较高,且需要事先布置路标,在实际应用中局限性较大。文[13]在无人机上搭载了激光雷达、光学相机和IMU(inertial measurement unit),使用UKF算法融合了激光里程计、视觉里程计和IMU数据,提高了在走廊中的定位性能。然而,相机、激光雷达和IMU三者的外部参数标定较为复杂,而这些都会显著地影响SLAM算法的性能表现[14],且视觉里程计的精度同样会受到光照条件的限制。
为解决上述问题,本文结合实验对NDT算法在相似场景中失效的具体原因展开讨论,并据此对hdl_graph_slam的激光里程计部分(在经典SLAM框架中通常被称为前端)作出改进。相比于文[10-12],本文算法仅依赖于激光雷达数据,而无需引入其他传感器,更易于在不同机器人上快速配置。本文提出的改进主要包括:(1) 基于匀速平滑运动假设,改进运动预测模型,为点云配准算法提供一个更准确的迭代初值;(2) 引入局部地图的概念,将若干连续关键帧拼接成局部地图参与点云配准,使目标点云稠密化,提高点云配准精度。
2 通用符号定义(Definition of universal symbols)本文所使用的传感器为单旋转轴、多线束激光雷达,会以固定频率向主机输出表征周围环境的3D点云帧
为方便坐标运算,通常使用
$ \begin{equation} _{B}^{A} {{{\mathit{\boldsymbol{T}}}}}=\begin{bmatrix} {_{B}^{A} {{{\mathit{\boldsymbol{R}}}}}} & {_{B}^{A}{{\tau}}} \\ {{{{\bf{0}}}}} & {\bf{1}} \\ \end{bmatrix} \end{equation} $ | (1) |
其中,
由矩阵知识易知,位姿矩阵可以用于坐标转换。记
$ \begin{equation} ^{W}{{{\mathit{\boldsymbol{p}}}}}={}_{S_{i}} ^{W} {{{\mathit{\boldsymbol{T}}}}}\odot {}^{S_{i}} {{{\mathit{\boldsymbol{p}}}}} \end{equation} $ | (2) |
式(2) 表示将
$ \begin{equation} _{A}^{C} {{{\mathit{\boldsymbol{T}}}}}={}_{B}^{C} {{{\mathit{\boldsymbol{T}}}}} {} _{A}^{B} {{{\mathit{\boldsymbol{T}}}}} \end{equation} $ | (3) |
以LOAM[6]、LeGO-LOAM[7]为代表的基于线、面特征的SLAM算法严重依赖于特征提取的质量,一旦面向几何特征较少的场景(仅有少量的特征点),则无法收敛到一个准确的位姿估计。因此本文选择泛用性更高的hdl_graph_slam算法[8]作为主体框架,来阐述相似场景对激光SLAM带来的挑战,以及相应的改进措施。需要注意的是,本文结论并不单单局限于hdl_graph_slam算法,在作适当修改后,可以方便地移植到其他激光SLAM算法中。
SLAM算法框架图如图 1所示,分为点云预处理、前端里程计、地板检测、后端图优化和建图5个部分(可参阅文[8]了解更多算法细节)。其中,前端里程计部分负责利用NDT算法进行点云配准,估计每一帧点云在全局坐标系中的位姿,后端图优化节点则对所有的估计位姿进行批量优化,提高位姿轨迹的全局一致性。由于前端里程计的精度直接决定了整个SLAM算法的定位和建图效果,因此本文主要讨论如何对前端里程计算法进行改进,以克服相似场景下的SLAM性能退化问题。
经典的NDT算法[5]进行点云配准的步骤如下:
(1) 将目标点云
(2) 利用给定的位姿,将源点云
(3) 计算
(4) 基于牛顿迭代法来优化
(5) 回到步骤(2),直至达到收敛判据。
其中步骤(1) 所得到的栅格化正态分布参数的准确性和差异性至关重要,决定了NDT最终收敛位姿的准确性。相似场景正是影响了步骤(1) 的差异性而使得激光里程计失效的。图 2为沿走廊方向间隔1.1 m采集到的2帧点云数据。虽然红色椭圆区域的墙壁点云偏移现象体现了1.1 m的位移,但点云的其余部分几乎完全一致。这说明在相似场景中,激光雷达观测到的相邻2帧点云之间存在高度相似性。
当hdl_graph_slam算法使用NDT算法匹配此类点云时,给定的初始迭代位姿
通过上述分析可知,激光SLAM的失效问题,实质上的原因是NDT算法在相似场景中得到的差异性几何特征不足,无法使估计位姿从初始单位矩阵迭代至位姿真值。因此,若可以为NDT算法提供一个更准确的初始迭代位姿,同时增加感知覆盖范围和点云密度来提高场景差异性,相似场景下激光SLAM的失效现象就会得到改善。
本文在原本的前端算法基础上进行如下改动:(1) 改进运动预测模型;(2) 构建局部地图参与点云配准。改进后的前端里程计算法框图如图 4所示,具体细节将于之后进行讨论。
假设激光雷达运动时,线速度和角速度关于时间是平滑且连续的,且在较短的时间间隔内近似看作常数。根据牛顿运动学可知,激光雷达在2次连续采样间隔内的运动近似相等,即当前点云
为减少矩阵连乘带来的累积误差,沿用文[8]中关键帧的概念,即抽取一部分帧作为关键帧,作为点云配准的目标和最后建图的素材。假设当前帧点云
$ \begin{equation} \begin{cases} \Delta x_{i} =\|_{S_{i}} ^{K}{{\tau}} \|_{2} \\ \Delta \theta_{i} =\arccos \dfrac{{\rm tr} {}_{S_{i}}^{K} {{{\mathit{\boldsymbol{R}}}}}}{2}\\ \end{cases} \end{equation} $ | (4) |
其中,
$ \begin{align} \Delta x_{i} &\geqslant \Delta x_{{\rm th}} \end{align} $ | (5) |
$ \begin{align} \Delta \theta_{i} &\geqslant \Delta \theta_{{\rm th}} \end{align} $ | (6) |
其中,
综上,若已知从上一关键帧点云
$ \begin{aligned} \boldsymbol{T}_{\text {guess }} &={ }_{S_{i-1}}^{K} \boldsymbol{T}_{S_{i}}^{S_{i-1}} \boldsymbol{T} \\ & \approx{ }_{{S_{i - 1}}}^K{\mathit{\boldsymbol{T}}}_{S_{i-1}}^{S_{i-2}} \boldsymbol{T} \\ &={ }_{{S_{i - 1}}}^K{\mathit{\boldsymbol{T}}}_{S_{i-2}}^K{\boldsymbol{T}}^{-1}{ }_{S_{i-1}}^{K} \boldsymbol{T} \end{aligned} $ | (7) |
式中,
LOAM[6]算法的里程计线程将距离当前帧坐标原点一定范围内的特征点转换至当前帧坐标系下,形成局部特征地图参与最近点迭代匹配,这使得激光里程计可以使用更广更密的几何特征进行位姿估计,从而获得更高的配准精度。该思想在SLAM中亦被称为scan-to-map。受其启发,在前端里程计中引入局部地图概念,将邻近的关键帧均投影至同一个坐标系中,拼接成局部点云地图参与NDT配准。其作用主要有3点:
(1) 邻近关键帧拼接后,则历史关键帧中所包含的几何信息也全部被转换到了局部点云地图中,这使得NDT算法可以获得更广范围的几何特征,丰富了相似场景中的几何信息。
(2) 拼接成局部地图,点云密度显著上升。由于目标点云栅格内的激光点数量增加,根据概率学知识可知,此时计算得到的正态分布参数(均值与方差)更能反映真实的环境特征,有利于NDT算法的精确配准。这一点对于低线束激光雷达的作用尤为显著。
(3) 邻近关键帧拼接后,形如墙壁、隧道壁之类的连续立面会作为整体参与点云配准,相比于原始的帧帧匹配方式,可以提高立面的局部一致性,减少里程计在垂直于立面方向的漂移。
局部地图拼接的细节会显著影响前端算法的精度。由于NDT算法的运行速度会随着局部地图规模增大而迅速增大,而过于久远的关键帧既不会包含当前帧可以用到的几何信息,同时也无法提升当前传感器所在位置附近的点云密度,因此将参与局部地图构建的关键帧数量限定在离当前帧最近的
将当前时刻
局部地图拼接算法的伪代码如算法1所示。
算法1:局部地图拼接算法 1 input: 2 output:局部地图点云 3 begin 4 5 for ( 6 7 8 end for 9 if ( 10 对局部地图 11 end if 12 return 13 end
其中,
改进后的前端里程计结构已在图 4中给出。在构建好局部地图
由于使用了局部地图代替关键帧参与NDT配准,因此将运动预测模型(7) 重写为式(8) 的形式:
$ \begin{align} {{{\mathit{\boldsymbol{T}}}}}_{\rm{guess}} &={}_{S_{i-1}} ^{\kern 2.5mm L_{i}} {{{\mathit{\boldsymbol{T}}}}} {}_{S_{i} }^{S_{i-1}} {{{\mathit{\boldsymbol{T}}}}} \\ &\approx{}_{S_{i-1}} ^{\kern 2.5mm L_{i}} {{{\mathit{\boldsymbol{T}}}}} _{S_{i-1}} ^{S_{i-2}} {{{\mathit{\boldsymbol{T}}}}} \\ &={}_{S_{i-1}} ^{\kern 2.5mm L_{i}} {{{\mathit{\boldsymbol{T}}}}} {} _{S_{i-2}} ^{\kern 2.5mm L_{i}} { {{\mathit{\boldsymbol{T}}}}}^{-1} {}_{S_{i-1}} ^{\kern 2.5mm L_{i}} {{{\mathit{\boldsymbol{T}}}}} \end{align} $ | (8) |
完整的前端里程计算法伪代码见算法2。为便于理解,在伪代码中引入中间变量
算法2:前端里程计算法 1 input:点云帧序列 2 output:从 3 begin 4 for 5 if 6 将 7 拼接局部地图 8 9 10 return 11 end if 12 13 以 14 NDT算法运行结果为 15 16 17 18 利用 19 if ( 20 将 21 拼接局部地图 22 23 24 else 25 26 end if 27 return 28 end for 29 end
为测试本文算法性能,采用如图 6所示的UGV设备进行测试。装设的激光雷达有16条激光线束,水平视角360°,垂直视角30°,点云输出频率为10 Hz,因此前端算法的耗时应尽可能低于100 ms。底盘可进行原地旋转,最大行进线速度为1.5 m/s,最大旋转角速度为0.5235 rad/s。算法运行环境为Intel i5-4200H(2.8 GHz,双核),12 G内存。算法主体基于ROS[15]平台进行开发。
实验一共分为3部分:(1) 在室内相似场景下,对比本文提出的改进算法与其他算法的性能差异;(2) 在室外场景下,对比本文算法与其他算法的性能差异;(3) 通过实验来展开对算法细节设置的讨论。
实验考察的性能指标有:里程计漂移、场景还原度和配准耗时。
(1) 里程计漂移:当行程的起点与终点为同一点时,起点估计位姿和终点估计位姿之间的欧氏距离
$ \begin{equation} d_{{\rm bias}} =\sqrt{x^{2}+y^{2}+z^{2}} \end{equation} $ | (9) |
在SLAM过程中,有部分点云帧之间的里程计漂移会互相抵消,因此该指标仅作为衡量算法性能的一个相对指标。
(2) 场景还原度:考虑到里程计漂移存在互相抵消的情况,本文额外引入场景还原度
$ \begin{equation} \gamma =\frac{l_{{\rm m}}} {l_{{\rm t}}} \times 100\% \end{equation} $ | (10) |
其中,
(3) 配准耗时:前端里程计进行1次点云配准的平均耗时。
4.1 室内相似场景下SLAM算法性能测试 4.1.1 实验说明室内测试场景为校园内某处回廊,该回廊呈标准矩形,长51 m,宽40.9 m,地面铺设了瓷砖,基本符合hdl_graph_slam算法[8]的地面水平假设。走廊1和走廊3的局部放大图如图 7所示,完整走廊的俯视图及序号标记见图 8(a)。走廊1为封闭走廊,左端和右端均为大面积的立面障碍物(墙壁和不透明门窗),几何特征较少,场景重复度高,符合本文所讨论的相似场景特点。走廊2和走廊4,靠近中间庭院一侧为栏杆,远离庭院一侧则有楼梯间,场景差异性大,属于易于点云配准的非相似场景。走廊3整体上与走廊1对称,但在录制数据时,打开了若干门窗,使得办公室室内环境也被扫描了进来,图 7中蓝色圆圈部分即为房间点云。由于走廊3的开放房间沿着走廊均匀排布,提供了垂直于走廊朝向的几何特征,其配准难度介于相似场景和非相似场景之间,称其为“准相似场景”。
实验时,手动遥控UGV沿回廊行驶1圈然后回到起点,期间保持线速度在0.8 m/s~1.2 m/s,以满足3.3节中的匀速运动假设。该数据集共2200帧点云。
针对该数据集,除了分别运行原始的基于NDT[5]的hdl_graph_slam[8]算法(实验中简记为“NDT”),以及本文提出的基于局部地图的改进算法(实验中简记为“Local”)以外,本文还额外地增加了一组基于GICP[11]配准算法实现的对照组(实验中简记为“GICP”)。该对照组将原始的hdl_graph_slam前端里程计的配准算法由NDT换成GICP。相对而言,GICP虽然运算速度慢,但由于引入了点-面配对和面-面配对,对场景的适应性和收敛精度要远高于单纯的NDT或者ICP算法,可以用于对比改进算法的提升效果。
实验过程的主要参数设置如下:点云有效距离30 m(对于16线激光雷达而言,远处的点过于稀疏,在室内环境下反而容易干扰匹配),
3个算法最后建成的点云地图如图 8所示。其中,图 8(a)(c)(e)为无回环检测的建图结果,从中可以测出里程计漂移;图 8(b)(d)(f)为引入回环检测(实验中简记为“
图 9为引入回环检测后的GICP和Local算法的建图结果放大视图。
3种算法的量化指标如表 1所示。结合图 8和表 1可以看出,NDT算法在相似场景和准相似场景下建图效果极差,走廊1和走廊3的平均场景还原度仅为42.02%。GICP算法相比于NDT算法既减少了里程计漂移,又将走廊1和3的平均场景还原度提升至93.03%,但其耗时几乎是原先的3倍。从细节来看,虽然GICP算法在走廊1的场景还原度达到92.44%,但仍会导致地图产生重叠,影响后续导航环节的展开,而Local算法则几乎没有重叠现象。从数据来看,Local算法的里程计漂移在三者中最低,场景还原度最高,耗时则介于NDT与GICP算法之间。
综上所述,本文提出的改进算法以少量耗时增加为代价,使SLAM算法在室内相似场景和准相似场景下的定位和建图效果显著提升。
4.2 室外相似场景下SLAM算法性能测试室外测试场景为校园某段马路。图 10为UGV的大致行走路径。该路径全长1.1 km,在里程840 m处和1.1 km处各有一次回环,为了确保轨迹起点和终点位置一致,本次实验仅使用840 m处回环来计算里程计误差。UGV的行驶速度约为0.8 m/s~1.2 m/s,符合匀速运动假设。
该轨迹的大部分路段两侧为树木和建筑物,属于非相似场景(便于提取有差异性的特征)。然而,685 m~817 m这段轨迹的两侧为对称的篮球场和网球场,道路开阔无遮挡物,靠马路一侧均使用大网孔的钢丝网隔开,实际场景如图 11所示。由于激光雷达的绝大多数激光点会从空隙穿过,少数被钢丝网反射的激光点也无法形成有效的几何特征,因此该段属于相似场景。整个室外数据集共7300帧点云。
此次室外实验对象仍为NDT、GICP和Local算法。算法参数设置如下:激光雷达的检测距离为100 m,
实验结果如图 12和表 2所示。显然,NDT算法在相似场景中彻底失效,GICP和Local算法的建图结果则基本与实际场景一致。耗时方面,GICP算法由于超过了100 ms,只能以0.5倍速播放数据集,无法满足实时性要求。
综上所述,在室外的相似场景中,本文提出的改进算法依然能够显著提升SLAM算法的定位和建图效果,且算法实时性明显优于GICP算法。
4.3 算法细节讨论 4.3.1 消融实验本文针对相似场景提出的算法改进共有2点:(1) 改进了运动预测模型;(2) 在点云配准中引入了局部地图。本节通过引入对比实验组,构成消融实验,来说明2个改进点在SLAM中分别起到的作用。其中,实验所用的数据集和参数与4.1节相同,对比实验组(实验中简记为“NDT
对比NDT与NDT
Local组中所有走廊的场景还原度都达到98.5%以上,里程计漂移仅为1.6534 m(占轨迹全长的0.92%),这表明局部地图的引入可以大大改善相似场景和准相似场景下的前端里程计性能。
综上所述,改进运动预测模型与构建局部地图的做法分别为NDT组提供了更准确的初值和更广阔、更稠密的目标点云,切实地提高了前端里程计的精度以及SLAM算法整体的建图效果。
4.3.2 探讨局部地图坐标系选择的影响本节通过设计对比实验来说明3.4节中提到的归一坐标系选择对SLAM算法的影响。
实验数据集和参数与4.1.1节所述一致,实验组(实验中简记为“Ori”)将归一坐标系设置为全局坐标系,其余均与对照组Local一致。
实验结果如图 14和表 4所示。从图 14与图 9(b)的对比以及表 4数据可知,相比于选择全局坐标系,将最后一帧关键帧的坐标系定为归一坐标系,可以减少前端里程计的漂移并提高场景还原度。
本节设计对比实验,说明不同局部地图尺寸
实验结果如图 15和表 5所示。随着
综上所述,随着
针对相似场景下激光SLAM算法退化问题,本文提出了一种基于局部地图的激光SLAM前端改进算法。该算法通过改进原有的运动预测模型和引入局部地图概念,以增加少量CPU耗时为代价,显著提升其在相似场景下算法的定位和建图精度。在室内相似场景中,该算法对实际场景的还原度达到99.54%,相比改进前提升了57.25%;在室外场景中,该算法使得里程计漂移从111.62 m降至7.65 m,且基本还原了实际场景。实验结果表明,本文提出的改进算法能有效地缓解激光SLAM算法在相似场景中的退化问题,显著地提升了前端里程计精度和整体的建图效果。出于实时性考虑,文中选择将局部地图与NDT算法搭配使用,实际上若进行离线建图,亦可方便地将本文算法与GICP算法结合,进一步提升3维重建的精度。
未来的研究一方面考虑结合IMU传感器放宽文中的匀速运动假设和地面水平假设,另一方面考虑在激光SLAM算法引入新的回环检测机制,改善回环性能。
[1] |
危双丰, 庞帆, 刘振彬, 等. 基于激光雷达的同时定位与地图构建方法综述[J]. 计算机应用研究, 2020, 37(2): 327-332. Wei S F, Pang F, Liu Z B, et al. Survey of LiDAR-based SLAM algorithm[J]. Application Research of Computers, 2020, 37(2): 327-332. |
[2] |
Kohlbrecher S, von Stryk O, Meyer J, et al. A flexible and scalable SLAM system with full 3D motion estimation[C]//IEEE International Symposium on Safety, Security, and Rescue Robotics. Piscataway, USA: IEEE, 2011: 155-160.
|
[3] |
Olson E B. Real-time correlative scan matching[C]//IEEE International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2009. DOI: 10.1109/ROBOT.2009.5152375.
|
[4] |
Besl P J, McKay N D. A method for registration of 3-D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14(2): 239-256. DOI:10.1109/34.121791 |
[5] |
Biber P, Strasser W. The normal distributions transform: A new approach to laser scan matching[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, USA: IEEE, 2003: 2743-2748.
|
[6] |
Zhang J, Singh S. Low-drift and real-time lidar odometry and mapping[J]. Autonomous Robot, 2017, 41: 401-416. DOI:10.1007/s10514-016-9548-2 |
[7] |
Shan T X, Englot B. LeGO-LOAM: Lightweight and groundoptimized lidar odometry and mapping on variable terrain[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, USA: IEEE, 2018: 4758-4765.
|
[8] |
Koide K, Miura J, Menegatti E. A portable three-dimensional LIDAR-based system for long-term and wide-area people behavior measurement[J]. International Journal of Advanced Robotic Systems, 2019, 16(2). DOI:10.1177/1729881419841532 |
[9] |
方正, 赵世博, 李昊来. 一种融合稀疏几何特征与深度流的深度视觉SLAM算法[J]. 机器人, 2019, 41(2): 185-196, 241. Fang Z, Zhao S B, Li H L. A depth vision SLAM algorithm combining sparse geometric features with range flow[J]. Robot, 2019, 41(2): 185-196, 241. |
[10] |
Ren Z L, Wang L G, Bi L. Robust GICP-based 3D LiDAR SLAM for underground mining environment[J]. Sensors, 2019, 19(13). DOI:10.3390/s19132915 |
[11] |
Segal A V, Haehnel D, Thrun S. Generalized-ICP[C]//Robotics: Science and Systems V. Seattle, USA: University of Washington, 2009. DOI: 10.15607/RSS.2009.V.021.
|
[12] |
邹谦. 基于图优化SLAM的移动机器人导航方法研究[D]. 哈尔滨: 哈尔滨工业大学, 2016. Zou Q. Research on mobile robot navigation method based on graph optimization SLAM[D]. Harbin: Harbin Institute of Technology, 2016. |
[13] |
陈林. 面向隧道内自主侦察无人机系统设计[D]. 绵阳: 西南科技大学, 2019. Chen L. Design of autonomous investigation UAV system for tunnel[D]. Mianyang: Southwest University of Science and Technology, 2019. |
[14] |
Lv J J, Xu J H, Hu K W, et al. Targetless calibration of LiDAR-IMU system based on continuous-time batch estimation[DB/OL]. (2020-07-29)[2020-10-15]. https://arxiv.org/abs/2007.14759.
|
[15] |
Stanford Artificial Intelligence Laboratory. Robotic operating system[EB/OL].[2020-11-29]. https://www.ros.org.
|