Transform Trajectory

Сгенерируйте траекторию между двумя гомогенными преобразованиями

  • Библиотека:
  • Robotics System Toolbox / Утилиты

  • Transform Trajectory block

Описание

Блок Transform Trajectory генерирует интерполированную траекторию между двумя однородными матрицами преобразования. Блок выводит преобразование во времена, данные входом Time, который может быть скаляром или вектором.

Траектория вычисляется с помощью кватерниона сферическая линейная интерполяция (SLERP) для вращения и линейной интерполяции для перевода. Этот метод находит кратчайший путь между положениями и вращениями преобразования. Установите флажок Use custom time scaling, чтобы вычислить траекторию с помощью пользовательского времени, масштабировавшись. Блок использует линейное время, масштабируясь по умолчанию.

Начальные и окончательные значения считаются постоянные вне периода времени, заданного в Time interval.

Порты

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

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

Момент времени вдоль траектории в виде скаляра или вектора. В общем случае, когда задано как скаляр, это значение синхронизируется со временем симуляции и используется, чтобы задать момент времени для выборки траектории. Блок выводит вектор из переменных траектории в тот момент вовремя. Если время задано как вектор, блок выводит матрицу с каждым столбцом, соответствующим каждому элементу вектора.

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

Начальная матрица преобразования в виде гомогенного преобразования 4 на 4. Функция генерирует траекторию, которая запускается при начальной ориентации, T0, и переходит к итоговой ориентации, TF.

Пример: trvec2tform([1 10 -1])

Зависимости

Чтобы включить этот параметр, установите Waypoint source на External.

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

Итоговая матрица преобразования в виде гомогенного преобразования 4 на 4. Функция генерирует траекторию, которая запускается при начальной ориентации, T0, и переходит к итоговой ориентации, TF.

Пример: trvec2tform([1 10 -1])

Зависимости

Чтобы включить этот параметр, установите Waypoint source на External.

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

Времена начала и конца для траектории в виде двухэлементного вектора.

Пример: [0 10]

Зависимости

Чтобы включить этот параметр, установите Waypoint source на External.

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

Моменты времени масштабирования времени в виде скаляра или n p - вектор элемента, где p является числом точек в течение времени, масштабируясь. По умолчанию время, масштабируясь является линейным масштабированием времени, охватывающим TimeInterval. Задайте фактические значения масштабирования времени в TimeScaling.

Если вход Time задан за один раз не заданный этими точками, интерполяция используется, чтобы найти правильное время масштабирования.

Зависимости

Чтобы включить этот параметр, установите флажок Use custom time scaling и установите Parameter source на External.

Чтобы задать скаляр, вход Time должен быть скаляром.

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

Вектор масштабирования времени и его первые две производные в виде трех векторов элемента или 3 p матрицей, где m является длиной TSTime. По умолчанию время, масштабируясь является линейным масштабированием времени, охватывающим TimeInterval.

В течение нелинейного времени, масштабируясь, задайте значения моментов времени в первой строке. Вторые и третьи строки являются скоростью и ускорением моментов времени, соответственно. Например, чтобы следовать за путем с линейной скоростью к средней точке, и затем перейти в конец, масштабирование времени было бы:

s(1,:) = [0 0.25 0.5 1 1 1] % Position
s(2,:) = [1    1   1 0 0 0] % Velocity
s(3,:) = [0    0   0 0 0 0] % Acceleration

Зависимости

Чтобы включить этот параметр, установите флажок Use custom time scaling и установите Parameter source на External.

Чтобы задать трехэлементный вектор, Time и входные параметры TSTime должны быть скаляром.

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

Вывод

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

Гомогенные матрицы преобразования, возвращенные как 4 4 m однородным матричным массивом, где m является входом числа точек к Time.

Преобразуйте скорости, возвращенные как 6 m матрицей, где m является входом числа точек к Time. Каждая строка вектора является угловой и линейной скоростью преобразования как [wx wy wz vx vy vz]. w представляет скорость вращения, и v представляет линейную скорость.

Преобразуйте скорости, возвращенные как 6 m матрицей, где m является входом числа точек к Time. Каждая строка вектора является угловым и линейным ускорением преобразования как [alphax alphay alphaz ax ay az]. alpha представляет угловое ускорение, и a представляет линейное ускорение.

Параметры

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

Задайте External чтобы задать Waypoints и параметры Time points как, блок вводит вместо параметров блоков.

Начальная матрица преобразования в виде гомогенного преобразования 4 на 4. Функция генерирует траекторию, которая запускается в Initial transform и переходит к Final transform.

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

Итоговая матрица преобразования в виде гомогенного преобразования 4 на 4. Функция генерирует траекторию, которая запускается в Initial transform и переходит к Final transform.

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

Времена начала и конца для траектории в виде двухэлементного вектора в секундах.

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

Включите, чтобы задать пользовательское время, масштабировавшись для траектории с помощью Parameter Source, Time scaling time и параметров Time scaling values.

Задайте External чтобы задать Time scaling time и параметры Time scaling values как, блок вводит вместо параметров блоков.

Зависимости

Чтобы включить этот параметр, установите флажок Use custom time scaling.

Моменты времени масштабирования времени в виде скаляра или p - вектор элемента, где p является числом точек в течение времени, масштабируясь. По умолчанию время, масштабируясь является линейным масштабированием времени, охватывающим Time interval. Задайте фактические значения масштабирования времени в Time scaling values.

Если вход Time задан за один раз не заданный этими точками, интерполяция используется, чтобы найти правильное время масштабирования.

Зависимости

Чтобы включить этот параметр, установите флажок Use custom time scaling.

Чтобы задать скаляр, вход Time должен быть скаляром.

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

Вектор масштабирования времени и его первые две производные в виде трехэлементного вектора или 3 p матрицей, где p является длиной Time scaling time. По умолчанию время, масштабируясь является линейным масштабированием времени, охватывающим Time interval.

В течение нелинейного времени, масштабируясь, задайте значения моментов времени в первой строке. Вторые и третьи строки являются скоростью и ускорением моментов времени, соответственно. Например, чтобы следовать за путем с линейной скоростью к средней точке, и затем перейти в конец, масштабирование времени было бы:

s(1,:) = [0 0.25 0.5 1 1 1] % Position
s(2,:) = [1    1   1 0 0 0] % Velocity
s(3,:) = [0    0   0 0 0 0] % Acceleration

Зависимости

Чтобы включить этот параметр, установите флажок Use custom time scaling.

Чтобы задать трехэлементный вектор, Time и входные параметры TSTime должны быть скаляром.

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

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

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

Настраиваемый: нет

Примеры модели

Ссылки

[1] Линчуйте, Кевин М. и Франк К. Парк. Современная робототехника: механика, планирование и управление. Издательство Кембриджского университета, 2017.

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

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

Введенный в R2019a