rangeSensor

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

Описание

The 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) возвращает показания области значений и угла из информации о положении 2-D и карты основной истины.

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

расширить все

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

Карта «земля-правда», заданная как occupancyMap или binaryOccupancyMap объект. Для occupancyMap вход, несущий диапазон, рассматривает камеру как занятую и возвращает значение области значений, если вероятность заполнения камеры больше значения, заданного OccupiedThreshold свойство карты заполнения.

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

расширить все

Показания области значений, заданные как 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. The axes with title LiDAR Scan contains an object of type line.

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

.
Введенный в R2019b