exponenta event banner

drivingRadarDataGenerator

Формирование радиолокационных датчиков и дорожек из сценария вождения

Описание

drivingRadarDataGenerator Система object™ формирует сообщения об обнаружении или отслеживании целей с модели автомобильного радиолокационного датчика. Этот объект используется для создания данных датчика из сценария управления, содержащего акторы и траектории, которые можно создать с помощью drivingScenario объект. При создании сценариев с помощью приложения Driving Script Designer радиолокационные датчики, установленные на эго-транспортном средстве, выводятся как drivingRadarDataGenerator объекты.

drivingRadarDataGenerator объект может моделировать кластеризованные или некластеризованные обнаружения с добавлением случайного шума, а также генерировать ложные аварийные обнаружения. Сгенерированные обнаружения можно объединить с другими данными датчика и отслеживать объекты с помощью multiObjectTracker объект. Также можно выводить дорожки непосредственно из drivingRadarDataGenerator объект. Чтобы настроить вывод конечных объектов как кластерных обнаружений, некластеризованных обнаружений или дорожек, используйте TargetReportFormat собственность.

Для формирования радиолокационного обнаружения или отслеживания сообщений:

  1. Создать drivingRadarDataGenerator и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

rdr = drivingRadarDataGenerator создает радиолокационный датчик, который сообщает о кластерных обнаружениях и использует значения свойств по умолчанию.

rdr = drivingRadarDataGenerator(id) устанавливает SensorIndex свойство для id.

пример

rdr = drivingRadarDataGenerator(___,Name,Value) задает свойства, используя одну или несколько пар имя-значение. Заключите каждое имя свойства в кавычки. Например, drivingRadarDataGenerator('TargetReportFormat','Tracks','FilterInitializationFcn',@initcvkf) создает радиолокационный датчик, который генерирует отчеты о дорожках с помощью трекера, который инициализируется линейным фильтром Калмана с постоянной скоростью.

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Идентификация датчика

Уникальный идентификатор датчика, указанный как положительное целое число. Это свойство используется для различения обнаружений или дорожек, поступающих от различных датчиков в мультисенсорной системе. Укажите уникальное значение для каждого датчика. Если вы не обновляете SensorIndex от значения по умолчанию 0затем радар возвращает ошибку в начале моделирования.

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

Частота обновления датчика, в герцах, заданная как положительный действительный скаляр. Обратная скорость обновления должна быть целочисленной кратной интервалу времени моделирования. Радар генерирует новые сообщения с интервалами, определяемыми этим обратным значением. Любое обновление датчика, запрошенное между интервалами обновления, не содержит обнаружений или дорожек.

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

Монтаж датчика

Местоположение датчика на раме кузова эго-транспортного средства в метрах, определяемое как действительный вектор 1 на 3 вида [x y z]. Это свойство определяет координаты датчика вдоль оси X, оси Y и оси Z относительно начала координат эго-транспортного средства, где:

  • Ось X указывает вперед от транспортного средства.

  • Ось Y указывает влево от транспортного средства.

  • Ось Z указывает вверх от земли.

Значением по умолчанию соответствует радар, который установлен в центре передней решетки седана.

Дополнительные сведения о системе координат эго-транспортного средства см. в разделе Системы координат в автоматизированной панели инструментов вождения.

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

Углы поворота РЛС, в градусах, указаны как действительный вектор формы 1 на 3 [zyaw ypitch xroll]. Это свойство определяет внутренний угол поворота Эйлера датчика вокруг оси Z, оси Y и оси X относительно рамы кузова эго-транспортного средства, где:

  • zyaw, или угол рыскания, вращает датчик вокруг оси z эго-транспортного средства.

  • ypitch, или угол наклона, вращает датчик вокруг оси y эго-транспортного средства. Это вращение происходит относительно положения датчика, которое является результатом вращения zyaw.

  • xroll, или угол крена, вращает датчик вокруг оси X эго-транспортного средства. Это вращение происходит относительно положения датчика, которое является результатом вращения zyaw и ypitch.

