driving.ReedsSheppPathSegment

Сегмент пути тростников-Shepp

Описание

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

  • Прямо (вперед или реверс)

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

Когда сегмент пути требует меньше чем пяти движений, остающегося MotionLengths элементы установлены в 0. Остающийся MotionTypes элементы установлены в "N" (никакое движение).

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

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

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

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

"R"

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

"N"Никакое движение

MotionTypes содержит минимум трех движений в виде комбинации "S"L, и "R" элементы. Если сегмент пути имеет меньше чем пять движений, остающиеся элементы MotionTypes "N" (никакое движение).

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

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

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

Направление каждого движения в сегменте пути в виде вектора с пятью элементами 1 с (движение вперед) и –1s (инвертируют движение). Каждое направление движения соответствует продолжительности движения, заданной в MotionLengths и тип движения задан в MotionTypes.

Когда никакое движение не происходит, то есть, когда MotionTypes значением является "N", затем соответствующий MotionDirections элементом является 1.

Пример: [-1 1 -1 1 1]

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

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

Примеры

свернуть все

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

Загрузите 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 = [48.75, 29.75, 90];

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

planner = pathPlannerRRT(costmap);
planner.ConnectionMethod = 'Reeds-Shepp';
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 31 objects of type image, patch, scatter, line, polygon. These objects represent Inflated Areas, Planned Path, Transition Poses.

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

Ссылки

[1] Тростники, J. A. и Л. А. Шепп. "Оптимальные Пути для Автомобиля, Который Идет И Вперед и Назад". Тихоокеанский Журнал Математики. Издание 145, Номер 2, 1990, стр 367–393.

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

Введенный в R2018b