Сгенерируйте радарные обнаружения датчика и дорожки из ведущего сценария
drivingRadarDataGenerator Система object™ генерирует обнаружение или отчеты дорожки целей из автомобильной радарной модели датчика. Используйте этот объект сгенерировать данные о датчике из ведущего сценария, содержащего агентов и траектории, которые можно создать при помощи drivingScenario объект. При создании сценариев с помощью приложения Driving Scenario 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 — Уникальный идентификатор датчика (значение по умолчанию) | положительное целое числоУникальный идентификатор датчика в виде положительного целого числа. Используйте это свойство различать обнаружения или дорожки, которые прибывают из различных датчиков в системе мультидатчика. Задайте уникальное значение для каждого датчика. Если вы не обновляете SensorIndex от значения по умолчанию 0, затем радар возвращает ошибку в начале симуляции.
Типы данных: double
UpdateRate — Частота обновления датчика (Гц) (значение по умолчанию) | положительный действительный скалярЧастота обновления датчика, в герц в виде положительного действительного скаляра. Обратная величина частоты обновления должна быть целочисленным кратным интервал времени симуляции. Радар генерирует новые отчеты, с промежутками заданные этой обратной величиной. Любое обновление датчика, которое требуют между интервалами обновления, не содержит обнаружений или дорожек.
Типы данных: double
MountingLocation — Местоположение датчика на автомобиле, оборудованном датчиком (m) (значение по умолчанию) | 1 3 вектор с действительным знаком из формы [x
y
z]Местоположение датчика на системе координат тела автомобиля, оборудованного датчиком, в метрах в виде 1 3 вектора с действительным знаком из формы [x y z]. Это свойство задает координаты датчика вдоль x - ось, y - ось, и z - ось относительно источника автомобиля, оборудованного датчиком, где:
x - ось указывает вперед от транспортного средства.
y - ось указывает слева от транспортного средства.
z - ось подчеркивает от земли.
Значение по умолчанию соответствует радару, который смонтирован в центре передней решетки седана.
Для получения дополнительной информации о системе координат автомобиля, оборудованного датчиком смотрите Системы координат в Automated Driving Toolbox.
Типы данных: double
MountingAngles — Монтирование углов поворота радара (градус) (значение по умолчанию) | 1 3 вектор с действительным знаком из формы [рыскание z
тангаж y
крен x]Монтирование углов поворота радара, в градусах в виде 1 3 вектора с действительным знаком из формы [рыскание z тангаж y крен x]. Это свойство задает внутреннее вращение Угла Эйлера датчика вокруг z - оси, y - оси, и x - ось относительно системы координат тела автомобиля, оборудованного датчиком, где:
Рыскание z или yaw angle, вращает датчик вокруг z - ось автомобиля, оборудованного датчиком.
Тангаж y или pitch angle, вращает датчик вокруг y - ось автомобиля, оборудованного датчиком. Это вращение относительно положения датчика, которое следует из вращения рыскания z.
Крен x или roll angle, вращает датчик о x - ось автомобиля, оборудованного датчиком. Это вращение относительно положения датчика, которое следует из рыскания z и вращений тангажа y.
Эти углы по часовой стрелке положительны при взгляде в прямом направлении z - оси, y - оси, и x - ось, соответственно. Если вы визуализируете данные о датчике из перспективы вида с высоты птичьего полета, то угол рыскания против часовой стрелки положителен, потому что вы просматриваете данные в обратном направлении z - ось, которая подчеркивает от земли.
Для получения дополнительной информации об этой системе координат смотрите Системы координат в Automated Driving Toolbox.
Типы данных: double
HasElevation — Позвольте радару измерить целевые углы возвышенияfalse или 0 (значение по умолчанию) | true или 1Позвольте радару измерить целевые углы возвышения в виде логического 0 ложь) или 1 TRUE). Установите это свойство на true смоделировать радарный датчик, который может оценить целевое вертикальное изменение.
Типы данных: логический
HasRangeRate — Позвольте радару измерить уровни целевого диапазонаtrue или 1 (значение по умолчанию) | false или 0Позвольте радару измерить уровни целевого диапазона в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true смоделировать радарный датчик, который может измерить уровни диапазона от целевых обнаружений.
Типы данных: логический
HasNoise — Включите сложение шума к радарным измерениям датчикаtrue или 1 (значение по умолчанию) | false или 0Включите сложение шума к радарным измерениям датчика в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true добавить шум в радарные измерения. В противном случае измерения не имеют никакого шума. Даже если вы устанавливаете HasNoise к false, о ковариационной матрице шума измерения сообщают в MeasurementNoise свойство сгенерированных обнаружений объектов выход, dets, представляет шум измерения, который добавляется когда HasNoise true.
Типы данных: логический
HasFalseAlarms — Позвольте создать ложные сигнальные радарные обнаруженияtrue или 1 (значение по умолчанию) | false или 0Позвольте создать ложные сигнальные радарные измерения в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true сообщить о ложных предупреждениях. В противном случае, показания радара только фактические обнаружения.
Типы данных: логический
HasOcclusion — Включите поглощение газов угла обзораtrueили 1 (значение по умолчанию) | false или 0Включите поглощение газов угла обзора в виде логического 1 TRUE) или 0 ложь). Чтобы сгенерировать обнаружения только от объектов, для которых радар имеет прямую линию вида, устанавливает это свойство на true. Например, с этим включенным свойством, радар не генерирует обнаружение для транспортного средства, которое находится позади другого транспортного средства и блокировано от представления.
Типы данных: логический
MaxNumReportsSource — Источник максимума для количества обнаружения или отчетов дорожки'Auto' (значение по умолчанию) | 'Property'Источник максимума для количества обнаружения или дорожки сообщает в виде одной из этих опций:
'Auto' — Датчик сообщает обо всех обнаружениях или дорожках.
'Property' — Датчик сообщает о первом N допустимые обнаружения или дорожки, где N равен MaxNumReports значение свойства.
MaxNumReports — Максимальное количество обнаружений или дорожек (значение по умолчанию) | положительное целое числоМаксимальное количество обнаружений или дорожек, о которых датчик сообщает в виде положительного целого числа. Датчик сообщает об обнаружениях в порядке увеличивающегося расстояния от датчика до достижения этого максимального количества.
Чтобы включить это свойство, установите MaxNumReportsSource свойство к 'Property'.
Типы данных: double
TargetReportFormat — Формат сгенерированных целевых отчетов'Clustered detections' (значение по умолчанию) | 'Tracks' | 'Detections'Формат сгенерированной цели сообщает в виде одной из этих опций:
'Clustered detections' — Датчик генерирует целевые отчеты как clustered detections, где о каждой цели сообщают как одно обнаружение, которое является центроидом некластеризованных целевых обнаружений. Датчик возвращает кластеризируемые обнаружения как массив objectDetection объекты, как описано в dets выходной аргумент.
'Tracks' — Датчик генерирует целевые отчеты как tracks, которые являются кластеризованными обнаружениями, которые были обработаны фильтром отслеживания. Датчик возвращает дорожки как массив objectTrack объекты, как описано в tracks выходной аргумент.
'Detections' — Датчик генерирует целевые отчеты как unclustered detections, где каждая цель может иметь несколько обнаружений. Датчик возвращает некластеризованные обнаружения как массив objectDetection объекты, как описано в dets выходной аргумент.
DetectionCoordinates — Система координат обнаружений, о которых сообщают,'Body' (значение по умолчанию) | 'Sensor rectangular' | 'Sensor spherical'Система координат обнаружений, о которых сообщают, в виде одной из этих опций:
'Body' — Об обнаружениях сообщают в прямоугольной системе тела автомобиля, оборудованного датчиком.
'Sensor rectangular' — Об обнаружениях сообщают в прямоугольной системе тела радарного датчика.
'Sensor spherical' — Об обнаружениях сообщают в сферической системе координат, которая сосредоточена в радарном датчике и выровнена с ориентацией радара на автомобиле, оборудованном датчиком.
AzimuthResolution — Разрешение азимута радара (градус) (значение по умолчанию) | положительный действительный скалярРазрешение азимута радара, в градусах в виде положительной скалярной величины. azimuth resolution задает минимальное разделение в углу азимута, под которым радар может различать две цели. Разрешение азимута обычно - 3 дБ downpoint угловой ширины луча азимута радара.
Типы данных: double
ElevationResolution — Разрешение вертикального изменения радара (градус) (значение по умолчанию) | положительный действительный скалярРазрешение вертикального изменения радара, в градусах в виде положительного действительного скаляра. elevation resolution задает минимальное разделение в угле возвышения, в котором радар может различать две цели. Разрешение вертикального изменения обычно является шириной луча на уровне половинной мощности ширины луча угла возвышения радара.
Чтобы включить это свойство, установите HasElevation свойство к true.
Типы данных: double
RangeResolution — Разрешение области значений радара (m) (значение по умолчанию) | положительный действительный скалярРазрешение области значений радара, в метрах в виде положительного действительного скаляра. range resolution задает минимальное разделение в области значений, в которой радар может различать две цели.
Типы данных: double
RangeRateResolution — Разрешение уровня области значений радара (m/s) (значение по умолчанию) | положительный действительный скалярРазрешение уровня области значений радара, в метрах в секунду в виде положительного действительного скаляра. range rate resolution задает минимальное разделение в уровне области значений, на котором радар может различать две цели.
Чтобы включить это свойство, установите HasRangeRate свойство к true.
Типы данных: double
AzimuthBiasFraction — Часть смещения азимута радара (значение по умолчанию) | неотрицательный скалярЧасть смещения азимута радара в виде неотрицательного скаляра. Azimuth bias описывается как часть разрешения азимута, заданного в AzimuthResolution свойство. Это наборы значений нижняя граница на азимутальной точности радара и является безразмерным.
Типы данных: double
ElevationBiasFraction — Часть смещения вертикального изменения радара (значение по умолчанию) | неотрицательный скалярЧасть смещения вертикального изменения радара в виде неотрицательного скаляра. Elevation bias описывается как часть разрешения вертикального изменения, заданного ElevationResolution свойство. Это наборы значений нижняя граница на точности вертикального изменения радара и является безразмерным.
Чтобы включить это свойство, установите HasElevation свойство к true.
Типы данных: double
RangeBiasFraction — Часть смещения области значений (значение по умолчанию) | неотрицательный скалярЧасть смещения области значений радара в виде неотрицательного скаляра. Range bias описывается как часть разрешения области значений, заданного RangeResolution свойство. Это наборы свойств нижняя граница на точности области значений радара и является безразмерным.
Типы данных: double
RangeRateBiasFraction — Часть смещения уровня области значений (значение по умолчанию) | неотрицательный скалярЧасть смещения уровня области значений радара в виде неотрицательного скаляра. Range-rate bias описывается как часть разрешения уровня области значений, заданного RangeRateResolution свойство. Это наборы свойств нижняя граница на точности уровня области значений радара и является безразмерным.
Чтобы включить это свойство, установите HasRangeRate свойство к true.
Типы данных: double
DetectionProbability — Вероятность обнаружения цели (значение по умолчанию) | скаляр в области значений (0, 1]Вероятность обнаружения цели в виде скаляра в области значений (0, 1]. Это свойство задает вероятность обнаружения цели с эффективной площадью рассеивания (ЭПР), ReferenceRCS, в ссылочной области значений обнаружения, ReferenceRange.
Типы данных: double
ReferenceRange — Диапазон ссылки для данной вероятности обнаружения (m) (значение по умолчанию) | положительный действительный скалярДиапазон ссылки для данной вероятности обнаружения и данной ссылочной эффективной площади рассеивания (ЭПР), в метрах в виде положительного действительного скаляра. reference range является областью значений в который цель, задающая эффективную площадь рассеивания ReferenceRCS свойство обнаруживается с вероятностью обнаружения, заданного DetectionProbability свойство.
Типы данных: double
ReferenceRCS — Ссылочная эффективная площадь рассеивания для данной вероятности обнаружения (dBsm) (значение по умолчанию) | действительный скалярСсылочная эффективная площадь рассеивания (ЭПР) для данной вероятности обнаружения и диапазона ссылки, в квадратных метрах децибела в виде действительного скаляра. reference RCS является значением ЭПР, в котором цель обнаруживается с вероятностью, заданной DetectionProbability в заданном ReferenceRange значение.
Типы данных: double
FalseAlarmRate — Ложный сигнальный уровень отчета1e-6 (значение по умолчанию) | положительный действительный скаляр в области значений [10–7, 10–3]Ложный сигнальный уровень отчета в каждой радарной ячейке разрешения в виде положительного действительного скаляра в области значений [10–7, 10–3]. Модули являются безразмерными. Объект определяет ячейки разрешения из AzimuthResolution и RangeResolution свойства и, когда включено, от ElevationResolution и RangeRateResolution свойства.
Типы данных: double
CenterFrequency — Центральная частота радарной полосы (Гц)77e9 (значение по умолчанию) | положительный действительный скалярЦентральная частота радарной полосы, в герц в виде положительной скалярной величины.
Типы данных: double
FieldOfView — Угловое поле зрения радара (градус) | 1 2 положительный вектор с действительным знаком из формы [azfov elfov]
Угловое поле зрения радара, в градусах в виде 1 2 положительного вектора с действительным знаком из формы [azfov elfov]. Поле зрения задает общую угловую степень, заполненную датчиком. Поле зрения азимута, azfov, должен лечь в интервале (0, 360]. Поле зрения вертикального изменения, elfov, должен лечь в интервале (0, 180].
Типы данных: double
RangeLimits — Минимальная и максимальная область значений радара (m) (значение по умолчанию) | 1 2 неотрицательный вектор с действительным знаком из формы [min max]Минимальная и максимальная область значений радара, в метрах в виде 1 2 неотрицательного вектора с действительным знаком из формы [min max]. Радар не обнаруживает цели, которые находятся вне этой области значений. Максимальная область значений, max, должен быть больше минимальной области значений, min.
RangeRateLimits — Минимальный и максимальный уровень области значений радара (m/s) (значение по умолчанию) | 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
| Инициализируйте постоянный-turnrate расширенный Фильтр Калмана. |
initcvekf | Инициализируйте расширенный Фильтр Калмана постоянной скорости. |
initcaukf
| Инициализируйте сигма-точечный фильтр Калмана постоянного ускорения. |
initctukf | Инициализируйте постоянный-turnrate сигма-точечный фильтр Калмана. |
initcvukf | Инициализируйте сигма-точечный фильтр Калмана постоянной скорости. |
Можно также записать собственную функцию инициализации. Функция должна иметь следующий синтаксис:
filter = filterInitializationFcn(detection)
objectDetection объект. Выход этой функции должен быть объектом фильтра отслеживания, таким как trackingKF, trackingEKF, trackingUKF, или trackingABF.Чтобы вести вас в записи этой функции, можно исследовать детали предоставленных функций из MATLAB®. Например:
type initcvekfЧтобы включить это свойство, установите TargetReportFormat свойство к 'Tracks'.
Типы данных: function_handle | char | string
ConfirmationThreshold — Порог для подтверждения дорожки (значение по умолчанию) | вектор 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 — Порог для удаления дорожки
(значение по умолчанию) | вектор 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 - направления в виде вектора с действительным знаком из формы [v x v y v z]. Модули исчисляются в метрах в секунду. |
Roll | Крен агента в виде действительного скаляра. Модули в градусах. |
Pitch | Передайте угол агента в виде действительного скаляра. Модули в градусах. |
Yaw | Угол рыскания агента в виде действительного скаляра. Модули в градусах. |
AngularVelocity | Скорость вращения (ω) агента в x - y - и z - направления в виде вектора с действительным знаком из формы [ω x ω y ω 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 объект.
Датчик возвращает только confirmed tracks, которые являются дорожками, которые удовлетворяют порогу подтверждения, заданному в ConfirmationThreshold свойство. Для этих дорожек, IsConfirmed свойством объекта или полем структуры является true.
Типы данных: struct | object
numReports — Количество обнаружений, о которых сообщают, или дорожекКоличество обнаружений, о которых сообщают, или дорожек, возвращенных как неотрицательное целое число. numReports равно длине dets при генерации обнаружений и tracks при генерации дорожек.
Типы данных: double
isValidTime — Допустимое время для генерации отчетов| 1 Допустимое время для генерации отчетов, возвращенных как логический 0 ложь) или 1 TRUE).
Если isValidTime 0 ложь), затем отчеты, возвращенные dets (для сгенерированных обнаружений) или tracks (для сгенерированных дорожек), недопустимы, потому что датчик сгенерировал их за один раз, который противоречив с частотой обновления датчика.
Датчик генерирует отчеты только когда текущее время симуляции, simTime, целочисленное кратное временной интервал, в котором датчик генерирует отчеты. Этот временной интервал равен обратной величине UpdateRate значение свойства.
Типы данных: логический
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
drivingRadarDataGeneratorИспользуйте радарный датчик, чтобы сгенерировать кластеризируемые обнаружения, некластеризованные обнаружения и дорожки нескольких транспортных средств в ведущем сценарии.
Создайте ведущий сценарий
Создайте пустой ведущий сценарий и добавьте 2D маршрут, 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);
Добавьте автомобиль, оборудованный датчиком. Транспортное средство перемещается 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
objectDetection | objectTrack | drivingScenario | multiObjectTracker | visionDetectionGenerator | lidarPointCloudGenerator | insSensorУ вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.