plan

Запланируйте путь между двумя состояниями

Описание

path = plan(planner,startState,goalState) возвращает path от начального состояния до целевого состояния.

пример

[path,solutionInfo] = plan(planner,startState,goalState) также возвращает solInfo это содержит информацию о решении планирования пути.

Примеры

свернуть все

Создайте пространство состояний.

ss = stateSpaceSE2;

Создайте occupanyMap- основанный блок проверки допустимости состояния, использующий созданное пространство состояний.

sv = validatorOccupancyMap(ss);

Создайте карту occupany из карты в качестве примера и установите разрешение карты как 10 ячеек/метр.

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

Установите расстояние валидации для блока проверки допустимости.

sv.ValidationDistance = 0.01;

Обновите границы пространства состояний, чтобы совпасть с пределами карты.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

Создайте планировщика пути и увеличьте макс. расстояние связи.

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

Установите запуск и целевые состояния.

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

Запланируйте путь с настройками по умолчанию.

rng(100,'twister'); % for repeatable result
[pthObj,solnInfo] = plan(planner,start,goal);

Визуализируйте результаты.

show(map)
hold on
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1),pthObj.States(:,2),'r-','LineWidth',2) % draw path

Figure contains an axes object. The axes object with title Occupancy Grid contains 3 objects of type image, line.

Входные параметры

свернуть все

Планировщик пути в виде plannerRRT возразите или plannerRRTStar объект.

Начальное состояние пути в виде N - элемент вектор с действительным знаком. N является размерностью пространства состояний.

Пример: [1 1 pi/6]

Типы данных: single | double

Целевое состояние пути в виде N - элемент вектор с действительным знаком. N является размерностью пространства состояний.

Пример: [2 2 pi/3]

Типы данных: single | double

Выходные аргументы

свернуть все

Объект, который содержит запланированную информацию пути, возвратился как navPath объект.

Информация о решении, возвращенная как структура. Поля структуры:

Поля solutionInfo

Поля Описание
IsPathFoundУказывает, найден ли путь. Это возвращается как 1 если путь найден. В противном случае это возвращает 0.
ExitFlag

Указывает на оконечное состояние планировщика, возвращенного как

  • 1 — если цель достигнута

  • 2 — если максимальное количество итераций достигнуто

  • 3 — если максимальное количество узлов достигнуто

NumNodesКоличество узлов в дереве поиска, когда планировщик отключает (исключая корневой узел).
NumIterationsКоличество "расширяет" выполняемые стандартные программы.
TreeDataНабор исследуемых состояний, который отражает состояние дерева поиска, когда планировщик отключает. Обратите внимание на то, что NaN значения вставляются как разделители, чтобы разделить каждое отдельное ребро.
PathCosts

Содержит стоимость пути в каждой итерации. Значение для итераций, когда путь не достиг цели, обозначается NaN. Размером массива является NumIterations- 1. Последний элемент содержит стоимость итогового пути.

Примечание

Это поле применимо только для plannerRRTStar объект.

Типы данных: structure

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

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

Введенный в R2019b
Для просмотра документации необходимо авторизоваться на сайте