Swarm-LIO: Decentralized Swarm LiDAR-inertial Odometry论文翻译

文章目录

  • 前言
  • 一、介绍
  • 二、相关工作
  • 三、方法
    • A. 问题表述
    • B. 框架概述
    • C. 群体系统的初始化
    • D. 去中心化激光雷达-惯性状态估计
  • 四. 实验
    • A. 室内飞行
    • B. 退化环境飞行
    • C. 去中心化部署
  • 五. 结论和未来工作


前言

原文:原文

准确的自我状态和相对状态估计是完成群体任务的关键前提,例如协作自主探索、目标跟踪、搜索与救援。本文提出了一种名为Swarm-LIO的完全去中心化状态估计方法,适用于空中群体系统,其中每个无人机进行精确的自我状态估计,通过无线通信交换自我状态和相互观测信息并实时估计与其他无人机的相对状态,所有这些仅基于激光雷达-惯性测量。提出了一种新颖的基于3D激光雷达的无人机检测、识别与跟踪方法,以获取队友无人机的观测数据。然后,将相互观测的测量结果与IMU和LiDAR测量结果紧密耦合,以实时和准确地联合估计自我状态和相对状态。大量真实世界实验表明,该方法对复杂场景具有广泛的适应性,包括GPS受限场景、相机(黑暗夜晚)或激光雷达(面对单一墙壁)的退化场景。与运动捕捉系统提供的真实值相比,结果显示出厘米级的定位精度,优于其他先进的单无人机系统的激光雷达-惯性里程计。

一、介绍

多机器人系统,特别是空中群体系统,在许多方面具有巨大潜力,如自主探索[1]、[2]、目标跟踪[3]、搜索和救援等。得益于其出色的团队合作能力,群体系统即使在单个无人机的退化环境中也能完成复杂场景下的任务。对于单个无人机系统,准确的自我定位[4]-[7]是避障[8]-[10]和飞行控制[11]的先决条件。对于空中群体,鲁棒、准确的自我和相对状态估计[12]同样起着至关重要的作用。对于群体来说,要完成合作任务,群体中的每架无人机都需要实时、精确地进行自我定位,并且始终保持对其他无人机状态的了解。

最近关于空中群体的研究主要集中在协作规划[13]-[15]上,而对群体系统的自我和相对状态估计的研究仍然存在很大差距。在室外场景中,通常采用GPS和RTK-GPS[16]、[17]。而在GPS拒绝的地方,如室内场景,运动捕捉系统[15]、视觉(惯性)里程计[14]、[18]或激光雷达(惯性)里程计[1]、[19]方法更受青睐。此外,超宽带(UWB)也在[13]、[20]中被采用,以产生鲁棒的定位结果。尽管RTK-GPS、运动捕捉和带有锚点的UWB[21]具有很高的精度,但它们依赖于笨重、额外的设备,并且会导致繁琐的安装工作。此外,这些提到的方法使整个系统变得集中化,容易受到单点故障(SPOF)的影响。相机因其轻巧、低成本和丰富的颜色信息而被广泛使用,但它容易受到光照不足的影响,缺乏直接的深度测量,导致在计算3D测量时计算复杂性高。此外,相机的深度测量范围相当有限。无锚点的UWB也是低成本和轻巧的。然而,它只能提供一维距离测量,精度相当有限(通常为米级),这可能会降低整个群体系统的总体精度。

与相机和无锚点UWB相比,激光雷达可以提供准确的3D测量,并且对光照变化也具有鲁棒性。即使在黑暗场景中,例如地下隧道,激光雷达也可以帮助进行准确的定位和制图[18]。近年来,一些成本效益高的固态激光雷达,如Livox1,已经在市场上出现,这显著扩大了基于激光雷达的研究范围。在本文中,我们提出了一种基于激光雷达-惯性测量的鲁棒、实时和去中心化的群体里程计。主要贡献如下:

  • 提出了一种新颖的基于3D激光雷达的无人机检测、识别和跟踪方法,提供用于自我和相对状态估计的准确3D相互观察测量。每架无人机都附有反光带,以便通过激光雷达点的反射率值可靠高效地检测队友无人机。然后通过卡尔曼滤波器跟踪检测到的队友无人机,并与共享网络接收到的轨迹匹配,以获得队友的身份及其初始相对状态。
  • 一个完全去中心化、稳健、数据高效且计算高效的自我状态和相对状态估计框架。在该框架中,每个无人机只需交换其自我状态和队友观测信息,这需要极低的通信带宽。相互观测的测量结果与激光雷达和IMU测量结果在误差状态迭代卡尔曼滤波(ESIKF)[22]框架下紧密耦合,以实现稳健、准确且同步的自我状态和相对状态估计。
  • 低成本、去中心化的硬件和软件框架。传感器和计算资源完全在机载系统上,包括Livox激光雷达、IMU和机载计算机。通信通过标准网络模块上的Ad-Hoc网络实现
  • 在广泛的真实世界实验中实施和验证所提出的方法,涵盖室内(见图1)、户外和退化场景。

二、相关工作

