当前位置:AIGC资讯 > AIGC > 正文

从单机到多机的无人机与机器人集群的SLAM综述

本文经自动驾驶之心公众号授权转载,转载请联系出处。

前言

在本系列,我将会更新我的博士毕业论文“Decentralized and Distributed Collaborative Simultaneous Localization and Mapping System for Aerial Swarms”的中文科普版,有别于更专业的原版,这一版本主要包括更多的图片,相关工作带有的评述和思考,结果展示;降低一部分算法细节。本系列文章大概会是中文互联网最适合入门多机SLAM的论文之一;读者也可以通过本系列文章对移动机器人感知进行一些了解。

由于工程量巨大(我的thesis大概有150多页),所以请读者做好本系列文章会更新到夏季的心理准备。一个比较好的预期是每周或者每半个月会写一篇。也请关注我的专栏方便接收更新。

什么是SLAM?为什么我们需要多机SLAM?

一个良好的科普通常从生活中的现象开始,本文也不例外。到2023年,扫地机器人已经走入了千家万户。

一个良好的扫地机器人不仅仅能够灵活的绕开障碍物,也能自动返回到充电器附近对自己进行充电。实现这一技术的核心就是SLAM(实时定位与地图构建,由于这个中文名实在太长,后文简称SLAM)

使用D^2SLAM估计出的不同机器人移动轨迹

使用D2SLAM构建出的稠密地图

大家可能都知道GPS能确定自己的位置,然而GPS很容易受到干扰,在室内环境中更完全无法使用,其基本原理又限制了精度。SLAM技术就像是人类的眼睛+小脑,是几乎一切移动机器人的基础。其目标包括了两个:确定机器人自身在三维空间中的位置和姿态,并且构建出周边环境的地图。这是人类和动物与生俱来的本能,在机器人上是相当复杂的。

随着国内机器人产业的大发展,SLAM技术也在这两年逐渐普及开来,典型的应用几乎涵盖了正在改变世界的大部分工业产品:正大量出货的自动驾驶汽车,逐渐普及开的VR/MR虚拟现实设备和“元宇宙”,市面上的高价无人机,各家各户的扫地机器人,海底捞的送货小车等等。

坦白的说,时至今日,随着视觉,Lidar(激光雷达)两开花,现在的SLAM技术已经趋于成熟,请看下面香港大学林博 @ziv.lin 的工作。

香港大学林博的杰作,激光视觉融合的SLAM:https://github.com/hku-mars/ImMesh

香港大学林博的杰作,激光视觉融合的SLAM:https://github.com/hku-mars/ImMesh

在单机slam逐渐成熟的同时,研究届也正在转向一些更加困难的课题,这其中就包括了多机SLAM。

为什么我们需要多机SLAM?

设想我们有一群无人机

我们希望他们能在狭窄的室内环境或者森林中自由飞翔,去执行救灾,探险等任务。那么想要这些无人机不要在物理上打成一片,我们就必须做到几点:

  1. 确定每个无人机自身在空间中的位置。
  2. 确定其他无人机相对于无人机自身在空间中的位置。
  3. 每个无人机对周围的环境进行感知。确定障碍物的位置。

比较早期的研究者和商业公司,选择了一种粗暴的方式解决这一问题,使用外部定位设施,包括昂贵的动作捕捉系统(对,就是拍电影和Vtuber出道要用的那个),UWB基站,或在在宽阔的室外架设基站,使用rtk-gps来飞行,几乎所有已经商业化的无人机集群(表演)都使用了这一技术。

然而,非常精确的动作捕捉设备不仅仅昂贵,也局限于实验室环境--你不能指望无人机去参加救灾活动的时候先花几个小时假设一套动捕或者UWB基站吧?GPS说过了,容易被干扰且局限于室外,那么有什么比较好的办法解决这一问题呢?

答案就是多机的相对定位以及多机SLAM技术。

截至2023年,这一类技术已经替代了用了20年的动捕,逐渐成为了无人机集群的标配。正是相对定位/多机SLAM技术的发展,使得真正完全自主的无人机集群成为了可能,相关工作的视频有两个值的一看。一个是高飞师兄组的science robotics大作,aerial swarm in the wild[1],这篇文章是全世界第一个完整展现了自然环境中的高度自主的无人机集群的演示,使用的多机技术互相定位技术正是参考了(或者说受启发?)接下来要介绍的我的工作Omni-swarm[2]

www.bilibili.com/video/BV1pv4y1K7zS/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683

其次是 @周博宇 博士和我合作的工作,Racer[3],这一工作展现了多个无人机集群对未知环境的探索。其定位方案则是直接使用的Omni-swarm

www.bilibili.com/video/BV1F14y1g7cG/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683

多机SLAM技术都有哪些?

在正式进入话题之前,我们要简单的回顾一下现有的工作。目前的相对定位方案包括了如下几类:

视觉方案

使用视觉进行,例如捕捉红外灯光,marker,直接对其他无人机进行visual detection等;优势是视觉测量精确的相对定位,缺点是歧义性:搞明白哪个飞机是哪个是最大的问题。对于这一问题,解决方案包括不同的灯光组合[4][5],算法硬解等[6]

UWB 信息

UWB可以提供十厘米上下精度的测距信息。使用UWB测距信息也可以用于辅助定位,但是单一uwb信息并不可观,也缺乏定向信息。这使得我们需要和其他方法的融合[7]。

地图环境

