driving.DubinsPathSegment

Описание

driving.DubinsPathSegment объект представляет сегмент запланированного пути к транспортному средству, который был соединен с помощью метода связи Dubins [1]. Сегмент пути Dubins состоит из последовательности трех движений. Каждое движение является одним из этих типов:

  • Прямо

  • Левый поворот под максимальным руководящим углом транспортного средства

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

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

driving.DubinsPathSegment объекты, которые представляют путь, хранятся в PathSegments свойство driving.Path объект. Эти пути планируются pathPlannerRRT возразите чей ConnectionMethod свойство установлено в 'Dubins'.

Свойства

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

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

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

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

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

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

Радиус превращения минимума транспортного средства, в мировых единицах измерения в виде положительного действительного скаляра. Это значение соответствует радиусу поворачивающегося круга под максимальным руководящим углом транспортного средства.

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

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

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

Тип каждого движения в сегменте пути в виде трехэлементного массива строк. Допустимые значения показывают в этой таблице.

Тип движенияОписание
"S"Прямо
"L"

Левый поворот под максимальным руководящим углом транспортного средства

"R"

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

Каждый тип движения соответствует продолжительности движения, заданной в MotionLengths.

Пример: ["R" "S" "R"]

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

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

Примеры

свернуть все

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

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

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

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

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

startPose = [4, 4, 90]; % [meters, meters, degrees]
goalPose = [53.3, 19, 90];

Используйте pathPlannerRRT возразите, чтобы запланировать путь от положения запуска до целевого положения. Установите ConnectionMethod свойство pathPlannerRRT возразите против 'Dubins'.

planner = pathPlannerRRT(costmap);
planner.ConnectionMethod = 'Dubins';
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

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

Заметьте, что путь от положения запуска до целевого положения не требует противоположного движения. Следовательно, запланированный путь допустим. В сценариях, где противоположное движение требуется, чтобы достигать целевого положения, используйте сегменты пути Тростников-Shepp, когда сегменты пути Dubins не позволяют противоположное движение.

Ссылки

[1] Shkel, Андрей М. и Владимир Лумельский. "Классификация Набора Dubins". Робототехника и Автономные системы. Издание 34, Номер 4, 2001, стр 179–202.

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

Введенный в R2018b