与基于学习的检测方法 [12]、[24] 相比,我们在每架无人机上附加反光带,并利用激光雷达传感器测量的反射率来检测队友无人机。与 [12]、[14] 不同,我们提出了一种从粗到细的校准方法,以获得无需任何初始猜测的准确全局外参转换。通过轨迹匹配获得的粗略校准结果被输入 ESIKF 进行进一步的在线细化,同时估计自我状态。与集中式系统中无人机交换地图信息 [19]、[21]、[25] 相比,我们的系统完全去中心化,不会遇到单点故障问题,且通信效率高,只交换自我状态和相互观察信息。

三、方法

A. 问题表述

为了帮助理解所提出的系统,我们在这里定义了一些重要的符号。 X i X_i Xi X ^ i \hat{X}_i X^i X ~ i \tilde{X}_i X~i X ˉ i \bar{X}_i Xˉi 分别代表无人机 i i i 的真实、预测、更新和测量状态。 t i k t_{ik} tik 表示无人机 i i i 的第 k k k 次 ESIKF 状态更新的时间戳。

考虑一个由 N N N 架无人机组成的空中群体系统,每架无人机携带一个激光雷达和一个惯性测量单元(IMU),状态估计被分解为两部分。第一部分是自我状态估计。每架无人机,这里为了方便起见选择无人机 i i i,需要估计其自身在全局框架 G i G_i Gi的位置 p i ∈ R 3 \mathbf{p}_i \in \mathbb{R}^3 piR3姿态 R i ∈ S O ( 3 ) \mathbf{R}_i \in SO(3) RiSO(3)。由于 IMU 测量与未知且时变的偏差耦合,陀螺仪偏差 b g i ∈ R 3 \mathbf{b}_{gi} \in \mathbb{R}^3 bgiR3 和加速度计偏差 b a i ∈ R 3 \mathbf{b}_{ai} \in \mathbb{R}^3 baiR3 应被校准。此外,每个全局框架中的重力向量 g i ∈ R 3 \mathbf{g}_{i} \in \mathbb{R}^3 giR3 也应该被估计。

然后,为了估计基于交换的自我状态信息的其他队友无人机的相对状态,每架无人机需要估计全局外参转换。最后,为了提供其他队友的相互观察,每架无人机 i i i 需要检测、识别和跟踪任何其他队友 j j j,其在自身机体框架中观察到的位置用 b p i j \mathbf{b}_{p_{ij}} bpij 表示。

B. 框架概述

框架

在群体系统中,每架无人机运行相同框架。图 2 展示了第 i 架无人机运行的框架的概览。第一阶段是初始化(第 III-C 节),包括检测和临时跟踪潜在的队友无人机(第 III-C.1 节)。一旦临时跟踪物体的运动足够激发,就开始轨迹匹配(第 III-C.2 节)。如果临时跟踪物体的轨迹成功匹配通过无线通信传输的队友轨迹,该物体将被视为相应队友的观测,并被标记为队友身份(ID),临时跟踪器因此成为队友跟踪器(第 III-D.1 节)。观察到的队友 j j j 的位置 b i p ˘ b j \mathbf{b}_{i}\breve{p}_{b_{j}} bip˘bj(“主动观测测量”),队友 j j j 观察到的自我位置 b j p ˘ b i {}^{b_{j}}\breve{p}_{b_{i}} bjp˘bi(“被动观测测量”,从网络接收),激光雷达点云(运动补偿后),以及 IMU 测量值然后通过误差状态迭代卡尔曼滤波器(ESIKF)(第 III-D 节)融合,以联合估计自我状态和全局外参变换 G i T G j G_{i} T_{G_{j}} GiTGj。最后,估计的自我状态和主动相互观测信息通过 Ad-Hoc 通信的 UDP 数据包传输给其他无人机。

C. 群体系统的初始化

本节介绍无人机如何检测、跟踪和识别潜在的队友无人机。

  1. 无人机检测和临时跟踪:我们提出了一种基于反射率过滤和聚类提取的新型无人机检测方法。对于每架无人机,其机体上附加了反光带,因此可以根据激光雷达传感器测量的反射率信息被其他队友轻松检测。算法 1 总结了无人机 i 在每次激光雷达扫描中进行的详细检测和跟踪程序。将 b i P all {}^{b_{i}}\mathcal{P}_{\text{all}} biPall 表示为当前机体框架中表示的新扫描的原始激光雷达点。首先,通过反射率过滤 b i P all {}^{b_{i}}\mathcal{P}_{\text{all}} biPall 在第 1 行提取超过给定阈值的高反射率值点,该阈值可以事先在反光带上校准。然后在第 2 行,通过欧几里得聚类 b i P h {}^{b_{i}}\mathcal{P}_{h} biPh 检测新的潜在队友无人机。

新检测到的物体随后在第 4 行由基于卡尔曼滤波器的临时跟踪器跟踪。