Эти углы являются положительными по часовой стрелке при взгляде в направлении вперед по оси Z, оси Y и оси X. Если визуализировать данные датчика с точки зрения высоты птичьего полета, то угол рыскания будет против часовой стрелки положительным, потому что вы просматриваете данные в отрицательном направлении оси Z, которая указывает вверх от земли.

Дополнительные сведения об этой системе координат см. в разделе Системы координат в автоматизированной панели инструментов вождения.

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

Отчеты об обнаружении

Включить РЛС для измерения углов места цели, указанных как логический 0 (false) или 1 (true). Установить для этого свойства значение true для моделирования радиолокационного датчика, который может оценивать высоту цели.

Типы данных: logical

Включить РЛС для измерения скорости целевой дальности, указанной как логическая 1 (true) или 0 (false). Установить для этого свойства значение true для моделирования радиолокационного датчика, который может измерять скорости дальности от целевых обнаружений.

Типы данных: logical

Включить добавление шума к измерениям радиолокационных датчиков, указанных как логические 1 (true) или 0 (false). Установить для этого свойства значение true добавление шума к радиолокационным измерениям. В противном случае измерения не имеют шума. Даже если установить HasNoise кому false, ковариационная матрица шума измерения, сообщенная в MeasurementNoise свойство вывода сгенерированных обнаружений объектов, dets, представляет шум измерения, добавляемый при HasNoise является true.

Типы данных: logical

Разрешить создание ложных радиолокационных измерений аварийных сигналов, указанных как логические 1 (true) или 0 (false). Установить для этого свойства значение true для сообщения о ложных тревогах. В противном случае радар сообщает только о фактических обнаружениях.

Типы данных: logical

Включить окклюзию линии видимости, заданную как логическая 1 (true) или 0 (false). Для генерации обнаружений только от объектов, для которых радар имеет прямую линию визирования, установите для этого свойства значение true. Например, при включенном этом свойстве радар не генерирует обнаружение транспортного средства, находящегося за другим транспортным средством и заблокированного из вида.

Типы данных: logical

Источник максимума количества отчетов об обнаружении или отслеживании, указанный как один из следующих вариантов:

  • 'Auto' - Датчик сообщает обо всех обнаружениях или трассах.

  • 'Property' - Датчик сообщает о первых N действительных обнаружениях или дорожках, где N равно MaxNumReports значение свойства.

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

Зависимости

Чтобы включить это свойство, установите значение MaxNumReportsSource свойство для 'Property'.

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

Формат сформированных целевых отчетов, указанный как один из следующих вариантов:

  • 'Clustered detections' - Датчик генерирует целевые отчеты в виде кластеризованных обнаружений, где каждая цель сообщается как одиночное обнаружение, которое является центроидом некластеризованных целевых обнаружений. Датчик возвращает кластеризованные обнаружения в виде массива objectDetection объекты, как описано в dets выходной аргумент.

  • 'Tracks' - Датчик генерирует целевые отчеты в виде дорожек, которые представляют собой кластеризованные обнаружения, обработанные фильтром слежения. Датчик возвращает дорожки в виде массива objectTrack объекты, как описано в tracks выходной аргумент.

  • 'Detections' - Датчик генерирует отчеты о цели в виде незасекреченных обнаружений, где каждая цель может иметь несколько обнаружений. Датчик возвращает незасекреченные обнаружения в виде массива objectDetection объекты, как описано в dets выходной аргумент.

Система координат сообщаемых обнаружений, заданная как одна из следующих опций:

  • 'Body' - Обнаружение регистрируется в прямоугольной системе кузова эго-транспортного средства.

  • 'Sensor rectangular' - Сигналы обнаружения регистрируются в системе прямоугольного корпуса радиолокационного датчика.

  • 'Sensor spherical' - Обнаружение регистрируется в сферической системе координат, которая центрируется на радиолокационном датчике и совмещается с ориентацией радара на эго-транспортном средстве.

Разрешение измерений

Азимутальное разрешение РЛС в градусах, указанное как положительный скаляр. Разрешение по азимуту определяет минимальное разделение по азимутальному углу, при котором РЛС может различать две цели. Разрешение по азимуту обычно представляет собой нисходящую точку 3 дБ диапазона азимутальных углов радара.

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

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

