Сгенерируйте радарные обнаружения для ведущего сценария
radarDetectionGenerator Система object™ генерирует обнаружения от радарного датчика, смонтированного на автомобиле, оборудованном датчиком. На все обнаружения ссылаются к системе координат автомобиля, оборудованного датчиком. Можно использовать radarDetectionGenerator объект в сценарии, содержащем агентов и траектории, которые можно создать при помощи drivingScenario объект. Объект может симулировать действительные обнаружения с добавленным случайным шумом и также сгенерировать ложные сигнальные обнаружения. Кроме того, можно использовать radarDetectionGenerator объект создать вход к multiObjectTracker. При создании сценариев с помощью приложения Driving Scenario Designer радарные датчики, смонтированные на автомобиле, оборудованном датчиком, выводятся как radarDetectionGenerator объекты.
Сгенерировать радарные обнаружения:
Создайте radarDetectionGenerator объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
создает радарный объект генератора обнаружения со значениями свойств по умолчанию.sensor = radarDetectionGenerator
свойства наборов с помощью одной или нескольких пар "имя-значение". Например, sensor = radarDetectionGenerator(Name,Value)radarDetectionGenerator('DetectionCoordinates','Sensor Cartesian','MaxRange',200) создает радарный генератор обнаружения, который сообщает об обнаружениях в Декартовой системе координат датчика и имеет максимальную область значений обнаружения 200 метров. Заключите каждое имя свойства в кавычки.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в 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 — Профили агентаActor profiles, заданные как структура или как массив структур. Каждая структура содержит физические характеристики и радарные характеристики агента.
Если 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 | Предметная классификация |
ObjectAttributes | Дополнительная информация передала средству отслеживания |
MeasurementParameters | Параметры используются функциями инициализации нелинейного Кальмана, отслеживающего фильтры |
Для Декартовых координат, 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Тангаж, и 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)
radarDetectionGeneratorisLocked | Определите, используется ли Системный объект |
Сгенерируйте обнаружения с помощью автомобильного радара по ходу движения, смонтированного на автомобиле, оборудованном датчиком. Примите, что существует три цели:
Транспортное средство 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, ... 'ConfirmationThreshold',[3 4],'DeletionThreshold',[6 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).
drivingScenario | lidarPointCloudGenerator | multiObjectTracker | objectDetection | visionDetectionGeneratorУ вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.