每个临时跟踪器 m ( m = 1 , 2 , ⋯ M ) m(m=1,2,\cdots M) m(m=1,2,M) 的状态向量 x m x_{m} xm 包括物体位置 G i p m {}^{G_{i}} p_{m} Gipm 和在无人机 i 的全局框架中的速度,临时跟踪器将根据恒定速度模型预测跟踪器位置 G i p ^ m {}^{G_{i}}\hat{p}_{m} Gip^m。然后,位置 G i p ˘ m = G i T b i b i p ˘ m \mathbf{G}_{i}\breve{p}_{m}=\mathbf{G}_{i} T_{b_{i}}{}^{b_{i}}\breve{p}_{m} Gip˘m=GiTbibip˘m(其中 b i p ˘ m {}^{b_{i}}\breve{p}_{m} bip˘m 是在第 2 行从高反射率点聚类得到的)与最近预测位置关联。如果没有找到有效的关联,即预测位置和聚类位置的误差太大,跟踪器将在预测位置 G i p ^ m {}^{G_{i}}\hat{p}_{m} Gip^m 周围的原始点重新聚类。原因是测量点的反射率值通常受到物体距离和激光入射角的影响,因此提取的高反射率点可能不代表潜在队友无人机上的所有点。为了获得更准确的聚类,我们计算以 G i p ^ m {}^{G_{i}}\hat{p}_{m} Gip^m 为中心的预测区域,并在此区域内聚类物体,然后用于更新临时跟踪器。注意,提取的物体大小远大于或小于实际无人机大小的物体被拒绝(无效物体)。如果没有有效的物体可以聚类,跟踪器将传播到下一步。如果跟踪器在没有更新的情况下传播了太多步骤,跟踪器将被终止。请注意,由于预测区域内的点远少于所有输入点,因此重新聚类的时间消耗将显著减少。

  1. 使用轨迹匹配进行队友识别:通过拒绝无效聚类和跟踪真正的潜在队友,每个临时跟踪器的轨迹被累积以进行后续识别。由于所提出的群体系统中的所有无人机将交换它们估计的自我状态(在它们自己的全局框架中)与其他人,队友识别和全局外参可以通过轨迹匹配获得,如下所示:

arg ⁡ min ⁡ G i T G j ∑ κ = 1 K 1 2 ∥ G i p ˉ m , κ − G i T G j G j p ˘ b j , κ ∥ ( 1 ) \arg\min_{G_{i} T_{G_{j}}}\sum_{\kappa=1}^{\mathcal{K}}\frac{1}{2}\|^{G_{i}}\bar{p}_{m,\kappa}-{}^{G_{i}}T_{G_{j}}{}^{G_{j}}\breve{p}_{b_{j},\kappa}\| \qquad(1) argGiTGjminκ=1K21Gipˉm,κGiTGjGjp˘bj,κ(1)

其中 G i p ‾ m , κ ∈ G i T m \mathbf{G}_{i}\overline{p}_{m,\kappa}\in \mathbf{G}_{i}\mathcal{T}_{m} Gipm,κGiTm 表示 m 个物体跟踪位置轨迹 G i T m {}^{G_{i}}\mathcal{T}_{m} GiTm 中的第 κ \kappa κ 个位置, G j p ˘ b j , κ ∈ G j T j \mathbf{G}_{j}\breve{p}_{b_{j},\kappa}\in \mathbf{G}_{j}\mathcal{T}_{j} Gjp˘bj,κGjTj 表示从无人机 j 接收的位置。考虑到可能的短期通信中断, G j p ˘ b j \mathbf{G}_{j}\breve{p}_{b_{j}} Gjp˘bj 的一些数据可能会丢失。因此,我们只选择与 G j p b j , κ \mathbf{G}_{j} p_{b_{j},\kappa} Gjpbj,κ 时间戳接近的 G i p ‾ m , κ \mathbf{G}_{i}\overline{p}_{m,\kappa} Gipm,κ 参与轨迹匹配。
在这里插入图片描述
由于数据量太大,我们使用最近 K \mathcal{K} K 个位置的滑动窗口进行匹配。

由于如果涉及的轨迹是直线,则无法从 (1) 确定唯一的变换[28],因此通过 TrajExcited ( G i T m ) ({}^{G_{i}}\mathcal{T}_{m}) (GiTm) 在第 6 行不断评估这些被跟踪物体的轨迹,直到收集到足够的信息。设 G i p ‾ m c {}^{G_{i}}\overline{p}_{m}^{c} Gipmc 表示 G i T m {}^{G_{i}}\mathcal{T}_{m} GiTm 的质心,TrajExcited ( G i T m ) ({}^{G_{i}}\mathcal{T}_{m}) (GiTm) 通过计算矩阵 H ∈ R 3 × 3 \mathcal{H}\in \mathbb{R}^{3\times 3} HR3×3 的奇异值来评估 G i T m {}^{G_{i}}\mathcal{T}_{m} GiTm 的激发(形状):

