plan

Запланируйте путь от запуска до целевого состояния

    Описание

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

    пример

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

    Примеры

    свернуть все

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

    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 объект.

    Начальное состояние пути в виде s - вектор элемента. s является количеством переменных состояния в пространстве состояний. Например, робот в SE (2) пробел имеет вектор состояния [x y theta].

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

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

    Целевое состояние пути в виде s - вектор элемента. s является количеством переменных состояния в пространстве состояний. Например, робот в SE (2) пробел имеет вектор состояния [x y theta].

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

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

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

    свернуть все

    Запланированная информация о пути, возвращенная как navPathControl объект.

    Информация о решении, возвращенная как структура. Структура содержит эти поля:

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

    Указывает на оконечное состояние планировщика, возвращенного как одна из этих опций:

    • 1 — Цель успешно достигнута

    • 2 — Превышенное максимальное количество итераций

    • 3 — Превышенное максимальное количество узлов

    • 4 — Превышенное максимальное время планирования

    NumTreeNodeКоличество узлов в дереве поиска, когда планировщик отключает, исключая корневой узел.
    NumIterationsКоличество дополнительных стандартных программ выполняется.
    PlanningTimeПрошедшее время при планировании, возвратилось как скаляр в секундах.
    TreeInfoНабор исследуемых состояний, который отражает состояние дерева поиска, когда планировщик отключает. Обратите внимание на то, что планировщик вставляет NaN значения как разделители, чтобы разделить каждое отдельное ребро.

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

    Смотрите также

    Объекты

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