Создайте плавную, ограниченную рывком траекторию актёра в сценарии вождения
smoothTrajectory
функция создает плавную, ограниченную рывком траекторию для актёра в сценарии вождения. Сгенерированная траектория характеризуется плавным переходом ускорений между путевыми точками, что делает ее совместимой для генерации измерений синтетической инерционной навигационной системы (INS) и глобальной навигационной спутниковой системы (GNSS) из insSensor
Системные object™. Для получения дополнительной информации о том, как smoothTrajectory
генерирует траектории, см. Алгоритмы.
smoothTrajectory(___,
задает опции, использующие одну или несколько пары "имя-значение" и любую из комбинаций входных аргументов из предыдущих синтаксисов. Например, можно задать угол ориентации рыскания актёра или транспортного средства в каждой путевой точке или максимальное количество рывка в траектории.Name,Value
)
Если smoothTrajectory
функция не может вычислить плавную, ограниченную рывком траекторию, учитывая входные параметры, попробуйте внести эти корректировки в сценарий:
Увеличьте расстояния между путевыми точками, чтобы дать транспортному средству больше времени для ускорения до заданных скоростей.
Уменьшите скорости в каждой путевой точке. Попробуйте преобразовать значения скорости из метров в секунду в мили в час, чтобы увидеть, реалистичны ли скорости, учитывая сценарий. Например, маловероятно, что алгоритм может вычислить плавную траекторию для резкого поворота, который берётся со скоростью 30 м/с (около 67 миль/ч).
Увеличьте максимальный рывок. Увеличение максимума рывка позволяет алгоритму вычислять больше возможных траекторий за счет снижения комфорта пассажиров.
smoothTrajectory
функция создает ограниченную рывком траекторию, используя профиль ускорения трапеций. Эта траектория имеет плавные переходы ускорения между путевыми точками, что приводит к комфортной поездке для пассажиров. Функция вычисляет отдельный профиль ускорения трапеций для каждого из сегментов N - 1 между путевыми точками траектории.
Рассмотрим простой сценарий, при котором машина проезжает расстояние 50 метров по 100-метровой дороге. Траектория состоит из одного 50-метрового сегмента, в котором автомобиль должен увеличить скорость с 5 м/с до 10 м/с к концу сегмента. Траектория имеет дополнительное ограничение, при котором максимальный продольный рывок не должен превышать 0,5 м/с3.
scenario = drivingScenario; car = vehicle(scenario); road(scenario,[0 -25; 0 75]); % m waypoints = [0 0; 0 50]; % m speed = [5 10]; % m/s jerk = 0.5; % m/s^3 smoothTrajectory(car,waypoints,speed,'Jerk',jerk)
Учитывая ограничения расстояния, скорости и рывка этого сегмента путевой точки, smoothTrajectory
функция генерирует трехфазный профиль трапеций ускорения:
Увеличьте ускорение линейно. Удерживайте рывок константой при значении не больше jerk
.
Удерживайте ускорение постоянным. Уменьшите рывок до 0.
Уменьшите ускорение линейно. Удерживайте рывок константой при значении не менее -jerk
.
Эти графики визуализируют профиль расстояния, скорости, ускорения и рывка вдоль этого сегмента путевой точки с течением времени. Три фазы профиля ускорения образуют трапецию.
Когда скорость уменьшается между путевыми точками, smoothTrajectory
функция генерирует трехфазный профиль трапеций ускорения в обратном порядке. В случае с уменьшенной скоростью форма профиля ускорения является обратной из той, которая показана на предыдущем графике.
[1] Bae, Il, Jeyoung Moon и Jeongseok Seo. «К комфортному вождению для беспилотного маршрутного автобуса». Электроника 8, № 9 (27 августа 2019): 943. https://doi.org/10.3390/electronics8090943.