Сортировочная ячейка 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
+252
View File
@@ -0,0 +1,252 @@
{
"backpack": {
"zone": "B",
"gt_dims_mm": [
455,
370,
301
],
"k_round": 0.82,
"label_ru": "Не подходит для сортировки по габаритам"
},
"bag": {
"zone": "D",
"gt_dims_mm": [
202,
175,
170
],
"k_round": 0.896,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"banana": {
"zone": "D",
"gt_dims_mm": [
183,
71,
33
],
"k_round": 0.94,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"bolts_cluster": {
"zone": "B",
"gt_dims_mm": [
194,
136,
53
],
"k_round": 0.718,
"label_ru": "Подходит для сортировки"
},
"bottle": {
"zone": "D",
"gt_dims_mm": [
305,
91,
91
],
"k_round": 0.995,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"box_300x200x200": {
"zone": "B",
"gt_dims_mm": [
301,
200,
200
],
"k_round": 0.72,
"label_ru": "Подходит для сортировки"
},
"box_400x400x300": {
"zone": "B",
"gt_dims_mm": [
401,
400,
300
],
"k_round": 0.716,
"label_ru": "Не подходит для сортировки по габаритам"
},
"bucket": {
"zone": "D",
"gt_dims_mm": [
287,
287,
272
],
"k_round": 0.995,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"chip_bag": {
"zone": "D",
"gt_dims_mm": [
250,
162,
69
],
"k_round": 0.811,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"cone": {
"zone": "D",
"gt_dims_mm": [
500,
350,
350
],
"k_round": 0.991,
"label_ru": "Не подходит для сортировки по габаритам"
},
"cylinder": {
"zone": "D",
"gt_dims_mm": [
435,
50,
43
],
"k_round": 0.867,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"detergent": {
"zone": "B",
"gt_dims_mm": [
278,
260,
180
],
"k_round": 0.742,
"label_ru": "Подходит для сортировки"
},
"headphones": {
"zone": "D",
"gt_dims_mm": [
198,
195,
93
],
"k_round": 0.807,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"helmet": {
"zone": "D",
"gt_dims_mm": [
354,
297,
280
],
"k_round": 0.895,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"lunchbox": {
"zone": "B",
"gt_dims_mm": [
201,
152,
62
],
"k_round": 0.646,
"label_ru": "Подходит для сортировки"
},
"mug": {
"zone": "D",
"gt_dims_mm": [
113,
99,
83
],
"k_round": 0.985,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"parcel_box": {
"zone": "B",
"gt_dims_mm": [
344,
155,
144
],
"k_round": 0.699,
"label_ru": "Подходит для сортировки"
},
"pen": {
"zone": "D",
"gt_dims_mm": [
148,
13,
9
],
"k_round": 0.842,
"label_ru": "Не подходит для сортировки по габаритам"
},
"perfume": {
"zone": "D",
"gt_dims_mm": [
120,
53,
53
],
"k_round": 0.924,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"pillow": {
"zone": "C",
"gt_dims_mm": [
455,
431,
213
],
"k_round": 0.905,
"label_ru": "Не подходит для сортировки по габаритам"
},
"plate": {
"zone": "D",
"gt_dims_mm": [
209,
209,
27
],
"k_round": 0.998,
"label_ru": "Не подходит для сортировки без доупаковки"
},
"pouf": {
"zone": "C",
"gt_dims_mm": [
489,
489,
264
],
"k_round": 0.994,
"label_ru": "Не подходит для сортировки по габаритам"
},
"sneaker": {
"zone": "B",
"gt_dims_mm": [
270,
208,
125
],
"k_round": 0.706,
"label_ru": "Подходит для сортировки"
},
"tool_case": {
"zone": "B",
"gt_dims_mm": [
300,
144,
60
],
"k_round": 0.454,
"label_ru": "Подходит для сортировки"
},
"watch": {
"zone": "C",
"gt_dims_mm": [
230,
230,
5
],
"k_round": 0.995,
"label_ru": "Не подходит для сортировки по габаритам"
}
}