checkPathValidity

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

Описание

пример

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

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

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

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

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

Примеры

свернуть все

Планируйте путь автомобиля через парковку с помощью оптимального быстро исследующего алгоритма случайного дерева (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.

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

свернуть все

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

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

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

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

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

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

свернуть все

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

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

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

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

Алгоритмы

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

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

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

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