Разбор препятствия, роботы и их коридоры
В топик ObstacleArray сведения о препятствии попадают при пересечении траекторий
Различия в пересечениях
Для статических детектов (лидары и боковые радары)
Сравниваются полигоны препятствия с каждым планируемым полигоном (срезом коридора - термин слева)
Траектория - что приходит из planner (параметр сейчас = 70 метров)
Планируемая траектория движения () - что получаем посредством симуляции на основе модели движения по морковке (длина зависит от целевых скоростей:
- если V > 0 на всем плане - предсказываем полностью до 70 м;
- если есть хотя бы одна точка V = 0 - траектория строится с учетом текущей скорости и условий торможения в данный момент времени
Планируемый коридор движения - строится на основе планируемой траектории с добавлением габаритов машины - наложение их на нее
Шаг - 0.5 метра
Динамическое препятствие
close_objects
(роботы и вспомогательная техника)
Передние радары
может быть лидарный
может быть боковые радары
точно нет из HALа
если нет плана вообще
либо не приходил от HALа
в течение 5 секунд
Строится траектория объекта на 7 секунд вперед - число 7 взято экспериметнально по ходу развития ССО - сложно предсказать движение легковой машины
Сравниваем точки нашего коридора 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