← На главную

Elodin открыла код тренировочного стенда AI Grand Prix (Anduril, $500k)

27.05.2026 20:37 · hackernews

Elodin открыли исходный код тренировочного стенда для гонки дронов AI Grand Prix (Anduril, призовой фонд $500 000). Теперь участники могут писать код автопилота до выхода официального симулятора Virtual Qualifier 1. Стенд работает на macOS и Linux (WSL тоже подходит), запускается одной командой uv sync и пятиминутной сборкой Betaflight. Репозиторий лежит на GitHub под лицензией Apache-2.0.

Разрабатывая Elodin, команда отталкивалась от опыта создания The Sims 4 — оттуда пришло понимание, что симуляция должна быть отполированной и удобной для пользователя. В aerospace-инструментах этого не хватало: везде склеивали MATLAB/Simulink, Gazebo и самописные обвязки на Python. Разработчики потратили несколько лет, сидя с заказчиками (дроны, спутники, ракеты), сверяя симулятор с реальными полётными данными.

В итоге получился стек: Rust ECS + JIT-компилируемое физическое ядро (nox) с биндингами к Python, 3D-редактор, который подключается к базе телеметрии (elodin-db) по TCP и в реальном времени биндит GLB-модели и камеры к компонентам ECS. Физика написана в стиле JAX: функции @el.map над типизированными компонентами — отсюда легко делаются Monte Carlo, GPU-ускорение и детерминированные повторные прогоны.

Когда анонсировали AI Grand Prix, стало ясно, что всё совпало: физика с одной частотой, реальный полётный контроллер со своей PID, FPV-камера и одна написанная участником функция на Python. Дата выхода официального симулятора сдвигалась, поэтому Elodin опубликовали внутреннюю сборку, чтобы команды не сидели сложа руки.

Что внутри стенда: Elodin считает 6-DOF физику, динамику моторов, сопротивление, контакт с землёй, мультичастотные датчики (IMU, барометр, магнитометр) и камеру 640×360 с наклоном +20° — всё по спецификации VADR-TS-002. Betaflight работает в режиме SITL со включённой синхронизацией GYROPID, то есть PID-цикл ждёт каждый пакет от симулятора. Между ними мост на 80 строк кода: пересылает пакеты FDM/RC/PWM по UDP и тактует обе стороны на 1 кГц. Участник правит только файл solver/, где лежит функция autopilot(update: SensorUpdate) -> RCCommand. На входе — IMU, позиция, барометр, магнитометр и опционально кадр с камеры. Никаких GPS, глубины или оборотов моторов. В комплекте идёт простой базовый солвер для взлёта и пролёта ворот.

Есть оговорки: в стенде используется UDP от Betaflight, а не MAVLink — к официальному симулятору придётся дописать тонкий адаптер. В текущей версии состояние мира передаётся в системе ENU, хотя спецификация требует NED. Атмосфера — один коэффициент сопротивления, нет турбулентности, эффекта земли и просадки батареи. Есть расхождение по углу обзора камеры (спецификация говорит VFoV = 90°, но расчётные матрицы дают VFoV ≈ 58.72° и HFoV = 90°) — разработчики выбрали второе в надежде, что официальный симулятор поступит так же.

Для запуска нужны uv, git, git lfs и C-тулчейн. После серии скриптов откроется редактор с видом от третьего лица и FPV-окном. Разработчики ждут обратную связь от всех, кто строил симуляторы для жёсткого реального времени, участвует в AGP или хочет обсудить эргономику стека.

Читать оригинал →