Зависимости

Чтобы включить это свойство, установите значение HasElevation свойство для true.

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

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

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

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

Зависимости

Чтобы включить это свойство, установите значение HasRangeRate свойство для true.

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

Смещение измерения

Азимутальная доля смещения РЛС, заданная как неотрицательный скаляр. Азимутальное смещение выражается как доля азимутального разрешения, указанного в AzimuthResolution собственность. Это значение устанавливает нижнюю границу азимутальной точности радара и безразмерно.

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

Доля смещения по высоте РЛС, определяемая как неотрицательный скаляр. Смещение по отметке выражается как часть разрешения по отметке, заданного ElevationResolution собственность. Это значение устанавливает нижнюю границу точности отметки РЛС и безразмерно.

Зависимости

Чтобы включить это свойство, установите значение HasElevation свойство для true.

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

Доля смещения дальности РЛС, определяемая как неотрицательный скаляр. Смещение диапазона выражается как доля разрешения диапазона, заданного RangeResolution собственность. Это свойство устанавливает нижнюю границу точности дальности радара и безразмерно.

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

Дальномерная доля смещения РЛС, заданная как неотрицательный скаляр. Смещение скорости диапазона выражается как доля разрешения скорости диапазона, определенного RangeRateResolution собственность. Это свойство устанавливает нижнюю границу точности скорости дальности радара и безразмерно.

Зависимости

Чтобы включить это свойство, установите значение HasRangeRate свойство для true.

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

Параметры обнаружения

Вероятность обнаружения цели, заданной как скаляр в диапазоне (0, 1]. Это свойство определяет вероятность обнаружения цели с радиолокационным сечением (RCS), ReferenceRCS, на эталонном диапазоне обнаружения, ReferenceRange.

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

Эталонный диапазон для заданной вероятности обнаружения и заданного эталонного сечения РЛС (RCS), в метрах, определяемый как положительный действительный скаляр. Опорная дальность - это дальность, на которой цель имеет сечение РЛС, определенное ReferenceRCS свойство обнаруживается с вероятностью обнаружения, указанной DetectionProbability собственность.

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

Эталонное сечение РЛС (RCS) для заданной вероятности обнаружения и опорного диапазона, в децибелах квадратных метров, указанное как действительный скаляр. Опорная RCS - это значение RCS, при котором цель обнаруживается с вероятностью, указанной DetectionProbability на указанном ReferenceRange значение.

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

Частота сообщений о ложных аварийных сигналах в каждой ячейке разрешения радара, заданная как положительный действительный скаляр в диапазоне [10-7, 10-3]. Единицы измерения безразмерны. Объект определяет ячейки разрешения из AzimuthResolution и RangeResolution и, если включено, из ElevationResolution и RangeRateResolution свойства.

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

Центральная частота диапазона РЛС, в герцах, заданная как положительный скаляр.

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

Угловое поле зрения РЛС в градусах, определяемое как положительный действительный вектор вида 1 на 2 [azfov elfov]. Поле зрения определяет общую угловую протяженность, охватываемую датчиком. Азимутальное поле зрения, azfov, должно лежать в интервале (0, 360]. Поле зрения фасада, elfov, должно лежать в интервале (0, 180].

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

Минимальная и максимальная дальность РЛС в метрах, указанная как неотрицательный действительный вектор вида 1 на 2 [min max]. РЛС не обнаруживает целей, находящихся вне этой дальности. Максимальный диапазон, max, должно быть больше минимального диапазона, min.

Минимальная и максимальная дальность РЛС, в метрах в секунду, заданная как действительный вектор вида 1 на 2 [min max]. РЛС не обнаруживает целей, находящихся вне этой дальности. Максимальная дальность, max, должно быть больше минимальной скорости диапазона, min.

Зависимости

Чтобы включить это свойство, установите значение HasRangeRate свойство для true.

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

