trapveltraj

Сгенерируйте траектории с трапециевидными скоростными профилями

Синтаксис

[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples)
[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples,Name,Value)

Описание

пример

[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples) генерирует траекторию через данный набор входа waypoints, которые следуют за трапециевидным скоростным профилем. Функциональные выходные положения, скорости и ускорения на данных выборках времени, tSamples, на основе конкретного количества выборок, numSamples. Функция также возвращает кусочный полином форма pp полиномиальной траектории относительно времени.

[q,qd,qdd,tSamples,pp] = trapveltraj(wayPoints,numSamples,Name,Value) задает дополнительные параметры с помощью аргументов пары Name,Value.

Примеры

свернуть все

Используйте функцию trapveltraj с данным набором 2D xy waypoints. Моменты времени для waypoints также даны.

wpts = [0 45 15 90 45; 90 45 -45 15 90];

Вычислите траекторию для данного количества выборок (501). Функциональные выходные параметры положения траектории (q), скорость (qd), ускорение (qdd), временной вектор (tvec) и полиномиальные коэффициенты (pp) полинома, который достигает waypoints использование трапециевидных скоростей.

[q, qd, qdd, tvec, pp] = trapveltraj(wpts, 501);

Постройте траектории для x-и y-положений и trapezoial скоростного профиля между каждым waypoint.

subplot(2,1,1)
plot(tvec, q)
xlabel('t')
ylabel('Positions')
legend('X','Y')
subplot(2,1,2)
plot(tvec, qd)
xlabel('t')
ylabel('Velocities')
legend('X','Y')

Можно также проверить фактические положения в 2D плоскости. Постройте отдельные строки вектора q и waypoints как x-и y-положения.

figure
plot(q(1,:),q(2,:),'-b',wpts(1,:),wpts(2,:),'or')

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

свернуть все

Точки для waypoints траектории, заданной как n-by-p матрица, где n является размерностью траектории и p, являются количеством waypoints.

Пример: [1 4 4 3 -2 0; 0 1 2 4 3 1]

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

Количество выборок в выходной траектории, заданной как положительное целое число.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'PeakVelocity',5

Примечание

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

Пиковая скорость сегмента профиля, заданного как пара, разделенная запятой, состоящая из 'PeakVelocity' и скаляра, вектора или матрицы. Эта пиковая скорость является самой высокой скоростью, достигнутой во время трапециевидного скоростного профиля.

Скалярное значение применяется ко всем элементам траектории и между всем waypoints. n - вектор элемента применяется к каждому элементу траектории между всем waypoints. n (p –1) матрица применяется к каждому элементу траектории для каждого waypoint.

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

Ускорение скоростного профиля, заданного как пара, разделенная запятой, состоящая из 'Acceleration' и скаляра, вектора или матрицы. Это ускорение задает постоянное ускорение от нулевой скорости до значения PeakVelocity.

Скалярное значение применяется ко всем элементам траектории и между всем waypoints. n - вектор элемента применяется к каждому элементу траектории между всем waypoints. n (p –1) матрица применяется к каждому элементу траектории для каждого waypoint.

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

Длительность каждого p –1 сегмент траектории, заданный как пара, разделенная запятой, состоящая из 'EndTime' и скаляра, вектора или матрицы.

Скалярное значение применяется ко всем элементам траектории и между всем waypoints. n - вектор элемента применяется к каждому элементу траектории между всем waypoints. n (p –1) матрица применяется к каждому элементу траектории для каждого waypoint.

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

Длительность ускоряющей фазы скоростного профиля, заданного как пара, разделенная запятой, состоящая из 'EndTime' и скаляра, вектора или матрицы.

Скалярное значение применяется ко всем элементам траектории и между всем waypoints. n - вектор элемента применяется к каждому элементу траектории между всем waypoints. n (p –1) матрица применяется к каждому элементу траектории для каждого waypoint.

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

Выходные аргументы

свернуть все

Положения траектории на данных выборках времени в tSamples, возвращенном как n-by-m матрица, где n является размерностью траектории и m, равны numSamples.

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

Скорости траектории на данных выборках времени в tSamples, возвращенном как n-by-m матрица, где n является размерностью траектории и m, равны numSamples.

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

Ускорения траектории на данных выборках времени в tSamples, возвращенном как n-by-m матрица, где n является размерностью траектории и m, равны numSamples.

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

Выборки времени для траектории, возвращенной как m - вектор элемента. Выходное положение, q, скорость, qd и ускорения, qdd выбирается в этих временных интервалах.

Пример: 0:0.01:10

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

Кусочные полиномы, возвращенные как массив ячеек структур, который задает полином для каждого раздела кусочной траектории. Если все элементы траектории совместно используют те же пропуски, массив ячеек является одной структурой кусочного полинома. В противном случае массив ячеек имеет элементы n, которые соответствуют каждому из различных элементов траектории (размерности). Каждая структура содержит поля:

  • form: 'pp'.

  • breaks: p - вектор элемента времен, когда кусочная траектория изменяет формы. p является количеством waypoints.

  • coefs: n (p –1)-by-order матрица для коэффициентов для полиномов. n (p –1) является размерностью времен траектории количество pieces. Каждый набор строк n задает коэффициенты для полинома, который описал каждую переменную траекторию.

  • pieces: p –1. Количество пропусков минус 1.

  • order: Степень полинома + 1. Например, кубические полиномы имеют порядок 4.

  • dim : n. Размерность положений контрольной точки.

Можно создать собственные кусочные полиномы с помощью mkpp или оценить полином в требуемые времена с помощью ppval.

Кусочный полином, возвращенный как структура, которая задает полином для каждого раздела кусочной траектории. Можно создать собственные кусочные полиномы с помощью mkpp или оценить полином в требуемые времена с помощью ppval. Структура содержит поля:

  • form: 'pp'.

  • breaks: p - вектор элемента времен, когда кусочная траектория изменяет формы. p является количеством waypoints.

  • coefs: n (p –1)-by-order матрица для коэффициентов для полиномов. n (p –1) является размерностью времен траектории количество pieces. Каждый набор строк n задает коэффициенты для полинома, который описал каждую переменную траекторию.

  • pieces: p –1. Количество пропусков минус 1.

  • order: Степень полинома + 1. Например, кубические полиномы имеют порядок 4.

  • dim : n. Размерность положений контрольной точки.

Ссылки

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

[2] Spong, Марк В., Сет Хатчинсон и М. Видьясэгэр. Моделирование робота и управление. John Wiley & Sons, 2006.

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

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

Введенный в R2019a