bsplinepolytraj

Сгенерируйте полиномиальные траектории с помощью B-сплайнов

Описание

пример

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

Примеры

свернуть все

Используйте bsplinepolytraj функция с данным набором 2D xy контрольных точек. B-сплайн использует эти контрольные точки, чтобы создать траекторию в многоугольнике. Моменты времени для waypoints также даны.

cpts = [1 4 4 3 -2 0; 0 1 2 4 3 1];
tpts = [0 5];

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

tvec = 0:0.01:5;
[q, qd, qdd, pp] = bsplinepolytraj(cpts,tpts,tvec);

Постройте график результатов. Покажите контрольные точки и получившуюся траекторию в них.

figure
plot(cpts(1,:),cpts(2,:),'xb-')
hold all
plot(q(1,:), q(2,:))
xlabel('X')
ylabel('Y')
hold off

Постройте положение каждого элемента траектории B-сплайна. Эти траектории являются кубическими кусочными полиномами, параметрированными вовремя.

figure
plot(tvec,q)
hold all
plot([0:length(cpts)-1],cpts,'x')
xlabel('t')
ylabel('Position Value')
legend('X-positions','Y-positions')
hold off

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

свернуть все

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

Пример: [1 4 4 3 -2 0; 0 1 2 4 3 1]

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

Времена начала и конца для траектории в виде двухэлементного вектора.

Пример: [0 10]

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

Выборки времени для траектории в виде вектора. Выходное положение, q, скорость, qd, и ускорения, qdd, производятся в этих временных интервалах.

Пример: 0:0.01:10

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

Выходные аргументы

свернуть все

Положения траектории на данных выборках времени в tSamples, возвращенный как вектор.

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

Скорости траектории на данных выборках времени в tSamples, возвращенный как вектор.

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

Ускорения траектории на данных выборках времени в tSamples, возвращенный как вектор.

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

Кусочный полином, возвращенный как структура, которая задает полином для каждого раздела кусочной траектории. Можно создать собственное использование кусочных полиномов 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] Farin, Джеральд Э. Кривые и поверхности для компьютера помогли геометрическому проекту: практическое руководство. Сан-Диего, CA: Academic Press, 1993.

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

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

Введенный в R2019a