H ≜ ∑ κ = 1 K ( G i p ‾ m , κ − G i p ‾ m c ) ⋅ ( G i p ‾ m , κ − G i p ‾ m c ) T ( 2 ) \mathcal{H} \triangleq \sum_{\kappa=1}^{\mathcal{K}} \left( {}^{G_{i}}\overline{p}_{m,\kappa} - {}^{G_{i}}\overline{p}_{m}^{c} \right) \cdot \left( {}^{G_{i}}\overline{p}_{m,\kappa} - {}^{G_{i}}\overline{p}_{m}^{c} \right)^T \qquad(2) Hκ=1K(Gipm,κGipmc)(Gipm,κGipmc)T(2)

如果第二大的奇异值大于给定的阈值,则轨迹完全激发,有资格进行 TrajMatching ( G j T j , G i T m ) ({}^{G_{j}}\mathcal{T}_{j},{}^{G_{i}}\mathcal{T}_{m}) (GjTj,GiTm) 在第 8 行。这个函数解决 (1) 有研究充分的闭式解法[28]。匹配是与每个接收到的队友无人机的轨迹进行的,直到匹配误差小于给定的阈值,表明物体 m 本质上是队友 j 的观测,而 (1) 的解给出了全局外参 G i T G j {}^{G_{i}} T_{G_{j}} GiTGj 的初始估计,然后使用第 III-D.3 节中的 ESIKF 在线细化。识别后,临时跟踪器变为具有相应无人机 ID 的队友跟踪器,将按第 III-D.1 节顺序跟踪。初始化流程如图 3 所示。

D. 去中心化激光雷达-惯性状态估计

所提出的群体系统的完全去中心化状态估计是一个紧密耦合的迭代卡尔曼滤波器,继承自 FAST-LIO2[4],但进一步纳入了相互观测约束以提高自我状态估计的准确性,并包括在线细化无人机间全局外参变换。
1)队友跟踪:在检测和识别队友无人机后,获得队友跟踪器,并通过轨迹匹配进行初始校准全局外参。队友跟踪器与临时跟踪器类似,但有两个关键区别。第一个区别在于预测。临时和队友跟踪器都使用恒定速度模型预测状态,但队友跟踪器基于从相应队友接收到的速度(和相应全局外参变换的最新估计)进行预测,而不是临时跟踪器中的自我估计速度(见第 III-C.1 节)。第二个区别在于没有队友观测时的状态更新。在临时跟踪器中,如果没有有效的观测,例如队友在 FoV 之外,跟踪器将传播几步然后终止,如第 III-C.1 节所述。在队友跟踪器中,它将使用从网络接收到的队友里程计,在将其转换为自我无人机的全局框架中使用第 III-D.3 节获得的最新全局外参变换后,继续状态更新。

2) 状态预测:用 τ \tau τ 表示 IMU 测量索引,离散状态转移模型如下所示:

x i , τ + 1 = x i , τ ⊞ ( Δ t τ f i ( x i , τ , u i , τ , w i , τ ) ) ( 3 ) x_{i,\tau+1} = x_{i,\tau} \boxplus \left( \Delta t_{\tau} f_{i} \left( x_{i,\tau}, u_{i,\tau}, w_{i,\tau} \right) \right) \qquad(3) xi,τ+1=xi,τ(Δtτfi(xi,τ,ui,τ,wi,τ))(3)

Δ t τ \Delta t_{\tau} Δtτ 是两个连续 IMU 测量之间的时间间隔, x i , τ x_{i,\tau} xi,τ 表示在 IMU 测量的时间戳 t i τ t_{i\tau} tiτ 的真实状态。状态向量 x i x_{i} xi,离散状态转移函数 f i f_{i} fi,噪声 w i w_{i} wi 和输入 u i u_{i} ui 定义如下:

x i ≜ [ G i R b i G i p b i G i v b i b g i b a i G i g … G i R G j G i p G j … ] ∈ M f i ≜ [ ω m i − b g i − n g i G i v b i G i R b i ( a m i − b a i − n a i ) + G i g n b g i n b a i 0 3 × 1 ⋯ n R n p ⋯ ) w i ≜ [ n g i n a i n b g i n b a i n R n p ] , u i ≜ [ ω m i a m i ] \begin{align*} & x_i \triangleq \left[ \begin{array}{lll} G_i R_{b_i} & G_i p_{b_i} & G_i v_{b_i} b_{g_i} b_{a_i} & G_i g \\ & \ldots & G_i R_{G_j} & G_i p_{G_j} & \ldots \end{array} \right] \in \mathcal{M} \\ & f_i \triangleq \left[ \omega_{m_i} - b_{g_i} - n_{g_i} {}^{G_i} v_{b_i} {}^{G_i} R_{b_i} \left( a_{m_i} - b_{a_i} - n_{a_i} \right) + {}^{G_i} g \right. \\ & \left. n_{b_{g_i}} n_{b_{a_i}} 0_{3\times 1} \cdots n_R n_p \cdots \right) \\ & w_i \triangleq \left[ n_{g_i} n_{a_i} n_{b_{g_i}} n_{b_{a_i}} n_R n_p \right], \quad u_i \triangleq \left[ \omega_{m_i} a_{m_i} \right] \end{align*} xi[GiRbiGipbiGivbibgibaiGiRGjGigGipGj]Mfi[ωmibgingiGivbiGiRbi(amibainai)+Gignbginbai03×1nRnp)wi[nginainbginbainRnp],ui[ωmiami]

