81 lines
6.1 KiB
Markdown
81 lines
6.1 KiB
Markdown
# Final Physical Acceptance Audit
|
||
|
||
## 1. Verdict: ГОТОВО
|
||
|
||
Все критические требования к 3D-демо выполнены. Движение товаров стало физически детерминированным, полностью устранено хаотичное движение, "полеты" и телепортации. Демо готово к записи видео защиты.
|
||
|
||
## 2. Что проверено на production
|
||
- Production URL: `https://arhipovdan.ru/` и `https://arhipovdan.ru/details`.
|
||
- Автоматизированный скрипт на базе Playwright прошёл полный цикл из 8 сценариев, засняв ключевые этапы.
|
||
- Скриншоты сохранены и подтверждают корректность интерфейса и физики.
|
||
- Проверка доступности: все адреса возвращают `HTTP 200 OK`.
|
||
|
||
## 3. 8-scenario checklist
|
||
- [x] **box_b → B**: Стандартный товар корректно едет по конвейеру в зону B.
|
||
- [x] **lunchbox_b → B**: Компактный товар корректно проходит классификацию в зону B.
|
||
- [x] **oversized_box_c → C**: Негабарит уходит по `chute_c` и оседает в C.
|
||
- [x] **small_item_c → C**: Слишком маленький товар забракован и уходит в C.
|
||
- [x] **plate_d → D**: Круглый товар распознан и отправлен в D.
|
||
- [x] **bottle_d → D**: Цилиндрический товар отправлен в D.
|
||
- [x] **c_priority → C**: Товар, который одновременно негабаритный и круглый, отправлен в приоритетную зону C.
|
||
- [x] **low_confidence → B**: Товар с низкой уверенностью ML (с предупреждением в HUD) прошел по fallback-правилам в зону B.
|
||
|
||
Для каждого сценария команда соответствует ожидаемой категории (`ROUTE_TO_B/C/D`), визуальный путь совпадает, товар остается "физичным" (находится на поверхностях), без хаотичных прыжков или вращений.
|
||
|
||
## 4. Physical motion checklist
|
||
- [x] Товар движется только по допустимым поверхностям (лента, склиз C/D, линия B, пол корзины C/D).
|
||
- [x] Товар **не летит**.
|
||
- [x] Товар **не телепортируется**.
|
||
- [x] Товар **не проваливается** под текстуры.
|
||
- [x] Товар **не выходит за пределы roll-cage** после остановки (settled).
|
||
- [x] Скорость на ленте строго = 1 м/с.
|
||
- [x] Лента и товар движутся абсолютно синхронно в фазах перемещения (доказано тестами `physicalItemMotion`).
|
||
|
||
## 5. STL/model checklist
|
||
- [x] `box-300.stl` используется (SKU-001)
|
||
- [x] `lunchbox.stl` используется (SKU-002)
|
||
- [x] `box-400.stl` используется (SKU-004)
|
||
- [x] `plate.stl` используется (SKU-006)
|
||
- [x] `bottle.stl` используется (SKU-007)
|
||
- [x] `cylinder.stl` используется (SKU-008)
|
||
- [x] **Fallback primitives** используются честно и только там, где STL реально нет или она слишком тяжелая (например, моющее средство 3.5 MB заменено на `box`, пуфик на `cylinder`, ручка на `box`, и отсутствующие boundary/oversized box на `box` и `cylinder`).
|
||
|
||
## 6. C/D containment checklist
|
||
- [x] `oversized_box_c` → уходит по `chute_c`, остается внутри C roll-cage на уровне пола.
|
||
- [x] `c_priority` → уходит в C.
|
||
- [x] `plate_d / bottle_d` → уходят по `chute_d`, оседают внутри D roll-cage.
|
||
- Оседание реализовано детерминированно, товары распределяются в сетке слотов внутри 1.2x0.8м, поэтому остаются внутри корзины.
|
||
|
||
## 7. UI/adaptive checklist
|
||
- [x] HUD и CV overlay **не накладываются** (CV overlay смещен влево и имеет max-height).
|
||
- [x] Кнопки Play/Pause/Stop работают корректно.
|
||
- [x] Окно Demo Complete появляется после 8 сценариев.
|
||
- [x] Страница `/details` работает без проблем.
|
||
- [x] Mobile layout не ломается (ширина 390px протестирована), нет горизонтального скролла.
|
||
|
||
## 8. Console/runtime errors
|
||
- **Нет**. Проверка Playwright `page.on('console')` вернула 0 ошибок (`NO_CONSOLE_ERRORS`).
|
||
|
||
## 9. Screenshots list
|
||
Все файлы успешно сохранены в `docs/final_physical_acceptance_screenshots/`:
|
||
- `01_home_idle.png`
|
||
- `02_stl_item_on_belt.png`
|
||
- `03_belt_sync_t0.png`
|
||
- `04_belt_sync_t1.png`
|
||
- `05_route_to_b.png`
|
||
- `06_route_to_c_chute.png`
|
||
- `07_settled_in_c_cage.png`
|
||
- `08_route_to_d_chute.png`
|
||
- `09_settled_in_d_cage.png`
|
||
- `10_c_priority_to_c.png`
|
||
- `11_low_confidence_warning.png`
|
||
- `12_demo_complete.png`
|
||
- `13_mobile.png`
|
||
- `14_details.png`
|
||
|
||
## 10. Remaining risks
|
||
- Незначительное пересечение моделей (clipping) в корзине C/D при накоплении множества товаров (mesh intersection), так как физический движок не добавлялся, и позиционирование происходит по индексной сетке слотов. Это визуально допустимо и не ломает защиту.
|
||
|
||
## 11. Recommendation
|
||
**Можно смело переходить к записи видео защиты.** Проект выглядит профессионально, физическая модель стабильна, багов не выявлено.
|