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 и получить выход ориентации (port 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.

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

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

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

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