checkOccupied

Проверяйте транспортное средство costmap на занятые положения или точки

Описание

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

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

пример

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

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

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

Примеры

свернуть все

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

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

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

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 объект.

Транспортное средство излагает в виде m-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-by-1 логический вектор. Элемент occ 1 TRUE) когда соответствующее положение транспортного средства в vehiclePoses или плоская точка в xyPoints занят.

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

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

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

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

Объекты

Функции

Введенный в R2018a