Files
NODEDC_MISSION_CORE/docs/audits/2026-09-22-ai-polygon-layout-and-bamboo-stop.md
T

5.2 KiB

AI-полигон: компоновка и остановка Bamboo

Изменение интерфейса

По замечаниям оператора viewport использует --nodedc-radius-panel и обрезает содержимое по этому радиусу. Статус, управление запуском/паузой/завершением и телеметрия вынесены над viewport. Переключатель камер находится в его верхнем левом углу, каноническое разворачивание — в верхнем правом. Общий fullscreen контейнер сохраняет название локации и управление над изображением.

Заголовок локации исключён из прокручиваемой области: прокручивается только содержимое под ним. Профиль и Bamboo Trail больше не перекрывают друг друга. Контракты Worker, inference, модели, физика и пороги управления не изменялись.

Проверка

Последовательно прошли architecture 4/4, TypeScript, frontend 895/895 и production build. В браузере на каноническом 127.0.0.1:8000 проверены скругление, перенос управления, прокрутка, follow/overview/AI-camera, fullscreen и Escape. При прокрутке содержимого на 255 px заголовок остался на y=250.375 px; управление геометрически находится выше viewport. Видео показывало 28–30 FPS; в DOM нет canvas. GPU-рендеринг остаётся на Worker.

QA-сцена airun-1f27d76ef73748cc89958dc70dc9b28b оставлена открытой для операторского просмотра: ready, follow, stream_ready=true, sim_time=0, inference_count=0. AI во время UI-проверки не запускался. Core PID 10918 продолжает обслуживать 8000; второго backend на 8765 нет.

Причина остановки в пользовательском прогоне

Источник: сохранённые Worker-журналы motion.jsonl и camera/decisions.jsonl прогона airun-0ca108e35bed49128b077f6844cbd8eb, созданного 2026-09-21T21:03:30.999Z. Журналы прочитаны без повторного запуска inference. Также просмотрены первый и последний сохранённые RGB-кадры; приватные кадры и полные журналы не входят в Git.

  • 262 решения: 10 road, 6 uncertain, 246 no-road.
  • Смещение от старта 0.0721 м, длина пути по snapshots 0.0726 м.
  • Последний motion snapshot: RTF 1.0, render 28 FPS, sensor 8 FPS, AI 8 Hz, inference 94 мс, возраст кадра 172 мс, road_fraction 0.02468.
  • Во всех сохранённых решениях obstacle_count=0. Остановка не была решением детектора о препятствии; RoadPolicy обнулила скорость из-за road_fraction ниже 0.35 в ближней области маски.

На RGB-кадрах визуально сохраняется тропа. Это свидетельство ограничения сегментации/простого правила следования, а не доказательство непроходимости тропы для метрового ровера. Полные семантические маски не архивировались, поэтому конкретный ошибочный класс по этим журналам восстановить нельзя.

Граница вывода

Текущая RoadPolicy — camera-only baseline: она ищет полосу из шести классов GOOSE и задаёт скорость/поворот, но не оценивает высоту ступеньки, уклон, клиренс, опорную поверхность и сцепление. Скан даёт внешний вид; физическая опора в run_realtime.py — невидимая плоскость. Камни не имеют физических collision-форм, а масштаб скана ещё не подтверждён измеренной опорой.

Следующая работа по автономии должна отдельно квалифицировать распознавание проезжаемого грунта и принятие решений на неровностях. Для проверки подъёма на камни потребуется метрически согласованная поверхность контакта и измеренный профиль аппарата. Порог не понижался ради демонстрации движения; успешное прохождение тропы и физическая проходимость этим изменением не заявляются.