其中 ω m i , a m i \omega_{m_{i}}, a_{m_{i}} ωmi,ami 表示无人机 i 的 IMU 测量值,状态向量 x i x_{i} xi 中每个元素的含义在第 III-A 节中介绍,状态流形 M \mathcal{M} M 定义在 (4) 中,其维数为 18 + 6 × ( N − 1 ) 18 + 6 \times (N-1) 18+6×(N1)

M ≜ S O ( 3 ) × R 15 ⏟ dim = 18 × ⋯ × S O ( 3 ) × R 3 × ⋯ ⏟ dim = 6 × ( N − 1 ) ( 4 ) \mathcal{M} \triangleq \underbrace{S O(3) \times \mathbb{R}^{15}}_{\text{dim}=18} \times \underbrace{\cdots \times S O(3) \times \mathbb{R}^{3} \times \cdots}_{\text{dim}=6 \times (N-1)} \qquad(4) Mdim=18 SO(3)×R15×dim=6×(N1) ×SO(3)×R3×(4)
在这里插入图片描述
图3. 新检测物体的初始化示意图,点云根据反射率着色。这里自我无人机是UAV2,它需要在视野内检测和识别其他队友无人机。框的中心表示跟踪器的更新位置。(a) 反射率过滤。(b) 通过丢弃尺寸过大的物体进行异常值拒绝。© 跟踪真实的潜在队友并累积轨迹。(d) 在轨迹匹配后,该物体被识别为UAV1,临时跟踪器变为队友跟踪器(见第III-D.1节)。

在 (3) 中,我们使用了在 [29] 中定义的符号 ⊞ / ⊟ \boxplus/\boxminus / 来紧凑地表示状态流形上的“加法”。具体来说,对于 (III-D.2) 中的状态流形 S O ( 3 ) × R n SO(3) \times \mathbb{R}^n SO(3)×Rn ⊞ \boxplus 操作及其逆操作 ⊟ \boxminus 定义如下:

[ R a ] ⊞ [ r b ] = [ R E x p ( r ) a + b ] ; [ R 1 a ] ⊟ [ R 2 b ] = [ log ⁡ ( R 2 T R 1 ) a − b ] \left[\begin{array}{l}R\\ a\end{array}\right]\boxplus\left[\begin{array}{l}r\\ b\end{array}\right]=\left[\begin{array}{c}RExp(r)\\ a+b\end{array}\right]; \left[\begin{array}{l}R_{1}\\ a\end{array}\right]\boxminus\left[\begin{array}{l}R_{2}\\ b\end{array}\right]=\left[\begin{array}{c}\log\left(R_{2}^{T} R_{1}\right)\\ a-b\end{array}\right] [Ra][rb]=[RExp(r)a+b];[R1a][R2b]=[log(R2TR1)ab]

其中 R , R 1 , R 2 ∈ S O ( 3 ) , r ∈ R 3 , a , b ∈ R n , Exp ⁡ ( ⋅ ) : R 3 ↦ S O ( 3 ) R, R_{1}, R_{2} \in SO(3), r \in \mathbb{R}^3, a, b \in \mathbb{R}^n, \operatorname{Exp}(\cdot): \mathbb{R}^3 \mapsto SO(3) R,R1,R2SO(3),rR3,a,bRn,Exp():R3SO(3) S O ( 3 ) SO(3) SO(3) 上的指数映射 [29], log ⁡ ( ⋅ ) : S O ( 3 ) ↦ R 3 \log(\cdot): SO(3) \mapsto \mathbb{R}^3 log():SO(3)R3 是其逆对数映射。

在 ESIKF 框架下,第 i 架无人机的状态预测步骤在接收到新的 IMU 测量后执行如下:

x ^ i , τ + 1 = x ^ i , τ ⊞ ( Δ t τ f i ( x ^ i , τ , u i , τ , 0 ) ) ; x ^ 0 = x ˉ i , k − 1 ( 5 ) \widehat{x}_{i,\tau+1} = \widehat{x}_{i,\tau} \boxplus \left( \Delta t_{\tau} f_{i} \left( \widehat{x}_{i,\tau}, u_{i,\tau}, 0 \right) \right); \widehat{x}_{0} = \bar{x}_{i,k-1} \quad (5) x i,τ+1=x i,τ(Δtτfi(x i,τ,ui,τ,0));x 0=xˉi,k1(5)
3) 误差状态迭代状态更新:更新步骤在新的激光雷达扫描结束时间 t i k t_{i k} tik 迭代执行,融合点云测量和相互观测测量(如果有)。一旦接收到新的扫描,将执行运动补偿以获得未失真的点,并将计算点到平面的距离以生成点云残差。运动补偿的细节可以参考 [4]。将每个运动未失真的点投影到全局框架中,使用传播的自我状态表示为 G i p ^ n {}^{G_{i}}\widehat{p}_{n} Gip n,将 u n u_{n} un 表示为相应平面的法向量,该平面上有一个点 G i q n {}^{G_{i}} q_{n} Giqn,点残差表示为 z p , n z_{p, n} zp,n

