基于Unity3D的月面复杂地形场景构建及模拟驾驶系统*

2023-04-25 12:48陈李炜易建军张雪松赵逸凡王庆明
飞控与探测 2023年1期
关键词:月面激光雷达飞行器

陈李炜,曹 涛,易建军,张雪松,赵逸凡,王庆明

(1.华东理工大学 机械工程系·上海·200237;2.上海航天控制技术研究所·上海·201109;3.上海市空间智能控制技术重点实验室·上海·201109)

0 引 言

航天飞行器在行星表面的自主软着陆是探索未知行星不可缺少的关键技术。载人或无人飞行器都不可避免地需要经过动力下降进行软着陆,为了着陆的平稳与安全,一般情况下着陆点都选择地势开阔且平坦的地形。1969年的载人登月任务Apollo 11,飞行器在动力下降阶段借助发动机反推实现了减速,并通过人工控制进行避障飞行,最后垂直下降并软着陆于月表。然而,随着未来行星探索任务的扩展以及复杂化,飞行器面临不得不在复杂地形区域着陆的情况,对于行星地表的感知、评估选址,以及末端的制导着陆则非常关键。本文通过Unity3D物理引擎对这类复杂地形软着陆的情况开发了一套模拟系统,用作自主选址着陆方法的测试与验证的平台。

本文所构建的复杂地形自主软着陆模拟平台是一个整合了月表地形感知、月表地形评估、自主选址与着陆规划的系统,从其技术构成而言包含了场景三维重建技术、地形评估技术以及飞行器动力下降制导技术。

月表地形感知的第一步是获取尽可能稠密的月表三维信息,本文所实现的月面地形表面重建是场景三维重建技术的应用扩展。该技术通常使用立体视觉传感器、激光雷达传感器或多种传感器的混合,并以多视图几何原理或光学成像获取重建对象的深度数据,随后进行数据预处理转化为点云数据,并通过配准算法实现点云信息的配准融合,最终将离散的点云转化为连续表面,把真实场景转换成符合计算机逻辑表达的数学模型。在以往的空间任务中常使用视觉传感器作为主要感知手段,例如小行星表面数字地形建模,行星表面重建工作中存在大量的基于立体视觉和立体光度测量方法。其中,前者基于三角测量方法,得到视野中的像素偏差,随后基于极线约束像点进行标定[1-3]。该方法模拟了人类视觉的感知原理,但是算法复杂,对参数敏感导致稳定性和误差都会随着运行时间而恶化。后者基于立体成像和摄影测量的原理,从各种机载的传感器得到行星表面的深度数据,由于包含了反照率信息,在处理低入射角的图像时优势明显。但在实际使用中,该方法存在着形状特征被随机消除的缺点,会造成像素误差。另一方面,为了提升重建精度,需要更多的有关场景参数的额外数据量。基于单目序列图像的三维重建,通过几何投影的原理构建数字化三维模型,对场景参数的依赖度低,可以根据实际情况选择拟合方案以降低累积误差,同时随着算法复杂度降低,鲁棒性和实时性也相应增强了[4-6]。

近10年,随着激光雷达传感器的兴起,基于激光同步定位与地图构建(Simultaneous Localization and Mapping,SLAM)方法开展的场景重建表现出了超越以往基于立体视觉重建方法的优秀性能。例如2014年,LOAM算法提出了一种利用2轴激光雷达在6自由度范围内进行实时里程测量和地图绘制的方法,通过运动估计进行点云的运动补偿,实现了低漂移和低计算复杂度,无需高精度测距或惯性测量。在后续的工作中,大量学者基于该算法进行了改进,开发出了T-LOAM、LeGO-LOAM等性能更好的方法[7-8];同时对于面阵激光雷达的场景重建也设计了Livox-LOAM算法,针对扫描方式与传统机械雷达不同的问题,优化了点云特征的提取,适配了固态雷达,并表现出了不错的性能[9]。

