plannerAStarGrid

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

    Описание

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

    Создание

    Описание

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

    пример

    planner = plannerAStarGrid(map) создает plannerAStarGrid объект, использующий указанный объект map map. Задайте map как binaryOccupancyMap или occupancyMap объект. The 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, заданная как указатель на функцию. Указатель на функцию должен принять два входов положения как векторы [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 свойство, планировщик пути 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++ с помощью Coder™ MATLAB ®

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