Коэффициент усиления радиолокационного контура, определяемый как действительный скаляр. RadarLoopGain зависит от значений DetectionProbability, ReferenceRange, ReferenceRCS, и FalseAlarmRate свойства. Коэффициент усиления радиолокационного контура является функцией сообщаемого отношения сигнал/шум РЛС, SNR, сечения РЛС цели, RCS и целевого диапазона R, как описано этим уравнением:

SNR = RadarLoopGain + RCS - 40log10 (R)

SNR и RCS находятся в децибелах и децибелах квадратных метров соответственно, R - в метрах, и RadarLoopGain в децибелах.

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

Параметры отслеживания

Функция инициализации фильтра Калмана, заданная как дескриптор функции или как вектор символов или строковый скаляр имени допустимой функции инициализации фильтра Калмана.

В таблице показаны функции инициализации, которые можно использовать для определения FilterInitializationFcn.

Функция инициализацииОпределение функции
initcaabfИнициализация альфа-бета-фильтра Калмана с постоянным ускорением
initcvabfИнициализация фильтра Кальмана с постоянной скоростью альфа-бета
initcakfИнициализация линейного фильтра Калмана с постоянным ускорением.
initcvkfИнициализируйте линейный фильтр Калмана с постоянной скоростью.
initcaekfИнициализация расширенного фильтра Калмана с постоянным ускорением.
initctekf Инициализируйте расширенный фильтр Калмана с постоянной скоростью вращения.
initcvekfИнициализируйте расширенный фильтр Калмана с постоянной скоростью.
initcaukf Инициализация неописанного фильтра Калмана с постоянным ускорением.
initctukfИнициализируйте фильтр Калмана без запаха с постоянной скоростью вращения.
initcvukfИнициализация неописанного фильтра Калмана с постоянной скоростью.

Также можно создать собственную функцию инициализации. Функция должна иметь следующий синтаксис:

filter = filterInitializationFcn(detection)
Входные данные для этой функции представляют собой отчет об обнаружении, подобный отчету, созданному objectDetection объект. Результатом этой функции должен быть объект фильтра отслеживания, например, trackingKF, trackingEKF, trackingUKF, или trackingABF.

Чтобы помочь вам в написании этой функции, можно изучить подробные сведения о предоставленных функциях в MATLAB ®. Например:

type initcvekf

Зависимости

Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.

Типы данных: function_handle | char | string

Порог подтверждения трека, заданный как вектор 1 на 2 положительных целых чисел вида [M N]. Дорожка подтверждается, если она получает по крайней мере M обнаружения в последнем N обновления. M должно быть меньше или равно N.

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

  • При настройке Nрассмотрите, сколько раз трекер должен обновлять перед принятием решения о подтверждении. Например, если трекер обновляется каждые 0,05 секунды, а для принятия решения о подтверждении требуется 0,5 секунды, установите N = 10.

Пример: [3 5]

Зависимости

Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.

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

Порог удаления дорожки, заданный как вектор 1 на 2 положительных целых чисел вида [P R]. Если подтвержденная дорожка не назначена никакому обнаружению P время в последнем R трекер обновляется, затем трек удаляется. P должно быть меньше или равно R.

  • Чтобы уменьшить время, в течение которого радар поддерживает пути, уменьшите R или увеличить P.

  • Чтобы дольше поддерживать треки, увеличьте R или уменьшить P.

Пример: [3 5]

Зависимости

Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.

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

Система координат сообщаемых дорожек, заданная как один из следующих вариантов:

  • 'Body' - Треки указываются в прямоугольной системе кузова эго-транспортного средства.

  • 'Sensor' - Треки сообщаются в системе прямоугольного кузова радиолокационного датчика.

Зависимости

Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.

Целевые профили

Профили субъектов, указанные как структура или массив структур. Каждая структура содержит физические и радиолокационные характеристики актера.

  • Если ActorProfiles является единой структурой, все действующие лица drivingRadarDataGenerator объект использует этот профиль.

  • Если ActorProfiles является массивом, каждый актер, переданный в объект, должен иметь уникальный профиль актера.

Чтобы создать массив структур для сценария управления, используйте actorProfiles функция. В таблице показаны допустимые поля структуры. Если поле не указано, ему присваивается значение по умолчанию. Если в объект не передаются актеры, то ActorID поле не включено.

