pathPlannerRRT

Сконфигурируйте планировщик пути RRT *

Описание

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

Один раз в pathPlannerRRT объект сконфигурирован, использовать plan функция для планирования пути от начального положения до цели.

Создание

Описание

пример

planner = pathPlannerRRT(costmap) возвращает pathPlannerRRT объект для планирования пути транспортного средства. costmap является vehicleCostmap объект, определяющий окружение вокруг транспортного средства. costmap устанавливает Costmap значение свойства.

planner = pathPlannerRRT(costmap,Name,Value) устанавливает свойства планировщика пути с помощью одного или нескольких аргументов пары "имя-значение". Для примера, pathPlanner(costmap,'GoalBias',0.5) устанавливает GoalBias свойство до вероятности 0,5. Заключайте каждое имя свойства в кавычки.

Свойства

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

Косметика окружения транспортного средства, заданная как vehicleCostmap объект. Косметика используется для проверки столкновения случайным образом сгенерированных положений. Задайте эту косметику при создании pathPlannerRRT объект с использованием costmap вход.

Допуск вокруг положения цели, заданный как вектор [xTol, yTol, ΘTol]. Планировщик пути заканчивает планирование, когда транспортное средство достигает положения цели в пределах этих допусков для (x, y) положения и угла ориентации, Θ. Значения xTol и yTol находятся в тех же мировых единицах измерения, что и vehicleCostmap. ΘTol в степенях.

Вероятность выбора положения цели вместо случайного положения, заданная как действительный скаляр в области значений [0, 1]. Большие значения ускоряют достижение цели с риском неспособности обойти препятствия.

Метод, используемый для вычисления связи между последовательными положениями, заданный как 'Dubins' или 'Reeds-Shepp'. Использование 'Dubins' если разрешены только движения вперед.

The 'Dubins' способ содержит последовательность из трех примитивных движений, каждый из которых является одним из следующих типов:

  • Прямая (вперед)

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

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

Если вы используете этот метод соединения, то сегменты запланированного пути транспортного средства сохраняются как массив driving.DubinsPathSegment объекты.

The 'Reeds-Shepp' способ содержит последовательность из трех-пяти примитивных движений, каждый из которых является одним из следующих типов:

  • Прямая (вперед или назад)

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

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

Если вы используете этот метод соединения, то сегменты запланированного пути транспортного средства сохраняются как массив driving.ReedsSheppPathSegment объекты.

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

Максимальное расстояние между двумя связанными положениями, заданное как положительный действительный скаляр. pathPlannerRRT вычисляет расстояние соединения вдоль пути между двумя положениями с включенными поворотами. Большие значения приводят к более длинным сегментам контура между положениями.

Минимальный радиус поворота транспортного средства, заданный как положительный действительный скаляр. Это значение соответствует радиусу поворотного круга при максимальном угле поворота. Большие значения ограничивают максимальный угол поворота для планировщика пути, а меньшие значения приводят к более резким поворотам. Значение по умолчанию вычисляется с помощью колесной базы в 2,8 метра с максимальным углом поворота руля 35 степеней.

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

Максимальное количество итераций планировщика для исследования косметики, заданное как положительное целое число. Увеличение этого значения увеличивает количество выборок для нахождения допустимого пути. Если допустимый путь не найден, планировщик пути выходит после превышения этого максимума.

Включите приблизительный поиск по ближайшему соседу, заданный как true или false. Установите это значение равным true использовать более быстрый, но приблизительный алгоритм поиска. Установите это значение равным false использовать точный алгоритм поиска за счет увеличения времени расчета.

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

planПланируйте путь транспортного средства с помощью планировщика пути RRT *
plotПостройте график пути, запланированный планировщиком пути RRT *

Примеры

свернуть все

Планируйте путь к парковочному месту при помощи алгоритма RRT *.

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

data = load('parkingLotCostmapReducedInflation.mat');
costmap = data.parkingLotCostmapReducedInflation;
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 = [11, 10, 0]; % [meters, meters, degrees]
goalPose  = [31.5, 17, 90];

Создайте планировщик пути RRT *, чтобы планировать путь от начального положения до положения цели.

planner = pathPlannerRRT(costmap);
refPath = plan(planner,startPose,goalPose);

Постройте график запланированного пути.

plot(planner)

Figure contains an axes. The axes contains 12 objects of type image, patch, scatter, line, polygon. These objects represent Inflated Areas, Planned Path, Desired Goal Pose.

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

Совет

  • Обновление любого из свойств планировщика очищает запланированный путь от pathPlannerRRT. Вызов plot отображает только косметику до тех пор, пока путь не будет запланирован с помощью plan.

  • Чтобы улучшить эффективность, pathPlannerRRT объект использует приблизительный поиск по ближайшему соседу. Этот метод поиска проверяет только sqrt(N) узлы, где N - число узлов для поиска. Чтобы использовать точный ближайший поиск по соседству, установите ApproximateSearch свойство к false.

  • Методы соединения Дубинса и Ридса-Шеппа приняты кинематически допустимыми и игнорируют инерционные эффекты. Эти методы делают планировщик пути подходящим для низких скоростей окружений, где инерционные эффекты сил колеса малы.

Ссылки

[1] Караман, Сертак и Эмилио Фраццоли. «Оптимальное планирование кинодинамического движения с использованием методов инкрементальной выборки». 49-я конференция IEEE по принятию решений и контролю (CDC). 2010.

[2] Шкель, Андрей М., и Владимир Лумельский. Классификация набора Дубинса. Робототехника и автономные системы. Том 34, № 4, 2001, стр. 179-202.

[3] Ридс, Дж. А., и Л. А. Шепп. «Оптимальные пути для автомобиля, который идет как вперед, так и назад». Pacific Journal of Mathematics. Том 145, № 2, 1990, стр. 367-393.

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

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