trapveltraj

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

Описание

пример

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

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

Примеры

свернуть все

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

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

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

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

Постройте график траекторий для положений X и Y и профиля трапеций скорости между каждой путевой точкой.

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')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent X, Y. Axes 2 contains 2 objects of type line. These objects represent X, Y.

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

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

Figure contains an axes. The axes contains 2 objects of type line.

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

свернуть все

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

Пример: [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' и скаляром, вектором или матрицей. Эта пиковая скорость является самой высокой скоростью, достигнутой во время профиля трапеций скорости.

Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.

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

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

Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.

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

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

Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.

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

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

Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.

Типы данных: 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 - количество путевых точек.

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

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

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

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

Вы можете создать свои собственные кусочные полиномы, используя mkpp, или вычислите полином в заданное время, используя ppval.

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

  • form: 'pp'.

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

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

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

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

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

Ссылки

[1] Линч, Кевин М. и Фрэнк С. Парк. Современная робототехника: механика, планирование и контроль. Кембридж: Cambridge University Press, 2017.

[2] Spong, Mark W., Seth Hutchinson, and M. Vidyasagar. Моделирование и управление роботом. John Wiley & Sons, 2006.

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

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

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