Сгенерируйте радарные обнаружения датчика и дорожки из ведущего сценария
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]. Это свойство задает вероятность обнаружения цели с радарным поперечным сечением (RCS), ReferenceRCS
, в ссылочной области значений обнаружения, ReferenceRange
.
Типы данных: double
ReferenceRange
— Диапазон ссылки для данной вероятности обнаружения (m)
(значение по умолчанию) | положительный действительный скалярДиапазон ссылки для данной вероятности обнаружения и данного ссылочного радарного поперечного сечения (RCS), в метрах в виде положительного действительного скаляра. reference range является областью значений в который цель, задающая радарное поперечное сечение ReferenceRCS
свойство обнаруживается с вероятностью обнаружения, заданного DetectionProbability
свойство.
Типы данных: double
ReferenceRCS
— Ссылочное радарное поперечное сечение для данной вероятности обнаружения (dBsm)
(значение по умолчанию) | действительный скалярСсылочное радарное поперечное сечение (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
— Угловое поле зрения радара (градус)
| 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
drivingScenario
| insSensor
| lidarPointCloudGenerator
| multiObjectTracker
| objectDetection
| objectTrack
| visionDetectionGenerator
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.