Сгенерируйте радарные обнаружения для ведущего сценария
Система radarDetectionGenerator
object™ генерирует обнаружения от радарного датчика, смонтированного на автомобиле, оборудованном датчиком. На все обнаружения ссылаются к системе координат автомобиля, оборудованного датчиком. Можно использовать объект radarDetectionGenerator
в сценарии, содержащем агентов и траектории, которые можно создать при помощи объекта drivingScenario
. Объект может моделировать действительные обнаружения с добавленным случайным шумом и также сгенерировать ложные сигнальные обнаружения. Кроме того, можно использовать объект radarDetectionGenerator
создать вход к multiObjectTracker
.
Сгенерировать радарные обнаружения:
Создайте объект radarDetectionGenerator
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
sensor = radarDetectionGenerator
sensor = radarDetectionGenerator(Name,Value)
создает радарный объект генератора обнаружения со значениями свойств по умолчанию.sensor
= radarDetectionGenerator
свойства наборов с помощью одной или нескольких пар "имя-значение". Например, sensor
= radarDetectionGenerator(Name,Value
)radarDetectionGenerator('DetectionCoordinates','Sensor Cartesian','MaxRange',200)
создает радарный генератор обнаружения, который сообщает об обнаружениях в Декартовой системе координат датчика и имеет максимальную область значений обнаружения 200 метров. Заключите каждое имя свойства в кавычки.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release
разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
SensorIndex
— Уникальный идентификатор датчикаУникальный идентификатор датчика, заданный как положительное целое число. Это свойство отличает обнаружения, которые прибывают из различных датчиков в системе мультидатчика.
Пример 5
Типы данных: double
UpdateInterval
— Необходимый временной интервал между обновлениями датчика0.1
(значение по умолчанию) | положительный действительный скалярНеобходимый временной интервал между обновлениями датчика, заданными как положительный действительный скаляр. Вызовы объектов drivingScenario
радарный генератор обнаружения в интервалах постоянного времени. Радарный детектор генерирует новые обнаружения, с промежутками заданные свойством UpdateInterval
. Значение свойства UpdateInterval
должно быть целочисленным кратным интервал времени симуляции. Обновления, которые требуют от датчика между интервалами обновления, не содержат обнаружений. Модули находятся в секундах.
Пример 5
Типы данных: double
SensorLocation
— Местоположение датчика[3.4 0]
(значение по умолчанию) | вектор [x y]
Местоположение радарного центра датчика, заданного как вектор [x y]
. Свойства SensorLocation
и Height
задают координаты радарного датчика относительно системы координат автомобиля, оборудованного датчиком. Значение по умолчанию соответствует радару, смонтированному в центре передней решетки седана. Модули исчисляются в метрах.
Пример: [4 0.1]
Типы данных: double
Высота
Радарная высота датчика наземная плоскость0.2
(значение по умолчанию) | положительный действительный скалярРадарная высота датчика над землей плоскость, заданная как положительный действительный скаляр. Высота задана относительно наземной плоскости автомобиля. Свойства SensorLocation
и Height
задают координаты радарного датчика относительно системы координат автомобиля, оборудованного датчиком. Значение по умолчанию соответствует радару, смонтированному в центре передней решетки седана. Модули исчисляются в метрах.
Пример: 0.3
Типы данных: double
Yaw
— Угол отклонения от курса датчика0
(значение по умолчанию) | действительный скалярУгол отклонения от курса радарного датчика, заданного как действительный скаляр. Угол отклонения от курса является углом между центральной линией автомобиля, оборудованного датчиком и downrange осью радарного датчика. Положительный угол отклонения от курса соответствует по часовой стрелке вращение при взгляде в положительном направлении z - ось системы координат автомобиля, оборудованного датчиком. Модули в градусах.
Пример 4
Типы данных: double
Pitch
— Передайте угол датчика0
(значение по умолчанию) | действительный скалярПередайте угол датчика, заданного как действительный скаляр. Угол подачи является углом между downrange осью радарного датчика и плоскостью x-y системы координат автомобиля, оборудованного датчиком. Положительный угол подачи соответствует по часовой стрелке вращение при взгляде в положительном направлении y - ось системы координат автомобиля, оборудованного датчиком. Модули в градусах.
Пример 3
Типы данных: double
Roll
— Угол вращения датчика0
(значение по умолчанию) | действительный скалярУгол вращения радарного датчика, заданного как действительный скаляр. Угол вращения является углом вращения downrange оси радара вокруг x - ось системы координат автомобиля, оборудованного датчиком. Положительный угол вращения соответствует по часовой стрелке вращение при взгляде в положительном направлении x - ось системы координат. Модули в градусах.
Пример 4
Типы данных: double
FieldOfView
— Азимут и поля зрения повышения радарного датчика[20 5]
| с действительным знаком 1 2 вектор положительных значенийАзимут и поля зрения повышения радарного датчика, заданного как с действительным знаком 1 2 вектор положительных значений, [azfov elfov]
. Поле зрения задает угловую степень, заполненную датчиком. Каждый компонент должен лечь в интервале (0,180]. Цели за пределами поля зрения радара не обнаруживаются. Модули в градусах.
Пример: [14 7]
Типы данных: double
MaxRange
— Максимальная область значений обнаружения150
| положительный действительный скалярМаксимальная область значений обнаружения, заданная как положительный действительный скаляр. Радар не может обнаружить цель вне этой области значений. Модули исчисляются в метрах.
Пример: 200
Типы данных: double
RangeRateLimits
— Минимальные и максимальные уровни области значений обнаружения[-100 100]
| с действительным знаком 1 2 векторМинимальные и максимальные уровни области значений обнаружения, заданные как с действительным знаком 1 2 вектор. Радар не может обнаружить цель этот интервал уровня области значений. Модули исчисляются в метрах в секунду.
Пример: [-20 100]
Чтобы включить это свойство, установите свойство HasRangeRate
на true
.
Типы данных: double
DetectionProbability
— Вероятность обнаружения цели0.9
| положительный действительный скаляр, меньше чем или равный 1Вероятность обнаружения цели, заданной как положительный действительный скаляр, меньше чем или равный одному. Это количество задает вероятность обнаружения цели, которая имеет радарное поперечное сечение, ReferenceRCS
, в ссылочной области значений обнаружения, ReferenceRange
.
FalseAlarmRate
— Ложный сигнальный уровень1e-6
(значение по умолчанию) | положительный действительный скалярЛожный сигнальный уровень в радарной ячейке разрешения, заданной как положительный действительный скаляр в области значений [10–7,10–3]. Модули являются безразмерными.
Пример: 1e-5
Типы данных: double
ReferenceRange
— Диапазон ссылки для данной вероятности обнаружения100
(значение по умолчанию) | положительный действительный скалярДиапазон ссылки для данной вероятности обнаружения, заданного как положительный действительный скаляр. Диапазон ссылки является областью значений, когда цель, задающая радарное поперечное сечение ReferenceRCS
, обнаруживается с вероятностью заданных DetectionProbability
. Модули исчисляются в метрах.
Типы данных: double
ReferenceRCS
— Ссылочное радарное поперечное сечение для данной вероятности обнаружения0
(значение по умолчанию) | неотрицательный действительный скалярСсылочное радарное поперечное сечение (RCS) для данной вероятности обнаружения, заданного как неотрицательный действительный скаляр. Ссылочный RCS является значением, в котором цель обнаруживается с вероятностью, заданной DetectionProbability
. Модули находятся в dBsm.
Типы данных: double
RadarLoopGain
— Радарное усиление циклаЭто свойство доступно только для чтения.
Радарное усиление цикла, заданное как действительный скаляр. Радарное усиление цикла связано с отношением сигнал-шум, о котором сообщают, радара, SNR, целевого радарного сечения, RCS, и целевого диапазона, R
ОСШ = RadarLoopGain + RCS - 40*log10 (R)
RadarLoopGain
зависит от DetectionProbability
, ReferenceRange
, ReferenceRCS
и значений свойств FalseAlarmRate
. Модули находятся в дБ.
Типы данных: double
AzimuthResolution
— Разрешение азимута радара4
(значение по умолчанию) | положительный действительный скалярРазрешение азимута радара, заданного как положительный действительный скаляр. Разрешение азимута задает минимальное разделение в углу азимута, под которым радар может отличить две цели. Разрешение азимута обычно является 3dB-downpoint в угловой ширине луча азимута радара. Модули в градусах.
Типы данных: double
ElevationResolution
— Разрешение повышения радара10
(значение по умолчанию) | положительный действительный скалярРазрешение повышения радара, заданного как положительный действительный скаляр. Разрешение повышения задает минимальное разделение в углу повышения, под которым радар может отличить две цели. Разрешение повышения обычно является 3dB-downpoint в угловой ширине луча повышения радара. Модули в градусах.
Чтобы включить это свойство, установите свойство HasElevation
на true
.
Типы данных: double
RangeResolution
— Разрешение области значений радара2.5
(значение по умолчанию) | положительный действительный скалярРазрешение области значений радара, заданного как положительный действительный скаляр. Разрешение области значений задает минимальное разделение в области значений, в которой радар может различать две цели. Модули исчисляются в метрах.
Типы данных: double
RangeRateResolution
— Разрешение уровня области значений радара0.5
(значение по умолчанию) | положительный действительный скалярРазрешение уровня области значений радара, заданного как положительный действительный скаляр. Разрешение уровня области значений задает минимальное разделение в уровне области значений, на котором радар может различать две цели. Модули исчисляются в метрах в секунду.
Чтобы включить это свойство, установите свойство HasRangeRate
на true
.
Типы данных: double
AzimuthBiasFraction
— Часть смещения азимута0.1
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения азимута радара, заданного как неотрицательный действительный скаляр. Смещение азимута выражается как часть разрешения азимута, заданного в AzimuthResolution
. Модули являются безразмерными.
Типы данных: double
ElevationBiasFraction
— Часть смещения повышения0.1
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения повышения радара, заданного как неотрицательный действительный скаляр. Смещение повышения выражается как часть разрешения повышения, заданного в ElevationResolution
. Модули являются безразмерными.
Чтобы включить это свойство, установите свойство HasElevation
на true
.
Типы данных: double
RangeBiasFraction
— Расположитесь часть смещения0.05
(значение по умолчанию) | неотрицательный действительный скалярЧасть смещения области значений радара, заданного как неотрицательный действительный скаляр. Смещение области значений выражается как часть разрешения области значений, заданного в RangeResolution
. Модули являются безразмерными.
Типы данных: double
RangeRateBiasFraction
— Уровень области значений смещает часть0.05
(значение по умолчанию) | неотрицательный действительный скалярУровень области значений смещает часть радара, заданного как неотрицательный действительный скаляр. Смещение уровня области значений выражается как часть разрешения уровня области значений, заданного в RangeRateResolution
. Модули являются безразмерными.
Чтобы включить это свойство, установите свойство HasRangeRate
на true
.
Типы данных: double
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
— Максимальное количество обнаружений, о которых сообщают,50
(значение по умолчанию) | положительное целое числоО максимальном количестве обнаружений сообщает датчик, заданный как положительное целое число. Об обнаружениях сообщают в порядке расстояния до датчика, пока максимальное количество не достигнуто.
Чтобы включить это свойство, установите свойство 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) -by-numel(RCSAzimuthAngles) матрица с действительным знаком. Значением по умолчанию является [10 10; 10 10] . Модули находятся в децибелах на квадратный метр. |
RCSAzimuthAngles | Углы азимута, соответствующие строкам RCSPattern , заданного как вектор действительных значений в области значений [–180, 180]. Значением по умолчанию является [-180 180] . Модули в градусах. |
RCSElevationAngles | Углы повышения, соответствующие строкам RCSPattern , заданного как вектор действительных значений в области значений [–90, 90]. Значением по умолчанию является [-90 90] . Модули в градусах. |
Для полных определений полей структуры смотрите функции vehicle
и actor
.
dets = sensor(actors,time)
[dets,numValidDets]
= sensor(actors,time)
[dets,numValidDets,isValidTime]
= sensor(actors,time)
[
также возвращает количество допустимых обнаружений, о которых сообщают, 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] вектор с действительным знаком. Можно задать или |
Speed | Скорость агента, заданного как действительный скаляр. Когда |
Roll | Угол вращения агента, заданного как действительный скаляр. Если |
Pitch | Передайте угол агента, заданного как действительный скаляр. Если |
Yaw | Угол отклонения от курса агента, заданного как действительный скаляр. Если |
Для полных определений полей структуры смотрите функции vehicle
и actor
.
время
Текущее время симуляцииТекущее время симуляции, заданное как неотрицательный действительный скаляр. Вызовы объектов 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
— Допустимое время обнаруженияДопустимое время обнаружения, возвращенное как 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.