В этом примере показано, как выполнить слияние трека/трека в Simulink ® с Sensor Fusion и Tracking Toolbox™. В контексте автономного управления автомобилем пример иллюстрирует, как создать децентрализованную архитектуру отслеживания с использованием блока track fuser. В этом примере каждое транспортное средство выполняет отслеживание независимо, а также информацию слежения за взрывателем, полученную от других транспортных средств. Этот пример внимательно следует примеру Track-to-Track Fusion for Automotive Safety Applications (Sensor Fusion and Tracking Toolbox) MATLAB ®.
Приложения безопасности автомобиля во многом полагаются на ситуационную осведомленность транспортного средства. Повышение осведомленности о ситуации обеспечивает базис для успешного принятия решений в различных ситуациях. Для достижения этого транспортные средства могут извлечь выгоду из слияния данных о межтранспортном средстве. Этот пример иллюстрирует рабочий процесс в Simulink для плавления данных из двух транспортных средств, чтобы улучшить ситуационную осведомленность о транспортном средстве.
Перед запуском этого примера drivingScenario
объект использовался для создания того же сценария, определенного в Track-to-Track Fusion for Automotive Safety Applications (Sensor Fusion and Tracking Toolbox). Дороги и актёры из этого сценария затем были сохранены в файле объекта сценария Scene.mat
.
В разделе Tracking and Fusion модели существуют две подсистемы, которая реализует возможности отслеживания и слияния целей Vehicle1
и Vehicle2
в этом сценарии.
Vehicle1
Эта подсистема включает блок Scenario Reader (Automated Driving Toolbox), который считывает данные положения актёра из сохраненного файла. Блок преобразует положения актёра из мировых координат сценария в автомобиль , оборудованный датчиком координаты. Положения актёра транслируются по шине, сгенерированной блоком. Положения актёра используются Подсистемой Симуляция, которая генерирует обнаружения радара и зрения. Эти обнаружения затем передаются в JPDA Tracker V1
блок, который обрабатывает обнаружения, чтобы сгенерировать список дорожек. Затем дорожки передаются в Track Concatenation1
блок, который объединяет эти входные дорожки. Первый вход в Track Concatenation1
блок является локальными треками от трекера JPDA, а второй вход - треками, полученными от трек- фузера другого транспортного средства. Чтобы преобразовать локальные дорожки в центральные, фузеру дорожки нужна информация о параметре локальных дорожек. Однако эта информация недоступна с прямых выходов трекера JPDA. Поэтому блок helper Update Pose используется, чтобы предоставить эту информацию путем чтения данных из файла v1Pose.mat. Затем обновленные треки транслируются на T2TF Tracker V1
блок как вход. Наконец, trackFuser
(Sensor Fusion and Tracking Toolbox) T2TF Tracker V1
блок запирает локальные дорожки транспортного средства с дорожками, полученными от трек- фьюзера другого транспортного средства. После каждого обновления трек-фьюзер на каждом транспортном средстве транслирует свои слитые дорожки, которые должны быть поданы в обновление трек-фьюзера другого транспортного средства в следующую метку времени.
Vehicle2
Vehicle2
подсистема следует такой же настройке, как Vehicle1
подсистема, как описано выше.
Визуализация
Блок Visualization реализован с помощью блока MATLAB System и определяется с помощью HelperTrackDisplay
блок. Блок использует RunTimeObject
параметр блоков для отображения их выходов. Смотрите Доступ к Блочным Данным во Время Симуляции (Simulink) для получения дополнительной информации о том, как получить доступ к выходам блоков во время симуляции.
После запуска модели вы визуализируете результаты как на рисунке. В анимации ниже показаны результаты для этой симуляции.
Визуализация включает две панели. На левой панели показаны обнаружения, локальные треки и слитые треки, которые Vehicle1
сгенерирован во время симуляции и представляет ситуационную осведомленность Vehicle1
. Правая панель показывает ситуационную осведомленность о Vehicle2
.
Зарегистрированные обнаружения представлены черными кругами. Локальные и сросшиеся дорожки от Vehicle1
представлены квадратными и алмазными соответственно. Локальные и сросшиеся дорожки от Vehicle2
представлено сплошным чёрным квадратом и бриллиантом. Заметьте, что во время начала симуляции Vehicle1
обнаруживает транспортные средства, припаркованные на правой стороне улицы, и подтверждаются дорожки, связанные с припаркованными транспортными средствами. В настоящее время Vehicle2
обнаруживает только Vehicle1
который находится непосредственно перед ним. Когда симуляция продолжает подтвержденные дорожки от Vehicle1
являются ли трансляции на fuser on Vehicle2
. После сплавления дорожек vehicle2
становится известно об объектах до обнаружения этих объектов самостоятельно. Точно так же Vehicle2
треки являются трансляциями в Vehicle1
. Vehicle1
предохраняет эти дорожки и становится известно об объектах до обнаружения их самостоятельно.
В частности, вы наблюдаете, что пешехода, стоящего между синей и фиолетовой машиной на правой стороне улицы, обнаруживают и отслеживают Vehicle1
. Vehicle2
сначала станет известно о пешеходе, сплавив трассу с Vehicle1
на отметке 0.8 секунд. Это занимает Vehicle2
примерно за 3 секунды до начала обнаружения пешехода с помощью собственного датчика. Возможность отслеживать пешехода на основе входов от Vehicle1
позволяет Vehicle2
расширять свою ситуационную осведомленность и снижать риск аварии.
Этот пример показал, как выполнить слияние трека с треком в Simulink. Вы научились выполнять отслеживание с помощью децентрализованной архитектуры отслеживания, где каждое транспортное средство отвечает за поддержание собственных локальных треков, запал треков от других транспортных средств и передачу треков другому транспортному средству. Вы также использовали блок трекера JPDA, чтобы сгенерировать локальные треки.