plan

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

Описание

пример

path = plan(planner,start,goal) вычисляет путь без препятствий между запуском и целевыми положениями в виде [x y theta] векторы, с помощью входа plannerHybridAStar объект.

[path,directions] = plan(planner,start,goal) также возвращает направление движения для каждого положения вдоль пути, directions, как вектор-столбец. Значение 1 указывает на прямое направление и значение -1 указывает на обратное направление. Функция возвращает вектор пустого столбца, когда планировщик не может найти путь.

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

Примеры

свернуть все

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

Создайте и присвойте карту блоку проверки допустимости состояния

Загрузите величину затрат на ячейки в транспортном средстве costmap парковки.

load parkingLotCostVal.mat % costVal

Создайте binaryOccupancyMap с величиной затрат.

map = binaryOccupancyMap(costVal);

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

validator = validatorOccupancyMap;

Присвойте карту объекту блока проверки допустимости состояния.

validator.Map = map;

Запланируйте и визуализируйте путь

Инициализируйте plannerHybridAStar объект с объектом блока проверки допустимости состояния. Задайте MinTurningRadius и MotionPrimitiveLength свойства планировщика.

planner = plannerHybridAStar(validator,'MinTurningRadius',4,'MotionPrimitiveLength',6);

Задайте запускаются и целевые положения для транспортного средства как [x, y, theta] векторы. X и Y задают положение в метрах, и theta задает угол ориентации в радианах.

startPose = [6 10 pi/2]; % [meters, meters, radians]
goalPose = [90 54 -pi/2];

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

refpath = plan(planner,startPose,goalPose);

Визуализируйте использование пути, показывают функцию.

show(planner)

Figure contains an axes object. The axes object with title Hybrid A* Path Planner contains 6 objects of type image, line, scatter. These objects represent Forward Motion Primitives, Reverse Motion Primitives, Forward Path, Start, Goal.

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

свернуть все

Гибрид* планировщик пути в виде plannerHybridAStar объект.

Запустите местоположение пути в виде 1 3 вектор в форме [x y theta] . x и y задают положение в метрах, и theta задает угол ориентации в радианах.

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

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

Итоговое местоположение пути в виде 1 3 вектора в форме [x y theta] . x и y задают положение в метрах, и theta задает угол ориентации в радианах.

Пример: [45 45 pi/4]

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

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

свернуть все

Путь без препятствий, возвращенный как navPath объект.

Направление движения для каждого положения вдоль пути, возвращенного как вектор-столбец 1s (вперед) и –1s (реверс).

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

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

Поля solutionInfo

Поля Описание
IsPathFoundУказывает, найден ли путь. Это возвращается как 1 если путь найден. В противном случае это возвращает 0.
NumNodesКоличество узлов в дереве поиска, когда планировщик отключает (исключая корневой узел).
NumIterationsКоличество планирования выполняемых итераций.

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

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

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

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