Path Smoother Spline

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

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

Описание

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

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

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

Порты

Входной параметр

развернуть все

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

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

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

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

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

Вывод

развернуть все

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

Параметры

развернуть все

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

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

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

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

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

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

Больше о

развернуть все

Алгоритмы

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

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

Ссылки

[1] Плавающий предмет, Майкл С. "На Отклонении Параметрического Кубического Сплайна Interpolant от Его Многоугольника Данных". Компьютер помог Геометрическому Проекту. Издание 25, Номер 3, 2008, стр 148–156.

[2] Lepetic, Марко, Грегор Клэнкэр, Игорь Скрянк, Драго Матко и Бостджэн Потокник. "Время Оптимальное Планирование пути, Рассматривая Ускоряющие Пределы". Робототехника и Автономные системы. Издание 45, Числа 3-4, 2003, стр 199–210.

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

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

Введенный в R2019a