由于激光雷达的能量密度高,抗干扰能力更强,是近距离行星表面重建的新选择;另一方面,视觉传感器虽然对参数敏感,易受干扰,但是局部重建结果更为稠密。因此,本文在模拟系统中的月表地形重建采用了视觉-激光融合的月表重建方法,使用了面阵激光雷达的Livox-LOAM方法对月面进行重建模拟,同时也使用了视觉传感器作为协同重建的手段。

快速的月面地形评估是实现自主软着陆选址的前提条件,在完成月表三维重建后,即可开展月面复杂地形的评估,计算月表各区域的着陆安全性。近年来,随着无人车自主行驶、无人机自主降落任务对环境感知能力的需求增加,大量学者对复杂地形的可通过性和着陆安全性的评估技术开展了研究,这项关键技术对月表地形评估具有很高的参考价值。B. Ayhan和C. Kwan[10]使用Gabor特征和支持向量机方法以及Seg-Net方法,对地形进行有效评估,为起伏地形上的无人机提供着陆安全性评估。2020年,Yan L.等[11]提出了一种从激光雷达点云中自主选择安全着陆点的新方法,采用了主成分分析(Principal Component Analysis,PCA)和改进的面积增长算法检测平坦区域后,基于渐进样本一致性(Progressive Sample Consensus,PROSAC)算法实现平面拟合,以评估地形复杂度。解决复杂地形的自动驾驶问题也需要先进行地形评估,有学者通过大量的地形样本数据集训练,得到了能够有效评估地形的神经网络模型。Y.Kobayashi等[12]训练了一个高斯过程回归器(Gaussian Process Regression,GPR),以预测车辆在地形上移动时的振动(作为地形可通过性的度量),并结合RGB摄像机图像检测到的地形纹理特征对地形进行评估。M.Quann等[13]提出了一种基于概率能量成本预测的越野导航策略,同样通过高斯过程回归器,实现了从当前机器人姿态、地形坡度(沿机器人运动方向)和灰度图像到运行功耗的映射。能量消耗的地图最终被用来预测路径穿越期间的累计能量消耗,这一类的方法往往需要获取机器人与地形的接触状态,以评判地形的可通过性。

完成地形评估并确定着陆选址后,需要进行相对精确的软着陆,为此飞行器需要进行在线实时的软着陆运动规划。大量研究工作已经开发出针对动力下降制导问题的近似解决方案,其中以凸优化为主的在线轨迹优化算法在实际工程中有十分优秀的表现。在文献[14]的工作中,研究团队将飞行器在火星动力软着陆场景中的轨迹规划问题描述为一个非凸优化问题,并通过引入松弛变量,将松弛凸约束代替非凸约束进行问题凸化,证明了松弛凸约束对于该问题是无损的,最终得到一个二阶锥规划问题。在NASA的ADAPT项目中验证了该算法的有效性。随后,该团队又对先前的燃料最优轨迹规划加以改进,优化了着陆误差[15]。随着人工智能算法的兴起,不少学者借助学习算法实现了实时软着陆规划,文献[16]将迭代线性二次调节器作为控制器产生初始轨迹,并通过多层神经网络拟合制导策略,利用控制器监督策略学习得到可行的策略。

考虑到机载计算机的处理能力、地形评估算法的复杂度以及着陆运动规划运行的实时性要求,本文在模拟器中使用了面阵激光雷达与立体相机进行三维重建,并采用了一种复合的地形评估函数对地形着陆代价进行评估,在得到选址结果后,采用了基于凸优化的燃料最优的着陆规划,实现了飞行器在月面高度1km以下的软着陆。

1 模拟系统构建

1.1 软件架构

模拟系统的软件架构主要分为两部分:基于Unity3D开发的着陆器飞行场景,以及基于机器人操作系统(Robot Operating System,ROS)开发的传感器数据获取与处理系统。