除了点云残差,本文的一个主要贡献是基于 3D 激光雷达的相互观测测量,这些测量用于构建新的约束以提高状态估计的准确性,并使群体系统对退化场景具有鲁棒性。对于无人机 i,将 b i p ˘ b j {}^{b_{i}}\breve{p}_{b_{j}} bip˘bj(相对于无人机 j 的主动观测测量,见第 III-D.1 节)产生的主动观测残差表示为 z a o , i j z_{a o, i j} zao,ij,将 b j p ˘ b i {}^{b_{j}}\breve{p}_{b_{i}} bjp˘bi(相对于无人机 j 的被动观测测量)产生的被动观测残差表示为 z p o , i j z_{p o, i j} zpo,ij,那么无人机 i 的残差块组成如下:

z i = [ ⋯ , z p , n T , ⋯ , z a o , i j T , ⋯ , z p o , i j T , ⋯ ] T z p , n = u n T ( G i p ^ n − G i q n ) z a o , i j = G i T b i − 1 G i T G j G j p ˘ b j − b i p ˘ b j z p o , i j = G j T ˇ b j − 1 G i T G j − 1 G i p b i − b j p ˘ b i ( 6 ) \begin{align*} z_i &= \left[\cdots, z_{p, n}^T,\cdots, z_{a o, i j}^T,\cdots, z_{p o, i j}^T,\cdots\right]^T\\ z_{p, n} &= u_n^T \left( {}^{G_i}\widehat{p}_n - {}^{G_i} q_n \right)\\ z_{a o, i j} &= {}^{G_i} T_{b_i}^{-1 G_i} T_{G_j} {}^{G_j} \breve{p}_{b_j} - {}^{b_i} \breve{p}_{b_j}\\ z_{p o, i j} &= {}^{G_j} \check{T}_{b_j}^{-1 G_i} T_{G_j}^{-1 G_i} p_{b_i} - {}^{b_j} \breve{p}_{b_i} \end{align*} \quad (6) zizp,nzao,ijzpo,ij=[,zp,nT,,zao,ijT,,zpo,ijT,]T=unT(Gip nGiqn)=GiTbi1GiTGjGjp˘bjbip˘bj=GjTˇbj1GiTGj1Gipbibjp˘bi(6)

状态将迭代更新直至收敛,细节可以参考 [4]。收敛后,地图将使用 ikd-tree [30] 进行增量更新,这是一种高效的地图管理数据结构。通过使用更新的全局外参变换投影队友无人机传输的自我状态信息来完成相对状态估计。

四. 实验

实验平台包含三架无人机,每架无人机携带一个 Livox 激光雷达(无人机 1 和无人机 3 携带 Livox Mid360,无人机 2 携带 Livox Avia,具有较小的 FoV),一个 Pixhawk 飞行控制器(内置 BMI055 6 轴 IMU),一个英特尔 NUC 笔记本电脑,配备 i7-10710U CPU。每架无人机都附有反光带以便易于检测(见图 4)。对于每架无人机,激光雷达和 IMU 之间的时间偏移和外参通过 [31] 校准,不同无人机之间的时间事先基于网络时间协议(NTP)同步。所有无人机都使用模型预测控制 [11] 手动飞行。

在这里插入图片描述
图 4. 所提出的群体系统的无人机平台。由于无人机 1 的设备设置与无人机 3 相同,仅显示了无人机 3 的图片。

A. 室内飞行

在室内场景中进行了五次飞行,以定位精度。运动捕捉系统作为真实数据。就我们所知,对于基于 3D 激光雷达的状态估计系统,我们进行了消融研究,将我们方法的定位精度与 FAST-LIO2 进行比较,表中显示了位置 RMSE。对于携带 Livox Avia 激光雷达的无人机 2,由于其 70. 4 ∘ 70.4^{\circ} 70.4 的 FoV 使得激光雷达更容易丢失特征,尤其是在室内场景中,观测测量可以提供准确的定位结果。对于携带 36 0 ∘ 360^{\circ} 360 激光雷达的无人机 3,有足够的点使 FAST-LIO2 工作良好。因此,在所有实验中,激光雷达的时间间隔是 L,该方法和 FAST-LIO2 的平均每次迭代时间消耗为 17.5 m s 17.5~ms 17.5 ms,所提出的 Swarm-LIO 可以提高实时性,并且具有近似的计算效率(单架无人机的快速里程计)。

B. 退化环境飞行

第一个退化场景是表 I 中的数据 05,其中携带 Livox Avia 激光雷达的无人机 2 面对一个平滑的墙壁,这导致不足以确定完整状态的约束。结果,单智能体里程计 FAST-LIO2 完全退化,RMSE 很大。而对于所提出的群体系统,无人机 2 被其队友无人机 1 和无人机 3 观测(被动观测测量)。在 (6) 中融合从无人机 1 和无人机 3 传输的被动观测测量仍然可以导致稳定且准确的状态估计。点云地图和相互观测测量如图 5 所示。

