Microduck Basketball
слепой LSTM-баланс на баскетбольном мяче
Экспериментальная политика от jeanesther для робота Microduck: удерживает равновесие на свободно катящемся мяче size-7 и отрабатывает команды скорости, используя только проприоцепцию. Вход — нормализованное 61D-наблюдение, архитектура — LSTM(256) и ELU MLP(512, 256, 128), на выходе 14 действий; около 624 тыс. параметров. Опубликован checkpoint b11, iteration 6,999; проверки симуляции и экспорта пройдены, но поведение на реальном роботе ещё не тестировали.
🧬 Ключевые особенности
- 🧬 Однослойная LSTM(256) даёт актору память о прошлой проприоцепции; состояния мяча во входах актора нет.
- ⚙ ONNX-интерфейс float32: obs [1,61], h_in/c_in [1,1,256], actions [1,14], h_out/c_out [1,1,256]; запуск на 50 Гц.
- 🚗 Обучение b11 шло на командах ±0.15 м/с вперёд, ±0.10 м/с вбок и ±0.50 рад/с по yaw; в eval — более широкие ±0.30, ±0.20 и ±1.0.
- 🏆 В matched evaluation: выживание 20 с — 98.86%, 60 с — 97.01% (2 980/3 072 trials); у reference с ball-state MLP — 99.67% и 99.12%.
- 🛑 Нужен runtime с recurrent-поддержкой (PR 231) и model_api: 2; старт — робот уже стоит на вершине мяча, сам политика не залезает и не восстанавливается.
🧩 Пример
git clone https://github.com/Vottivott/microduck-playground
cd microduck-playground
uv sync --locked
uv run python scripts/finetune_basketball.py artifacts/basketball/checkpoint.pt \
--run-name basketball-resume-smoke --num-envs 64 --iterations 5
Подробнее
Бенчмарки: 2 980/3 072 успешных trials за 60 с; yaw tracking MAE 1.2618 рад/с, action-change RMS 0.23384 — точность поворота и гладкость пока хуже reference.Экспорт: максимум абсолютной ошибки PyTorch/ONNX на 40 шагах — 1.43e-6; latency на плате не измерялась, перед моторами проверьте 20 мс control budget.
Ограничения: политика не видит мяч, не использует camera/ball tracker и не фильтрует действия на runtime; обучение шло с action-rate reward −0.2 и без low-pass фильтра.
Для продолжения обучения есть checkpoint.pt с состоянием Adam и счётчиком итераций; новые эпизоды начинаются заново, это не побитовый снапшот RNG.








Комментарии