Формирование радиолокационных датчиков и дорожек из сценария вождения
drivingRadarDataGenerator Система object™ формирует сообщения об обнаружении или отслеживании целей с модели автомобильного радиолокационного датчика. Этот объект используется для создания данных датчика из сценария управления, содержащего акторы и траектории, которые можно создать с помощью drivingScenario объект. При создании сценариев с помощью приложения Driving Script Designer радиолокационные датчики, установленные на эго-транспортном средстве, выводятся как drivingRadarDataGenerator объекты.
drivingRadarDataGenerator объект может моделировать кластеризованные или некластеризованные обнаружения с добавлением случайного шума, а также генерировать ложные аварийные обнаружения. Сгенерированные обнаружения можно объединить с другими данными датчика и отслеживать объекты с помощью multiObjectTracker объект. Также можно выводить дорожки непосредственно из drivingRadarDataGenerator объект. Чтобы настроить вывод конечных объектов как кластерных обнаружений, некластеризованных обнаружений или дорожек, используйте TargetReportFormat собственность.
Для формирования радиолокационного обнаружения или отслеживания сообщений:
Создать drivingRadarDataGenerator и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
создает радиолокационный датчик, который сообщает о кластерных обнаружениях и использует значения свойств по умолчанию.rdr = drivingRadarDataGenerator
устанавливает rdr = drivingRadarDataGenerator(id)SensorIndex свойство для id.
задает свойства, используя одну или несколько пар имя-значение. Заключите каждое имя свойства в кавычки. Например, rdr = drivingRadarDataGenerator(___,Name,Value)drivingRadarDataGenerator('TargetReportFormat','Tracks','FilterInitializationFcn',@initcvkf) создает радиолокационный датчик, который генерирует отчеты о дорожках с помощью трекера, который инициализируется линейным фильтром Калмана с постоянной скоростью.
Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
Идентификация датчикаSensorIndex - Уникальный идентификатор датчика0 (по умолчанию) | положительное целое числоУникальный идентификатор датчика, указанный как положительное целое число. Это свойство используется для различения обнаружений или дорожек, поступающих от различных датчиков в мультисенсорной системе. Укажите уникальное значение для каждого датчика. Если вы не обновляете SensorIndex от значения по умолчанию 0затем радар возвращает ошибку в начале моделирования.
Типы данных: double
UpdateRate - Частота обновления сенсора (Гц)10 (по умолчанию) | положительный вещественный скалярЧастота обновления датчика, в герцах, заданная как положительный действительный скаляр. Обратная скорость обновления должна быть целочисленной кратной интервалу времени моделирования. Радар генерирует новые сообщения с интервалами, определяемыми этим обратным значением. Любое обновление датчика, запрошенное между интервалами обновления, не содержит обнаружений или дорожек.
Типы данных: double
MountingLocation - Расположение датчика на эго-транспортном средстве (м)[3.4 0 0.2] (по умолчанию) | 1 на 3 действительный вектор вида [x
y z]
Местоположение датчика на раме кузова эго-транспортного средства в метрах, определяемое как действительный вектор 1 на 3 вида [x y z]. Это свойство определяет координаты датчика вдоль оси X, оси Y и оси Z относительно начала координат эго-транспортного средства, где:
Ось X указывает вперед от транспортного средства.
Ось Y указывает влево от транспортного средства.
Ось Z указывает вверх от земли.
Значением по умолчанию соответствует радар, который установлен в центре передней решетки седана.
Дополнительные сведения о системе координат эго-транспортного средства см. в разделе Системы координат в автоматизированной панели инструментов вождения.
Типы данных: double
MountingAngles - Монтажные углы поворота РЛС (град.)[0 0 0] (по умолчанию) | 1-на-3 действительный вектор формы [zyaw
ypitch xroll]
Углы поворота РЛС, в градусах, указаны как действительный вектор формы 1 на 3 [zyaw ypitch xroll]. Это свойство определяет внутренний угол поворота Эйлера датчика вокруг оси Z, оси Y и оси X относительно рамы кузова эго-транспортного средства, где:
zyaw, или угол рыскания, вращает датчик вокруг оси z эго-транспортного средства.
ypitch, или угол наклона, вращает датчик вокруг оси y эго-транспортного средства. Это вращение происходит относительно положения датчика, которое является результатом вращения zyaw.
xroll, или угол крена, вращает датчик вокруг оси X эго-транспортного средства. Это вращение происходит относительно положения датчика, которое является результатом вращения zyaw и ypitch.
Эти углы являются положительными по часовой стрелке при взгляде в направлении вперед по оси Z, оси Y и оси X. Если визуализировать данные датчика с точки зрения высоты птичьего полета, то угол рыскания будет против часовой стрелки положительным, потому что вы просматриваете данные в отрицательном направлении оси Z, которая указывает вверх от земли.
Дополнительные сведения об этой системе координат см. в разделе Системы координат в автоматизированной панели инструментов вождения.
Типы данных: double
HasElevation - Включить РЛС для измерения углов места целиfalse или 0 (по умолчанию) | true или 1Включить РЛС для измерения углов места цели, указанных как логический 0 (false) или 1 (true). Установить для этого свойства значение true для моделирования радиолокационного датчика, который может оценивать высоту цели.
Типы данных: logical
HasRangeRate - Включить РЛС для измерения скоростей целевой дальностиtrue или 1 (по умолчанию) | false или 0Включить РЛС для измерения скорости целевой дальности, указанной как логическая 1 (true) или 0 (false). Установить для этого свойства значение true для моделирования радиолокационного датчика, который может измерять скорости дальности от целевых обнаружений.
Типы данных: logical
HasNoise - Включить добавление шума к измерениям радиолокационных датчиковtrue или 1 (по умолчанию) | false или 0Включить добавление шума к измерениям радиолокационных датчиков, указанных как логические 1 (true) или 0 (false). Установить для этого свойства значение true добавление шума к радиолокационным измерениям. В противном случае измерения не имеют шума. Даже если установить HasNoise кому false, ковариационная матрица шума измерения, сообщенная в MeasurementNoise свойство вывода сгенерированных обнаружений объектов, dets, представляет шум измерения, добавляемый при HasNoise является true.
Типы данных: logical
HasFalseAlarms - Включить создание ложных аварийных радиолокационных обнаруженийtrue или 1 (по умолчанию) | false или 0Разрешить создание ложных радиолокационных измерений аварийных сигналов, указанных как логические 1 (true) или 0 (false). Установить для этого свойства значение true для сообщения о ложных тревогах. В противном случае радар сообщает только о фактических обнаружениях.
Типы данных: logical
HasOcclusion - Включение окклюзии линии визированияtrueили 1 (по умолчанию) | false или 0Включить окклюзию линии видимости, заданную как логическая 1 (true) или 0 (false). Для генерации обнаружений только от объектов, для которых радар имеет прямую линию визирования, установите для этого свойства значение true. Например, при включенном этом свойстве радар не генерирует обнаружение транспортного средства, находящегося за другим транспортным средством и заблокированного из вида.
Типы данных: logical
MaxNumReportsSource - Источник максимума для количества сообщений об обнаружении или следах'Auto' (по умолчанию) | 'Property'Источник максимума количества отчетов об обнаружении или отслеживании, указанный как один из следующих вариантов:
'Auto' - Датчик сообщает обо всех обнаружениях или трассах.
'Property' - Датчик сообщает о первых N действительных обнаружениях или дорожках, где N равно MaxNumReports значение свойства.
MaxNumReports - Максимальное количество обнаружений или дорожек50 (по умолчанию) | положительное целое числоМаксимальное количество обнаружений или дорожек, о которых сообщает датчик, указанное как положительное целое число. Датчик сообщает об обнаружениях в порядке увеличения расстояния от датчика до достижения этого максимального числа.
Чтобы включить это свойство, установите значение MaxNumReportsSource свойство для 'Property'.
Типы данных: double
TargetReportFormat - Формат сформированных целевых отчетов'Clustered detections' (по умолчанию) | 'Tracks' | 'Detections'Формат сформированных целевых отчетов, указанный как один из следующих вариантов:
'Clustered detections' - Датчик генерирует целевые отчеты в виде кластеризованных обнаружений, где каждая цель сообщается как одиночное обнаружение, которое является центроидом некластеризованных целевых обнаружений. Датчик возвращает кластеризованные обнаружения в виде массива objectDetection объекты, как описано в dets выходной аргумент.
'Tracks' - Датчик генерирует целевые отчеты в виде дорожек, которые представляют собой кластеризованные обнаружения, обработанные фильтром слежения. Датчик возвращает дорожки в виде массива objectTrack объекты, как описано в tracks выходной аргумент.
'Detections' - Датчик генерирует отчеты о цели в виде незасекреченных обнаружений, где каждая цель может иметь несколько обнаружений. Датчик возвращает незасекреченные обнаружения в виде массива objectDetection объекты, как описано в dets выходной аргумент.
DetectionCoordinates - Система координат сообщаемых обнаружений'Body' (по умолчанию) | 'Sensor rectangular' | 'Sensor spherical'Система координат сообщаемых обнаружений, заданная как одна из следующих опций:
'Body' - Обнаружение регистрируется в прямоугольной системе кузова эго-транспортного средства.
'Sensor rectangular' - Сигналы обнаружения регистрируются в системе прямоугольного корпуса радиолокационного датчика.
'Sensor spherical' - Обнаружение регистрируется в сферической системе координат, которая центрируется на радиолокационном датчике и совмещается с ориентацией радара на эго-транспортном средстве.
AzimuthResolution - Азимутальное разрешение РЛС (град.)4 (по умолчанию) | положительный вещественный скалярАзимутальное разрешение РЛС в градусах, указанное как положительный скаляр. Разрешение по азимуту определяет минимальное разделение по азимутальному углу, при котором РЛС может различать две цели. Разрешение по азимуту обычно представляет собой нисходящую точку 3 дБ диапазона азимутальных углов радара.
Типы данных: double
ElevationResolution - Разрешение РЛС по высоте (град.)5 (по умолчанию) | положительный вещественный скалярРазрешающая способность РЛС по высоте в градусах определяется как положительный действительный скаляр. Разрешение возвышения определяет минимальное разделение по углу возвышения, при котором РЛС может различать две цели. Разрешение возвышения обычно представляет собой ширину луча с половинной мощностью для ширины луча угла возвышения радара.
Чтобы включить это свойство, установите значение HasElevation свойство для true.
Типы данных: double
RangeResolution - Разрешающая способность РЛС (м)2.5 (по умолчанию) | положительный вещественный скалярДальномерное разрешение РЛС, в метрах, указано как положительный действительный скаляр. Разрешение дальности определяет минимальное разделение по дальности, при котором радар может различать две цели.
Типы данных: double
RangeRateResolution - Дальномерное разрешение РЛС (м/с)0.5 (по умолчанию) | положительный вещественный скалярДальномерное разрешение РЛС, в метрах в секунду, указанное как положительный действительный скаляр. Разрешение скорости дальности определяет минимальное разделение в скорости дальности, при котором радар может различать две цели.
Чтобы включить это свойство, установите значение HasRangeRate свойство для true.
Типы данных: double
AzimuthBiasFraction - Азимутальная доля смещения РЛС0.1 (по умолчанию) | неотрицательный скалярАзимутальная доля смещения РЛС, заданная как неотрицательный скаляр. Азимутальное смещение выражается как доля азимутального разрешения, указанного в AzimuthResolution собственность. Это значение устанавливает нижнюю границу азимутальной точности радара и безразмерно.
Типы данных: double
ElevationBiasFraction - доля смещения по высоте РЛС0.1 (по умолчанию) | неотрицательный скалярДоля смещения по высоте РЛС, определяемая как неотрицательный скаляр. Смещение по отметке выражается как часть разрешения по отметке, заданного ElevationResolution собственность. Это значение устанавливает нижнюю границу точности отметки РЛС и безразмерно.
Чтобы включить это свойство, установите значение HasElevation свойство для true.
Типы данных: double
RangeBiasFraction - Фракция смещения диапазона0.05 (по умолчанию) | неотрицательный скалярДоля смещения дальности РЛС, определяемая как неотрицательный скаляр. Смещение диапазона выражается как доля разрешения диапазона, заданного RangeResolution собственность. Это свойство устанавливает нижнюю границу точности дальности радара и безразмерно.
Типы данных: double
RangeRateBiasFraction - Фракция смещения скорости диапазона0.05 (по умолчанию) | неотрицательный скалярДальномерная доля смещения РЛС, заданная как неотрицательный скаляр. Смещение скорости диапазона выражается как доля разрешения скорости диапазона, определенного RangeRateResolution собственность. Это свойство устанавливает нижнюю границу точности скорости дальности радара и безразмерно.
Чтобы включить это свойство, установите значение HasRangeRate свойство для true.
Типы данных: double
DetectionProbability - Вероятность обнаружения цели0.9 (по умолчанию) | скаляр в диапазоне (0, 1]Вероятность обнаружения цели, заданной как скаляр в диапазоне (0, 1]. Это свойство определяет вероятность обнаружения цели с радиолокационным сечением (RCS), ReferenceRCS, на эталонном диапазоне обнаружения, ReferenceRange.
Типы данных: double
ReferenceRange - Эталонный диапазон для данной вероятности обнаружения (м)100 (по умолчанию) | положительный вещественный скалярЭталонный диапазон для заданной вероятности обнаружения и заданного эталонного сечения РЛС (RCS), в метрах, определяемый как положительный действительный скаляр. Опорная дальность - это дальность, на которой цель имеет сечение РЛС, определенное ReferenceRCS свойство обнаруживается с вероятностью обнаружения, указанной DetectionProbability собственность.
Типы данных: double
ReferenceRCS - Эталонное сечение РЛС для заданной вероятности обнаружения (дБсм)0 (по умолчанию) | вещественный скалярЭталонное сечение РЛС (RCS) для заданной вероятности обнаружения и опорного диапазона, в децибелах квадратных метров, указанное как действительный скаляр. Опорная RCS - это значение RCS, при котором цель обнаруживается с вероятностью, указанной DetectionProbability на указанном ReferenceRange значение.
Типы данных: double
FalseAlarmRate - Частота сообщений о ложных аварийных сигналах1e-6 (по умолчанию) | положительный действительный скаляр в диапазоне [10-7, 10-3]Частота сообщений о ложных аварийных сигналах в каждой ячейке разрешения радара, заданная как положительный действительный скаляр в диапазоне [10-7, 10-3]. Единицы измерения безразмерны. Объект определяет ячейки разрешения из AzimuthResolution и RangeResolution и, если включено, из ElevationResolution и RangeRateResolution свойства.
Типы данных: double
CenterFrequency - Центральная частота диапазона РЛС (Гц)77e9 (по умолчанию) | положительный вещественный скалярЦентральная частота диапазона РЛС, в герцах, заданная как положительный скаляр.
Типы данных: double
FieldOfView - Угловое поле зрения БРЛС (град.)[20 5] | 1-на-2 положительный действительный вектор формы [azfov elfov]
Угловое поле зрения РЛС в градусах, определяемое как положительный действительный вектор вида 1 на 2 [azfov elfov]. Поле зрения определяет общую угловую протяженность, охватываемую датчиком. Азимутальное поле зрения, azfov, должно лежать в интервале (0, 360]. Поле зрения фасада, elfov, должно лежать в интервале (0, 180].
Типы данных: double
RangeLimits - Минимальная и максимальная дальность РЛС (м)[0 150] (по умолчанию) | 1-на-2 неотрицательный действительный вектор формы [min max]Минимальная и максимальная дальность РЛС в метрах, указанная как неотрицательный действительный вектор вида 1 на 2 [min max]. РЛС не обнаруживает целей, находящихся вне этой дальности. Максимальный диапазон, max, должно быть больше минимального диапазона, min.
RangeRateLimits - Минимальная и максимальная дальность РЛС (м/с)[-100 100] (по умолчанию) | 1-на-2 действительный вектор формы [min max]Минимальная и максимальная дальность РЛС, в метрах в секунду, заданная как действительный вектор вида 1 на 2 [min max]. РЛС не обнаруживает целей, находящихся вне этой дальности. Максимальная дальность, max, должно быть больше минимальной скорости диапазона, min.
Чтобы включить это свойство, установите значение HasRangeRate свойство для true.
RadarLoopGain - Усиление контура РЛСЭто свойство доступно только для чтения.
Коэффициент усиления радиолокационного контура, определяемый как действительный скаляр. RadarLoopGain зависит от значений DetectionProbability, ReferenceRange, ReferenceRCS, и FalseAlarmRate свойства. Коэффициент усиления радиолокационного контура является функцией сообщаемого отношения сигнал/шум РЛС, SNR, сечения РЛС цели, RCS и целевого диапазона R, как описано этим уравнением:
SNR = RadarLoopGain + RCS - 40log10 (R)
SNR и RCS находятся в децибелах и децибелах квадратных метров соответственно, R - в метрах, и RadarLoopGain в децибелах.
Типы данных: double
FilterInitializationFcn - функция инициализации фильтра Калмана@initcvekf (по умолчанию) | дескриптор функции | вектор символа | скаляр строкиФункция инициализации фильтра Калмана, заданная как дескриптор функции или как вектор символов или строковый скаляр имени допустимой функции инициализации фильтра Калмана.
В таблице показаны функции инициализации, которые можно использовать для определения 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
ConfirmationThreshold - Пороговое значение для подтверждения пути[2 3] (по умолчанию) | вектор 1 на 2 положительных целых чиселПорог подтверждения трека, заданный как вектор 1 на 2 положительных целых чисел вида [M N]. Дорожка подтверждается, если она получает по крайней мере M обнаружения в последнем N обновления. M должно быть меньше или равно N.
При настройке M, учитывать вероятность обнаружения объекта для датчиков. Вероятность обнаружения зависит от таких факторов, как окклюзия или загромождение. Вы можете сократить M когда трассы не могут быть подтверждены или увеличены M если для дорожек назначено слишком много ложных обнаружений.
При настройке Nрассмотрите, сколько раз трекер должен обновлять перед принятием решения о подтверждении. Например, если трекер обновляется каждые 0,05 секунды, а для принятия решения о подтверждении требуется 0,5 секунды, установите N = 10.
Пример: [3 5]
Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.
Типы данных: double
DeletionThreshold - Пороговое значение для удаления дорожки[5 5]
(по умолчанию) | вектор 1 на 2 положительных целых чиселПорог удаления дорожки, заданный как вектор 1 на 2 положительных целых чисел вида [P R]. Если подтвержденная дорожка не назначена никакому обнаружению P время в последнем R трекер обновляется, затем трек удаляется. P должно быть меньше или равно R.
Чтобы уменьшить время, в течение которого радар поддерживает пути, уменьшите R или увеличить P.
Чтобы дольше поддерживать треки, увеличьте R или уменьшить P.
Пример: [3 5]
Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.
Типы данных: double
TrackCoordinates - Система координат сообщаемых дорожек'Body' (по умолчанию) | 'Sensor'Система координат сообщаемых дорожек, заданная как один из следующих вариантов:
'Body' - Треки указываются в прямоугольной системе кузова эго-транспортного средства.
'Sensor' - Треки сообщаются в системе прямоугольного кузова радиолокационного датчика.
Чтобы включить это свойство, установите значение TargetReportFormat свойство для 'Tracks'.
Profiles - Профили субъектовПрофили субъектов, указанные как структура или массив структур. Каждая структура содержит физические и радиолокационные характеристики актера.
Если ActorProfiles является единой структурой, все действующие лица drivingRadarDataGenerator объект использует этот профиль.
Если ActorProfiles является массивом, каждый актер, переданный в объект, должен иметь уникальный профиль актера.
Чтобы создать массив структур для сценария управления, используйте actorProfiles функция. В таблице показаны допустимые поля структуры. Если поле не указано, ему присваивается значение по умолчанию. Если в объект не передаются актеры, то ActorID поле не включено.
| Область | Описание |
|---|---|
ActorID | Определяемый сценарием идентификатор субъекта, указанный как положительное целое число. |
ClassID | Идентификатор классификации, указанный как неотрицательное целое число. 0 зарезервирован для объекта неизвестного или неназначенного класса. |
Length | Длина актера, заданная как положительный действительный скаляр. Значение по умолчанию: 4.7. Единицы в метрах. |
Width | Ширина актера, заданная как положительный действительный скаляр. Значение по умолчанию: 1.8. Единицы в метрах. |
Height | Высота актера, заданная как положительный действительный скаляр. Значение по умолчанию: 1.4. Единицы в метрах. |
OriginOffset | Смещение центра вращения актера от его геометрического центра, заданного как [x
y z] действительный вектор. Центр вращения, или
начало координат, расположен в нижнем центре актера. Для транспортных средств центром вращения является точка на земле под центром задней оси. Значение по умолчанию: |
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,numReports] = rdr(targets,simTime)numReports.
[ также возвращает логическое значение, dets,numReports,isValidTime] = rdr(targets,simTime)isValidTime, указывая, simTime является допустимым временем для генерации обнаружений. Если simTime является целым числом, кратным ответному значению UpdateRate значение свойства, затем isValidTime является 1 (true).
Эти синтаксисы применяются при установке TargetReportFormat свойство для 'Tracks'.
[ также возвращает количество допустимых треков, о которых сообщается, tracks,numReports] = rdr(targets,simTime)numReports.
[ также возвращает логическое значение, tracks,numReports,isValidTime] = rdr(targets,simTime)isValidTime, указывая, simTime является допустимым временем для генерации дорожек. Если simTime является целым числом, кратным ответному значению UpdateRate значение свойства, затем isValidTime является 1 (true).
targets - Позы целевого актераЦелевое действующее лицо, указанное как структура или массив структуры. Каждая структура соответствует позе целевого субъекта относительно эго-транспортного средства. Для создания этих структур используйте 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]. Единицы измерения в градусах в секунду. |
simTime - Текущее время моделированияТекущее время моделирования в секундах, указанное как неотрицательный действительный скаляр.
Пример: 10.5
Типы данных: double
dets - Сгенерированные обнаруженияobjectDetection объектыСгенерированные обнаружения, возвращенные в виде массива ячеек objectDetection объекты. Каждый объект содержит следующие свойства:
| Собственность | Определение |
|---|---|
Time | Время измерения |
Measurement | Измерения объектов |
MeasurementNoise | Ковариационная матрица шума измерения |
SensorIndex | Уникальный идентификатор датчика |
ObjectClassID | Классификация объектов |
ObjectAttributes | Дополнительная информация передана трекеру |
MeasurementParameters | Параметры, используемые функциями инициализации нелинейных фильтров слежения Калмана |
Для прямоугольных координат: Measurement и MeasurementNoise в прямоугольной системе координат, указанной DetectionCoordinates имущества drivingRadarDataGenerator объект.
Для сферических координат Measurement и MeasurementNoise сообщаются в сферической системе координат, которая основана на прямоугольной системе координат датчика.
Measurement и MeasurementNoise
DetectionCoordinates Стоимость | Measurement и MeasurementNoise Координаты | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'Body' |
Зависимость координат от
| |||||||||||||||
'Sensor rectangular' | ||||||||||||||||
'Sensor spherical' |
Зависимость координат от
|
Для ObjectAttributesВ этой таблице описывается дополнительная информация, используемая для отслеживания.
ObjectAttributes
| Признак | Определение |
|---|---|
TargetIndex | Идентификатор актера, ActorID, что сгенерировало обнаружение. Для ложных аварийных сигналов это значение является отрицательным. |
SNR | Отношение сигнала обнаружения к шуму, в дБ. |
Для MeasurementParametersизмерения относятся к родительскому кадру. При установке DetectionCoordinates свойство для 'Body'родительская рама является кузовом эго-транспортного средства. При установке DetectionCoordinates кому 'Sensor rectangular' или 'Sensor spherical', родительский кадр является датчиком.
MeasurementParameters
| Параметр | Определение |
|---|---|
Frame | Перечисляемый тип, указывающий кадр, используемый для отчета об измерениях. Когда Frame имеет значение 'rectangular', о обнаружениях сообщают в прямоугольных координатах. Когда Frame имеет значение 'spherical'обнаружения сообщаются в сферических координатах. |
OriginPosition | 3-D смещение вектора исходной точки датчика от исходной точки родительского кадра. |
Orientation | Ориентация системы координат радиолокационного датчика относительно исходного кадра. |
HasVelocity | Указывает, содержат ли измерения компоненты скорости или скорости диапазона. |
HasElevation | Указывает, содержат ли измерения компоненты отметки. |
tracks - Сгенерированные дорожкиobjectTrack массив | массив структурыСгенерированные дорожки, возвращенные как objectTrack массив в MATLAB и структурный массив в сгенерированном коде. В сгенерированном коде имена полей возвращенной структуры совпадают с именами свойств objectTrack объект.
Датчик возвращает только подтвержденные дорожки, которые являются дорожками, удовлетворяющими порогу подтверждения, указанному в ConfirmationThreshold собственность. Для этих дорожек, IsConfirmed свойство объекта или поля структуры true.
Типы данных: struct | object
numReports - Количество зарегистрированных обнаружений или следовКоличество зарегистрированных обнаружений или дорожек, возвращаемых как неотрицательное целое число. numReports равна длине dets при генерации обнаружений и tracks при формировании дорожек.
Типы данных: double
isValidTime - Допустимое время для создания отчетов0 | 1Допустимое время для создания отчетов, возвращаемое как логическое 0 (false) или 1 (true).
Если isValidTime является 0 (false), затем отчеты, возвращенные dets (для сгенерированных обнаружений) или tracks (для сгенерированных дорожек) недопустимы, так как датчик сгенерировал их в момент времени, несовместимый с частотой обновления датчика.
Датчик генерирует отчеты только при текущем времени моделирования, simTime, представляет собой целое число, кратное интервалу времени, в течение которого датчик генерирует отчеты. Этот временной интервал равен обратному UpdateRate значение свойства.
Типы данных: logical
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
drivingRadarDataGeneratorИспользуйте радиолокационный датчик для генерации кластерных обнаружений, некластеризованных обнаружений и следов нескольких транспортных средств в сценарии вождения.
Создание сценария управления
Создайте пустой сценарий вождения и добавьте двухполосный 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
drivingScenario | insSensor | lidarPointCloudGenerator | multiObjectTracker | objectDetection | objectTrack | visionDetectionGeneratorИмеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.