checkPathValidity

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

Описание

пример

isValid = checkPathValidity(refPath,costmap) проверяет валидность запланированного пути к транспортному средству, refPath, против транспортного средства costmap. Используйте эту функцию, чтобы протестировать, если путь допустим в изменяющей среде.

Путь допустим, если следующие условия верны:

  • Путь имеет по крайней мере одно положение.

  • Путь без коллизий и в рамках costmap.

isValid = checkPathValidity(refPoses,costmap) проверяет валидность последовательности положений транспортного средства, refPoses, против транспортного средства costmap.

Примеры

свернуть все

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

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

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

Задайте запускаются и целевые положения для транспортного средства как [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);

Постройте запланированный путь и положения перехода на costmap.

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

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

свернуть все

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

Костмэп использовал в проверке столкновения, заданной как vehicleCostmap объект.

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

x и y задают местоположение транспортного средства. Эти значения должны быть в тех же мировых единицах измерения, используемых costmap.

Θ задает угол ориентации транспортного средства в градусах.

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

свернуть все

Указывает на валидность запланированного пути к транспортному средству, refPath, или последовательность положений транспортного средства, refPoses, возвращенный как логическое значение 1 или 0.

Путь или последовательность положений допустимы (1) если следующие условия верны:

  • Последовательность пути или положения имеет по крайней мере одно положение.

  • Последовательность пути или положения без коллизий и в рамках costmap.

Алгоритмы

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

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

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

Введенный в R2018a