63 lines
5.2 KiB
Markdown
63 lines
5.2 KiB
Markdown
# 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-форм, а масштаб скана ещё не подтверждён измеренной опорой.
|
|
|
|
Следующая работа по автономии должна отдельно квалифицировать распознавание
|
|
проезжаемого грунта и принятие решений на неровностях. Для проверки подъёма
|
|
на камни потребуется метрически согласованная поверхность контакта и
|
|
измеренный профиль аппарата. Порог не понижался ради демонстрации движения;
|
|
успешное прохождение тропы и физическая проходимость этим изменением не заявляются.
|