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