exponenta event banner

plannerAStarGrid

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

    Описание

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

    Создание

    Описание

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

    пример

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

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

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

    Свойства

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

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

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

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

    Примечание

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

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

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

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

    Пользовательская функция GCost, заданная как дескриптор функции. Дескриптор функции должен принимать два входа позы в качестве векторов [столбца строки] и возвращать скаляр типа 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, заданная как дескриптор функции. Дескриптор функции должен принимать два входа позы в качестве векторов [столбца строки] и возвращать скаляр типа double.

    Примечание

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

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

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

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

    Переключить режим tiebreaker, указанный как 'on' или 'off'.

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

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

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

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

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

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

    Примеры

    свернуть все

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

    Создать 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