TRONCamp Mani: разбор соревнования RoboTwin ACT
Это открытый разбор реального участия в соревновании, а не «секрет высокого балла». В нём рассмотрены сборка данных, обучение ACT, замкнутая оценка, перенос окружения на GPU, упаковка для отправки, результат в онлайне и итоговая причина неудачи. Цель — помочь тем, кто придёт после, не повторять лишних ошибок и не выдавать неуспешную онлайн-оценку за успешный кейс.
Итоги
Наша команда успешно прошла пороги последовательных задач T1, T2 и T3. T4 — единственная оцениваемая задача, но итоговый онлайн-балл T4 составил 0.2533333333333333 (25.3/100) и не достиг ожидаемого порога.
Единственная действительная онлайн-отправка — первая версия, отправленная с верным аккаунтом, с официальной квитанцией #719 T4. Вторая версия exact550 e2000 была отклонена сервером с кодом 403 после истечения срока и в очередь не попала, второго результата не получено.
Главные выводы:
- Небольшое число успешных прогонов на публичных seed не заменяет полной, устойчивой оценки, совпадающей с онлайн-условиями.
- Снижение loss обучения, успешная загрузка checkpoint и завершение оценки сами по себе не означают прохождения T4.
- Зрелость обучения, покрытие данных, временное выравнивание действий, топология процессов оценки, границы пакета отправки и официальное окружение нужно проверять как единое целое.
- До дедлайна нужно сохранить минимальный кандидат, который уже прошёл T1/T2/T3, и одновременно иметь для T4 официальное доказательство, к которому можно откатиться.
Структура проекта
15-challenges/TRONCamp-Mani/
├── README.md # общий обзор, результаты, маршрут быстрого воспроизведения
├── docs/
│ ├── 01-complete-project-review.md # хронология от данных до отправки
│ ├── 02-problem-list-and-solutions.md # режимы сбоев, первопричины и исправления
│ ├── 03-evaluation-protocol-and-model-selection.md # официальные правила, ворота и границы доказательств
│ └── 04-submission-and-open-source-checklist.md # пакет отправки, обезличивание и публикация
├── configs/
│ ├── t4_official_act.yaml # обезличенная основная конфигурация
│ └── t4_exact550_manifest.json # сводка идентичности набора данных без самих данных
├── code/
│ ├── audit_processed_t4.py # строгий аудит 16-D / камер / выравнивания
│ ├── build_public_manifest.py # манифест SHA256 открытого каталога
│ └── scan_public_release.sh # проверка перед публикацией на чувствительные и крупные файлы
└── results/
├── final_score.json # сводка итогового онлайн-результата
├── experiment_ledger.csv # ключевые кандидаты и записи ворот
└── failure_taxonomy.md # режимы сбоев по стадиям
Задачи и границы официальных правил
TRONCamp Mani использует двуручные задачи RoboTwin / Tron2. Цепочка задач:
| Трек | Задача | Роль в онлайне |
|---|---|---|
| T1 | adjust_bottle | последовательный порог разблокировки |
| T2 | grab_roller | последовательный порог разблокировки |
| T3 | stack_bowls_two | последовательный порог разблокировки |
| T4 | stack_bowls_three | основной зачётный трек, оценка по уровням финального состояния |
Оценка T4 зависит от числа сложенных уровней: каждый уровень даёт примерно треть балла. Приватные seed онлайн-оценки, официальный симулятор, предикат успеха и реальный порог определяются бэкендом организаторов. Публичные seed годятся только для локального отбора и не гарантируют результат на приватной таблице.
Официальные материалы:
Рекомендуемый маршрут воспроизведения
Публичный репозиторий не содержит официальных проприетарных ассетов Tron2 и больших наборов данных. Для воспроизведения сначала подготовьте рабочее пространство RoboTwin/Tron2 с официальным разрешением, затем выполняйте шаги по порядку.
1. Сначала проверить окружение
Убедитесь, что версии Python, PyTorch/CUDA, SAPIEN, MPlib, cuRobo, ffmpeg и официального кода ACT согласованы. Не меняйте сначала мост действий, TCP, порядок камер, предикат успеха или параметры симулятора ради «улучшения результата».
2. Сначала аудит данных, потом обучение ACT
Каждая траектория HDF5 должна удовлетворять как минимум таким условиям:
- действия и
qpos— конечные значения; - размерность действий равна 16, по 7 измерений на каждую руку;
- все три камеры
cam_high,cam_left_wrist,cam_right_wristприсутствуют и имеют одинаковое число кадров; - набор файлов полностью совпадает с manifest;
- если используется семантика next-state, проверьте покадрово
action[t] == qpos[t+1]; - происхождение каждой разметки, конфигурация сбора, профиль эксперта и признак rescue можно проследить.
code/audit_processed_t4.py — строгий скрипт аудита, который не зависит от путей проекта. Он выводит только сводку и SHA каждой траектории и не исправляет данные автоматически.
3. Базовая линия на официальном ACT
Краткое описание основной конфигурации — configs/t4_official_act.yaml. Важные параметры: ResNet18, 4 слоя энкодера, 7 слоёв декодера, hidden 512, FFN 3200, 8 голов внимания, chunk 50, вес KL 10, batch 8, скорость обучения и скорость backbone по 1e-5, seed 120, action shift 0, вес loss захвата 1.
При обучении сохраняйте: SHA кода, SHA исходного manifest, SHA аудита обработанных данных, SHA статистик, SHA checkpoint, полное число эпох, loss обучения и валидации, время каждой эпохи, модель GPU и занятую видеопамять. Нельзя сохранять только один файл с именем «best» без записи его происхождения (lineage).
4. Оценка по уровням
Рекомендуемая схема:
fresh3 -> проверка каждого прогона: число уровней / стадия / полный успех трёх чаш
fresh10 -> запускать только если fresh3 прошёл заранее заданный порог
fresh20 -> запускать только если результаты fresh10 стабильно повторяются
full/public -> фиксированные seed, фиксированная обёртка, фиксированная топология процессов
online -> официальный загруженный пакет и официальный приватный результат
Обычный runner, runner с трассировкой / monkey-patch, холодный процесс и постоянный процесс нельзя смешивать в один «лучший результат». Диагностические скрипты помогают найти стадию сбоя, но не заменяют официальный критерий оценки.
5. Проверка границ пакета перед отправкой
При загрузке кода для T2/T3/T4 корнем отправки должен быть минимальный образ external/robotwin_local, а не весь корень проекта, каталог с исходными данными или журналы экспериментов. Пакет кода не должен содержать символических или жёстких ссылок, каталогов wandb, кешей, лишних зависимостей или неиспользуемых резервных копий. Пакет checkpoint должен содержать только policy_last.ckpt и dataset_stats.pkl из той же папки.
code/build_public_manifest.py предназначен только для прослеживаемого манифеста открытых материалов; при реальной онлайн-отправке используйте официальный submit/submit.py и официальную предварительную проверку (preflight).
Что публикуется, а что нет
Публикуется
- правила аудита данных, обучающая конфигурация, протокол оценки и методы проверки пакета отправки;
- обезличенные таблицы экспериментов и онлайн-результаты;
- типы сбоев, первопричины, исправления и то, какие «исправления» не подтверждены доказательствами;
- скрипты проверки открытых материалов и манифеста SHA256, которые можно запустить самостоятельно;
- правила каталогов и контрольных сумм для будущей загрузки на Hugging Face.
Не кладётся в Git
- 550 исходных и обработанных файлов HDF5 и другие крупные наборы данных;
- checkpoint ACT, статистики, zip-пакеты отправки и видеофайлы;
- проприетарные меши робота Tron2, URDF/MJCF и внутренние ассеты организаторов;
- внутренние IP-адреса серверов, порты, PID/PGID, снимки дисков и личные пути;
- токены доступа, приватные ключи SSH, облачные учётные данные и сессии браузера;
- личные данные, внутренние URL и фрагменты токенов, которые могут содержаться в исходных журналах запусков.
Если появится подтверждённое право на повторное распространение, крупные файлы стоит разместить в отдельных моделях или наборах данных Datawhale на Hugging Face, а в README каталога добавить публичные ссылки, версии, перечень файлов и SHA256. GitHub хранит только лёгкий код и документацию.
Лицензия
Новые документы и общие скрипты аудита в этом каталоге распространяются по лицензии CC BY 4.0 репозитория Every Embodied. Оригинальные RoboTwin, LimX Tron2, cuRobo и другие сторонние материалы подчиняются своим лицензиям; этот каталог не передаёт прав на проприетарные ассеты организаторов и не означает, что организаторы одобряют данный разбор.