Разбор препятствия, роботы и их коридоры

В топик ObstacleArray сведения о препятствии попадают при пересечении траекторий

Различия в пересечениях

Для статических детектов (лидары и боковые радары)

Сравниваются полигоны препятствия с каждым планируемым полигоном (срезом коридора - термин слева)

Траектория - что приходит из planner (параметр сейчас = 70 метров)


Планируемая траектория движения () - что получаем посредством симуляции на основе модели движения по морковке (длина зависит от целевых скоростей:

  • если V > 0 на всем плане - предсказываем полностью до 70 м;
  • если есть хотя бы одна точка V = 0 - траектория строится с учетом текущей скорости и условий торможения в данный момент времени

Планируемый коридор движения - строится на основе планируемой траектории с добавлением габаритов машины - наложение их на нее


image


image


Шаг - 0.5 метра

Динамическое препятствие

close_objects
(роботы и вспомогательная техника)

Передние радары
может быть лидарный
может быть боковые радары
точно нет из HALа

если нет плана вообще
либо не приходил от HALа
в течение 5 секунд

Строится траектория объекта на 7 секунд вперед - число 7 взято экспериметнально по ходу развития ССО - сложно предсказать движение легковой машины

image


Сравниваем точки нашего коридора 7 секундного (в итоге наших 10 секунд) с коридором препятствия динамического

V = 0 как и у динамического препятствия на 7 секунд вперед (по факту пересечение коридоров фиксируется на расстоянии до 10 секунд, так как предикт +/- 3 секунды) - но точки все в одном месте
(угол поворота колес = 0, не учитывает)

if plan > 0

У робота строится такой же коридор как унас ( условно если нет скоростей 0 - на 70 м вперед), вне зависимости от V

V > 0 как и у динамического препятствия на 7 секунд (по факту 10 секунд, так как предикт +/- 3 секунды) вперед
(+ if robot - учет угла поворота колес)

Ситуации
с устаревшим state
в close_objects

Когда стейт устаревает, мы игнорим только его, остальные данные ССО учитываются

На 11 м/с - тормозной путь 70 метров. следовательно, нужно пересмотреть длину выдаваемого плана из planner-а

if не игнорим state:
это критичнее, так как мы заденем поперек стоячую машину, случайно вставшую в то место

ВЫВОД и план действий:

  • пересмотреть длину траекторий
  • анализа тормозного пути машины на разных скоростях
  • увеличение времени предсказания на малых и возможно на больших скоростях??
  • что будет с детектами вспомогательной техники, если увеличить время предикта
  • как поступать в ближайшее время, когда начнем ктатаь на одной 121й?
  • пересмотреть предикты коридоров в моменты типов остановок: сейчас рисуется коридор неверно без учета реальной картины

Запрет движения
у плана V = 0
как и у динамического препятствия на 7 секунд вперед (по факту 10 секунд, так как предикт +/- 3 секунды) - но точки все в одном месте
(угол поворота колес = 0, не учитывает)

20 Гц - частота сверки пересечения объектов и робота

15 объектов - максимум детектов в топике env_tracker

Чем быстрее движется препятствие/робот,
тем длинее их коридоры.
В предикте движение считается равномерным.
По сути умножение скорости на время коридора (7 секунд)


Планируется делать предикт ускорения и скорости

Увидели робота за 42 метра за счет логики ниже про предикт на 10 секунд вперед, а также текущей скорости и ускорения машины

11.02.2022

Увеличение плана из planner и другие увеличения - увеличивают время обработки в env_tracker и нагрузку ан все ноды, участвующие в обработке и выдаче плана

Что влияет на коридор:

  • длина предикта динамического препятствия

NB! коридор робота всегда 70 метров,
а уже сравнение - это динамические коридоры

остался в коде параметр 35 метров - расстояние, на котором мы должны остановиться до препятствия

расстояние 35 метров
не всегда получится соблюдать
с учетом текущей теории

Время переключения торможения - 1.5 секунды

частный пример от Артема в созвон от 14.02.2022

click to edit