Jev 无人机
用机载相机、传统控制与低频判断模型完成仿真无人机自主避障。
按维度查看评分与理由
证据显示该代理仅在 MuJoCo 仿真中控制飞行,模型处于建议层,50 Hz 安全反射和爬升上限检查可否决模型判断;README 还说明摄像机数据先转为符号化 JSON,并披露 API 调用、录像和回放等外部效果,因此最小权限、数据流和外部效果处理较好但不完整。扣分原因是自主循环没有逐次用户确认机制;密钥处理只提到复制 .env.example 并加载环境变量,未展示脱敏、日志防泄漏或密钥失效策略;依赖仅设最低版本且无锁文件、哈希、扫描或漏洞处置证据。无 Jev 模式、缓存和离线回放提供一定的可逆或降级路径,但没有正式状态回滚设计。TypeSafe、MuJoCo Menagerie 及其独立许可得到署名,不过版权主体仅写为泛称的 authors,发布者身份和责任主体仍不明确。
README 对控制频率、职责分层、调用抑制、安全覆盖、失败案例和实验限制给出了相互大体一致的说明。扣分在于同一文档使用约 2.5 Hz、约 3 Hz 等不同表述,并同时出现 77.5 米与修复后 88 米的结果而缺少版本对应关系。requirements.txt 说明了主要运行依赖,但只有开放式最低版本,外部模型资源和 TypeSafe 服务也构成可用性依赖。文档列举大量故障模式和诊断经验,却没有源代码级异常消息、重试、超时或用户可操作错误处理证据。
项目清楚定位于 MuJoCo 摄像机自主四旋翼、障碍课程以及单独的部分完成隧道实验,并给出有模型、无模型、录像、回放和追踪模式,足以覆盖主要研究场景。能力边界非常明确:Jev 不看像素、不做感知、不运行控制率任务,只作战术判断,代码保留安全否决权;隧道实验也明确标为不可靠的部分结果。触发条件、场景指纹缓存、目标丢失门控以及无需判断时不调用模型均有精确描述。环境适配提供 GLFW/EGL 和无 API 回放路径,但未说明操作系统、硬件、Python 版本、无显示环境的完整要求或其他飞行器与场景的配置接口。
README 的概念、课程、结果、限制、运行方法、文件布局和故障经验组织清晰,文件职责表尤其完整。安装命令和多种运行示例较实用,但本次材料未包含 setup.sh 或 .env.example,无法核对其行为,也未列出 Python/平台前提。命名在文档内基本稳定,但没有公共接口稳定性承诺。示例和常见陷阱非常丰富,已知限制披露充分,包括单次 Jev 结果、方差、早期负结果和未完成的隧道实验。MIT 正文完整且第三方模型另行许可得到提示。扣分集中在完全没有版本号、发布记录或变更日志,以及没有可识别维护者、支持渠道、安全联系人或更新责任说明。
输出包括飞行指标、逐站遥测、可选视频、判断追踪以及无需重新调用 API 的 tape 回放,静态材料显示其产物可用于分析和演示。Jev 相对于贪心基线提供了基线无法表达的爬升动作,并有消融数据支持一定边际价值;但核心成功列仅是一轮 65 秒运行,较早的三种子比较没有显示优势,隧道结果也不稳定,所以不能给满分。文档量化了调用次数、延迟、令牌量及免费消融路径,但没有货币成本、硬件资源、安装时间或规模化成本分析。
README 将多项主张连接到具体指标、频率、延迟、调用数、遥测片段、手工场景输出和消融比较,并主动限定可辩护结论,因而具有较好的静态可追溯性。扣分是没有提供原始日志、测试文件、实验脚本内容、种子级 Jev 数据或机器可检查结果;多数实证主张仅由 README 自述。LICENSE 和 requirements.txt 只能交叉印证许可与依赖,不能独立印证飞行结果。事实、推断和限制区分得很清楚,尤其明确区分感知、控制、安全与模型贡献,并将单次运行、负结果和部分实验分别标注。
- 主要 Jev 成功结果仅来自一次 65 秒运行,不能据此推断跨种子、跨环境或真实飞行器的稳定收益。
- 依赖使用无上限的最低版本且没有锁文件或哈希;安装结果可能随时间漂移,也缺少供应链安全证据。
- 需要把 API 密钥写入并加载本地 .env,但材料未展示日志脱敏、权限限制、轮换或泄漏响应措施。
- 不要把仿真安全反射、零碰撞记录或模型建议层设计外推为真实无人机的安全保证。
- setup.sh、.env.example、实现代码和原始实验产物未提供,因此运行行为、异常处理及数值声明均未获静态交叉核验。
- MuJoCo Menagerie 的 Skydio X2 模型适用独立许可,分发或再利用前应检查其具体条款。
这个 Agent 能做什么,适合哪些场景?
Jev 无人机是一个基于 MuJoCo 的四旋翼实验项目,让 Skydio X2 仅依靠机载深度与分割相机飞越五站障碍赛道。flight.py 以 15 Hz 将相机缓冲区转换成符号化场景,tactics.py 再以约 2.5–3 Hz 调用 TypeSafe Jev,在绕行、爬升、制动、重获目标等战术选项间作出带概率的类型化判断。飞行姿态、推力和电机混控由 500 Hz 几何控制器负责,run.Guidance 的 50 Hz 安全反射始终拥有否决权,因此模型既不直接看像素,也不掌控底层安全。run.py 运行仿真回合并收集指标,视频模式可输出 MP4 和可供 replay.py 离线重剪的 tape.npy。仓库报告一次 Jev 飞行以零碰撞完成全程,但结果仅来自单次 65 秒运行,早期三种子对照也未显示优势,因此它更适合研究和原型验证,而不是已获充分验证的真实飞行系统。
run.py 启动 MuJoCo 赛道、Skydio X2 动力学、目标车辆、回合循环和指标采集。flight.Eye 从深度及分割缓冲区提取五个前向距离扇区、阻挡物顶边、目标方位和可见性等紧凑 JSON 状态,不使用仿真真值作为感知输入。tactics.py 在代码判定确有决策需要且场景指纹发生变化时调用 Jev,一次回答 maneuver、risk 和 target_truly_lost 三个问题;未变化的场景复用上次结果。flight.Pilot 以 500 Hz 执行几何控制、推力优先混控和限速命令,run.Guidance 以 50 Hz 覆盖危险建议,并拒绝超过实测爬升条件的 climb。运行可输出终端轨迹与指标;加入 --video 后还会生成 course.mp4 和 course.mp4.tape.npy,后者可由 replay.py 在不重飞、不调用 API 的情况下重新剪辑。独立的 tunnel.py 用两个 Score 判断直接映射转向和高度命令,但该隧道实验被明确标为尚不能稳定通关的部分结果。
- 希望研究“低频模型判断、高频传统控制”分层架构的机器人或自主系统开发者。
- 需要在 MuJoCo 中复现仅靠机载相机进行目标追踪、越障和安全反射的无人机研究人员。
- 正在设计模型可被硬编码安全层否决的控制系统,并希望参考具体频率和职责边界的工程团队。
- 需要比较 Jev 战术判断与“朝更宽一侧转向”贪心基线的实验人员。
- 排查相机坐标、深度裁剪、四旋翼混控、倒飞恢复或丢失目标估计问题的仿真工程师。
- 希望记录一次付费飞行后离线反复剪辑遥测视频、避免新增 API 调用的演示制作者。
这个 Agent 有哪些优点和局限?
- 职责边界清楚:Jev 只作约 3 Hz 的战术判断,15 Hz 感知、50 Hz 安全和 500 Hz 飞控仍由普通代码承担。
- 安全层具有明确否决权,并用实测顶边高度及爬升上限验证 climb 建议,而不是直接执行模型输出。
- 按需调用和场景指纹缓存可避免在开放走廊或未变化场景中重复请求;资料给出了约 0.11 秒中位延迟等实测数据。
- 提供无 Jev 消融、指标、视频记录和无物理仿真的 replay.py,便于分析模型是否真正影响控制环。
- README 记录了相机坐标、深度裁剪、姿态误差、混控和世界坐标目标预测等具体仿真故障及修正。
- 核心战术路径依赖 TypeSafe Jev 及其 API 密钥;资料没有给出其他模型提供商、离线模型或标准协议适配器。
- 主要成功证据仅是一趟 65 秒 Jev 运行,并非种子匹配平均;早期三种子实验中 Jev 与基线均为 0/3。
- 这是 MuJoCo 中的 Skydio X2 仿真,资料没有提供真实无人机部署、硬件接口或现实安全认证。
- API 调用会消耗额度;报告的一次运行包含 80 次调用和 96k tokens,但没有提供价格或预算上限。
- 独立 tunnel.py 实验尚不能可靠完成全程,且在没有反射层时容易过度躲避并贴墙。
- setup.sh 会获取外部机型资源,运行还需要网络、图形或 EGL 配置以及未明确版本的 Python/MuJoCo 环境。
如何安装或部署这个 Agent?
在仓库根目录执行 ./setup.sh,由脚本创建虚拟环境并获取 MuJoCo Menagerie 的 Skydio X2 模型。随后执行 cp .env.example .env,在 .env 中填入所需的 TypeSafe Jev 密钥。加载环境变量:set -a && . ./.env && set +a。有显示环境时设置 export MUJOCO_GL=glfw;无头机器可改用 egl。资料没有列出受支持的操作系统、Python 版本或完整系统包清单。
如何使用这个 Agent?
首次带 Jev 运行可执行 .venv/bin/python run.py --seconds 65 --seeds 1。免费运行三种子消融基线可执行 .venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2。生成遥测视频使用 .venv/bin/python run.py --seconds 65 --seeds 1 --video course.mp4;查看每次判断可在命令前加 TRACE=1。视频运行还会写出 course.mp4.tape.npy,可用 .venv/bin/python replay.py course.mp4.tape.npy out.mp4 --from 12 --to 30 离线重剪。需要调整判断行为时,应检查 tactics.py 顶部的三个问题、选项规则和响应阈值。
这个 Agent 与同类方案有什么区别?
仓库将 Jev 方案与禁用 Jev 后的贪心基线直接比较。基线只会朝更宽的一侧转向,三次都安全停在第二站,最远到 17.7 米且无碰撞;它无法表达“从低梁上方飞过”。报告中的单次 Jev 运行完成 77.5 米全程,目标可见率为 82%,安全反射占用时间为 9%,同样零碰撞。不过这不是种子匹配的统计结论,早期较简单场地的三种子对照没有显示 Jev 优势。