В этом примере показано, как создать основанное на событии cочетание датчиков и модель отслеживания в Simulink®.
В этом примере вы создаете модель для cочетания датчиков и отслеживания путем симуляции радара и камеры видения, каждый запускающийся в различной частоте обновления. Датчики и средство отслеживания работают на отдельных электронных блоках управления (ЭКЮ). Средство отслеживания запускается асинхронно от датчиков каждый раз, когда существует пакет обнаружений, о которых сообщают от любого датчика.
Откройте модель Simulink с помощью open_system
команда.
open_system('EventBasedTrackingModel.slx');
Модель состоит из пяти частей.
Часть Сценария модели состоит из блока Scenario Reader, который загружает сценарий, сохраненный в EventBasedFusion.mat
. В сценарии существует 4 транспортных средства: автомобиль, оборудованный датчиком, автомобиль перед ним, проезжающий мимо автомобиль и автомобиль позади автомобиля эго.
Автомобиль эго имеет два датчика: радар и камера видения. Радар симулирован с помощью блока Driving Radar Data Generator, достигнув 25 Гц, или каждых 40 миллисекунд. Камера симулирована с помощью блока Vision Detection Generator, запустив каждые 44 миллисекунды. Из-за комбинации уровней датчика, сценарий должен запуститься на уровне по крайней мере 250 Гц или каждых 4 миллисекундах. Обе модели датчика показывают в части Симуляции Датчика модели.
Системная часть Доставки сообщений модели симулирует асинхронную систему связи между датчиками и средством отслеживания. Каждый датчик выводит шину обнаружений, которая упаковывается в блоком Send сообщения и поставляется Очереди Сущности. Очереди организованы как очередь метода "первым пришел - первым вышел" (FIFO). Когда любая очередь содержит сообщения, она инициировала подсистему средства отслеживания.
Часть Cочетания датчиков и Отслеживания модели состоит из одного блока Triggered Subsystem. Подсистема соединяется с радаром и очередями видения и инициирована, когда у них есть сообщения.
open_system('EventBasedTrackingModel/SensorFusionAndTracking');
В подсистеме сообщение Получает блоки, читает сообщения и передают их полезную нагрузку, шину обнаружений, с блоком Detection Concatenation и затем со средством отслеживания. С этой настройкой средство отслеживания продвинуто только, когда существуют новые данные о датчике к процессу.
Итоговой частью модели является Визуализация, где весь сценарий, датчик и данные об отслеживании визуализируются блоком помощника.
Для средства отслеживания вы используете блок Global Nearest Neighbor Tracker. Вы изменяете средство отслеживания, чтобы использовать retrodiction метод для обработки измерения из последовательности (OOSM). При использовании средства отслеживания асинхронным способом часы средства отслеживания могут запуститься перед сообщениями, которые прибывают, который представляет сообщения 'из последовательности'. При установке средства отслеживания OOSM, обрабатывающий к retrodiction, позволяет средству отслеживания обрабатывать их вместо того, чтобы завершить работу с ошибкой или пропустить OOSM. В целом, retrodiction улучшает точность средства отслеживания.
Используя retrodiction требует большей памяти, потому что средство отслеживания должно обеспечить историю каждой дорожки. Чтобы уменьшать выделение памяти, вы сокращаете максимальное количество дорожек к 20, потому что существует всего несколько объектов в сценарии. Точно так же вы сокращаете максимальное количество датчиков к 2, потому что только два датчика сообщают средству отслеживания.
Вы увеличиваете порог для присвоения обнаружений к дорожкам от значения по умолчанию 30 - 50, чтобы позволить видение и радарные обнаружения, которые могут иметь различные смещения на объекте, который будет присвоен той же дорожке. Более крупный порог присвоения может привести к ложным обнаружениям, присваиваемым друг другу и создающий ложные дорожки. Чтобы уменьшать уровень ложных дорожек, вы делаете порог подтверждения более строгим путем увеличения его со значения по умолчанию 2 3 - 4 5 обнаружений.
Вы создаете и запускаете модель с помощью команды ниже.
sim('EventBasedTrackingModel.slx'); close_system('EventBasedTrackingModel.slx');
Симуляция показывает, что средство отслеживания отслеживает транспортное средство перед автомобилем, оборудованным датчиком после того, как несколько шагов потребовали для подтверждения и обеспечивают дорожку в сценарии. Проходящее мимо транспортное средство, в желтом, прослежено только после того, как это введет радарное поле зрения. Передающая дорожка транспортного средства пропущена после того, как это станет затененным передним транспортным средством. Транспортное средство позади автомобиля, оборудованного датчиком никогда не обнаруживается никаким датчиком, и поэтому это никогда не прослеживается.
Этот пример показал вам, как использовать основанное на событии cочетание датчиков и систему слежения. Пример показал, как соединить датчики с различными частотами обновления с помощью асинхронного средства отслеживания и как инициировать средство отслеживания, чтобы обработать данные о датчике каждый раз, когда данные становятся доступными. Средство отслеживания использует retrodiction метод обработки измерения из последовательности, чтобы обработать данные о датчике, которые прибывают из последовательности.