Сгенерируйте радарные обнаружения для ведущего сценария
radarDetectionGenerator
Система object™ генерирует обнаружения от радарного датчика, смонтированного на автомобиле, оборудованном датчиком. На все обнаружения ссылаются к системе координат автомобиля, оборудованного датчиком. Можно использовать radarDetectionGenerator
объект в сценарии, содержащем агентов и траектории, которые можно создать при помощи drivingScenario
объект. Объект может симулировать действительные обнаружения с добавленным случайным шумом и также сгенерировать ложные сигнальные обнаружения. Кроме того, можно использовать radarDetectionGenerator
объект создать вход к multiObjectTracker
. При создании сценариев с помощью приложения Driving Scenario Designer радарные датчики, смонтированные на автомобиле, оборудованном датчиком, выводятся как radarDetectionGenerator
объекты.
Сгенерировать радарные обнаружения:
Создайте radarDetectionGenerator
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
создает радарный объект генератора обнаружения со значениями свойств по умолчанию.sensor
= radarDetectionGenerator
свойства наборов с помощью одной или нескольких пар "имя-значение". Например, sensor
= radarDetectionGenerator(Name,Value
)radarDetectionGenerator('DetectionCoordinates','Sensor Cartesian','MaxRange',200)
создает радарный генератор обнаружения, который сообщает об обнаружениях в Декартовой системе координат датчика и имеет максимальную область значений обнаружения 200 метров. Заключите каждое имя свойства в кавычки.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
SensorIndex
— Уникальный идентификатор датчикаУникальный идентификатор датчика, заданный как положительное целое число. Это свойство отличает обнаружения, которые прибывают из различных датчиков в системе мультидатчика.
Пример 5
Типы данных: double
UpdateInterval
— Необходимый временной интервал между обновлениями датчика
(значение по умолчанию) | положительный действительный скалярНеобходимый временной интервал между обновлениями датчика, заданными как положительный действительный скаляр. drivingScenario
вызовы объектов радарный генератор обнаружения в интервалах постоянного времени. Радарный детектор генерирует новые обнаружения, с промежутками заданные UpdateInterval
свойство. Значение UpdateInterval
свойство должно быть целочисленным кратным интервал времени симуляции. Обновления, которые требуют от датчика между интервалами обновления, не содержат обнаружений. Модули находятся в секундах.
Пример 5
Типы данных: double
SensorLocation
— Местоположение датчика
(значение по умолчанию) | [x y]
векторМестоположение радарного центра датчика, заданного как [x y]
вектор. SensorLocation
и Height
свойства задают координаты радарного датчика относительно системы координат автомобиля, оборудованного датчиком. Значение по умолчанию соответствует радару, смонтированному в центре передней решетки седана. Модули исчисляются в метрах.
Пример: [4 0.1]
Типы данных: double
Height
— Радарная высота датчика наземная плоскость
(значение по умолчанию) | положительный действительный скалярРадарная высота датчика над землей плоскость, заданная как положительный действительный скаляр. Высота задана относительно наземной плоскости транспортного средства. SensorLocation
и Height
свойства задают координаты радарного датчика относительно системы координат автомобиля, оборудованного датчиком. Значение по умолчанию соответствует радару, смонтированному в центре передней решетки седана. Модули исчисляются в метрах.
Пример: 0.3
Типы данных: double
Yaw
— Угол отклонения от курса датчика
(значение по умолчанию) | действительный скалярУгол отклонения от курса радарного датчика, заданного как действительный скаляр. Угол отклонения от курса является углом между центральной линией автомобиля, оборудованного датчиком и downrange осью радарного датчика. Положительный угол отклонения от курса соответствует по часовой стрелке вращение при взгляде в положительном направлении z - ось системы координат автомобиля, оборудованного датчиком. Модули в градусах.
Пример 4
Типы данных: double
Pitch
— Передайте угол датчика
(значение по умолчанию) | действительный скалярПередайте угол датчика, заданного как действительный скаляр. Угол подачи является углом между downrange осью радарного датчика и плоскостью x-y системы координат автомобиля, оборудованного датчиком. Положительный угол подачи соответствует по часовой стрелке вращение при взгляде в положительном направлении y - ось системы координат автомобиля, оборудованного датчиком. Модули в градусах.
Пример 3
Типы данных: double
Roll
— Угол вращения датчика
(значение по умолчанию) | действительный скалярУгол вращения радарного датчика, заданного как действительный скаляр. Угол вращения является углом вращения downrange оси радара вокруг x - ось системы координат автомобиля, оборудованного датчиком. Положительный угол вращения соответствует по часовой стрелке вращение при взгляде в положительном направлении x - ось системы координат. Модули в градусах.
Пример 4
Типы данных: double
FieldOfView
— Азимут и поля зрения вертикального изменения радарного датчика
| с действительным знаком 1 2 вектор положительных значенийАзимут и поля зрения вертикального изменения радарного датчика, заданного как с действительным знаком 1 2 вектор положительных значений, [azfov elfov]
. Поле зрения задает угловую степень, заполненную датчиком. Каждый компонент должен лечь в интервале (0,180]. Цели за пределами поля зрения радара не обнаруживаются. Модули в градусах.
Пример: [14 7]
Типы данных: double
MaxRange
— Максимальная область значений обнаружения
| положительный действительный скалярМаксимальный диапазон обнаружения, указанный как положительный действительный скаляр. Радар не может обнаружить цель вне этой области значений. Модули исчисляются в метрах.
Пример: 200
Типы данных: double
RangeRateLimits
— Минимальные и максимальные уровни области значений обнаружения
| с действительным знаком 1 2 векторМинимальные и максимальные уровни области значений обнаружения, заданные как с действительным знаком 1 2 вектор. Радар не может обнаружить цель этот интервал уровня области значений. Модули исчисляются в метрах в секунду.
Пример: [-20 100]
Чтобы включить это свойство, установите HasRangeRate
свойство к true
.
Типы данных: double
DetectionProbability
— Вероятность обнаружения цели
| положительный действительный скаляр, меньше чем или равный 1Вероятность обнаружения цели, заданной как положительный действительный скаляр, меньше чем или равный одному. Это количество задает вероятность обнаружения цели, которая имеет радарное поперечное сечение, ReferenceRCS
, в ссылочной области значений обнаружения, ReferenceRange
.
FalseAlarmRate
— Ложный сигнальный уровень1e-6
(значение по умолчанию) | положительный действительный скалярЛожный сигнальный уровень в радарной ячейке разрешения, заданной как положительный действительный скаляр в области значений [10–7,10–3]. Модули являются безразмерными.
Пример: 1e-5
Типы данных: double
ReferenceRange
— Диапазон ссылки для данной вероятности обнаружения
(значение по умолчанию) | положительный действительный скалярДиапазон ссылки для данной вероятности обнаружения, заданного как положительный действительный скаляр. Диапазон ссылки является областью значений когда цель, задающая радарное поперечное сечение ReferenceRCS
обнаруживается с вероятностью заданных DetectionProbability
. Модули исчисляются в метрах.
Типы данных: double
ReferenceRCS
— Ссылочное радарное поперечное сечение для данной вероятности обнаружения
(значение по умолчанию) | неотрицательный действительный скалярСсылочное радарное поперечное сечение (RCS) для данной вероятности обнаружения, заданного как неотрицательный действительный скаляр. Ссылочный RCS является значением, в котором цель обнаруживается с вероятностью, заданной DetectionProbability
. Модули находятся в dBsm.
Типы данных: double
RadarLoopGain
— Радарное усиление циклаЭто свойство доступно только для чтения.
Радарное усиление цикла, заданное как действительный скаляр. Радарное усиление цикла связано с отношением сигнал-шум, о котором сообщают, радара, SNR, целевого радарного сечения, RCS, и целевого диапазона, R
ОСШ = RadarLoopGain + RCS - 40*log10 (R)
RadarLoopGain
зависит от DetectionProbability
, ReferenceRange
, ReferenceRCS
, и FalseAlarmRate
значения свойств. Модули находятся в дБ.
Типы данных: double
AzimuthResolution
— Разрешение азимута радара
(значение по умолчанию) | положительный действительный скалярРазрешение азимута радара, заданного как положительный действительный скаляр. Разрешение азимута задает минимальное разделение в углу азимута, под которым радар может отличить две цели. Разрешение азимута обычно является 3dB-downpoint в угловой ширине луча азимута радара. Модули в градусах.
Типы данных: double
ElevationResolution
— Разрешение вертикального изменения радара
(значение по умолчанию) | положительный действительный скалярРазрешение вертикального изменения радара, заданного как положительный действительный скаляр. Разрешение вертикального изменения задает минимальное разделение в углу вертикального изменения, под которым радар может отличить две цели. Разрешение вертикального изменения обычно является 3dB-downpoint в угловой ширине луча вертикального изменения радара. Модули в градусах.
Чтобы включить это свойство, установите HasElevation
свойство к true
.
Типы данных: double
RangeResolution
— Разрешение области значений радара
(значение по умолчанию) | положительный действительный скалярРазрешение области значений радара, заданного как положительный действительный скаляр. Разрешение области значений задает минимальное разделение в области значений, в которой радар может различать две цели. Модули исчисляются в метрах.
Типы данных: double
RangeRateResolution
— Разрешение уровня области значений радара
(значение по умолчанию) | положительный действительный скалярРазрешение уровня области значений радара, заданного как положительный действительный скаляр. Разрешение уровня области значений задает минимальное разделение в уровне области значений, на котором радар может различать две цели. Модули исчисляются в метрах в секунду.
Чтобы включить это свойство, установите HasRangeRate
свойство к true
.
Типы данных: double
AzimuthBiasFraction
— Часть смещения азимута
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения азимута радара, заданного как неотрицательный действительный скаляр. Смещение азимута выражается как часть разрешения азимута, заданного в AzimuthResolution
. Модули являются безразмерными.
Типы данных: double
ElevationBiasFraction
— Часть смещения вертикального изменения
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения вертикального изменения радара, заданного как неотрицательный действительный скаляр. Смещение вертикального изменения выражается как часть разрешения вертикального изменения, заданного в ElevationResolution
. Модули являются безразмерными.
Чтобы включить это свойство, установите HasElevation
свойство к true
.
Типы данных: double
RangeBiasFraction
— Часть смещения области значений
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения области значений радара, заданного как неотрицательный действительный скаляр. Смещение области значений выражается как часть разрешения области значений, заданного в RangeResolution
. Модули являются безразмерными.
Типы данных: double
RangeRateBiasFraction
— Уровень области значений смещает часть
(значение по умолчанию) | неотрицательный действительный скалярУровень области значений смещает часть радара, заданного как неотрицательный действительный скаляр. Смещение уровня области значений выражается как часть разрешения уровня области значений, заданного в RangeRateResolution
. Модули являются безразмерными.
Чтобы включить это свойство, установите HasRangeRate
свойство к true
.
Типы данных: double
HasElevation
— Позвольте радару измерить вертикальное изменениеfalse
(значение по умолчанию) | true
Позвольте радару измерить целевые углы вертикального изменения, заданные как false
или true
. Установите это свойство на true
смоделировать радарный датчик, который может оценить целевое вертикальное изменение. Установите это свойство на false
смоделировать радарный датчик, который не может измерить вертикальное изменение.
Типы данных: логический
HasRangeRate
— Позвольте радару измерить уровень области значенийfalse
(значение по умолчанию) | true
Позвольте радару измерить уровни целевого диапазона, заданные как false
или true
. Установите это свойство на true
смоделировать радарный датчик, который может оценить уровень целевого диапазона. Установите это свойство на false
смоделировать радарный датчик, который не может измерить уровень области значений.
Типы данных: логический
HasNoise
— Позвольте добавить шум в радарные измерения датчикаtrue
(значение по умолчанию) | false
Позвольте добавить шум в радарные измерения датчика, заданные как true
или false
. Установите это свойство на true
добавить шум в радарные измерения. В противном случае измерения не имеют никакого шума. Даже если вы устанавливаете HasNoise
к false
, объект все еще вычисляет MeasurementNoise
свойство каждого обнаружения.
Типы данных: логический
HasFalseAlarms
— Позвольте создать ложные сигнальные радарные обнаруженияtrue
(значение по умолчанию) | false
Позвольте сообщить о ложных сигнальных радарных измерениях, заданных как true
или false
. Установите это свойство на true
сообщить о ложных предупреждениях. В противном случае только о фактических обнаружениях сообщают.
Типы данных: логический
HasOcclusion
— Включите поглощение газов угла обзораtrue
(значение по умолчанию) | false
Включите поглощение газов угла обзора, заданное как true
или false
. Чтобы сгенерировать обнаружения только от объектов, для которых радар имеет прямую линию вида, устанавливает это свойство на true
. Например, с этим включенным свойством, радар не генерирует обнаружение для транспортного средства, которое находится позади другого транспортного средства и блокировано от представления.
Типы данных: логический
MaxNumDetectionsSource
— Источник максимального количества обнаружений, о которых сообщают 'Auto'
(значение по умолчанию) | 'Property'
Источник максимального количества обнаружений, о которых сообщает датчик, заданный как 'Auto'
или 'Property'
. Когда это свойство установлено в 'Auto'
, датчик сообщает обо всех обнаружениях. Когда это свойство установлено в 'Property'
, датчик сообщает не больше, чем о количестве обнаружений, заданных MaxNumDetections
свойство.
Типы данных: char |
string
MaxNumDetections
— Максимальное количество обнаружений, о которых сообщают,
(значение по умолчанию) | положительное целое числоО максимальном количестве обнаружений сообщает датчик, заданный как положительное целое число. Об обнаружениях сообщают в порядке расстояния до датчика, пока максимальное количество не достигнуто.
Чтобы включить это свойство, установите MaxNumDetectionsSource
свойство к 'Property'
.
Типы данных: double
DetectionCoordinates
— Система координат обнаружений, о которых сообщают,'Ego Cartesian'
(значение по умолчанию) | 'Sensor Cartesian'
| 'Sensor Spherical'
Система координат обнаружений, о которых сообщают, заданных как одно из этих значений:
'Ego Cartesian'
— Об обнаружениях сообщают в Декартовой системе координат автомобиля, оборудованного датчиком.
'Sensor Cartesian'
— Об обнаружениях сообщают в Декартовой системе координат датчика.
'Sensor Spherical'
— Об обнаружениях сообщают в сферической системе координат. Эта система координат сосредоточена в радаре и выровнена с ориентацией радара на автомобиле, оборудованном датчиком.
Типы данных: char |
string
ActorProfiles
— Профили агентаПрофили агента, заданные как структура или как массив структур. Каждая структура содержит физические характеристики и радарные характеристики агента.
Если ActorProfiles
одна структура, все агенты передали в radarDetectionGenerator
возразите используют этот профиль.
Если ActorProfiles
массив, каждый агент, переданный в объект, должен иметь уникальный профиль агента.
Чтобы сгенерировать массив структур для вашего ведущего сценария, используйте actorProfiles
функция. Таблица показывает допустимые поля структуры. Если вы не задаете поле, поля установлены в свои значения по умолчанию. Если никакие агенты не передаются в объект, то ActorID
поле не включено.
Поле | Описание |
---|---|
ActorID | Заданный сценарием идентификатор агента, заданный как положительное целое число. |
ClassID | Идентификатор классификации, заданный как неотрицательное целое число. 0 резервируется для объекта неизвестного или неприсвоенного класса. |
Length | Длина агента, заданного как положительный действительный скаляр. Значением по умолчанию является 4.7 . Модули исчисляются в метрах. |
Width | Ширина агента, заданного как положительный действительный скаляр. Значением по умолчанию является 1.8 . Модули исчисляются в метрах. |
Height | Высота агента, заданного как положительный действительный скаляр. Значением по умолчанию является 1.4 . Модули исчисляются в метрах. |
OriginOffset | Смещение вращательного центра агента от его геометрического центра, заданного как [x, y, z] вектор с действительным знаком. Вращательный центр или источник, расположен в нижнем центре агента. Для транспортных средств вращательный центр является точкой на земле ниже центра задней оси. Значением по умолчанию является [0 0 0] . Модули исчисляются в метрах. |
RCSPattern | Радарный шаблон поперечного сечения агента, заданного как numel(RCSElevationAngles) - numel(RCSAzimuthAngles) матрица с действительным знаком. Значением по умолчанию является [10 10; 10 10] . Модули находятся в децибелах на квадратный метр. |
RCSAzimuthAngles | Углы азимута, соответствующие строкам RCSPattern , заданный как вектор действительных значений в области значений [–180, 180]. Значением по умолчанию является [-180 180] . Модули в градусах. |
RCSElevationAngles | Углы вертикального изменения, соответствующие строкам RCSPattern , заданный как вектор действительных значений в области значений [–90, 90]. Значением по умолчанию является [-90 90] . Модули в градусах. |
Для полных определений полей структуры смотрите actor
и vehicle
функции.
[
также возвращает количество допустимых обнаружений, о которых сообщают, dets
,numValidDets
]
= sensor(actors
,time
)numValidDets
.
[
также возвращает логическое значение, dets
,numValidDets
,isValidTime
]
= sensor(actors
,time
)isValidTime
, указание, что UpdateInterval
время протекло.
actors
— Положения агента сценарияПоложения агента сценария, заданные как структура или массив структур. Каждая структура соответствует агенту. Можно сгенерировать эти структуры с помощью actorPoses
функция. Можно также создать эти структуры вручную.
Поле | Описание |
---|---|
ActorID | Заданный сценарием идентификатор агента, заданный как положительное целое число. |
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] вектор с действительным знаком. Модули в градусах в секунду. |
Для полных определений полей структуры смотрите actor
и vehicle
функции.
time
— Текущее время симуляцииТекущее время симуляции, заданное как неотрицательный действительный скаляр. drivingScenario
вызовы объектов радарный генератор обнаружения в интервалах постоянного времени. Радарный детектор генерирует новые обнаружения, с промежутками заданные UpdateInterval
свойство. Значение UpdateInterval
свойство должно быть целочисленным кратным интервал времени симуляции. Обновления, которые требуют от датчика между интервалами обновления, не содержат обнаружений. Модули находятся в секундах.
Пример: 10.5
Типы данных: double
dets
— Радарные обнаружения датчикаobjectDetection
объектыРадарные обнаружения датчика, возвращенные как массив ячеек objectDetection
объекты. Каждый объект содержит эти поля:
Свойство | Определение |
---|---|
Time | Время измерения |
Measurement | Объектные измерения |
MeasurementNoise | Ковариационная матрица шума измерения |
SensorIndex | Уникальный идентификатор датчика |
ObjectClassID | Предметная классификация |
MeasurementParameters | Параметры используются функциями инициализации нелинейного Кальмана, отслеживающего фильтры |
ObjectAttributes | Дополнительная информация передала средству отслеживания |
Для Декартовых координат, Measurement
, MeasurementNoise
, и MeasurementParameters
сообщаются в системе координат, заданной DetectionCoordinates
свойство radarDetectionGenerator
.
Для сферических координат, Measurement
и MeasurementNoise
сообщаются в сферической системе координат на основе Декартовой системы координат датчика. MeasurementParameters
сообщаются в Декартовых координатах датчика.
Измерение
Свойство DetectionCoordinates | Измерение и координаты шума измерения | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'Ego Cartesian' |
Координатная зависимость от HasRangeRate
| |||||||||||||||
'Sensor Cartesian' | ||||||||||||||||
'Sensor Spherical' |
Координатная зависимость от HasRangeRate и HasElevation
|
MeasurementParameters
Параметр | Определение |
---|---|
Frame | Перечислимый тип, указывающий на систему координат раньше, сообщал об измерениях. Когда Frame установлен в 'rectangular' , об обнаружениях сообщают в Декартовых координатах. Когда Frame набор 'spherical' , об обнаружениях сообщают в сферических координатах. |
OriginPosition | 3-D векторное смещение источника датчика от источника автомобиля, оборудованного датчиком. Вектор выведен из SensorLocation и Height свойства заданы в radarDetectionGenerator . |
Orientation | Ориентация системы координат датчика видения относительно системы координат автомобиля, оборудованного датчиком. Ориентация выведена из Yaw , Pitch , и Roll свойства radarDetectionGenerator . |
HasVelocity | Указывает, содержат ли измерения скорость или компоненты уровня области значений. |
HasElevation | Указывает, содержат ли измерения компоненты вертикального изменения. |
ObjectAttributes
Атрибут | Определение |
---|---|
TargetIndex | Идентификатор агента, ActorID , это сгенерировало обнаружение. Для ложных предупреждений это значение отрицательно. |
SNR | Отношение сигнал-шум обнаружения в дБ. |
numValidDets
— Количество обнаруженийКоличество обнаружений, возвращенных как неотрицательное целое число.
Когда MaxNumDetectionsSource
свойство установлено в 'Auto'
, numValidDets
установлен в длину dets
.
Когда MaxNumDetectionsSource
свойство установлено в 'Property'
, dets
массив ячеек с длиной, определенной MaxNumDetections
свойство. Не больше, чем MaxNumDetections
количество обнаружений возвращено. Если количество обнаружений - меньше, чем MaxNumDetections
, первый numValidDets
элементы dets
содержите допустимые обнаружения. Остающиеся элементы dets
установлены в значение по умолчанию.
Типы данных: double
isValidTime
— Допустимое время обнаружения
| 1
Допустимое время обнаружения, возвращенное как 0
или 1
. isValidTime
0
когда обновления обнаружения время от времени требуют, которые являются между интервалами обновления, заданными UpdateInterval
.
Типы данных: логический
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
radarDetectionGenerator
isLocked | Определите, используется ли Системный объект |
Сгенерируйте обнаружения с помощью автомобильного радара по ходу движения, смонтированного на автомобиле, оборудованном датчиком. Примите, что существует три цели:
Транспортное средство 1 находится в центральном маршруте, непосредственно перед автомобилем, оборудованным датчиком, и управляющий на той же скорости.
Транспортное средство 2 находится в левом маршруте и управлении быстрее, чем автомобиль, оборудованный датчиком на 12 километров в час.
Транспортное средство 3 находится в правильном маршруте и управлении медленнее, чем автомобиль, оборудованный датчиком на 5 километров в час.
Все положения, скорости и измерения относительно автомобиля, оборудованного датчиком. Запустите симуляцию для десяти шагов.
dt = 0.1; pos1 = [150 0 0]; pos2 = [160 10 0]; pos3 = [130 -10 0]; vel1 = [0 0 0]; vel2 = [12*1000/3600 0 0]; vel3 = [-5*1000/3600 0 0]; car1 = struct('ActorID',1,'Position',pos1,'Velocity',vel1); car2 = struct('ActorID',2,'Position',pos2,'Velocity',vel2); car3 = struct('ActorID',3,'Position',pos3,'Velocity',vel3);
Создайте автомобильный радарный датчик, который возмещен от автомобиля, оборудованного датчиком. По умолчанию местоположение датчика в (3.4,0) метры от центра транспортного средства и 0,2 метра над землей плоскость. Выключите расчет уровня области значений так, чтобы радарный датчик измерил положение только.
radar = radarDetectionGenerator('DetectionCoordinates','Sensor Cartesian', ... 'MaxRange',200,'RangeResolution',10,'AzimuthResolution',10, ... 'FieldOfView',[40 15],'UpdateInterval',dt,'HasRangeRate',false); tracker = multiObjectTracker('FilterInitializationFcn',@initcvkf, ... 'ConfirmationParameters',[3 4],'NumCoastingUpdates',6);
Сгенерируйте обнаружения с радаром от неавтомобилей, оборудованных датчиком. Выходные обнаружения формируют массив ячеек и могут быть переданы непосредственно в multiObjectTracker
.
simTime = 0;
nsteps = 10;
for k = 1:nsteps
dets = radar([car1 car2 car3],simTime);
[confirmedTracks,tentativeTracks,allTracks] = updateTracks(tracker,dets,simTime);
Переместите автомобили один временной шаг и обновите мультиобъектное средство отслеживания.
simTime = simTime + dt;
car1.Position = car1.Position + dt*car1.Velocity;
car2.Position = car2.Position + dt*car2.Velocity;
car3.Position = car3.Position + dt*car3.Velocity;
end
Используйте birdsEyePlot
создать вид сверху обнаружений. Постройте зону охвата датчика. Извлеките положения X и Y целей путем преобразования Measurement
поля массива ячеек в массив MATLAB. Отобразите обнаружения на видимом с большого расстояния графике.
BEplot = birdsEyePlot('XLim',[0 220],'YLim',[-75 75]); caPlotter = coverageAreaPlotter(BEplot,'DisplayName','Radar coverage area'); plotCoverageArea(caPlotter,radar.SensorLocation,radar.MaxRange, ... radar.Yaw,radar.FieldOfView(1)) detPlotter = detectionPlotter(BEplot,'DisplayName','Radar detections'); detPos = cellfun(@(d)d.Measurement(1:2),dets,'UniformOutput',false); detPos = cell2mat(detPos')'; if ~isempty(detPos) plotDetection(detPlotter,detPos) end
Смоделируйте эффекты поглощения газов при генерации радарных обнаружений от radarDetectionGenerator
Система object™.
Создайте два автомобиля. Расположите первый автомобиль на расстоянии в 40 метров от датчика. Расположите второй автомобиль 10 метров непосредственно позади первого автомобиля.
car1 = struct('ActorID',1,'Position',[40 0 0]); car2 = struct('ActorID',2,'Position',[50 0 0]);
Создайте радарный Системный объект генератора обнаружения, radarSensor
, со значениями по умолчанию. Используйте Системный объект, чтобы сгенерировать обнаружения.
radarSensor = radarDetectionGenerator;
simTime = 0; % start of simulation
[dets,numValidDets] = radarSensor([car1 car2],simTime);
Отобразите зону охвата радарного генератора обнаружения на видимом с большого расстояния графике.
bep = birdsEyePlot('XLim',[0 60],'YLim',[-15 15]); caPlotter = coverageAreaPlotter(bep,'DisplayName', ... 'Radar coverage area'); plotCoverageArea(caPlotter,radarSensor.SensorLocation, ... radarSensor.MaxRange,radarSensor.Yaw, ... radarSensor.FieldOfView(1));
Извлеките (X, Y) положения целей путем преобразования (X, Y) значения Measurement
поле массива ячеек в массив MATLAB. Затем отобразите обнаружения.
if numValidDets > 0 detPlotter = detectionPlotter(bep,'DisplayName','Radar detections'); detPos = cellfun(@(d)d.Measurement(1:2),dets,'UniformOutput',false); detPos = cell2mat(detPos')'; plotDetection(detPlotter,detPos) end
По умолчанию радарный генератор обнаружения исключает цели, которые закрываются другими объектами. Поэтому радар обнаруживает самую близкую цель, но не цель непосредственно позади него. Чтобы включать закрытую цель в обнаружения, выпустите радарный генератор обнаружения, отключите поглощение газов угла обзора и сгенерируйте обнаружения снова. Отобразите обнаружения.
release(radarSensor) radarSensor.HasOcclusion = false; [detsNoOcclusion,numValidDets] = radarSensor([car1 car2],simTime); if numValidDets > 0 detPos = cellfun(@(d)d.Measurement(1:2),detsNoOcclusion,'UniformOutput',false); detPos = cell2mat(detPos')'; plotDetection(detPlotter, detPos) end
Выпустите радарный генератор обнаружения.
release(radarSensor)
Указания и ограничения по применению:
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.