interpolate

Интерполируйте положения вдоль сегмента пути

Описание

poses = interpolate(pathSeg) интерполирует вдоль сегмента пути при переходах между типами движения.

пример

poses = interpolate(pathSeg,lengths) интерполирует вдоль сегмента пути в заданных длинах вдоль пути. Переходы между типами движения всегда включаются.

[poses,directions] = interpolate(___) также возвращает направление движения вдоль пути для каждого раздела как вектор 1 с (вперед) и –1s (противоположное) использование предыдущих входных параметров.

Примеры

свернуть все

Создайте dubinsConnection объект.

dubConnObj = dubinsConnection;

Задайте запускаются, и цель изображает из себя [x y theta] векторы.

startPose = [0 0 0];
goalPose = [1 1 pi];

Вычислите допустимый сегмент пути, чтобы соединить положения.

[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);

Покажите сгенерированный путь.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Start Position, Goal Position.

Интерполируйте положения вдоль пути. Получите положение через каждые 0,2 метра, включая переходы между поворотами.

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.2:length)
poses = 32×3

         0         0         0
    0.1987   -0.0199    6.0832
    0.3894   -0.0789    5.8832
    0.5646   -0.1747    5.6832
    0.7174   -0.3033    5.4832
    0.8309   -0.4436    5.3024
    0.8418   -0.4595    5.3216
    0.9718   -0.6110    5.5216
    1.1293   -0.7337    5.7216
    1.3081   -0.8226    5.9216
      ⋮

Используйте quiver функционируйте, чтобы построить эти положения.

quiver(poses(:,1),poses(:,2),cos(poses(:,3)),sin(poses(:,3)),0.5)

Figure contains an axes object. The axes object contains an object of type quiver.

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

свернуть все

Сегмент пути в виде dubinsPathSegment или reedsSheppPathSegment объект.

Длины вдоль пути для интерполяции, заданные как положительный числовой вектор. Например, задайте [0:0.1:pathSegObj{1}.Length] интерполировать на уровне каждого 0,1 метров вдоль пути. Переходы между типами движения всегда включаются.

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

свернуть все

Это свойство доступно только для чтения.

Интерполированные положения вдоль сегмента пути в виде [x, y, Θ] матрица. Каждая строка матрицы соответствует другому интерполированному положению вдоль пути.

x и y исчисляются в метрах. Θ исчисляется в радианах.

Направления движения для каждого сегмента интерполированного пути, заданные как вектор на 1с (вперед) и –1с (назад).

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

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

Смотрите также

Функции

Объекты

Введенный в R2019b