使用环境地图方案进行相对和绝对定位通常是一个不错的想法[8],但是仅仅适用于环境特征较为稠密的室内,在室外则有诸多局限性。地图环境定位的另一个问题是需要较大的通信带宽。

我们的方案

这里给出我们方案思路的简述,在后续文章会逐渐分析。

UWB-视觉去中心化定位

首先是针对相对定位和绝对定位这一问题,我首先研究了使用UWB-视觉融合的方法,不仅仅使用uwb和odometry(里程计)融合,同样引入了精度更高的视觉检测方法对精度进行增强。该方法已经在实验中展现出了厘米级别的精度;并且是第一个在环境狭窄的室内实现紧密配合情况下飞行的无人机集群。后来高飞组在science robotics中使用的方案就和这一方案类似。

该文章发表在机器人研究顶会ICRA上,文章链接是 http://www.xuhao1.me/files/ICRA2020hao.pdf

www.bilibili.com/video/BV1y7411y7Qx/?spm_id_from=333.999.0.0&vd_source=5b500ce27249089310ee479674dfb683

更全能的Omni-swarm

在前文所做的实验中,最令人头疼的事情之一是状态感知的初始化,作为一个高度自主的集群,我们希望他们能够只依赖自己而不是预先输入的信息完成初始化。于是后续对此方法进行了进一步改进,地图方案也被融入,于是不仅仅能完成相对定位,更展现出了全局一致性,并且针对初始化问题和可观测性进行了优化(ICRA版本需要运动来初始化,或者已知初始位置),这篇工作的名称是Omni-swarm。Omni意为全向和全能,我们还发现了对无人机集群很重要的事情:使用全向摄像头可以显著的改善可观测性。该文章也包含了迄今所有无人机相对定位的主流方案,所以被称作“Omni”。该文章发表于机器人研究顶刊,IEEE Transaction on Robotics (TRO)上,https://ieeexplore.ieee.org/document/9813359,

代码已经开源在:GitHub - HKUST-Aerial-Robotics/Omni-swarm: A Decentralized Omnidirectional Visual-Inertial-UWB State Estimation System for Aerial Swar.

www.bilibili.com/video/BV1FV411H7Kg/?spm_id_from=333.999.0.0

Racer:未知环境的无人机群探索

在Omni-swarm的基础上,我们进行了现实环境的无人机探索任务,这是世界第一个完全去中心化的无人机群自主探索研究,正是去中心化且全能的“omni-swarm”,是这种任务成为了可能。这篇文章同样发表于TRO上,https://ieeexplore.ieee.org/abstract/document/10038280

Racer飞行测试时的地面站截图,该地面站由我本人开发。

www.bilibili.com/video/BV1F14y1g7cG/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683

在Racer的研究中,我又得到了不少启发:1,自主无人机群仅仅在无人机互相距离较近的时候有相互高精度定位的必要,飞远了自然也没有必要互相避障了,这时候相对定位精度的重要性自然降低。2.当无人机相距较远的时候,互相并不碰面,这时候我们更关注的是全局一致性:也就是地图不能随着飞行轨迹的飞行而飘移,要飞一圈回来,飞机仍然在之前的地方,这样地图才能进行后续的应用。3.是uwb和视觉检测用起来有时候很麻烦,容易被复杂环境干扰。我们需要一个更加可靠且通用的方案,UWB也好,视觉检测也好,可以作为“dlc”挂进去,也可以根据环境的不同不去挂载。

D2SLAM:分布式,更高精度和全局一致性

在这些思考的基础上,我又加入了分布式计算的思想,做出了我博士期间的最后一个工作 SLAM。分布式和去中心化的联合SLAM系统。SLAM根据前文做出的反思引入了两个(在我看来比较重要的)观念:

  1. 无人机群的“近场“状态估计(near-field state estimation),当无人机集群中的飞机距离较近,通信良好的时候,我们有必要(为了互相避障和紧密协作)也有能力建立高精度的局部定位(自身状态估计)和无人机的互相定位。我把这部分能力称作近场估计
  2. “远场“状态估计(far-field state estimation),当无人机群中的飞机互相距离较远时,为了任务的完整性,我们关注的是地图全局一致性,也就是地图不能乱跑,这种能力被我称作远场估计。

SLAM的贡献在于良好的解决了上面的两种问题;在延续了我们已有的全向视觉的思想的同时,引入了分布式计算来改善计算效率。这篇文章已经投稿至TRO(是的我们就是这么热爱TRO), 预印本已经放在,https://arxiv.org/abs/2211.01538, 并且代码开源在了 https://github.com/HKUST-Aerial-Robotics/D2SLAM (文档和数据集逐步完善中)

www.bilibili.com/video/BV1eY4y1Q7j1/?spm_id_from=333.999.0.0

使用D2SLAM重建的实验室

本系列文章后续会略微详细介绍我们的算法,和我个人的一些思考,时间有限更新不一定稳定。敬请关注。感兴趣的也可以先下载对应的论文。

小结

无人机群的状态估计是构建一个自主集群的最关键的基础技术之一,并且还在不断的发展中,有大量的问题未被解决。相比于路径规划,互相避障,环境探索等任务,被大众所知的程度也更低一些。本系列文章从我个人的研究出发,希望能给大家一个对此问题的基础认知。也希望更多朋友参与到这一问题的研究中来。

原文链接:https://mp.weixin.qq.com/s/PgQQAVluvyRhxtAFpdU5eA

更新时间 2023-10-31