exponenta event banner

вождение. Путь

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

Описание

driving.Path объект представляет путь транспортного средства, состоящий из последовательности сегментов пути. Эти сегменты могут быть driving.DubinsPathSegment объекты или driving.ReedsSheppPathSegment и хранятся в PathSegments имущество driving.Path.

Проверка действительности пути по vehicleCostmap объект, используйте checkPathValidity функция. Для интерполяции поз по длине траектории используйте interpolate функция.

Создание

Создание driving.Path объект, используйте plan функция, задание pathPlannerRRT объект в качестве входных данных.

Свойства

развернуть все

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

Исходная поза транспортного средства, указанная как вектор [x, y, Start]. x и y в мировых единицах, таких как метры. Λ в градусах.

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

Целевая поза транспортного средства, заданная как вектор [x, y, Start]. x и y в мировых единицах, таких как метры. Λ в градусах.

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

Сегменты вдоль траектории, заданные как массив driving.DubinsPathSegment объекты или driving.ReedsSheppPathSegment объекты.

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

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

Функции объекта

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

Примеры

свернуть все

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

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2018b

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018a