rangeSensor

Симулируйте переносящие область значений показания датчика

Описание

rangeSensor Система object™ является переносящим область значений датчиком, который способен к выводу области значений и угловых измерений на основе данного положения датчика и карты заполнения. Переносящие область значений показания основаны на препятствиях в карте заполнения.

Симулировать переносящий область значений датчик с помощью этого объекта:

  1. Создайте rangeSensor объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

rbsensor = rangeSensor возвращает rangeSensor Системный объект, rbsensor. Датчик способен к выводу области значений и угловых измерений на основе положения датчика и карты заполнения.

rbsensor = rangeSensor(Name,Value) свойства наборов для датчика с помощью одной или нескольких пар "имя-значение". Незаданные свойства имеют значения по умолчанию. Заключите каждое имя свойства в кавычки.

Свойства

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

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

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

Пример: [1 15]

Настраиваемый: да

Типы данных: single | double

Минимальный и максимальный горизонтальный угол обнаружения в виде 1 2 вектора с действительным знаком. Модули исчисляются в радианах.

Пример: [-pi/3 pi/3]

Типы данных: single | double

Разрешение горизонтальных угловых показаний в виде положительной скалярной величины. Разрешение задает угловой интервал между двумя последовательными показаниями датчика. Модули исчисляются в радианах.

Пример: 0.01

Типы данных: single | double

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

Пример: 0.01

Настраиваемый: да

Типы данных: single | double

Стандартное отклонение горизонтального углового шума в виде положительной скалярной величины. Шум области значений моделируется как нулевой средний процесс белого шума с заданным стандартным отклонением. Модули исчисляются в радианах.

Пример: 0.01

Настраиваемый: да

Типы данных: single | double

Это свойство доступно только для чтения.

Количество выходных показаний для каждого положения датчика в виде положительного целого числа. Это свойство зависит от HorizonalAngle и HorizontalAngleResolution свойства.

Типы данных: single | double

Использование

Описание

[ranges,angles] = rbsensor(pose,map) возвращает область значений и угловые показания от 2D информации о положении и карты основной истины.

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

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

Положения датчика в 2D карте в виде N-by-3 матрица с действительным знаком, где N является количеством положений, чтобы симулировать датчик. Каждая строка матрицы соответствует положению датчика в порядке [x, y, θ]. x и y представляют положение датчика в системе координат карты. Модули x и y исчисляются в метрах. θ является углом рыскания датчика относительно положительного x - направление системы координат карты. Модули θ исчисляются в радианах.

Карта основной истины в виде occupancyMap (Navigation Toolbox) или binaryOccupancyMap Объект (Navigation Toolbox). Для occupancyMap введите, переносящий область значений датчик рассматривает ячейку, как занято и возвращает область значений, читающую, если вероятность заполнения ячейки больше значения, заданного OccupiedThreshold (Navigation Toolbox) свойство карты заполнения.

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

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

Показания области значений в виде R-by-N матрица с действительным знаком. N является количеством положений, для которых симулирован датчик, и R является количеством показаний датчика на положение датчика. R - то же самое как значение NumReadings свойство.

Угловые показания в виде R-by-1 вектор с действительным знаком. R является количеством показаний датчика на положение датчика. R - то же самое как значение NumReadings свойство.

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
cloneСоздайте объект дублированной системы

Примеры

свернуть все

Создайте переносящий область значений датчик.

rbsensor = rangeSensor;

Задайте положение датчика и карты основной истины.

truePose = [0 0 pi/4];
trueMap = binaryOccupancyMap(eye(10));

Сгенерируйте показания датчика.

[ranges, angles] = rbsensor(truePose, trueMap);

Визуализируйте результаты с помощью lidarScan.

scan = lidarScan(ranges, angles);
figure
plot(scan)

Figure contains an axes object. The axes object with title LiDAR Scan contains an object of type line.

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

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

(Navigation Toolbox) | (Navigation Toolbox) |

Введенный в R2020b