开源jev-drone:Jev控制无人机完成77.5米障碍课程

开源jev-drone:Jev控制无人机完成77.5米障碍课程

💡 原文中文,约4600字,阅读约需11分钟。
📝

内容提要

jev-drone项目让四旋翼无人机在MuJoCo仿真中仅凭机载相机,以2.5赫兹向Jev判断模型提问,由模型返回类型化动作选项,代码执行飞行,完成77.5米障碍课程;关闭Jev的相同代码仅达17.7米。关键设计是判断与飞行分层:安全反射层以50赫兹独立运行并可否决模型建议。作者发现模型不选爬升是因状态缺少高度信息,属状态设计问题;修正姿态控制器数学缺陷后最远距离提升至88米。测量显示模型仅占反应环路13%,机体占80%,瓶颈在物理世界。

🔎

延伸解读

分层控制:判断与飞行的解耦

jev-drone将Jev判断模型置于2.5赫兹的低频决策层,而安全反射层以50赫兹独立运行并可否决模型建议。这种分层设计解决了大模型推理延迟与实时控制需求之间的矛盾。模型无需处理高频姿态调整,只负责在关键节点提供类型化动作选项,代码则确保飞行安全。这种架构让模型可以专注于策略选择,而将实时性要求交给底层控制器。

状态设计:模型输出的隐形天花板

Jev最初从不选择爬升动作,原因并非模型能力不足,而是输入状态中缺少高度信息。当作者将障碍物顶部边缘高度、相机可见性及飞机爬升天花板加入状态后,Jev选择爬升的概率跃升至0.93。这揭示了判断模型应用中的一个关键原则:模型无法从不存在的数据中推导出正确动作,状态设计的完整性直接决定了模型输出的有效性。

物理瓶颈:模型加速的边际效益

在9米每秒的隧道追踪场景中,Jev判断仅占反应环路的13%,而机体横向移动占80%。即使将模型延迟降为零,总反应时间改善也不到15%;而将机体移动时间减半,总反应时间可减少40%。这表明在高速动态任务中,物理执行机构的性能往往比模型推理速度更为关键,优化方向应优先考虑机体动力学而非单纯加速模型。

仿真时间与真实时间的错位风险

MuJoCo仿真默认以10倍实时速度运行,导致Jev的0.118秒墙上延迟在仿真时间轴上放大为1.18秒,无人机在此期间移动4.25米,收到的是过期决策。作者指出,若在控制回路中引入网络调用,必须让仿真按实时节奏运行,否则测试结果将失去意义。这一发现提醒开发者,仿真环境的时间尺度必须与真实系统一致,才能有效验证控制策略。

Q&A

jev-drone项目是如何让无人机完成77.5米障碍课程的?

jev-drone项目让四旋翼无人机在MuJoCo仿真中仅凭机载相机,以2.5赫兹的频率向Jev判断模型提问,模型返回类型化动作选项(如爬升、左转等),代码执行飞行。关键设计是判断与飞行分层:安全反射层以50赫兹独立运行并可否决模型建议。最终无人机完成了77.5米障碍课程,而关闭Jev的相同代码仅达17.7米。

为什么Jev模型最初从不选择爬升动作?

因为输入状态中缺少高度信息。模型只接收到五个水平距离扇区的数据,所有扇区都报告有障碍物,但没有任何关于障碍物顶部边缘高度或飞机自身爬升天花板的信息。模型无法从不存在的数据中推断出爬升是可行的,因此只能建议横向绕行或刹车。

如何修正Jev模型不选爬升的问题?

通过改变输入状态的结构:在状态中加入障碍物顶部边缘高度、顶部边缘是否被相机拍到、以及飞机自身的爬升天花板。修正后,Jev选择爬升的概率从0变为0.93。这个过程没有微调或重新训练模型,只是改变了喂给模型的状态描述,作者称之为“状态设计bug,不是模型失败”。

jev-drone项目如何处理大模型推理延迟与实时控制的矛盾?

项目将Jev放在没有时间压力的位置,由安全反射层以50赫兹独立运行负责避障,并可否决Jev的建议。代码决定何时向Jev提问:在开阔走廊或场景未变化时,不调用Jev或复用上次结论。一次65秒飞行仅约110次Jev调用,平均每590毫秒一次,低于Jev的最低判断频率。

姿态控制器的数学缺陷是什么?如何修复?

几何姿态控制器在飞机倒飞时恢复力矩归零,因为误差项幅度与sin(theta)成正比,sin(180°)=0,导致控制器认为无误差而不动作。修复方法是改用四元数误差,其幅度与sin(theta/2)成正比,在180度时达到最大值。修复后障碍课程最远距离从77米提升到88米。

在jev-drone的反应环路中,模型和机体各占多少比例?

在9米每秒的隧道追踪场景中,感知占0.03秒,Jev判断占0.118秒,决策过期时间占0.024秒,机体横向移动2米需0.70秒。模型仅占整个反应链条的13%,机体占80%。因此加速模型对总反应时间改善有限,而提升机体机动性更有效。

jev-drone项目在仿真中遇到了什么时间尺度问题?

MuJoCo物理仿真默认以比实时快10倍的速度运行,导致仿真时间与墙上时间不一致。例如,仿真中65秒对应墙上时间6.5秒,而Jev调用延迟0.118秒墙上时间在仿真时间轴上变为1.18秒。这造成无人机在仿真中移动4.25米却收到过期判断。作者建议要么让仿真按实时节奏跑,要么测试无意义。

jev-drone项目如何解决无人机丢失目标后的重新捕获?

项目将方位角和距离测量转换到世界坐标系,并结合速度外推来估计目标位置。速度外推使用约1秒的窗口进行差分以平均噪声,避免像素噪声放大。最终世界坐标估计误差为0.14米位置、0.12米每秒速度,无人机能飞到估计位置重新捕获目标。

🏷️

标签

➡️

继续阅读