interpolate

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

Описание

пример

poses = interpolate(refPath) интерполируется по длине опорного пути, возвращая переходные положения. Для получения дополнительной информации см. Раздел Положений перехода»

пример

poses = interpolate(refPath,lengths) интерполирует положения в заданных точках по длине пути. В дополнение к включению положений, соответствующих заданным длинам, poses также включает в себя переходные положения.

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

Примеры

свернуть все

Планируйте путь автомобиля через парковку с помощью оптимального быстро исследующего алгоритма случайного дерева (RRT *). Проверьте правильность пути, а затем постройте график положения перехода вдоль пути.

Загрузите косметику парковки. Постройте косметику, чтобы увидеть парковку и раздутые области для транспортного средства, чтобы избежать.

data = load('parkingLotCostmap.mat');
costmap = data.parkingLotCostmap;
plot(costmap)

Figure contains an axes. The axes contains 2 objects of type image, patch. This object represents Inflated Areas.

Задайте начальное и целевое положения для транспортного средства как векторы [x, y, Мировые единицы измерения (x, y) указаны в метрах. Мировые единицы измерения для углов ориентации в степенях.

startPose = [4, 4, 90]; % [meters, meters, degrees]
goalPose = [30, 13, 0];

Использование pathPlannerRRT объект для планирования пути от начального положения до положения цели.

planner = pathPlannerRRT(costmap);
refPath = plan(planner,startPose,goalPose);

Проверьте правильность пути.

isPathValid = checkPathValidity(refPath,costmap)
isPathValid = logical
   1

Интерполируйте положения перехода вдоль пути.

transitionPoses = interpolate(refPath);

Постройте график запланированного пути и положения перехода на косметике.

hold on
plot(refPath,'DisplayName','Planned Path')
scatter(transitionPoses(:,1),transitionPoses(:,2),[],'filled', ...
    'DisplayName','Transition Poses')
hold off

Figure contains an axes. The axes contains 13 objects of type image, patch, scatter, line, polygon. These objects represent Inflated Areas, Planned Path, Transition Poses.

Планируйте путь автомобиля через парковку с помощью быстро исследующего алгоритма случайного дерева (RRT *). Интерполируйте положения транспортного средства в точках вдоль пути.

Загрузите косметику парковки. Постройте косметику, чтобы увидеть парковку и раздутые области для транспортного средства, чтобы избежать.

data = load('parkingLotCostmap.mat');
costmap = data.parkingLotCostmap;
plot(costmap)

Figure contains an axes. The axes contains 2 objects of type image, patch. This object represents Inflated Areas.

Задайте начальное и целевое положения для транспортного средства как [x, y, и ] векторы. Мировые единицы измерения (x, y) указаны в метрах. Мировые единицы измерения для углов ориентации в степенях.

startPose = [4, 4, 90]; % [meters, meters, degrees]
goalPose = [30, 13, 0]; 

Использование pathPlannerRRT объект для планирования пути от начального положения до положения цели.

planner = pathPlannerRRT(costmap);
refPath = plan(planner,startPose,goalPose);

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

lengths = 0 : 1 : refPath.Length;
poses = interpolate(refPath,lengths);

Постройте график интерполированных положений на косметике.

plot(costmap)
hold on
scatter(poses(:,1),poses(:,2),'DisplayName','Interpolated Poses')
hold off

Figure contains an axes. The axes contains 3 objects of type image, patch, scatter. These objects represent Inflated Areas, Interpolated Poses.

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

свернуть все

Планируемый путь транспортного средства, заданный как driving.Path объект.

Точки вдоль длины пути, заданные как действительный вектор. Значения должны быть в области значений от 0 до длины пути, как определяется Length свойство refPath. interpolate функция интерполирует положения в этих заданных точках. lengths находится в мировых единицах измерения, таких как метры.

Пример: poses = interpolate(refPath,0:0.1:refPath.Length) интерполирует положения через каждые 0,1 метра по всей длине пути.

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

свернуть все

Транспортное средство позирует вдоль пути, возвращенного как матрица <reservedrangesplaceholder4>-by-3 [x, y, Θ] векторы. m - количество возвращенных положений.

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

poses всегда включает положения перехода, даже если вы интерполируете только в заданных точках вдоль пути. Если вы не задаете lengths входной параметр, затем poses включает только переходные положения.

Направления движения положений транспортного средства, возвращенные как m-на-1 вектор на 1с (движение вперед) и -1с (движение назад). m - количество возвращенных положений. Каждый элемент directions соответствует строке poses.

Подробнее о

свернуть все

Переходные положения

Путь состоит из нескольких сегментов, которые являются комбинациями движений (для примера, поворота влево, прямого и поворота вправо). Transition poses являются положениями транспортного средства, соответствующими концу одного движения и началу другого движения. Они представляют точки вдоль пути, соответствующего изменению направления или ориентации транспортного средства. interpolate функция всегда возвращает переходные положения, даже если вы интерполируете только в заданных точках вдоль пути.

Длина пути между переходными положениями задается MotionLengths свойство сегментов контура. Например, рассмотрим следующий путь, который является driving.Path объект, состоящий из одного сегмента контура Дубинса. Этот сегмент состоит из трех движений, как описано в MotionLengths и MotionTypes свойства сегмента.

interpolate функция интерполирует следующие переходные положения в этом порядке:

  1. Начальное положение транспортного средства, StartPose.

  2. Положение после поворота транспортного средства налево ("L") на 4,39 метра при максимальном угле поворота руля.

  3. Положение после того, как транспортное средство идет прямо ("S") на 6,32 метра.

  4. Положение после поворота транспортного средства вправо ("R") на 4,39 метра при максимальном угле поворота руля. Это положение также является целевым положением, потому что это последнее положение всего пути.

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

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

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

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