exponenta event banner

Траектория вращения

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

  • Библиотека:
  • Инструментарий робототехнической системы/Утилиты

  • Rotation Trajectory block

Описание

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

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

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

Порты

Вход

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

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

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

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

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

Зависимости

Чтобы включить этот ввод, установите для источника ППМ значение External.

Чтобы задать кватернионы, задайте для параметра Формат поворота значение Quaternion.

Чтобы задать матрицы поворота, задайте для параметра Формат поворота значение Rotation.

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

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

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

Зависимости

Чтобы включить этот ввод, установите для источника ППМ значение External.

Чтобы задать кватернионы, задайте для параметра Формат поворота значение Quaternion.

Чтобы задать матрицы вращения, задайте для параметра Формат вращения значение Rotation.

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

Время начала и окончания траектории, определяемое как двухэлементный вектор.

Пример: [0 10]

Зависимости

Чтобы включить этот ввод, установите для источника ППМ значение External.

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

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

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

Зависимости

Чтобы включить этот параметр, установите флажок Использовать пользовательское масштабирование времени и установите для параметра Источник параметра значение 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

Зависимости

Чтобы включить этот параметр, установите флажок Использовать пользовательское масштабирование времени и установите для параметра Источник параметра значение External.

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

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

Продукция

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

Векторы ориентации, возвращенные как множество кватерниона 4 на м или множество матрицы вращения 3 на 3 на м, где m - число очков во входе ко Времени.

Зависимости

Чтобы получить массив кватернионов, задайте для параметра Формат вращения значение Quaternion.

Чтобы получить массив матрицы поворота, задайте для параметра Формат поворота значение Rotation.

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

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

Параметры

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

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

Определить External задание параметров «Начальный поворот», «Окончательный поворот» и «Интервал времени» в качестве входных данных блока вместо параметров блока.

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

Зависимости

Чтобы задать кватернионы, задайте для параметра Формат поворота значение Quaternion.

Чтобы задать матрицы поворота, задайте для параметра Формат поворота значение Rotation.

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

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

Зависимости

Чтобы задать кватернионы, задайте для параметра Формат поворота значение Quaternion.

Чтобы задать матрицы поворота, задайте для параметра Формат поворота значение Rotation.

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

Время начала и окончания траектории, определяемое как двухэлементный вектор.

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

Позволяет задать пользовательское масштабирование по времени для траектории с помощью параметров «Источник параметров», «Время масштабирования» и «Время масштабирования».

Определить External задание параметров «Время масштабирования» и «Время масштабирования» в качестве входных данных блока вместо параметров блока.

Зависимости

Чтобы включить этот параметр, установите флажок Использовать пользовательское масштабирование времени.

Временные точки масштабирования времени, заданные как скалярный или p-элементный вектор, где p - количество точек для временного масштабирования. По умолчанию масштабирование по времени представляет собой линейное масштабирование по времени, охватывающее временной интервал. Укажите фактические значения масштабирования времени в поле Значения масштабирования времени.

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

Зависимости

Чтобы включить этот параметр, установите флажок Использовать пользовательское масштабирование времени.

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите флажок Использовать пользовательское масштабирование времени.

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

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

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

  • Code generation - Моделирование модели с использованием сгенерированного кода C. При первом запуске моделирования Simulink ® генерирует код C для блока. Код C используется повторно для последующего моделирования, если модель не изменяется. Эта опция требует дополнительного времени запуска, но скорость последующего моделирования сравнима сInterpreted execution.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2019a