[enhancement] Учесть габариты шасси в наземной навигации: сейчас С-400 проезжает метровый коридор #114

Open
opened 2026-10-30 23:49:49 +00:00 by chexit · 1 comment
Owner

🤖 Filed by Codex, AI-агент Владимира (chexit).

Ревью 38e515dea90158879d28b8d1de963f66c7d5690d (31 октября 2026).

Граница текущего MVP

Наземный A* уже есть и обходит перепады высоты. Но airdef-mod/src/sim/route.rs:212 проверяет опорную колонку центра ячейки, relax — высоты центров/середины, а orders.rs::step_moves проверяет одну колонку следующего положения. У маршрута нет ширины/длины/высоты шасси; объём корпуса и боковой clearance не проверяются. Сенсорная/воздушная point ray не заменяет проверку габарита машины.

Подтверждено тестом

В изолированной копии использован тот же synthetic WorldSource/answer, что в существующих route tests: твёрдые стены до y=96 со свободной одной колонкой z=2 на уровне 64. С-400 с scale=1.5, старт (0.5,64,2.5), цель (60.5,64,2.5) успешно доезжает до конца между стенами. Проверяемый point всё время свободен, но корпус значительно шире одного блока.

Это дополнение к выполненному #94: тест «не внутри heightmap в координате центра» действительно проходит, но не проверяет физический проезд модели.

Предложение

  • Профиль навигационных габаритов: ширина/длина/высота и допустимые шаг/уклон для семейства шасси.
  • Консервативный inflated obstacle/clearance для coarse поиска и проверка swept footprint на движении/повороте. Прямоугольная/капсульная аппроксимация достаточна, полная автомобильная физика не нужна.
  • Высота проезда/навесы и площадка развёртывания проверяются по доступной voxel geometry, а не только по highest column. Unknown ведёт к досъёмке/ожиданию, не к проезду.
  • Учесть габариты при подходе ТЗМ к месту разгрузки; budgets/caches оставить общими и ограниченными.

Приёмка

Узкий коридор отвергается с понятной причиной, достаточный проход проезжается; поворот длинной машины не прорезает угол стены. Разные классы шасси могут иметь разные допустимые проходы. Существующие маршруты на открытой местности/логистика не регрессируют; покрыть мост/навес и изменение препятствия после планирования. Карта показывает blocked/waiting/no-route, сохраняя управление из #48.

🤖 Filed by Codex, AI-агент Владимира (chexit). Ревью `38e515dea90158879d28b8d1de963f66c7d5690d` (31 октября 2026). ### Граница текущего MVP Наземный A* уже есть и обходит перепады высоты. Но [airdef-mod/src/sim/route.rs:212](https://gitea.maoniao.team/chexit/airdef/src/commit/38e515dea90158879d28b8d1de963f66c7d5690d/airdef-mod/src/sim/route.rs#L212) проверяет опорную колонку центра ячейки, `relax` — высоты центров/середины, а `orders.rs::step_moves` проверяет одну колонку следующего положения. У маршрута нет ширины/длины/высоты шасси; объём корпуса и боковой clearance не проверяются. Сенсорная/воздушная point ray не заменяет проверку габарита машины. ### Подтверждено тестом В изолированной копии использован тот же synthetic WorldSource/answer, что в существующих route tests: твёрдые стены до y=96 со свободной **одной колонкой z=2** на уровне 64. С-400 с scale=1.5, старт `(0.5,64,2.5)`, цель `(60.5,64,2.5)` успешно доезжает до конца между стенами. Проверяемый point всё время свободен, но корпус значительно шире одного блока. Это дополнение к выполненному #94: тест «не внутри heightmap в координате центра» действительно проходит, но не проверяет физический проезд модели. ### Предложение - Профиль навигационных габаритов: ширина/длина/высота и допустимые шаг/уклон для семейства шасси. - Консервативный inflated obstacle/clearance для coarse поиска и проверка swept footprint на движении/повороте. Прямоугольная/капсульная аппроксимация достаточна, полная автомобильная физика не нужна. - Высота проезда/навесы и площадка развёртывания проверяются по доступной voxel geometry, а не только по highest column. Unknown ведёт к досъёмке/ожиданию, не к проезду. - Учесть габариты при подходе ТЗМ к месту разгрузки; budgets/caches оставить общими и ограниченными. ### Приёмка Узкий коридор отвергается с понятной причиной, достаточный проход проезжается; поворот длинной машины не прорезает угол стены. Разные классы шасси могут иметь разные допустимые проходы. Существующие маршруты на открытой местности/логистика не регрессируют; покрыть мост/навес и изменение препятствия после планирования. Карта показывает blocked/waiting/no-route, сохраняя управление из #48.
chexit added the area:logisticsarea:simulationpriority:P2type:enhancement labels 2026-10-30 23:49:49 +00:00
Author
Owner

🤖 Agent: Codex — работа Владимира (chexit).

Габариты, предел поиска: навигация и движение проверяют круговой footprint и высоту шасси по профилю family. Узкий коридор для С-400 отклоняется; широкий проходит. Ожидание неизвестной геометрии не сбрасывает timeout движения, pending frontier не забивает общий query budget. MAX_NODES применяется до ожидания.

6 route regression и сценарий склад–ТЗМ–налёт прошли; все 4 сценария проходят. Это консервативная модель по heightmap, не полноценная подвеска/проезд под мостами.

Issue оставлен открытым согласно просьбе автора.

🤖 Agent: Codex — работа Владимира (chexit). [Габариты](https://gitea.maoniao.team/chexit/airdef/commit/e7c0026), [предел поиска](https://gitea.maoniao.team/chexit/airdef/commit/efb2f20): навигация и движение проверяют круговой footprint и высоту шасси по профилю family. Узкий коридор для С-400 отклоняется; широкий проходит. Ожидание неизвестной геометрии не сбрасывает timeout движения, pending frontier не забивает общий query budget. MAX_NODES применяется до ожидания. 6 route regression и сценарий склад–ТЗМ–налёт прошли; все 4 сценария проходят. Это консервативная модель по heightmap, не полноценная подвеска/проезд под мостами. Issue оставлен открытым согласно просьбе автора.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#114