ОбластьОписание
ActorIDОпределяемый сценарием идентификатор субъекта, указанный как положительное целое число.
ClassIDИдентификатор классификации, указанный как неотрицательное целое число. 0 зарезервирован для объекта неизвестного или неназначенного класса.
LengthДлина актера, заданная как положительный действительный скаляр. Значение по умолчанию: 4.7. Единицы в метрах.
WidthШирина актера, заданная как положительный действительный скаляр. Значение по умолчанию: 1.8. Единицы в метрах.
HeightВысота актера, заданная как положительный действительный скаляр. Значение по умолчанию: 1.4. Единицы в метрах.
OriginOffset

Смещение центра вращения актера от его геометрического центра, заданного как [x y z] действительный вектор. Центр вращения, или начало координат, расположен в нижнем центре актера. Для транспортных средств центром вращения является точка на земле под центром задней оси. Значение по умолчанию: [0 0 0]. Единицы в метрах.

RCSPatternСхема сечения РЛС актера, указанная как numel(RCSElevationAngles)около-numel(RCSAzimuthAngles) вещественно-значная матрица. Значение по умолчанию: [10 10; 10 10]. Единицы измерения в децибелах на квадратный метр.
RCSAzimuthAnglesАзимутальные углы, соответствующие рядам RCSPattern, задается как вектор вещественных значений в диапазоне [-180, 180]. Значение по умолчанию: [-180 180]. Единицы измерения в градусах.
RCSElevationAnglesУглы места, соответствующие рядам RCSPattern, задается как вектор вещественных значений в диапазоне [-90, 90]. Значение по умолчанию: [-90 90]. Единицы измерения в градусах.

Полные определения полей структуры см. в разделе actor и vehicle функции.

Типы данных: struct

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

Описание

Создание обнаружений

Эти синтаксисы применяются при установке TargetReportFormat свойство для 'Clustered detections' или 'Detections'.

dets = rdr(targets,simTime) создает радиолокационные обнаружения, dets, по измерениям датчиков позы целей, targets, относительно эго-транспортного средства в текущее время моделирования, simTime. Объект может генерировать детекции датчиков для нескольких субъектов одновременно.

[dets,numReports] = rdr(targets,simTime) также возвращает количество зарегистрированных действительных обнаружений, numReports.

пример

[dets,numReports,isValidTime] = rdr(targets,simTime) также возвращает логическое значение, isValidTime, указывая, simTime является допустимым временем для генерации обнаружений. Если simTime является целым числом, кратным ответному значению UpdateRate значение свойства, затем isValidTime является 1 (true).

Генерировать дорожки

Эти синтаксисы применяются при установке TargetReportFormat свойство для 'Tracks'.

tracks = rdr(targets,simTime) создает радиолокационные дорожки, tracks, по измерениям датчиков позы целей, targets, относительно эго-транспортного средства в текущее время моделирования, simTime. Объект может генерировать сенсорные дорожки для нескольких акторов одновременно.

[tracks,numReports] = rdr(targets,simTime) также возвращает количество допустимых треков, о которых сообщается, numReports.

пример

[tracks,numReports,isValidTime] = rdr(targets,simTime) также возвращает логическое значение, isValidTime, указывая, simTime является допустимым временем для генерации дорожек. Если simTime является целым числом, кратным ответному значению UpdateRate значение свойства, затем isValidTime является 1 (true).

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

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

Целевое действующее лицо, указанное как структура или массив структуры. Каждая структура соответствует позе целевого субъекта относительно эго-транспортного средства. Для создания этих структур используйте targetPoses функция. Эти структуры можно также создать вручную. Не включайте позу эго-транспортного средства в структурный массив.

В этой таблице представлены требуемые поля для структур.

ОбластьОписание
ActorID

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

ClassIDИдентификатор классификации, указанный как неотрицательное целое число. 0 представляет объект неизвестного или неназначенного класса.
Position

Положение актера, определяемое как действительный вектор вида [x y z]. Единицы в метрах.

Velocity

Скорость (v) актера в направлениях x, y и z, заданная как действительный вектор вида [vx vy vz]. Единицы измерения в метрах в секунду.

