insertRay

Вставьте луч из наблюдения лазерного скана

Описание

пример

insertRay(map,pose,scan,maxrange) вставляет одно или несколько наблюдений датчика скана лидара в сетку заполнения, map, с использованием входа lidarScan (Robotics System Toolbox) объект, scan, чтобы получить конечные точки луча. Местоположения конечных точек обновляются с использованием занятого значения. Если области значений выше maxrangeконечные точки луча считаются свободным пространством. Все другие точки вдоль луча обрабатываются как свободные от препятствий.

insertRay(map,pose,ranges,angles,maxrange) задает показания области значений как векторы, заданные входом ranges и angles.

insertRay(map,startpt,endpoints) вставляет наблюдения между сегментами линии от начальной точки до конечных точек. Конечные точки обновляются, это занимаемое пространство, а другие точки вдоль сегментов линии обновляются как свободное пространство.

Примеры

свернуть все

Создайте пустую двоичную сетку заполнения.

map = binaryOccupancyMap(10,10,20);

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

pose = [5,5,0];
ranges = 3*ones(100,1);
angles = linspace(-pi/2,pi/2,100);
maxrange = 20;

Создайте lidarScan объект с заданными областями и углами.

scan = lidarScan(ranges,angles);

Вставьте данные лазерного скана в карту заполнения.

insertRay(map,pose,scan,maxrange);

Отобразите карту, чтобы увидеть результаты вставки лазерного скана.

show(map)

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

Проверить заполнение места непосредственно перед транспортным средством.

getOccupancy(map,[8 5])
ans = logical
   1

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

свернуть все

Представление карты, заданное как binaryOccupancyMap объект. Этот объект представляет окружение робота. Объект содержит матричную сетку с двоичными значениями, указывающими на препятствия как true (1) и свободные местоположения как false (0).

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

Чтения сканов лидара, заданные как lidarScan объект.

Значения области значений от данных скана, заданные как вектор элементов, измеренных в метрах. Эти значения области значений являются расстояниями от датчика при заданных angles. Вектор должен быть такой же длины, как и соответствующий angles вектор.

Значения углов из данных скана, заданные как вектор элементов, измеренных в радианах. Эти значения угла соответствуют заданному ranges. Вектор должен быть такой же длины, как и соответствующий ranges вектор.

Максимальная область значений датчика лазерной области значений, заданная как скаляр в метрах. Области значений, большем или равном maxrange считаются свободными по всей длине луча, до maxrange.

Стартовая точка для лучей, заданная как двухэлементный вектор, [x y] , в мировой координатной системе координат. Все лучи являются сегментами линии, которые начинаются в этой точке.

Конечные точки для лучей, заданные как n-на-2 матрица [x y] пары в мировой координатной системе координат, где n - длина ranges или angles. Все лучи являются сегментами линии, которые берут начало в startpt.

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

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

.

См. также

| | (Robotics System Toolbox) | (Robotics System Toolbox)

Темы

Введенный в R2019b