plannerAStarGrid

* планировщик пути для карты сетки

    Описание

    plannerAStarGrid объект создает* планировщик пути. Планировщик выполняет*, поиск на заполнении сопоставляет, и находит самый короткий путь без препятствий между заданным запуском и целевыми местоположениями сетки, как определено эвристической стоимостью.

    Создание

    Описание

    planner = plannerAStarGrid создает plannerAStarGrid объект с binaryOccupancyMap объект с помощью ширины и высоты 10 метров и разрешения сетки 1 ячейки на метр.

    пример

    planner = plannerAStarGrid(map) создает plannerAStarGrid объект с помощью заданного объекта map карты. Задайте map как любой binaryOccupancyMap или occupancyMap объект. map введите устанавливает значение свойства Map.

    planner = plannerAStarGrid(___,Name,Value) Свойства наборов с помощью одной или нескольких пар "имя-значение". Незаданные свойства имеют значения по умолчанию. Заключите каждое имя свойства в кавычки.

    Например, plannerAStarGrid(map,'GCost','Manhattan') создает* объект планировщика пути использование манхэттенской функции стоимости.

    Свойства

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

    Сопоставьте представление в виде любого binaryOccupancyMap или occupancyMap объект. Этот объект представляет среду робота как сетка заполнения. Значение каждой ячейки сетки указывает на заполнение связанного местоположения в карте.

    Пример: planner.Map = binaryOccupancyMap(zeros(50,50));

    Общая стоимость перемещения между любыми двумя точками в сетке в виде одной из следующих предопределенных функций стоимости 'Chebyshev', 'Euclidean', 'EulideanSquared', или 'Manhattan'.

    Примечание

    Можно или использовать предопределенные функции стоимости или пользовательскую функцию стоимости. Чтобы использовать пользовательскую функцию стоимости, смотрите свойство GCostFcn.

    Пример: planner = plannerAStarGrid(map,'GCost','Manhattan');

    Пример: planner.GCost = 'Chebyshev';

    Типы данных: string | char

    Пользовательские GCost функционируют в виде указателя на функцию. Указатель на функцию должен принять два входных параметров положения как [row column] векторы и возвратить скаляр, типа double.

    Примечание

    Можно или использовать предопределенные функции стоимости или пользовательскую функцию стоимости. Чтобы использовать предопределенные функции стоимости, смотрите свойство GCost.

    Пример: planner = plannerAStarGrid(map,'GCostFcn',@(pose1,pose2)sum(abs(pose1-pose2),2));

    Пример: planner.GCostFcn = @(pose1,pose2)sum(abs(pose1-pose2),2);

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

    Эвристическая стоимость между точкой и целью в сетке в виде одной из следующих предопределенных функций стоимости 'Chebyshev', 'Euclidean', 'EulideanSquared', или 'Manhattan'.

    Примечание

    Можно или использовать предопределенные функции стоимости или пользовательскую функцию стоимости. Чтобы использовать пользовательскую функцию стоимости, смотрите свойство HCostFcn.

    Пример: planner = plannerAStarGrid(map,'HCost','Manhattan');

    Пример: planner.HCost = 'Chebyshev';

    Типы данных: string | char

    Пользовательские HCost функционируют в виде указателя на функцию. Указатель на функцию должен принять два входных параметров положения как [row column] векторы и возвратить скаляр, типа double.

    Примечание

    Можно или использовать предопределенные функции стоимости или пользовательскую функцию стоимости. Чтобы использовать предопределенные функции стоимости, смотрите свойство HCost.

    Пример: planner = plannerAStarGrid(map,'HCostFcn',@(pose1,pose2)sum(abs(pose1-pose2),2));

    Пример: planner.HCostFcn = @(pose1,pose2)sum(abs(pose1-pose2),2);

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

    Переключите режим дополнительного времени в виде любого 'on' или 'off'.

    Когда вы включаете TieBreaker свойство,* планировщик пути выбирает между разнообразными путями той же длины путем корректировки эвристической величины затрат.

    Пример: planner = plannerAStarGrid(map,'TieBreaker','on');

    Пример: planner.TieBreaker = 'off';

    Типы данных: string | char

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

    planНайдите самый короткий путь без препятствий между двумя точками
    showПостройте и визуализируйте* исследуемые узлы и запланированный путь

    Примеры

    свернуть все

    Запланируйте самый короткий путь без коллизий через карту сетки препятствия с помощью* алгоритм планирования пути.

    Сгенерируйте binaryOccupancyMap объект со случайным образом рассеянными препятствиями с помощью mapClutter функция.

    rng('default');
    map = mapClutter;

    Используйте карту, чтобы создать plannerAStarGrid объект.

    planner = plannerAStarGrid(map);

    Задайте запуск и целевые точки.

    start = [2 3];
    goal = [248 248];

    Запланируйте путь от стартовой точки до целевой точки.

    plan(planner,start,goal);

    Визуализируйте путь и исследуемые узлы с помощью show объектная функция.

    show(planner)

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

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

    Введенный в R2020b