Roll

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

Pitch

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

Yaw

Угол рыскания актера, заданный как действительный скаляр. Единицы измерения в градусах.

AngularVelocity

Угловая скорость (λ) актера в направлениях x -, y - и z, заданная как действительный вектор вида [startx starty ü z]. Единицы измерения в градусах в секунду.

Текущее время моделирования в секундах, указанное как неотрицательный действительный скаляр.

Пример: 10.5

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

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

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

Сгенерированные обнаружения, возвращенные в виде массива ячеек objectDetection объекты. Каждый объект содержит следующие свойства:

СобственностьОпределение
TimeВремя измерения
MeasurementИзмерения объектов
MeasurementNoiseКовариационная матрица шума измерения
SensorIndexУникальный идентификатор датчика
ObjectClassIDКлассификация объектов
ObjectAttributesДополнительная информация передана трекеру
MeasurementParametersПараметры, используемые функциями инициализации нелинейных фильтров слежения Калмана

Для прямоугольных координат: Measurement и MeasurementNoise в прямоугольной системе координат, указанной DetectionCoordinates имущества drivingRadarDataGenerator объект.

Для сферических координат Measurement и MeasurementNoise сообщаются в сферической системе координат, которая основана на прямоугольной системе координат датчика.

Measurement и MeasurementNoise

DetectionCoordinates СтоимостьMeasurement и MeasurementNoise Координаты
'Body'

Зависимость координат от HasRangeRate

HasRangeRateКоординаты
true[x;y;z;vx;vy;vz]
false[x;y;z]
'Sensor rectangular'
'Sensor spherical'

Зависимость координат от HasRangeRate и HasElevation

HasRangeRateHasElevationКоординаты
truetrue[az;el;rng;rr]
truefalse[az;rng;rr]
falsetrue[az;el;rng]
falsefalse[az;rng]

Для ObjectAttributesВ этой таблице описывается дополнительная информация, используемая для отслеживания.

ObjectAttributes

ПризнакОпределение
TargetIndexИдентификатор актера, ActorID, что сгенерировало обнаружение. Для ложных аварийных сигналов это значение является отрицательным.
SNRОтношение сигнала обнаружения к шуму, в дБ.

Для MeasurementParametersизмерения относятся к родительскому кадру. При установке DetectionCoordinates свойство для 'Body'родительская рама является кузовом эго-транспортного средства. При установке DetectionCoordinates кому 'Sensor rectangular' или 'Sensor spherical', родительский кадр является датчиком.

MeasurementParameters

ПараметрОпределение
Frame Перечисляемый тип, указывающий кадр, используемый для отчета об измерениях. Когда Frame имеет значение 'rectangular', о обнаружениях сообщают в прямоугольных координатах. Когда Frame имеет значение 'spherical'обнаружения сообщаются в сферических координатах.
OriginPosition3-D смещение вектора исходной точки датчика от исходной точки родительского кадра.
OrientationОриентация системы координат радиолокационного датчика относительно исходного кадра.
HasVelocityУказывает, содержат ли измерения компоненты скорости или скорости диапазона.
HasElevationУказывает, содержат ли измерения компоненты отметки.

Сгенерированные дорожки, возвращенные как objectTrack массив в MATLAB и структурный массив в сгенерированном коде. В сгенерированном коде имена полей возвращенной структуры совпадают с именами свойств objectTrack объект.

Датчик возвращает только подтвержденные дорожки, которые являются дорожками, удовлетворяющими порогу подтверждения, указанному в ConfirmationThreshold собственность. Для этих дорожек, IsConfirmed свойство объекта или поля структуры true.

Типы данных: struct | object

Количество зарегистрированных обнаружений или дорожек, возвращаемых как неотрицательное целое число. numReports равна длине dets при генерации обнаружений и tracks при формировании дорожек.

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

Допустимое время для создания отчетов, возвращаемое как логическое 0 (false) или 1 (true).

Если isValidTime является 0 (false), затем отчеты, возвращенные dets (для сгенерированных обнаружений) или tracks (для сгенерированных дорожек) недопустимы, так как датчик сгенерировал их в момент времени, несовместимый с частотой обновления датчика.