基于Unity3D物理引擎所开发的等比的仿真场景搭建与相关功能(如图1所示),其具体内容包含了:

图1 模拟器系统架构Fig.1 The simulation system architecture

1)仿真月表的构建:在Unity3D中使用地形制作插件绘制长、宽均为6km的月面地形,并模拟了月面常见的地形特征,例如:起伏的地形、多种尺寸的环形山、月坑。另一方面,为地形设置了高分辨率的碰撞模型。

2)月球环境模拟:在Unity3D的场景物理属性中设置了月球重力,并将地面摩擦和接触刚性设置为可调参数。

3)飞行器特性模拟:在着陆器3D模型的基础上,开发了其基本功能的仿真与实时动态参数的仿真,具体表现为设置了飞行器所具有的主发动机,调姿发动机的开关功能、可调节的矢量推力仿真、基于比冲参数的发动机燃料消耗计算、总体质量参数的动态变化仿真、飞行器质心变化仿真和飞行器刚体碰撞仿真。

基于ROS开发的孪生缩比环境负责对视觉以及激光雷达传感器的数据仿真与处理,其具体内容包含了:

1)孪生缩比场景的构建:将Unity3D中的整体场景进行10倍缩比,从而降低运行时的计算机资源占用率,提升孪生场景运行的实时性。

2)传感器仿真:使用ROS中的虚拟立体相机仿真以及虚拟激光雷达对飞行器下方的月表进行扫描,通过订阅ROS中的传感器数据话题实时回传仿真的深度图像与点云数据,作为重建算法的输入。

3)相关算法的开发:进行月面地形重建、地形评估以及着陆轨迹规划的算法。

基于Unity3D的仿真场景与基于ROS的孪生缩比场景之间通过UDP通信进行信息交互,Unity3D将飞行器所在的位置、速度发送给ROS,而ROS将自主选址和着陆规划的结果发送给Unity3D仿真场景,驱使飞行器通过发动机的控制实现最终的软着陆。

1.2 月面自主选址软着陆流程

模拟中的着陆流程(如图2所示)分为4个阶段:

图2 月面自主选址软着陆流程Fig.2 Soft landing process for autonomous site selection on the Lunar surface

1)动力下降阶段:飞行器按照既定程序从绕月轨道减速下降,并调整飞行姿态与速度,逐渐接近预定的着陆区域上空。

2)月表重建与地形评估选址阶段:在飞行器下降到指定高度后,启用面阵雷达和立体相机的仿真功能,对飞行器下方的月面进行成像,并基于重建算法开展实时地形重建,在完成着陆范围的地形重建后,采用地形评估函数对重建地形的稠密点云进行着陆代价计算,并选择最佳着陆地点,返回着陆点坐标。

3)软着陆运动规划阶段:在获取上一个阶段的着陆目标点后,根据飞行器与目标点的相对位置和相对速度,以及当前飞行器性能参数进行着陆规划,获取当前状态下燃料消耗最优的软着陆运动规划结果。

4)软着陆控制阶段:控制飞行器遵循上一阶段得到的运动规划结果完成着陆。

第二以及第三阶段是整个着陆流程中最关键的2个过程,也是本文所构建的仿真系统中各关键算法的集中表现,后续2章将分别对月表地形的重建、评估和选址以及针对选址目标的软着陆运动规划进行说明。

2 月表的重建与地形评估选址

本文的模拟系统进行地形评估所使用的传感器为面阵激光雷达与立体相机,通过对地形的扫描与重建,获取着陆区域局部地形相对稠密的点云。

2.1 月面地形的稠密重建

本文使用ROS中的面阵激光雷达与立体相机作为主要传感器,对飞行器下方的月表地形进行稠密重建,基础算法使用了由LOAM算法改进而来的Livox-LOAM算法进行基于面阵激光雷达的地形重建。同时利用立体相机对点云缺失部分进行补偿,从而获取更为稠密的地形重建结果,算法主要流程为:数据预处理、点云配准、后端优化以及点云集成4个部分。由于立体相机的加入,在原始算法的基础上加入了稠密点云的生成和基于时间戳对齐的配准环节。月面3D重建流程如图3所示。

