trapveltraj

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

Описание

пример

[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 имя аргумента и 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.

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

Можно создать собственные кусочные полиномы с помощью 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.

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

Ссылки

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

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

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

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

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте