interpolate

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

Описание

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

пример

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

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

Примеры

свернуть все

Создайте 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. The axes 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. The axes 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++ с помощью Coder™ MATLAB ®

.
Введенный в R2019b