интерполировать

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

Синтаксис

poses = interpolate(pathSeg)
poses = interpolate(pathSeg,lengths)
[poses,directions] = interpolate(___)

Описание

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

пример

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

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

Примеры

свернуть все

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

dubConnObj = robotics.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)

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

свернуть все

Сегмент пути, заданный как объект robotics.DubinsPathSegment или robotics.ReedsSheppPathSegment.

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

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

свернуть все

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

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

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

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

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

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

Введенный в R2018b

Для просмотра документации необходимо авторизоваться на сайте