第二个退化场景是一个平滑的立方体走廊。与平滑墙面相似,单个LiDAR的观测无法提供足够的约束来确定姿态,因此FAST-LIO2会出现漂移。而对于一个群体系统,当第一架无人机飞入走廊时,其他无人机仍然在入口处悬停(该处有足够的结构特征供其状态估计)并为第一架无人机提供被动观测测量。在第一架无人机穿过走廊后,它在尽头悬停,为其余无人机提供被动观测测量,使它们也能飞过走廊。因此,整个群体可以顺利穿过平滑走廊而不出现退化。从图6可以看出,所提出的方法对这种类型的退化场景具有鲁棒性,地图能够恢复比FAST-LIO2更多的结构细节。更多的视觉说明可以在我们的视频中找到。

在这里插入图片描述
图5. 退化平滑墙实验。图(a)和图(b)中的白点指当前输入点。(a) 无人机2的视图,采用FAST-LIO2构建的点云地图,出现严重漂移,地图混乱。(b) 无人机2的视图,采用所提出的方法融合被动观测测量b1与b2以及b3与b2构建的点云地图。黄色框表示队友无人机超出了视野,队友跟踪器通过融合队友传输的自我状态估计进行更新。© 三架无人机的图片。(d)(e) 无人机1和无人机3的视图及其对队友无人机的观测(蓝框)。

C. 去中心化部署

为了验证所提出的群体系统对观测丢失的鲁棒性以及全球外部变换的校准能力,进行了一项大规模去中心化探索实验。三架无人机随机放置在一座豪宅前,然后起飞。起飞后,它们进行了一些随机飞行,每架无人机自动检测、跟踪和识别彼此,无需任何先前的外部信息。之后,无人机向不同方向飞行,以探索不同区域。飞行结束后,每架无人机的点云地图可以使用估计的全球外部变换在离线状态下合并在一起。通过将无人机2和无人机3的点云地图转换到无人机1的全球坐标系中,合并的地图如图7所示。
一致的合并地图展示了在没有任何初始值的情况下准确进行全球外部估计的能力。另一个需要注意的点是,由于无人机在不同区域飞行,长时间内没有相互观测,例如,无人机2在没有相互观测的情况下的平均距离为88.58米。但即便如此,当队友无人机返回到无人机2的视野时,检测到的队友位置与队友跟踪器预测的位置(基于接收到的队友自我状态,见第III-D.1节)之间的误差仅为0.17米,这表明估计的全球外部变换具有很高的准确性。更多的视觉说明可在我们的视频中查看。
在这里插入图片描述

五. 结论和未来工作

本文提出了一种完全去中心化且准确的群体激光雷达-惯性里程计。提出了一种新颖的基于3D激光雷达的无人机检测、识别和跟踪方法,以执行完全自主的初始化和鲁棒的相对状态估计。在ESIKF框架下,相互观测测量与IMU和点云测量紧密结合,实现了实时且准确的自我状态估计,即使在相机或激光雷达的退化环境中也能保持鲁棒性。未来,无人机检测可以升级为无需辅助的方法(例如,无需反光带),并且初始化可以更加高效。此外,群体的规模可以更大,将生产更多的无人机以完成各种任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1546.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

京东毫秒级热key探测框架JD-hotkey

前言 对任意突发性的,无法预先感知的热点数据,包括热点数据(如突发大量请求同一个商品)、热用户(如恶意爬虫刷子)、热接口(突发海量请求同一个接口)等,一瞬间打到我们的服…

IntelliJ IDEA 中上传项目到 Gitee 的完整指南

博主主页:【南鸢1.0】 本文专栏:git 目录 简介 1.插入intellij-gitee 2.导入下载插件 3.选择导航栏中的VCS->Share Project on Gitee 4.登录gitee 6.验证gitee仓库是否创建成功 7.上传分享项目 8.验证仓库代码是否上传成功 总结 简介 Gitee 是一个代码…

低代码可视化-按钮open-type开放能力自定义-代码生成器

微信小程序原本确实不直接支持通过点击按钮将内容分享到朋友圈的功能,但微信在后续更新中逐步放开了部分限制,允许特定内容以小程序卡片的形式分享到朋友圈。然而,这一功能仍然需要满足一定的条件,并且需要开发者进行特定的配置。…

基于springboot乐器视频学习网站设计与实现(源码齐全可用)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

TypeScript:never 类型的神奇妙用

在 TypeScript 中,never 是一个特殊类型,表示「永不存在的值类型」,通常用于表示不可能发生的情况。它适用于抛出异常、不返回值的函数或处理逻辑上永远不会出现的分支。 以下是它的简单用法和注意事项: 1. never 的用法 1、抛…

Redis-结构化value对象的类型

文章目录 一、Redis的结构化value对象类型的介绍二、Redis的这些结构化value对象类型的通用操作查看指定key的数据类型查看所有的key判断指定key是否存在为已存在的key进行重命名为指定key设置存活时间pexpire与expire 查看指定Key的存活时间为指定key设置成永久存活 三、Redis…

解密美国 VPS 主机的核心优势与未来发展

