Rotation Trajectory

Сгенерируйте траекторию между двумя ориентациями

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

  • Rotation Trajectory block

Описание

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

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

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

Порты

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

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

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

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

Начальная ориентация в виде четырехэлементного кватерниона векторная или 3х3 матрица вращения. Функция генерирует траекторию, которая запускается при начальной ориентации, R0, и переходит к итоговой ориентации, RF.

Пример: [1 0 0 0]'

Зависимости

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

Чтобы задать кватернионы, установите параметр Rotation Format на Quaternion.

Чтобы задать матрицы вращения, установите параметр Rotation Format на Rotation.

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

Начальная ориентация в виде четырехэлементной векторной или 3х3 матрицы вращения. Функция генерирует траекторию, которая запускается при начальной ориентации, R0, и переходит к итоговой ориентации, RF.

Пример: [0 0 1 0]'

Зависимости

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

Чтобы задать кватернионы, установите параметр Rotation Format на Quaternion.

Чтобы задать матрицы вращения, установите параметр Rotation Format на Rotation.

Типы данных: 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 m массивом кватерниона или 3 3 m матричным массивом вращения, где m является числом точек во входе к Time.

Зависимости

Чтобы получить массив кватерниона, установите параметр Rotation Format на Quaternion.

Чтобы получить матричный массив вращения, установите параметр Rotation Format на Rotation.

Скорость вращения ориентации, возвращенная как 3 m матрицей, где m является числом точек во входе к Time.

Угловое ускорение ориентации, возвращенное как 3 m матрицей, где m является числом точек во входе к Time.

Параметры

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

Выберите Rotation Matrix задать Initial rotation и Final rotation как 3х3 матрицы вращения и получить ориентацию выход (порт R) как матричный массив вращения. По умолчанию начальные и итоговые вращения заданы как четырехэлементные векторы кватерниона.

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

Начальная ориентация в виде четырехэлементного кватерниона векторная или 3х3 матрица вращения. Функция генерирует траекторию, которая запускается в Initial rotation и переходит к Final rotation.

Зависимости

Чтобы задать кватернионы, установите параметр Rotation Format на Quaternion.

Чтобы задать матрицы вращения, установите параметр Rotation Format на Rotation.

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

Итоговая ориентация в виде четырехэлементной векторной или 3х3 матрицы вращения. Функция генерирует траекторию, которая запускается в Initial rotation и переходит к Final rotation.

Зависимости

Чтобы задать кватернионы, установите параметр Rotation Format на Quaternion.

Чтобы задать матрицы вращения, установите параметр Rotation Format на Rotation.

Типы данных: 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
Для просмотра документации необходимо авторизоваться на сайте