图3 月面3D重建流程Fig.3 The process of Lunar surface 3D reconstruction

在ROS中,对孪生缩比场景进行重建,得到局部月面地形如图4所示。

图4 月面3D重建效果Fig.4 Lunar surface 3D reconstruction

2.2 月面复杂地形的着陆风险评估

将重建获得的点云数据在高度方向进行归一化并以灰度形式进行描述,从而获得高程图(如图5所示)。对地形的评估采用3个参数进行描述:地形梯度、地形起伏程度、局部地形的最大高度差,并采用加权计算的方式得到综合着陆风险模型。

图5 月表地形的高程图表示(局部)Fig.5 Elevation map representation of lunar surface topography (Local)

后续的月面复杂地形着陆风险评估均建立在高程地图的栅格化处理基础上。通过在栅格化的高程地图上计算栅格法向量实现对地形梯度的计算:对于每个栅格法向量,取4个样本(当前高程地图像素的左、右、上、下邻接像素),由此获取x与y方向上的梯度。将一个3D向量投影到x=0,y=0的平面上,与2D法线的斜率相同,并将其归一化。通过遍历栅格化高程图,计算每个栅格法线的斜率。该方法具有较高的计算速度,在模拟过程中能够实时地对重建地形进行评估。地形起伏程度Lroughness的评估则通过式(1)和式(2)计算,采用区域内高程图高度值的标准差作为衡量方法。

(1)

(2)

地形局部高度差表明了地形区域内的最大高度和最小高度之间的差,这直接关联到飞行器在该区域的地表着陆后的最大可能倾斜程度,因此也将其作为综合风险模型中的一个参数。综合着陆风险模型对以上多种参数的加权融合,如下所示。

综合着陆风险模型

r1=

(3)

wslope+wrgs+wmhd=1

(4)

(5)

(6)

(7)

其中,r1表示着陆点的风险值,取值范围为[0,1];rslope为坡度风险值;rrgs为地面起伏风险值;rmhd为局部地形的最大高度差风险值;wslope表示地形梯度风险的权重;wrgs表示地面起伏程度风险的权重;wmhd表示局部地形的最大高度差风险的权重;Tslope表示地形梯度风险阈值;Trgs表示地面起伏风险阈值;Tmhd表示地形局部高度差风险阈值;Dslope为地形梯度的计算,由规定范围的栅格区域内的平均梯度计算所得;maxΔH为局部地形的最大高度差,由规定范围的栅格区域内的最大高度差计算所得。对于评估得到的风险地图进行阈值分割,得到可以着陆的区域,最后对可以着陆的区域进行连通域的面积评估,确保其有足够的着陆面积提供给飞行器进行软着陆。使用上述的地形评估模型对重建后的地表进行整体的计算,得到了飞行器下方区域可视化的评估结果。本文对两种地形的各个区域进行了评估,获得了如下的效果(图6(a)),其中绿色区域为满足着陆安全性的区域,红色区域为存在超过阈值的着陆风险区域。

在最终的选址过程中,考虑到飞行器对着陆区域的大小有一定的要求,通过遍历栅格化的着陆代价地图,设置对可安全着陆区域中以各个栅格为中心所绘制的圆形区域中的最大面积区域作为最终着陆选址,如图6(b)所示。

(a)着陆风险可视化

3 软着陆运动规划

本文所设计的模拟器在进行末端制导软着陆时,采用了燃料消耗最少的最优着陆轨迹规划方法。模拟器选定着陆点后,求解一个使着陆器在初始条件{P,V}下最终到达目标着陆点的飞行器推力变化曲线,使得燃料消耗最少,其中P为飞行器的初始位置向量,V为飞行器的初始速度向量。

该问题的描述为一个优化问题

