Сгенерируйте обнаружения радарных датчиков и дорожки из сценария вождения
The drivingRadarDataGenerator
Система object™ генерирует отчеты обнаружения или отслеживания целей из модели датчика радара автомобиля. Используйте этот объект для генерации данных о датчике из сценария вождения, содержащего актёров и траектории, которые можно создать при помощи drivingScenario
объект. При создании сценариев с помощью приложения Driving Scenario Designer радарные датчики, установленные на автомобиль , оборудованный датчиком, выводятся следующим drivingRadarDataGenerator
объекты.
The 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 указывает вверх от земли.
Значение по умолчанию соответствует радару, который установлен в центре передней решетки седана.
Для получения дополнительной информации о системе координат автомобиль , оборудованный датчиком смотрите Системы координат в Automated Driving Toolbox.
Типы данных: double
MountingAngles
- Углы поворота установки радара (град)[0 0 0]
(по умолчанию) | вектор действительного значения 1 на 3 формы [z yaw
y тангаж x крен]
Установочные углы поворота радара, в степенях, задаются как действительный вектор 1 на 3 формы [z рыскание y тангаж x крен]. Это свойство задает собственное угловое вращение датчика Эйлера вокруг оси z, оси y и оси x относительно каркаса кузова ego, где:
z рыскание, или yaw angle, вращает датчик вокруг оси z ego автомобиля.
y тангаж, или pitch angle, вращает датчик вокруг оси y ego автомобиля. Это вращение связано с положением датчика, которое является результатом z вращения рыскания.
x крен, или roll angle, вращает датчик вокруг оси x ego автомобиля. Это вращение соответствует положению датчика, которое возникает в результате z рыскания и y вращений тангажа.
Эти углы являются положительными по часовой стрелке, если смотреть в прямом направлении оси z -ось, y -ось и x -ось, соответственно. Если вы визуализируете данные о датчике с точки зрения птичьего полета, то угол рыскания против часовой стрелки-положительный, потому что вы смотрите данные в отрицательном направлении оси z, которая указывает вверх от земли.
Дополнительные сведения об этой системе координат см. в разделе «Системы координат в Automated Driving Toolbox».
Типы данных: 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'
- датчик генерирует целевые отчеты как 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
- Азимутальное разрешение радара (град)4
(по умолчанию) | положительный действительный скалярАзимутальное разрешение радара, в степени, задается как положительная скалярная величина. Этот azimuth resolution определяет минимальное разделение угла азимута, при котором радар может различать две цели. Разрешение азимута обычно является 3 дБ нисходящей точки азимутального угла луча радара.
Типы данных: double
ElevationResolution
- Разрешение по повышению радара (град)5
(по умолчанию) | положительный действительный скалярРазрешение по повышению радара, в степенях, задается как положительный действительный скаляр. Этот elevation resolution определяет минимальное разделение угла возвышения, при котором радар может различать две цели. Разрешение по повышению обычно является половинной шириной луча угла возвышения радиолокатора.
Чтобы включить это свойство, установите HasElevation
свойство к true
.
Типы данных: double
RangeResolution
- Разрешение области значений радара (м)2.5
(по умолчанию) | положительный действительный скалярРазрешение области значений радара, в метрах, задается как положительный действительный скаляр. Этот range resolution определяет минимальное разделение в области значений, при которой радар может различать две цели.
Типы данных: double
RangeRateResolution
- Разрешение скорости области значений (м/с)0.5
(по умолчанию) | положительный действительный скалярРазрешение скорости области значений радара, в метрах в секунду, задается как положительный действительный скаляр. Этот range rate resolution определяет минимальное разделение в скорости области значений, при которой радар может различать две цели.
Чтобы включить это свойство, установите HasRangeRate
свойство к true
.
Типы данных: double
AzimuthBiasFraction
- Азимутальная фракция смещения радара0.1
(по умолчанию) | неотрицательной скаляромАзимутальная фракция смещения радара, заданная в виде неотрицательного скаляра. Azimuth bias выражается как часть азимутального разрешения, заданного в AzimuthResolution
свойство. Это значение устанавливает нижнюю границу азимутальной точности радара и не имеет размерности.
Типы данных: double
ElevationBiasFraction
- Вертикальная фракция смещения радара0.1
(по умолчанию) | неотрицательной скаляромФракция смещения повышения радара, заданная как неотрицательный скаляр. Elevation bias выражается как часть разрешения по повышению, заданного ElevationResolution
свойство. Это значение устанавливает нижнюю границу точности по повышению радара и не имеет размерности.
Чтобы включить это свойство, установите HasElevation
свойство к true
.
Типы данных: double
RangeBiasFraction
- Область значений дроби смещения0.05
(по умолчанию) | неотрицательной скаляромФракция смещения области значений радара, заданная как неотрицательный скаляр. Range bias выражается как часть разрешения области значений, заданного RangeResolution
свойство. Это свойство устанавливает нижнюю границу точности области значений радара и не имеет размерности.
Типы данных: double
RangeRateBiasFraction
- Фракция смещения уровня области значений0.05
(по умолчанию) | неотрицательной скаляромФракция смещения уровня области значений радара, заданная в виде неотрицательного скаляра. Range-rate bias выражается как часть разрешения уровня области значений, заданного RangeRateResolution
свойство. Это свойство устанавливает нижнюю границу точности уровня области значений радара и не имеет размерности.
Чтобы включить это свойство, установите HasRangeRate
свойство к true
.
Типы данных: double
DetectionProbability
- Вероятность обнаружения цели0.9
(по умолчанию) | скаляром в области значений (0, 1]Вероятность обнаружения цели, заданная как скаляр в области значений (0, 1]. Это свойство определяет вероятность обнаружения цели с радарным поперечным сечением (RCS), ReferenceRCS
, в контрольной области значений обнаружения, ReferenceRange
.
Типы данных: double
ReferenceRange
- Контрольная область значений для заданной вероятности обнаружения (м)100
(по умолчанию) | положительный действительный скалярЭталонная область значений для заданной вероятности обнаружения и заданного начального радиолокационного сечения (RCS), в метрах, заданный как положительный действительный скаляр. reference range - эта область значений, в котором цель, имеющая радарное сечение, заданное ReferenceRCS
свойство обнаруживается с вероятностью обнаружения, заданной DetectionProbability
свойство.
Типы данных: double
ReferenceRCS
- Базовое радиолокационное сечение для заданной вероятности обнаружения (дБсм)0
(по умолчанию) | действительный скалярЭталонное радиолокационное сечение (RCS) для заданной вероятности обнаружения и эталонной области значений, в децибельных квадратных метрах, задается как действительный скаляр. reference 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 (<reservedrangesplaceholder0>)
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] вектор с реальным значением. Центр вращения, или
источник, расположен в нижнем центре актёра. Для транспортных средств центр вращения является точкой на земле под центром задней оси. Значение по умолчанию является [0 0 0] |
RCSPattern | Радиолокационные шаблоны поперечного сечения актёра, заданные как numel(RCSElevationAngles) -by- 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 | Скорость (<reservedrangesplaceholder9>) актера в x - y - и z - направления, определенные как вектор с реальным знаком формы [<<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reserved angesplaceholder1> <reservedrangesplaceholder0>]. Модули указаны в метрах в секунду. |
Roll | Угол крена актёра, заданный как действительный скаляр. Модули указаны в степенях. |
Pitch | Угол тангажа актёра, заданный как действительный скаляр. Модули указаны в степенях. |
Yaw | Угол рыскания актёра, заданный как действительный скаляр. Модули указаны в степенях. |
AngularVelocity | Скорость вращения (<reservedrangesplaceholder9>) актера в x - y - и z - направления, определенные как вектор с реальным знаком формы [<<reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> <reserved angesplaceholder1> <reservedrangesplaceholder0>]. Модули указаны в степенях в секунду. |
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
- Действительное время генерации отчетов0
| 1
Допустимое время генерации отчетов, возвращаемое как логическое 0
(false
) или 1
(true
).
Если isValidTime
является 0
(false
), затем отчеты, возвращенные dets
(для сгенерированных обнаружений) или tracks
(для сгенерированных дорожек) недопустимы, поскольку датчик сгенерировал их в момент, который не соответствует частоте обновления датчика.
Датчик генерирует отчеты только тогда, когда время симуляции тока, simTime
, является целым числом, кратным временному интервалу, в котором датчик генерирует отчеты. Этот временной интервал равен обратному UpdateRate
значение свойства.
Типы данных: logical
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем 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);
Добавьте автомобиля , оборудованного датчиком. Транспортное средство проезжает 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.