checkOccupied

Проверьте косметику транспортного средства на занятые положения или точки

Описание

The checkOccupied функция проверяет, заняты ли положения или точки транспортного средства препятствиями на косметической карте транспортного средства. Алгоритмы планирования пути используют checkOccupied чтобы проверить, являются ли положения кандидата транспортного средства вдоль пути судоходными.

Чтобы упростить проверку столкновения для положения транспортного средства, vehicleCostmap создает препятствия в соответствии с InflationRadius транспортного средства, как указано в CollisionChecker свойство косметики. Проверка столкновения вычисляет радиус надувания путем окружения транспортного средства набором перекрывающихся кругов радиуса R, где центры этих кругов лежат вдоль продольной оси транспортного средства. Радиус инфляции является минимальным R, необходимым для полного окружения транспортного средства в этих кругах. Положение транспортного средства без столкновения, когда ни один из центров этих кругов не лежит на надутой сеточной камере. Для получения дополнительной информации смотрите алгоритм на vehicleCostmap страница с описанием.

пример

occ = checkOccupied(costmap,vehiclePoses) проверяет, заняты ли положения транспортного средства.

occ = checkOccupied(costmap,xyPoints) проверяет, имеют ли (x, y) точки в xyPoints заняты.

occMat = checkOccupied(costmap) возвращает логическую матрицу, которая указывает, занята ли каждая камера косметики.

Примеры

свернуть все

Загрузите косметику с парковки.

data = load('parkingLotCostmap.mat');
parkMap = data.parkingLotCostmap;
plot(parkMap)

Создайте положения транспортного средства, следующие по прямолинейному пути. x и y - координаты (x, y) задней оси транспортного средства. theta - угол задней оси относительно оси X. Обратите внимание, что размерности транспортного средства хранятся в vehicleDimensions свойство косметической карты и смещение между задней осью транспортного средства и ее центром.

x = 6:0.25:10;
y = repmat(5,size(x));
theta = zeros(size(x));
vehiclePoses = [x',y',theta'];
hold on
plot(x,y,'b.')

Figure contains an axes. The axes contains 3 objects of type image, patch, line. This object represents Inflated Areas.

Проверьте, заняты ли положения.

occ = checkOccupied(parkMap,vehiclePoses)
occ = 17x1 logical array

   0
   0
   0
   0
   0
   1
   1
   1
   1
   1
      ⋮

Положения транспортного средства заняты, начиная с шестого положения. Другими словами, центр транспортного средства в шестом положении находится в радиусе накачки занятой сеточной камеры.

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

свернуть все

Costmap, заданный как vehicleCostmap объект.

Положения транспортного средства, определенные как матрица <reservedrangesplaceholder4>-by-3 [x, y, Θ] векторы. m - количество положений.

x и y указать местоположение транспортного средства в мировых единицах измерения, таких как метры. Это место является центром задней оси транспортного средства.

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

Пример: [3.4 2.6 0] задает транспортное средство с центром задней оси (3,4, 2,6) и углом ориентации 0 степеней.

Точки, заданные как M -by-2 вещественная матрица, которая представляет (x, y) координаты M точек.

Пример: [3.4 2.6] задает одну точку в (3.4, 2.6)

Пример: [3 2;3 3;4 7] задает три точки: (3, 2), (3, 3) и (4, 7)

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

свернуть все

Положение или точка транспортного средства занята, возвращается как M-на-1 логический вектор. Элемент occ является 1 (true), когда соответствующее транспортное средство помещается в vehiclePoses или плоскую точку в xyPoints занят.

Камера Costmap занята, возвращается как логическая матрица того же размера, что и сетка costmap. Этот размер задан в MapSize свойство costmap. Элемент occMat является 1 (true), когда соответствующая камера в costmap занят.

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

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

.

См. также

Объекты

Функции

Введенный в R2018a