Сортировочная ячейка Isaac Sim: CV-пайплайн и меши товаров

Замкнутый контур "поток -> CV -> механика": товары идут по конвейеру с шагом 700 мм,
класс определяется стереопайплайном во время движения, пушер и плуг реагируют физически.

Состав:
* control_test/ - ячейка и CV. run_sorting_cv.py + cv_worker.py (два процесса, потому что
  torch внутри Isaac роняет сцену), cell.py (физика лент, плуга, пушера), measure_plane.py
  (замер габаритов), README.md и .memory.md с замерами, проблемами и ловушками
* robozon_sorter/ - модули симуляции, scripts/ - утилиты, scene/ - сцены
* assets/ - меши товаров, плуг, объекты Objaverse

Бейзлайн CV: DEFOM-Stereo vitl, вход 480, iters 24, кроп зоны осмотра, без сегментации.
На потоке 700 мм - классы 8/9, габариты MAE 32.8 мм, 469 мс на товар при такте 700 мс.

Веса моделей (4.5 ГБ) и пропсы конвейера NVIDIA (274 МБ) не включены - источники и
команды скачивания в MODELS.md. Выход прогонов (captures/, runtime/) не включён:
воспроизводится.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dasha_f
2026-08-01 13:07:24 +00:00
parent 6ce460378a
commit 0d32f32db0
342 changed files with 18000 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
# Веса моделей
В репозиторий не попадают: около 4.5 ГБ, и все скачиваются из первоисточников. Ниже —
откуда именно, чтобы окружение поднималось повторяемо.
## DEFOM-Stereo — рабочий бейзлайн пайплайна
Репозиторий: <https://github.com/Insta360-Research-Team/DEFOM-Stereo>
Веса: <https://drive.google.com/drive/folders/1cZLcIjHlmUo986gkR6FbofG1cj5BT36x>
```bash
git clone https://github.com/Insta360-Research-Team/DEFOM-Stereo.git
cd DEFOM-Stereo && mkdir -p checkpoints && cd checkpoints
gdown 1XuAM4vqzura_6NKN70hMW5lFD4TafnDL # defomstereo_vitl_sceneflow.pth 1.53 ГБ <- используется
gdown 1qyXKO-Nxq3ndl2H0deQpo6BSvwlGKYEg # defomstereo_vits_sceneflow.pth 173 МБ (лёгкий вариант)
wget https://huggingface.co/depth-anything/Depth-Anything-V2-Large/resolve/main/depth_anything_v2_vitl.pth
```
Энкодер DepthAnythingV2 обязателен: без него модель не поднимается.
Скачивание папкой целиком (`gdown --folder`) не работает — перечисляет файлы и ничего не
качает. Только по одному идентификатору.
В репозитории есть и штатные скрипты: `scripts/download_models.sh`, `scripts/download_dav2.sh`.
## CREStereo — второй движок, точнее по габаритам
<https://github.com/megvii-research/CREStereo> — веса `crestereo_eth3d.pth` (95 МБ) по
ссылкам из его README.
## Сегментация
Обе модели в текущем бейзлайне **не используются** — товар отделяется от полотна
превышением над плоскостью. Оставлены для сравнительных прогонов.
* FastSAM-s.pt (23 МБ) — <https://github.com/CASIA-IVA-Lab/FastSAM>
* yolo26n-seg.pt — <https://huggingface.co/openvision/yolo26-s-seg> (у нас вариант `n`, не `s`)
## Fast FoundationStereo — проверялся, в бейзлайн не вошёл
<https://github.com/NVlabs/fast-foundationstereo>
Веса: <https://drive.google.com/drive/folders/1HuTt7UIp7gQsMiDvJwVuWmKpvFzIIMap>
Брался ONNX-экспорт `23_36_37_iters_4_res_320x736` (69 МБ, id `1p9vgRh_8R1FXA79l8VdnN28dDQ3NEEhf`)
и его yaml (`11oKt_6_jSdTqwBw1qotxmwqKxzYkvKdI`).
Замер получился нечестным по времени: `onnxruntime-gpu` 1.28 требует CUDA 13, на сервере
12.8, колёс под CUDA 12 для python 3.12 нет, `onnx2torch` падает на динамическом `Clip`,
TensorRT не установлен — модель шла на CPU. Точность при этом от устройства не зависит и
вышла вчетверо хуже CRE (152.8 против 32.4 мм).
## Пропсы конвейера NVIDIA
`assets/conveyors/` (274 МБ) тоже не в репозитории — восстанавливаются штатным
`python3 scripts/fetch_assets.py`. Источник: `omniverse-content-production.s3-us-west-2.amazonaws.com`,
раздел `Assets/Isaac/6.0/Isaac/Props/Conveyors/`.
## Куда смотрят пути в коде
Сейчас они абсолютные и указывают на сервер:
* `control_test/measure_flow.py`, `control_test/cv_worker.py` — константа `CV = "/home/dasha/isaac_assets/cv"`
* `control_test/measure_plane.py` — путь к `defom-stereo/checkpoints/`
При переносе на другую машину поправить в этих трёх файлах.