Датчик генерирует отчеты только при текущем времени моделирования, simTime, представляет собой целое число, кратное интервалу времени, в течение которого датчик генерирует отчеты. Этот временной интервал равен обратному UpdateRate значение свойства.

Типы данных: logical

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

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

release(obj)

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

isLockedОпределить, используется ли объект System
cloneСоздать повторяющийся объект System
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

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

Создание сценария управления

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

scenario = drivingScenario('SampleTime',0.02);
roadCenters = [0 0 0; 100 0 0];
marking = [laneMarking('Solid') laneMarking('Dashed') laneMarking('Solid')];
laneSpecification = lanespec([1 1],'Marking',marking);
road(scenario,roadCenters,'Lanes',laneSpecification);

Добавьте транспортное средство ego. Транспортное средство движется 90 метров по правой полосе с постоянной скоростью 20 метров в секунду.

ego = vehicle(scenario,'ClassID',1,'Position',[5 -1.8 0]);
egoWaypoints = [ego.Position; ...
               (ego.Position(1) + 90) ego.Position(2:3)];
egoSpeed = 20; % m/s
smoothTrajectory(ego,egoWaypoints,egoSpeed)

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

  • Первое транспортное средство - это автомобиль, который стартует в 10 метрах перед эго-транспортным средством и едет по полосе с постоянной скоростью 30 метров в секунду.

  • Второе транспортное средство - грузовик, который едет по левой полосе с постоянной скоростью 30 метров в секунду.

car = vehicle(scenario,'ClassID',1,'Position',[ego.Position(1)+10 -1.8 0]);
carWaypoints = [car.Position; ...
               (car.Position(1) + 75) car.Position(2:3)];
carSpeed = 30; % m/s
smoothTrajectory(car,carWaypoints,carSpeed)

truck = vehicle(scenario,'ClassID',2,'Position',[5 1.8 0], ...
    'Length',8.2,'Width',2.5,'Height',3.5);
truckWaypoints = [truck.Position; ...
                 (truck.Position(1) + 90) truck.Position(2:3)];
truckSpeed = 30; % m/s
smoothTrajectory(truck,truckWaypoints,truckSpeed)

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

plot(scenario)
while advance(scenario)
    pause(scenario.SampleTime)
end

Создание радиолокационного датчика

Создайте радиолокационный датчик с максимальной дальностью 100 метров и прикрепите его к переднему зеркалу эго-автомобиля. Настройте обновление датчика с той же скоростью, что и время выборки сценария. Указать, чтобы РЛС использовала целевые профили автомобиля и грузовика для формирования данных.

close(gcf)

maxRange = 100; % m
frontMirror = [ego.FrontOverhang 0 (ego.Height-0.1)];
profiles = actorProfiles(scenario);
targetProfiles = profiles(2:end);

id = 1;
rdr = drivingRadarDataGenerator(id,'UpdateRate',1/scenario.SampleTime, ...
                                   'MountingLocation',frontMirror, ...
                                   'RangeLimits',[0 maxRange], ...
                                   'Profiles',targetProfiles)
rdr = 

  drivingRadarDataGenerator with properties:

             SensorIndex: 1
              UpdateRate: 50

        MountingLocation: [0.9000 0 1.3000]
          MountingAngles: [0 0 0]

             FieldOfView: [20 5]
             RangeLimits: [0 100]
         RangeRateLimits: [-100 100]

    DetectionProbability: 0.9000
          FalseAlarmRate: 1.0000e-06

  Use get to show all properties

Создать график птичьего глаза

Создайте график «птичий глаз» для визуализации данных датчика. Добавьте плоттеры для визуализации разметки полосы движения, контуров транспортного средства и зоны действия радара. Используйте helperPlotScenario функция для построения графика этих аспектов сценария. Эта вспомогательная функция определена в конце примера.

bep = birdsEyePlot('XLim',[0 60],'YLim',[-35 35]);

