SCI ROBOT 2023 港大开源 | 一种用于自主导航的具有扩展传感器视场的自旋转单驱动无人机
作者:敖丙 | 来源:计算机视觉工坊在公众号「计算机视觉工坊」后台,回复「原论文」可获取论文pdf及支撑材料、代码链接
添加微信:dddvisiona,备注:无人机,拉你入群。文末附行业细分群
<span style="display: none;"/>
无人驾驶飞行器(UAV)在各种现实应用中发挥着越来越重要的作用,例如搜索和救援、洞穴勘测、建筑测绘和考古勘探。为了满足这些应用中的任务要求,自定位、环境测绘和避障的能力是关键。这些能力通常基于无人机上的视觉传感器提供的环境观察,包括被动式(例如 RGB 相机和热感相机)或主动式(例如光探测和测距 (LiDAR) 和红外深度相机)。无人机现有的一个问题是这些传感器的小视场(FoV)严重限制了其感知能力和任务效率。这里也推荐工坊推出的新课程《零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]》。
今天笔者介绍的是一项来自香港大学火星实验室新的工作,与传统的自主探索无人机结构不同,这项工作使用自旋装置扩展了无人机的感知FOV,能够在自旋状态下进行自主导航,并且可以通过激光雷达检测静态和动态障碍物,大大提高了无人机的感知避障能力。
图1,(A) PULSAR 使用一个执行器(即电机)进行全 3D 位置控制,并使用一个板载 LiDAR 传感器进行自主导航。(B) 未补偿的电机反扭矩自然会导致自旋转,将传感器水平 FoV 延伸至 360°。(C) PULSAR在夜间未知森林环境中的自主飞行;飞行轨迹由机载蓝色发光二极管(LED)指示。(D) 白天在树林中自主飞行;飞行轨迹如红色路径所示。
<span style="display: none;"/>
无人机在很大程度上依赖视觉传感器来感知障碍物和探索环境。由于传感器视场较小,目前的无人机在感知能力和任务效率方面都受到限制。一种解决方案是利用无人机的自转来扩展传感器FoV,而不消耗额外的功率。由于高度耦合和非线性动力学给设计和控制带来的困难,以及高速自转给导航带来的挑战,这种由无人机电机的反转矩引起的自然机制很少被现有的自主无人机利用。我们提出了一种动力飞行的超欠驱动激光雷达(光探测和测距)传感空中机器人(PULSAR),这是一种敏捷且自旋转的无人机,其三维位置仅通过驱动一个电机来完全控制,以获得所需的推力和力矩。单个致动器的使用有效地减少了动力飞行中的能量损失。因此,PULSAR比具有相同总螺旋桨盘面积和航空电子有效载荷的基准四旋翼机功耗低26.7%,同时保持了良好的灵活性。PULSAR通过机载激光雷达传感器的增强,可以在未知环境中执行自主导航,并在全景中检测静态和动态障碍物,而无需任何外部仪器。我们提供了PULSAR在环境探索和多向动态避障中的实验报告,该实验通过自旋转扩展FoV,可以提高感知能力、任务效率和飞行安全性。
<span style="display: none;"/>
我们提出了一种具有扩展传感器视场的自主、单驱动、自旋转无人机。无人机使用单个执行器(电机)来控制其完整 3D 位置。我们的无人机中的叶片桨距角在每次螺旋桨旋转(而不是机身旋转)时通过改变电机速度来调整一次,从而实现高控制率,从而提高了无人机的整体敏捷性 和控制精度。同时,电机反扭矩自然地驱动无人机机身旋转,利用固有运动来扩展传感器视场,而无需添加额外的动力执行器,有效地减少了执行器引起的能量损失和组件重量,这些都有助于降低整体功耗。
此外,通过利用主动和高速率 LiDAR 测量,所提出的自旋转无人机能够在白天和夜间在未知、无GNSS 的环境中完全自主导航。我们在室内和室外环境中展示了 PULSAR 在功率效率、敏捷性和自导航能力方面的有效性。在所有实验中,无人机完全依靠其机载传感器和计算机来估计其状态并感知环境,而无需使用任何外部仪器。实验表明,与具有相同螺旋桨盘总面积和航空电子有效载荷的基准四旋翼飞行器相比,PULSAR 的功耗减少了 26.7%,同时在轨迹跟踪误差方面保持了相当的敏捷性。PULSAR 对外部命令做出响应,并对阵风等外部干扰表现出高度鲁棒性,使其适合现实世界的操作。PULSAR 借助实时运行整个导航框架的小型机载计算机,成功地在杂乱、无法使用 GNSS 的环境中演示了自主飞行。得益于其扩展的 FoV,PULSAR 能够检测并避开原始传感器 FoV 之外各个方向的动态障碍物。
<span style="display: none;"/>
机械结构及电子装置
图2,(A) 组件描述。(B) 所有电子元件之间的互连。(C)无斜盘装置的详细机械结构。(D) 无斜盘装置、螺旋桨叶片和电机的组装。(E) 转子加速导致叶片滞后于转子的过程。当在转子位置I(即角度<span style="cursor:pointer;"><span/>)施加加速电压时,转子加速并到达转子位置II(即角度<span style="cursor:pointer;"><span/> )。由于叶片与转子之间的铰链提供了额外的旋转自由度,叶片惯性将使其沿着铰链旋转,并在转子后面产生叶片滞后角(即<span style="cursor:pointer;"><span/>)。加速后叶片的实际位置为位置角<span style="cursor:pointer;"><span/>,如黄色虚线所示。(F) 由于倾斜的不对称铰链设计,转子的滞后将导致红色叶片增加其桨距角,而蓝色叶片从紫色叶片指示的标称桨距角减小其桨距角。不同的桨距角变化导致螺旋桨盘平面内产生净力矩 <span style="cursor:pointer;"><span/>,其方向垂直于实际叶片位置[即角度 <span style="cursor:pointer;"><span/>,如 (E) 中的紫色箭头所示] 。
软件框架
图3,(A) 总体软件框架。根据应用,轨迹命令在不同源之间切换。(B) 轨迹规划器使用的地图来表示环境中的静态和动态障碍物。该地图被命名为“ikd-forest”,它将空间切割成 分辨率为1 m 的体素集合,每个体素包含一个增量 k-d 树数据结构ikd-tree 。ikd-tree通过保留树上的最中心点,以 0.1 米的空间分辨率对体素中包含的所有点进行下采样。除了点坐标 <span style="cursor:pointer;"><span/>之外,k维树的每个节点还保存击中点计数器总数<span style="cursor:pointer;"><span/>和最后击中点时间戳 <span style="cursor:pointer;"><span/> 。
如图3A所示,软件框架分为两部分,分别在各自的硬件上运行。第一部分是飞行控制,包括控制器、估计器和混合器,它在飞行控制器板上以多个频率运行:50 Hz用于位置控制,200 Hz用于姿态控制,800 Hz用于角速度控制,910 Hz用于混合器。该部分只有一个输出:总油门指令,表示PULSAR的单致动特性。第二部分是导航模块,它由里程计和轨迹规划组成,并在机载ARM计算机上以50 Hz的频率运行。
从机载计算机到飞行控制器的数据流是激光雷达惯性里程计估计的无人机状态和通过三种方式生成的轨迹命令:预设轨迹库包含离线规划的轨迹,轨迹规划器根据对环境的实际感知实时规划平滑无障碍的轨迹,并且动态障碍物检测器和规划器检测动态障碍物并生成规避轨迹。不同的实验会根据任务要求选择轨迹命令。
软件模块的通信框架是运行在Ubuntu 20.04上的ROS Noetic。所有的软件模块都是用C++实现的。PULSAR的飞行控制固件是在PX4 V1.11.2的基础上开发的。机载计算机和飞行控制器之间的通信基于MAVROS。
LIO
PULSAR的全状态估计是通过FAST-LIO2实现的,这是一种高效、稳健的激光雷达惯性里程计框架。FAST-LIO2估计无人机状态(即位置、速度和姿态,包括自转),并更新惯性(地面固定)帧中的局部地图(见“动态建模”部分的描述),其航向被选择为初始无人机航向。我们将激光雷达扫描速率设置为50 Hz,这意味着50 Hz的状态估计和地图更新。这样的高频地图更新使FAST-LIO2能够紧密跟踪甚至非常激进的运动,例如PULSAR的自转。估计的状态包括无人机的位置、速度和姿态,这些信息被提供给在飞行控制器上实现的扩展卡尔曼滤波器(EKF)。EKF将进一步将状态与机载惯性测量单元(IMU)融合,以更高频率完善无人机状态,以便使用在同一飞行控制器上实现的控制器。请注意,PULSAR的EKF的状态估计取决于IMU和附加传感器(即激光雷达或外部运动捕捉系统)。如果没有额外的传感器,估计就不能正常工作。EKF的细节在补充材料中进行了描述。
ikd-forest
除了里程计,自主飞行和动态避障的另一个基本要求是建一张地图,同时表示飞行环境中的静态和动态障碍物。我们开发了一个地图,称为增量k维森林(ikdforest,见图3B),它是增量k维树(ikd树)的集合,每个树都包含在一个体素中(立方边长为1m)。ikd-tree首先通过根据规定的分辨率(0.1m)仅保留最中心点来对相应体素中的点进行下采样。然后,将保留的点组织成k维树结构,用于有效的最近邻居搜索。ikd-tree可以增量更新(插入和删除)和动态再平衡,ikd-forest继承了这些优点。此外,与将所有点构建为大树的ikd-tree相比,ikd-forest实现了更高的效率,因为每个体素中的每个ikd-tree的尺寸显著减小。
在ikd-tree的每个节点上,都会保存点坐标。为了区分动态对象和静态对象上的点,节点上还保存了两个额外的时间特征:命中点计数器和最后一个命中点时间戳。命中点计数器记录与节点上的点(即最中心点)过于接近(即在0.1 m分辨率内)的点的数量,尽管这些非最中心点已通过下采样去除。最后命中点时间戳表示最后一个点命中节点的时间戳。
轨迹生成与自主飞行
为了在有障碍物的环境中生成安全的轨迹,我们在机载计算机上部署了路径规划模块,通过接收机载激光雷达测量的点云以50 Hz运行。路径规划模块是基于时间累积局部地图和动态A* 搜索算法实现的。
为了在路径规划中实现更快的最近邻避障搜索,ikd-forest用于维护时间累积的局部地图,该局部地图仅考虑最近扫描中出现的点(由最后命中点时间戳指示)。此外,使用了“后退规划地平线”策略,其中规划者的起始位置取自当前时间之后20 ms的当前轨迹。“后退规划范围”策略消除了规划者对里程计的依赖,因此他们可以并行运行。然后将规划好的轨迹传输给飞行控制器进行跟踪。一旦在当前轨迹上检测到碰撞,或者无人机远离跟踪的轨迹,就会触发重新规划模块,重新规划新的轨迹,以确保复杂环境下的飞行安全。当无人机的当前位置在目标航路点的1米范围内时,该航路点被视为到达,下一个航路点将被用作触发上述规划过程的新目标点。
动态避障
我们设计了一个探测器来探测接近无人机的动态障碍物。因为动态障碍物仅在短时间内出现,并且在连续扫描中出现在不同位置,所以在最近扫描中收集的(由最后击中点时间戳指示)并且具有小击中点计数器的点被认为是动态障碍物,而其余的点被认为是静态障碍物。在实验中,时间戳和计数器的阈值被很好地调整以实现可靠的检测性能。一旦检测到动态障碍物,就产生一个目标点,使得它到UAV的距离比地图中最近的静态点短,并且它位于与物体的进入方向正交的方向上。第一个条件保证无人机与目标点之间的空间没有任何静态障碍物,第二个条件便于无人机躲避动态障碍物。最后,生成的目标点被发送到飞行控制器进行机载控制。这里也推荐工坊推出的新课程《零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]》。
<span style="display: none;"/>
我们进行了各种实际实验来验证 PULSAR 的性能。在所有实验中,PULSAR 使用相同的 LiDAR 惯性里程计和轨迹跟踪控制器来分别估计其完整状态并跟踪轨迹命令(图 3A)。根据实验目的,轨迹命令由机载轨迹规划器、动态障碍物检测器和规划器或预设轨迹库生成。
飞行效率
室内轨迹跟踪
位置指令响应
抗干扰鲁棒性
在无GNSS的未知环境自主导航
(A) PULSAR 在室外木材环境中的自主航路点导航。起点和终点相同。每个航点上显示的时间是 PULSAR 到达该航点的时间。在飞行过程中,同时构建环境的 3D 点云地图。(B 和 C) 使用 PULSAR 进行动态避球。球从两个正交方向抛出,其躲避过程分别如图(B)和(C)所示。在这两种情况下,左侧叠加的快照显示了球的轨迹、PULSAR 检测到球时的位置以及 PULSAR 执行的回避轨迹。右侧图像显示环境地图的第三人称视图、当前激光雷达点测量、检测到的球位置及其轨迹,以及避球前后的完整无人机轨迹。左侧捕捉快照的相机的姿势由绿色箭头指示。环境地图由运行在车载计算机上的激光雷达惯性测距系统同时构建。(D) 自主航路点导航实验中里程计和轨迹规划器的计算时间。 (E)动态避障实验中里程计、动态障碍物检测器和规划器的计算时间。
动态避障
<span style="display: none;"/>
PULSAR的高能效、自主导航能力和扩展的传感器FoV使其非常适合环境调查、搜救、救灾、地形测绘和自动三维重建等勘探任务。这些任务中的环境通常是未知的,GNSS失效(例如,树冠、洞穴、隧道和灾后建筑),并且涉及静态结构和动态物体(例如,鸟类和动物)。正如实验所证明的那样,PULSAR可以在这些真实世界的环境中安全运行,并在白天和晚上快速获取环境数据,为决策提供及时可靠的反馈。
页:
[1]