Сгенерируйте траектории с профилями трапеций скорости
[ генерирует траекторию через заданный набор входа точек пути, которые следуют профилю трапеций скорости. Функция выводит положения, скорости и ускорения в заданные временные выборки, 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')

Можно также проверить фактические положения в 2-D плоскости. Постройте график отдельных строк q вектор и точки пути как x- и y-положения.
figure plot(q(1,:),q(2,:),'-b',wpts(1,:),wpts(2,:),'or')

wayPoints - Путевые точки для траекторииТочки для точек пути траектории, заданные как n -by - p матрица, где n - размерность траектории, а p - количество точек пути.
Пример: [1 4 4 3 -2 0; 0 1 2 4 3 1]
Типы данных: single | double
numSamples - Количество выборок в выходной траекторииКоличество выборок в выходной траектории, заданное в виде положительного целого числа.
Типы данных: single | double
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'PeakVelocity',5Примечание
Из-за особенностей профиля трапеций скорости можно задать только два из следующих параметров.
'PeakVelocity' - Пиковая скорость скоростного профиляПиковая скорость сегмента профиля, заданная как разделенная разделенными запятой парами, состоящая из 'PeakVelocity' и скаляром, вектором или матрицей. Эта пиковая скорость является самой высокой скоростью, достигнутой во время профиля трапеций скорости.
Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.
Типы данных: single | double
'Acceleration' - Ускорение скоростного профиляУскорение профиля скорости, заданное как разделенная разделенными запятой парами, состоящая из 'Acceleration' и скаляром, вектором или матрицей. Это ускорение определяет постоянное ускорение от нулевой скорости до PeakVelocity значение.
Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.
Типы данных: single | double
'EndTime' - Длительность каждого сегмента траекторииДлительность каждого из p сегментов траектории -1, заданная как разделенная разделенными запятой парами, состоящая из 'EndTime' и скаляром, вектором или матрицей.
Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.
Типы данных: single | double
'AccelTime' - Длительность фазы ускорения скоростного профиляДлительность фазы ускорения профиля скорости, заданная как разделенная запятыми пара, состоящая из 'EndTime' и скаляром, вектором или матрицей.
Скалярное значение применяется ко всем элементам траектории и между всеми путевыми точками. Вектор n-element применяется к каждому элементу траектории между всеми путевыми точками. Матрица n -by- (p -1) применяется к каждому элементу траектории для каждой путевой точки.
Типы данных: single | double
q - Положения траекторииПоложения траектории в заданный момент выборок в tSamples, возвращается как n -by - m матрица, где n - размерность траектории, и m равно numSamples.
Типы данных: single | double
qd - Скорости траекторииСкорости траектории в заданный момент выборок в tSamples, возвращается как n -by - m матрица, где n - размерность траектории, и m равно numSamples.
Типы данных: single | double
qdd - Ускорения траекторииУскорения траектории в заданный момент выборок в tSamples, возвращается как n -by - m матрица, где n - размерность траектории, и m равно numSamples.
Типы данных: single | double
pp - Кусочно-полиномыКусочные полиномы, возвращенный как массив ячеек структур, который задает полином для каждого участка кусочно-траектории. Если все элементы траектории имеют одни и те же пропуски, массив ячеек является одним кусочным полиномом структурой. В противном случае массив ячеек имеет 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.
pp - кусочно-полиномиальныйКусочно-полиномиальный, возвращенный как структура, которая задает полином для каждого участка кусочно-траектории. Вы можете создать свои собственные кусочные полиномы, используя 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.
bsplinepolytraj | cubicpolytraj | quinticpolytraj | rottraj | transformtraj | trapveltraj
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.