Path Smoother Spline

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

  • Библиотека:
  • Automated Driving Toolbox

  • Path Smoother Spline block

Описание

Блок Path Smoother Spline генерирует гладкий путь автомобиля, состоящий из последовательности дискретизированных положений, путем подгонки входа положения ссылки пути к кубическому сплайну. Учитывая вход ссылки направления пути, блок также возвращает направления, которые соответствуют каждому положению.

Используйте этот блок для преобразования C1- непрерывный путь к C2- непрерывный путь. C1- непрерывные пути включают пути Дубинса или Ридса-Шеппа, которые возвращаются планировщиками путей. Для получения дополнительной информации об этих типах путей см. C1-Continuous и C2-Continuous пути.

Можно использовать возвращенные положения и направления с контроллером транспортного средства, таким как блок Lateral Controller Stanley.

Порты

Вход

расширить все

Эталонные положения транспортного средства вдоль пути, заданные как матрица M-на-3 из векторов [x, y, Θ], где M - количество положений.

x и y указать местоположение транспортного средства в метрах. Θ задает угол ориентации транспортного средства в степенях.

Типы данных: single | double

Контрольные направления транспортного средства вдоль пути, заданные как M-на-1 вектор-столбец на 1с (движение вперед) и -1с (движение назад). M - количество ссылочных направлений. Каждый элемент RefDirections соответствует положению в RefPoses входном порту.

Типы данных: single | double

Выход

расширить все

Дискретизированные положения сглаженного пути, возвращенные как N-на-3 матрица векторов [x, y, Θ]. N - количество положений, заданное в параметре Number of output poses.

x и y указать местоположение транспортного средства в метрах. Θ задает угол ориентации транспортного средства в степенях.

Значения в Poses имеют совпадающий тип данных, что и значения в RefPoses входном порту.

Направления движения транспортного средства при каждом выходном положении в Poses, возвращаемые как N-на-1 вектор-столбец на 1с (движение вперед) и -1с (движение назад). N - количество положений, заданное в параметре Number of output poses.

Значения в Directions имеют совпадающий тип данных, что и значения в RefDirections входном порту.

Можно использовать Directions, чтобы задать ссылочный путь транспортного средства. Можно также использовать Directions, наряду с CumLengths и Curvatures, чтобы сгенерировать ссылку скорости для транспортного средства. См. пример блока Velocity Profiler и автоматической парковки в Simulink.

Совокупные длины пути в каждом выходном положении в Poses, возвращенные как N-на-1 вектор-столбец с реальным значением. N - количество положений, заданное в параметре Number of output poses. Модули измерения указаны в метрах.

Можно использовать CumLengths, наряду с Directions и Curvatures, чтобы сгенерировать ссылку скорости для транспортного средства. См. пример блока Velocity Profiler и автоматической парковки в Simulink.

Зависимости

Чтобы включить этот порт, выберите параметр Show CumLengths and Curvatures output ports.

Кривизны подписанного пути в каждом выходном положении в Poses, возвращенные как N-на-1 вектор-столбец с реальным значением. N - количество положений, заданное в параметре Number of output poses. Модули указаны в радианах на метр.

Можно использовать Curvatures, наряду с Directions и CumLengths, чтобы сгенерировать ссылку скорости для транспортного средства. См. пример блока Velocity Profiler и автоматической парковки в Simulink.

Зависимости

Чтобы включить этот порт, выберите параметр Show CumLengths and Curvatures output ports.

Параметры

расширить все

Количество сглаживаемых положений для возврата в Poses выходном порте, заданное в виде положительного целого числа. Чтобы увеличить гранулярность возвращенных положений, увеличьте это значение параметров.

Минимальное разделение между положениями, в метрах, задается как положительный действительный скаляр. Если евклидово (x, y) расстояние между двумя позами меньше этого значения, то блок использует только одно из этих положений для интерполяции.

Шаг расчета блока, в секундах, задается как -1 или как положительный действительный скаляр. Значение по умолчанию -1 означает, что блок наследует свой шаг расчета от вышестоящих блоков.

Выберите этот параметр, чтобы включить CumLengths и Curvatures выходные порты.

  • Code generation - Симулируйте модель с помощью сгенерированного кода C/C + +. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код C/C + + для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска.

  • Interpreted execution - Симулируйте модель с помощью MATLAB® интерпретатор. Эта опция сокращает время запуска. В Interpreted execution mode, можно отлаживать исходный код блока.

Подробнее о

расширить все

Алгоритмы

  • Алгоритм сглаживания пути интерполирует параметрический кубический сплайн, который проходит через все входные опорные точки положения. Параметром сплайна является совокупная длина хорды в этих точках. [1]

  • Направление тангенса сглаженного выходного пути приблизительно совпадает с углом ориентации транспортного средства в начальном и целевом положениях.

Ссылки

[1] Floater, Michael S. «On the Deviation of a Parametric Cubic Spline Interpolant from Its Data Polygon». Автоматизированный геометрический проект. Том 25, № 3, 2008, стр. 148-156.

[2] Лепетич, Марко, Грегор Кланкар, Игорь Скрянц, Драго Матко, и Бостьян Потокник. «Оптимальное по времени планирование пути с учетом пределов ускорения». Робототехника и автономные системы. Том 45, номера 3-4, 2003, стр. 199-210.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2019a