(8)

优化约束为

(9)

(10)

(11)

r(t)∈X,∀t∈[0,tf]

(12)

m(0)=mwet,m(tf)=mdry

(13)

(14)

(15)

其中,Tc(t)表示随时间变化的飞行器推力向量;tf为着陆过程所消耗的总时间;g表示月球的重力加速度向量;α为比冲;ρ1、ρ2为推力大小的上下界;X为轨迹规划的倒锥形约束边界;r(t)为t时刻飞行器的位置向量;r0表示飞行器的初始位置向量;m(t)表示飞行器随时间变化的质量;mwet表示开始制导时的燃料与飞行器本身质量总和;mdry为完成着陆后的燃料与飞行器本身质量总和;e1、e2、e3为垂直于下滑道约束向量分量的3个单位向量,描述了轨迹的始末状态分别处于锥形约束空间的位置,其中q是着陆目标点在着陆平面上的二维向量表示。

在文献[14-16]中,通过引入松弛变量的方式,将以上非凸优化问题转化为凸优化问题,进而使用cvxpy工具求解凸优化问题。如图7所示。

图7 文献[14-16]中所描述的制导轨迹在空间中的圆锥约束Fig.7 The conic constraint of guidance trajectory in space in references[14-16]

在模拟器中,预留了燃料量、最大推力、矢量推力限制角度、比冲、飞行器质量作为用户可调参数,用于模拟不同种类、不同状态的飞行器。实验中,飞行器的着陆轨迹和推力变化如图8所示。

(a)着陆轨迹

可见,在优化燃料的基础上,规划器也能够给出相对平稳光滑的着陆曲线。

4 结 论

本文所描述的基于Unity3D的月球探测器复杂地形软着陆模拟系统,完成了月面地形重建、着陆风险代价评估,以及指定点着陆的轨迹规划任务。模拟系统借助ROS构建了外部孪生缩比场景,模拟了实时面阵激光雷达以及立体相机所获取的数据,基于Livox-LOAM算法以及深度图像的点云补全实现了月面地形的稠密重建。在此基础上,本文针对重建所得的月面稠密地形,设计了一种高效的地形评估方法,实现了月表地形的着陆风险评估,开展低风险着陆区域选址,最终基于凸优化方法求解燃料最优的软着陆运动规划问题,使飞行器以较高的精度和最少的燃料消耗降落到指定的低风险着陆区域范围内。

本文所设计的模拟系统为激光雷达和立体相机在月面自主软着陆中的应用提供了较为完整的功能模拟和数据处理算法的实现,最终将自主选址结果和着陆运动规划相结合,形成一个凸优化问题进行求解,实现了自主地形探测、自主选址、自主开展着陆运动规划的月球探测器复杂地形软着陆功能。

该模拟系统具备一定的动力学仿真能力,并开放了与飞行器自身物理属性、飞行性能相关的可调节参数,使得模拟器具有针对不同的飞行器、不同地形的着陆流程进行模拟的能力。但是由于本模拟系统采用了Unity3D与ROS的联合仿真,因此这2个孪生环境之间信息传输必然存在着一定的延迟和数据丢失,对仿真的实时性和精度有一定的影响。因此,在未来的开发中需要提升系统的集成度,在Unity3D仿真环境中实现多种传感器成像仿真以及传感器数据处理。此外,本系统在仿真细节和功能拓展上还具有优化空间,在未来的研究中需要对系统的动力学和太空环境视觉传感器的成像效果进行仿真,以及对人在回路的介入功能方面开展进一步的优化。

猜你喜欢
月面激光雷达飞行器
手持激光雷达应用解决方案
高超声速飞行器
法雷奥第二代SCALA?激光雷达
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
复杂飞行器的容错控制
嫦娥三号落月面 航天邮品载辉煌
神秘的飞行器
嫦娥三号落月面航天邮品载辉煌
嫦娥三号落月面 航天邮品载辉煌