exponenta event banner

Преобразовать траекторию

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

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

  • Transform Trajectory block

Описание

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

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

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

Порты

Вход

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

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

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

Параметры

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

Определить External задание параметров точек ППМ и точек времени в качестве входных данных блока вместо параметров блока.

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

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

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

Типы данных: 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