exponenta event banner

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-элемента применяется к каждому элементу траектории между всеми ППМ. Матрица n-by- (p-1) применяется к каждому элементу траектории для каждого ППМ.

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

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

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

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

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

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

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

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

Скалярное значение применяется ко всем элементам траектории и между всеми ППМ. Вектор n-элемента применяется к каждому элементу траектории между всеми ППМ. Матрица 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: p-1. Количество разрывов минус 1.

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

  • dimN. Размеры позиций контрольных точек.

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

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

  • form: 'pp'.

  • breaks: p-элементный вектор времен при изменении кусочной траектории. p - количество ППМ.

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

  • pieces: p-1. Количество разрывов минус 1.

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

  • dimN. Размеры позиций контрольных точек.

Ссылки

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

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

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

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

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