driving.Path

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

Описание

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

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

Создание

Как создать driving.Path объект, использовать plan функция, задающая pathPlannerRRT объект как вход.

Свойства

расширить все

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

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

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

Целевое положение транспортного средства, заданное как вектор [x, y, Θ]. 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, Мировые единицы измерения (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.

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

расширить все

Не рекомендуемый запуск в R2018b

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

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

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