exponenta event banner

validatorOccupancyMap

Средство проверки состояния на основе карты сетки 2-D

Описание

validatorOccupancyMap объект проверяет состояния и дискретизированные движения на основе значения в карте занятости 2-D. Занятое местоположение карты интерпретируется как недопустимое состояние.

Создание

Синтаксис

Описание

validator = validatorOccupancyMap создает средство проверки карты заполнения 2-D, связанное с пространством состояния SE2 с настройками по умолчанию.

пример

validator = validatorOccupancyMap(stateSpace) создает средство проверки в заданном определении пространства состояния, полученном из nav.StateSpace.

validator = validatorOccupancyMap(stateSpace,Name,Value) задает Map или XYIndices свойства с использованием Name,Value аргументы пары.

Свойства

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

Пространство состояний для проверки состояний, указанное как подкласс nav.StateSpace. К предоставленным государственным космическим объектам относятся:

Карта, используемая для проверки состояний, указанная как binaryOccupancyMap или occupancyMap объект.

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

Отображение переменной состояния для координат xy в векторе состояния, указанном как двухэлементный вектор, [xIdx yIdx]. Например, если вектор состояния задан как [r p y x y z], координаты xy [4 5].

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

copyСоздание глубокой копии объекта проверки состояния
isStateValidПроверка допустимости состояния
isMotionValidПроверка допустимости пути между состояниями

Примеры

свернуть все

В этом примере показано, как проверить пути через среду.

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

load exampleMaps.mat
map = occupancyMap(simpleMap);
show(map)

Figure contains an axes. The axes with title Occupancy Grid contains an object of type image.

Укажите грубый путь к карте.

path = [2 2 pi/2; 10 15 0; 17 8 -pi/2];
hold on
plot(path(:,1),path(:,2),"--o")

Figure contains an axes. The axes with title Occupancy Grid contains 2 objects of type image, line.

Создание средства проверки состояния с помощью stateSpaceSE2 определение. Укажите карту и расстояние для интерполяции и проверки сегментов пути.

validator = validatorOccupancyMap(stateSpaceSE2);
validator.Map = map;
validator.ValidationDistance = 0.1;

Проверьте, являются ли точки пути допустимыми состояниями. Все три точки находятся в свободном пространстве, поэтому считаются действительными.

isValid = isStateValid(validator,path)
isValid = 3x1 logical array

   1
   1
   1

Проверьте движение между каждым последовательным состоянием пути. isMotionValid интерполирует по пути между состояниями. Если сегмент контура недопустим, постройте график последней допустимой точки вдоль контура.

startStates = [path(1,:);path(2,:)];
endStates = [path(2,:);path(3,:)];
    for i = 1:2
        [isPathValid, lastValid] = isMotionValid(validator,startStates(i,:),endStates(i,:));
        if ~isPathValid
            plot(lastValid(1),lastValid(2),'or')
        end
    end
hold off

Figure contains an axes. The axes with title Occupancy Grid contains 3 objects of type image, line.

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

.
Представлен в R2019b