SkyJEPA模型,实现四旋翼无人机控制的长时域预测、可解释、实时性和零样本任务泛化

论文SkyJEPA: Learning Long-Horizon World Models for Zero-Shot Sim-to-Real Control of Quadrotors研究的是一个很具体但很重要的问题:怎样让四旋翼无人机在真实世界中飞得更稳、更准,同时尽量少依赖危险、昂贵的实机飞行数据。作者认为,一个好的无人机“世界模型”应具备四个能力:能做较长时间的未来预测、预测结果能对应位置/速度/姿态等物理量、能在机载算力上实时运行、还能从仿真直接迁移到真实无人机上。论文也把这四点概括为长时域预测、可解释、实时性和零样本任务泛化。

传统神经网络动力学模型通常是“预测下一步,再把下一步当输入继续预测”。通俗讲,就像走路时每一步都根据上一脚的误差继续迈,刚开始偏一点,走远了就可能偏很多。对无人机控制来说,这种误差累积很危险,因为控制器需要提前看未来一小段时间,如果模型预测越来越飘,就会导致轨迹漂移、姿态不合理,甚至飞控不稳定。论文的核心出发点就是:不要直接一帧一帧预测完整状态,而是在一个更抽象、更紧凑的“潜在空间”里预测系统未来变化。

SkyJEPA 的关键思想来自 JEPA,即 Joint Embedding Predictive Architecture。简单说,它不是要求模型重建未来的完整状态,而是让模型学习“当前状态和动作历史会怎样演化成未来的内部表示”。这样可以减少对噪声、传感器偏差、无关细节的过度拟合。模型输入包括一段时间内的状态历史和动作历史,因为无人机的真实行为不仅由当前瞬间决定,还受到电机延迟、空气阻力、机体差异、传感器噪声等因素影响。论文使用编码器把这些历史信息压缩成潜在表示,再用预测器在潜在空间中向前滚动预测。

不过,仅有抽象潜在表示还不能直接用于控制。控制器真正关心的是无人机未来会在哪里、速度多大、姿态如何、角速度怎样。因此作者设计了一个“物理启发的探针”PI Prober。它的作用可以理解为翻译器:把抽象的潜在预测翻译成有物理意义的状态轨迹。这个探针不是完全黑箱地猜测状态,而是在基本运动学积分结构上学习补偿项,例如补偿未建模的平动加速度和角加速度。这样既保留了神经网络学习复杂效应的能力,又不完全丢掉物理规律。实验表明,仅把普通探针换成这种物理启发探针,就能显著降低位置和姿态预测误差;在 JEPA 模型中,位置 RMSE 从 5.56 m 降到 1.43 m,姿态误差从 40.2° 降到 4.71°。

为了让模型真正能从仿真迁移到现实,论文还构建了自动化仿真数据生成流程。作者没有只用圆形、八字形等人工轨迹,而是用高斯过程生成大量平滑但多样的随机轨迹,让无人机经历不同速度、加速度、姿态和控制输入。同时,他们对无人机参数做域随机化,例如质量、惯量、电机时间常数、阻力、推力系数、扭矩系数等都在一定范围内变化。论文共使用 500 个随机动力学域、20,000 条 10 秒轨迹,并按 20 Hz 采样,训练集、验证集、测试集比例为 80%、10%、10%。

训练好模型后,作者把它放入 MPPI 采样式模型预测控制器中。控制器会随机生成许多候选动作序列,用 SkyJEPA 预测每种动作未来会飞成什么样,再选择代价最低的控制动作执行。整个系统在 NVIDIA Jetson Orin NX 上运行,模型经 TensorRT 加速,说明它不是只在离线实验里好看,而是面向机载实时控制设计的。

实验结果总体支持作者的主张。离线开环预测中,SkyJEPA 的长时域误差累积明显低于直接预测状态的基线模型;真实户外闭环飞行中,它在多条轨迹上都取得更低的位置误差和姿态误差,而且模型完全由仿真数据训练,没有针对真实无人机再微调。论文还测试了更接近实际使用的问题:换螺旋桨和挂载 300 g 载荷。在这些没有重新训练的情况下,SkyJEPA 仍比预测式基线更稳,位置误差大约低 1.2 到 1.35 倍,姿态误差也明显更小。

这篇论文的意义在于,它把“潜在空间世界模型”从较高层的机器人规划推进到了四旋翼这种高频、强动态、实时性要求很高的控制场景。通俗概括,SkyJEPA 不是让模型死记硬背无人机下一刻的全部状态,而是让它学会无人机运动背后的简洁变化规律,再用物理结构把这种规律还原成控制器能用的状态预测。因此,它在长时间预测、仿真到现实迁移和平台变化鲁棒性上都表现较好。它并不意味着真实飞行数据完全不重要,也不等于解决了所有复杂环境问题,例如强风、感知误差、避障和更极端机体故障仍可能需要进一步研究;但它展示了一条很有价值的路线:用大规模随机仿真、潜在动力学模型和物理约束解码相结合,降低机器人控制对实机采集和人工调参的依赖。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Are you human? Please solve:Captcha