lmPlotter = laneMarkingPlotter(bep,'Tag','lm','DisplayName','Lane markings');
olPlotter = outlinePlotter(bep,'Tag','ol');
caPlotter = coverageAreaPlotter(bep, ...
    'Tag','ca', ...
    'DisplayName','Radar coverage area', ...
    'FaceColor','red','EdgeColor','red');

helperPlotScenario(bep,rdr,ego)

Создание кластеризованных обнаружений

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

clusterDetPlotter = detectionPlotter(bep, ...
    'DisplayName','Clustered detections', ...
    'MarkerEdgeColor','red', ...
    'MarkerFaceColor','red');

restart(scenario)
while advance(scenario)

    simTime = scenario.SimulationTime;
    targets = targetPoses(ego);
    [dets,numDets,isValidTime] = rdr(targets,simTime);

    helperPlotScenario(bep,rdr,ego)

    if isValidTime && numDets > 0
        detPos = cell2mat(cellfun(@(d)d.Measurement(1:2),dets, ...
            'UniformOutput',false)')';
        plotDetection(clusterDetPlotter,detPos)
    end

end

Создание незасекреченных обнаружений

Используйте РЛС для формирования незасекреченных обнаружений целевых транспортных средств. Визуализируйте эти обнаружения на графике птичьего глаза. На каждом этапе моделирования радар генерирует множество обнаружений на цель.

clearData(clusterDetPlotter)
release(rdr)

rdr.TargetReportFormat = "Detections";
detPlotter = detectionPlotter(bep, ...
    'DisplayName','Unclustered detections', ...
    'MarkerEdgeColor','red');

restart(scenario)
while advance(scenario)

    simTime = scenario.SimulationTime;
    targets = targetPoses(ego);
    [dets,numDets,isValidTime] = rdr(targets,simTime);

    helperPlotScenario(bep,rdr,ego)

    if isValidTime && numDets > 0
        detPos = cell2mat(cellfun(@(d)d.Measurement(1:2),dets, ...
            'UniformOutput',false)')';
        plotDetection(detPlotter,detPos)
    end

end

Генерировать дорожки

Используйте РЛС для формирования следов целевых транспортных средств. Визуализируйте эти треки и историю треков на сюжете птичьего глаза.

clearData(detPlotter)
release(rdr)

rdr.TargetReportFormat = "Tracks";
historyDepth = 20;
tPlotter = trackPlotter(bep,'DisplayName','Tracks', ...
    'HistoryDepth',historyDepth);

restart(scenario)
while advance(scenario)

    simTime = scenario.SimulationTime;
    targets = targetPoses(ego);
    [tracks,numTracks,isValidTime] = rdr(targets,simTime);

    helperPlotScenario(bep,rdr,ego)

    if isValidTime && numTracks > 0
        trackPos = cell2mat(arrayfun(@(t)t.State(1:2:end),tracks, ...
            'UniformOutput', false)')';
        plotTrack(tPlotter,trackPos(:,1:2))
    end

end

Закройте график птичьего полета, перезапустите сценарий и отпустите радиолокационный датчик.

close(gcf)
restart(scenario)
release(rdr)

Вспомогательные функции

helperPlotScenario строит разметку полосы движения и контуры транспортных средств эго-транспортного средства на графике птичьего глаза. Он также отображает зону действия радиолокационного датчика.

function helperPlotScenario(bep,radar,ego)

    % Plot lane markings
    lmPlotter = findPlotter(bep,'Tag','lm');
    [lmv,lmf] = laneMarkingVertices(ego);
    plotLaneMarking(lmPlotter,lmv,lmf)

    % Plot vehicle outlines
    olPlotter = findPlotter(bep,'Tag','ol');
    [position,yaw,length,width,originOffset,color] = targetOutlines(ego);
    plotOutline(olPlotter,position,yaw,length,width, ...
                   'OriginOffset',originOffset,'Color',color)

    % Plot radar coverage area
    caPlotter = findPlotter(bep,'Tag','ca');
    plotCoverageArea(caPlotter,radar.MountingLocation(1:2), ...
        radar.RangeLimits(2),radar.MountingAngles(1), ...
        radar.FieldOfView(1))

end
Представлен в R2021a