在全球网络需求不断增长的今天,许多企业和开发者都在寻找更灵活、安全、性能优异的主机解决方案。美国 VPS 主机凭借其强大的技术支持和广泛的网络连接,成为国际用户的热门选择。本文将深入探讨美国 VPS 主机的核心优势、其在网络应用上的独特表现&#…

XSS小游戏【1-13关】

第一关 Payload&#xff1a;<script>alert(1)</script> 第二关 Payload&#xff1a;keyword<script>alert(1)</script> 发现没有成功&#xff0c;F12发现需要闭合input 标签 再次输入payload&#xff1a;aaa"><svg οnlοadalert(1)> …

Spring Boot框架:校园社团信息管理的现代化解决方案

3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架&#xff0c;JAVA作…

uniapp推送配置流程

Dcloud Dcloud注册账号 个推 了解即可 注册个推账号 ios配置流程 需配置含有推送的描述文件以及p8证书 配置推送证书 ios证书配置报技术错误&#xff08;参数错误&#xff09; TeamID-苹果开发者账号唯一的ID 安卓需配置多厂商 小米手机需要配置小米厂商 华为手机则需…

JavaEE初阶---网络原理之TCP篇(二)

文章目录 1.断开连接--四次挥手1.1 TCP状态1.2四次挥手的过程1.3time_wait等待1.4三次四次的总结 2.前段时间总结3.滑动窗口---传输效率机制3.1原理分析3.2丢包的处理3.3快速重传 4.流量控制---接收方安全机制4.1流量控制思路4.2剩余空间大小4.3探测包的机制 5.拥塞控制---考虑…

单细胞数据分析(一):10X数据生成seurat数据对象

文章目录 介绍加载R包数据链接导入数据过滤细胞:移除双重细胞合并所有seurat数据对象输出结果系统信息介绍 在单细胞基因组学研究中,Seurat是一个流行的R包,用于单细胞基因表达数据的分析和探索。以下是如何从10X基因注释数据生成Seurat数据对象,并对该数据进行过滤的步骤…

了解SQLExpress数据库

SQLExpress&#xff08;Microsoft SQL Server Express&#xff09;是由微软公司开发的一款免费且轻量级的数据库管理系统。以下是关于SQLExpress的详细解释&#xff1a; 一、定义与特点 定义&#xff1a; SQLExpress是Microsoft SQL Server的一个缩减版或基础版&#xff0c;旨在…

C++ 魔法三钥:解锁高效编程的封装、继承与多态

快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 &#x1f4af;前言 &#x1f4af;封装 1.封装概念 2.封装格式 3.封装的原理 4.封装的作用 &#x1f4af;继承 1.继承的概念 2.继承格式 3.继承的…

开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序中积分使用价值的拓展策略

摘要&#xff1a;本文围绕开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序&#xff0c;深入探讨其积分使用价值的丰富策略。详细分析积分兑换礼品、会员升级、积分抵现等方式在该特定商城小程序环境下的应用特点、存在问题及对用户和商城的影响&#xff0c;旨在为商城的优化运…

UE4安卓Gradle工程中的libUE4.so的生成原理

流程图 流程图放在最前面&#xff0c;下面是讲解。 libUE4.so 问&#xff1a;在UE4安卓开发中&#xff0c;libUE4.so即是符号表&#xff0c;又是引擎代码native&#xff0c;是吗&#xff1f; 答&#xff1a;是的&#xff0c;libUE4.so在UE4安卓开发中既包含符号表&#xff0c;…

Java线程池的核心内容详解

文章内容已经收录在《面试进阶之路》&#xff0c;从原理出发&#xff0c;直击面试难点&#xff0c;实现更高维度的降维打击&#xff01; 目录 文章目录 目录Java线程池的核心内容详解线程池的优势什么场景下要用到线程池呢&#xff1f;线程池中重要的参数【掌握】新加入一个任…

Pandas DataFrame学习

1.DataFrame定义 DataFrame 是 Pandas 中的另一个核心数据结构&#xff0c;用于表示二维表格型数据。DataFrame 是一个表格型的数据结构&#xff0c;它含有一组有序的列&#xff0c;每列可以是不同的值类型&#xff08;数值、字符串、布尔型值&#xff09;。DataFrame 既有行索…

如何在创建完fb公共主页后添加管理员防止封号?

在创建Facebook公共主页后&#xff0c;及时添加备用管理员是非常重要的。这可以帮助防止由于个人账号被封或其他限制因素导致无法继续管理公共主页的情况。以下是关于如何添加管理员及接受邀请的详细步骤。 Facebook公共主页的角色介绍 在Facebook公共主页上&#xff0c;有五种…

无人机避障——使用三维PCD点云生成的2D栅格地图PGM做路径规划

着重介绍通过对三维 PCD 点云进行处理生成 2D 栅格地图 PGM&#xff0c;而后将该 PGM 地图充分运用到无人系统路径规划之中&#xff0c;使得无人机能够依据此规划合理避开飞行路线上可能出现的障碍物。&#xff08;解决如何使用PGM的问题&#xff09; Hybrid A*算法 参考博客…