show

Визуализируйте метрики пути в среде карты

Описание

пример

show(pathMetricsObj) строит путь в среде карты с минимальным разрешением.

show(pathMetricsObj,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение".

axHandle = show(pathMetricsObj) выводит указатель осей фигуры, используемой, чтобы построить путь.

Примеры

свернуть все

Вычислите гладкость, разрешение и валидность запланированного пути на основе набора положений и связанной среды карты.

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

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

load exampleMaps.mat; % simpleMap
mapResolution = 1; % cells/meter
map = occupancyMap(simpleMap,mapResolution);

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

statespace = stateSpaceDubins;

Создайте блок проверки допустимости состояния на основе карты заполнения, чтобы сохранить параметры и состояния в пространстве состояний Dubins.

statevalidator = validatorOccupancyMap(statespace);

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

statevalidator.Map = map;

Установите расстояние валидации для блока проверки допустимости.

statevalidator.ValidationDistance = 0.01;

Обновите границы пространства состояний, чтобы совпасть с пределами карты.

statespace.StateBounds = [map.XWorldLimits;map.YWorldLimits;[-pi pi]];

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

Создайте RRT* планировщик пути и позвольте дальнейшую оптимизацию.

planner = plannerRRTStar(statespace,statevalidator);
planner.ContinueAfterGoalReached = true;

Сократите максимальное количество итераций и увеличьте максимальное расстояние связи.

planner.MaxIterations = 2500;
planner.MaxConnectionDistance = 0.3;

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

start = [2.5, 2.5, 0]; % [meters, meters, radians]
goal = [22.5, 8.75, 0];

Запланируйте путь от начального состояния до целевого состояния. Функция плана возвращает navPath объект.

rng(100,'twister') % repeatable result
[path,solutionInfo] = plan(planner,start,goal);

Вычислите и визуализируйте метрики пути

Создайте метрический объект пути.

pathMetricsObj = pathmetrics(path,statevalidator);

Проверяйте валидность пути. Результатом является 1 (true) если запланированный путь является свободным препятствием. 0 (false) указывает на недопустимый путь.

isPathValid(pathMetricsObj)
ans = logical

   1

Вычислите минимальное разрешение пути.

clearance(pathMetricsObj)
ans = 
          0.21

Оцените гладкость пути. Значения близко к 0 укажите на более сглаженный путь. Прямолинейные пути возвращают значение 0.

smoothness(pathMetricsObj)
ans = 
          2.21

Визуализируйте минимальное разрешение пути.

show(pathMetricsObj)
legend('Planned Path','Minimum Clearance')

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

свернуть все

Информация для метрик пути, заданных как pathmetrics объект.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Parent',axHandle

Оси раньше строили путь, заданный как разделенная запятой пара, состоящая из 'Parent' и любой axes или uiaxes объект. Если вы не задаете Parent, создается новая фигура.

Пример: show(pathMetricsObj,'Parent',axHandle)

Отобразите метрическую опцию, заданную как разделенная запятой пара, состоящая из 'Metrics' и массив ячеек с любой комбинацией этих значений:

  • 'MinClearance' — Отобразите минимальное разрешение пути.

  • 'StatesClearance' — Отобразите разрешение состояний пути.

  • 'Smoothness' — Отобразите гладкость пути.

Пример: show(pathMetricsObj,'Metrics',{'Smoothness','StatesClearance'})

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

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

свернуть все

Оси, используемые, чтобы построить путь, возвратились как любой axes или uiaxes объект.

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

Объекты

Функции

Введенный в R2019b