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})

Интерполируйте положения вдоль пути. Получите положение через каждые 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)

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

свернуть все

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

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

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

свернуть все

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

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

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

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

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

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

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

Функции

Объекты

Введенный в R2019b