exponenta event banner

Автономное экстренное торможение с синтезом датчиков

В этом примере показано, как реализовать автономное экстренное торможение (AEB) с помощью алгоритма слияния датчиков с помощью автоматизированной панели инструментов вождения.

В этом примере выполняется следующее:

  1. Интегрируйте контроллер AEB на базе Simulink ® и Stateflow ®, алгоритм слияния датчиков, динамику эго-транспортных средств, считыватель сценариев вождения, а также генераторы радиолокационного и визуального обнаружения.

  2. Тестирование системы AEB в модели Simulink с замкнутым контуром с использованием ряда тестовых сценариев, созданных приложением Driving Script Designer

  3. Настройте параметры генерации кода для моделирования ПО в цикле и автоматически создайте код C для алгоритма управления.

Введение

Автономное экстренное торможение (АЕБ) представляет собой усовершенствованную систему активной безопасности, которая помогает водителям избегать или смягчать столкновения с другими транспортными средствами или уязвимыми участниками дорожного движения. Системы АЕБ повышают безопасность за счет:

  1. Предотвращение аварий путем раннего выявления критических ситуаций и предупреждения водителя.

  2. Снижение тяжести неизбежных аварий за счет снижения скорости столкновения. В некоторых случаях системы АЕБ подготавливают транспортное средство и удерживающие системы к удару [1].

Европейская программа оценки новых автомобилей (Euro NCAP) включила город и межгородскую систему АЕБ в свой рейтинг безопасности от 2014 года. Euro NCAP продолжает пропагандировать системы АЕБ для защиты уязвимых участников дорожного движения, таких как пешеходы и велосипедисты.

Современные системы AEB в основном используют радары и датчики зрения для выявления потенциальных партнеров по столкновению перед эго-транспортным средством. Для точного, надежного и надежного обнаружения при минимизации ложных срабатываний часто требуется множество датчиков. Именно поэтому технология синтеза сенсоров играет важную роль для системы AEB.

Обзор модели Simulink для испытательного стенда AEB

Добавьте папку файла примера в путь поиска MATLAB ®. Затем откройте основную модель Simulink, используемую в этом примере.

addpath(genpath(fullfile(matlabroot,'examples','driving')))
open_system('AEBTestBenchExample')

Модель состоит из двух основных подсистем:

  1. AEB с Sensor Fusion, который содержит алгоритм слияния датчиков и контроллер AEB.

  2. Транспортное средство и окружающая среда, которая моделирует динамику эго-транспортного средства и окружающую среду. Он включает в себя считыватель сценария движения и генераторы радиолокационного и визуального обнаружения. Эти блоки обеспечивают синтетические данные датчиков для объектов.

Для построения графиков обнаружения синтетических датчиков, отслеживаемых объектов и данных об истинности земли используйте Область действия «Птичий глаз». Область «Птичий глаз» - это инструмент визуализации на уровне модели, который можно открыть на панели инструментов модели Simulink. На вкладке Моделирование (Simulation) в разделе Результаты проверки (Review Results) щелкните Область действия птичьего глаза (Bird 's-Eye Scope). После открытия области щелкните Найти сигналы (Find Signals), чтобы настроить сигналы. Панель приборной панели отображает скорость эго-транспортного средства, ускорение и состояние автономных контроллеров экстренного торможения (AEB) и предупреждения о столкновении (FCW).

Контроллер AEB с синтезом датчиков

Откройте контроллер AEB с подсистемой Sensor Fusion.

open_system('AEBTestBenchExample/AEB with Sensor Fusion')

Эта подсистема содержит алгоритм слежения и слияния датчиков, а также контроллеры скорости и AEB.

  • Подсистема слежения и слияния датчиков обрабатывает сигналы наблюдения и радиолокационного обнаружения, поступающие из подсистемы транспортного средства и окружающей среды, и генерирует положение и скорость наиболее важной трассы объекта (MIO) относительно эго-транспортного средства.

  • Подсистема контроллера скорости обеспечивает движение эго-транспортного средства с заданной водителем скоростью с помощью пропорционального интегрального (PI) контроллера.

  • Подсистема Accelerator Robot освобождает ускоритель транспортного средства при активации AEB.

  • Подсистема контроллера AEB реализует предупреждение о прямом столкновении (FCW) и алгоритм управления AEB на основе подхода расчета времени остановки.

Время остановки - это время от момента, когда эго-транспортное средство впервые применяет тормоза с замедлением, $a_{brake}$до момента полной остановки. Время остановки можно получить по следующему уравнению:

$$\tau_{stop}=v_{ego}/a_{brake}$$

Система FCW предупреждает водителя о скором столкновении с ведущим транспортным средством. Ожидается, что водитель отреагирует на предупреждение и применит тормоз со временем задержки,.$\tau_{react}$

Общее время движения эго-транспортного средства до столкновения с ведущим транспортным средством может быть выражено следующим образом:

$$\tau_{FCW}=\tau_{react}+\tau_{stop}=\tau_{react}+v_{ego}/a_{driver} $$

Когда время до столкновения (TTC) ведущего транспортного средства становится меньше, $\tau_{FCW}$активируется предупреждение FCW.

Если водитель вовремя не применяет тормоза, например, из-за отвлекающих факторов, система AEB действует независимо от водителя, чтобы избежать или смягчить столкновение. Системы AEB обычно используют каскадное торможение, которое состоит из многоступенчатого частичного торможения с последующим полным торможением [2].

Откройте подсистему контроллера AEB.

open_system('AEBWithSensorFusionMdlRef/AEB Controller')

Контроллер AEB состоит из нескольких функциональных блоков:

  • TTCCalculation, которая рассчитывает TTC с использованием относительного расстояния и скорости ведущего транспортного средства или наиболее важного объекта

  • Расчет времени останова для FCW, частичного торможения первой и второй ступеней (PB) и полного торможения (FB) соответственно

  • AEB_Logic, который является конечным автоматом, сравнивающим TTC со временем остановки для определения активации FCW и AEB.

Транспортное средство и окружающая среда

Откройте подсистему «Транспортное средство и окружающая среда».

open_system('AEBTestBenchExample/Vehicle and Environment')

  • Подсистема Vehicle Dynamics моделирует динамику ego-транспортного средства с помощью одноколейного блока Vehicle Dynamics Blockset 3DOF кузова транспортного средства (Vehicle Dynamics Blockset).

  • Подсистема модели рулевого управления водителя генерирует угол поворота рулевого управления водителя для удержания эго-транспортного средства на его полосе движения и следования по криволинейной дороге, определяемой кривизной, К.

  • Подсистема моделирования актера и сенсора генерирует синтетические данные сенсора, необходимые для отслеживания и слияния сенсора. Сразу после загрузки модели Simulink выполняется функция обратного вызова для создания среды моделирования с дорогой и несколькими движущимися по дороге субъектами.

Можно также запустить функцию обратного вызова, щелкнув Выполнить сценарий установки (Run Setup Script) в главной модели Simulink или введите в командной строке следующее:

helperAEBSetUp

Из списка можно указать номер сценария, соответствующий требуемому имени сценария.

% Create driving scenario
scenariosNames = {                            % scenarioNumber
   'AEB_CCRs_100overlap.mat',...                           % 1
   'AEB_CCRm_100overlap.mat',...                           % 2
   'AEB_CCRb_2_initialGap_12m_stop_inf.mat',...            % 3
   'AEB_CCRb_6_initialGap_40m_stop_inf.mat',...            % 4
   'AEB_PedestrianChild_Nearside_50width_overrun.mat'};    % 5
scenarioNumber = 5;

Имя сценария представляет собой файл сценария, созданный конструктором сценариев управления.

[scenario,egoCar,actor_Profiles] = ...
helperSessionToScenario(scenariosNames{scenarioNumber});

Файл сценария может быть преобразован в drivingScenario с использованием helperSessionToScenario сценарий.

Блок чтения сценариев считывает данные актера из файла сценария. Блок преобразует позы актера из мировых координат сценария в координаты эго-транспортного средства. Позы актера передаются в потоковом режиме по шине, генерируемой блоком. Блок генератора обнаружения видения и блок генератора обнаружения радара синтезируют сигналы обнаружения видения и радара для целевых субъектов соответственно.

Тестирование системы AEB на основе протокола тестирования Euro NCAP

Euro NCAP предлагает серию протоколов испытаний, которые проверяют эффективность систем AEB в сценариях «автомобиль-автомобиль сзади» (CCR) и уязвимых участников дорожного движения (VRU).

  • Euro NCAP AEB - Протокол испытания автомобилей сзади [3]

  • Euro NCAP AEB - протокол тестирования уязвимых участников дорожного движения [4]

Automated Driving Toolbox предоставляет предварительно разработанные сценарии вождения в соответствии с протоколами тестирования Euro NCAP для системы AEB. Предварительно разработанные сценарии можно просмотреть с помощью конструктора сценариев управления.

Модель AEB Simulink считывает файл сценария управления и выполняет моделирование.

Моделирование модели в течение 0,1 секунды.

sim('AEBTestBenchExample','StopTime','0.1'); % Simulate 0.1 seconds

Bird 's-Eye Scope показывает наземные данные об истинности транспортных средств и ребенка-пешехода. Он также показывает радиолокационные детекторы, детекторы зрения и объекты, отслеживаемые многообъектным трекером. Во время моделирования в течение 0,1 секунды датчики обзора и радара не обнаруживают ребенка-пешехода, поскольку ему мешают транспортные средства.

Моделирование модели в течение 3,8 секунды.

sim('AEBTestBenchExample','StopTime','3.8'); % Simulate 3.8 seconds

Bird 's-Eye Scope в момент моделирования 3,8 секунды показывает, что алгоритм слияния и отслеживания датчиков обнаружил ребенка-пешехода как наиболее важный объект и что система AEB применила тормоза, чтобы избежать столкновения.

Панель приборной панели, отображаемая вместе с Bird 's-Eye Scope, показала, что система AEB применила каскадный тормоз и эго-транспортное средство остановилось прямо перед столкновением. Цвет состояния AEB указывает уровень активации AEB.

  • Серый - AEB не активирован.

  • Желтый - активизируется частичный тормоз первой ступени.

  • Оранжевый - включается частичный тормоз второй ступени.

  • Красный - включается полный тормоз.

Завершите моделирование до конца, чтобы получить результаты.

sim('AEBTestBenchExample'); % Simulate to end of scenario

Просмотр результатов моделирования.

helperPlotAEBResults(logsout);

  • Первый график (TTC vs. Stopping Time) показывает сравнение времени до столкновения (TTC) и времени остановки для FCW, частичного тормоза первой ступени, частичного тормоза второй ступени и полного тормоза соответственно.

  • На втором графике показано, как конечный автомат AEB определяет активации для FCW и AEB на основе результатов сравнения с первого графика.

  • На третьем графике показана скорость эго-транспортного средства.

  • На четвертом графике показано ускорение эго-транспортного средства.

  • На пятом графике показан прогресс между эго-транспортным средством и MIO.

В первые 2 секунды эго-транспортное средство ускоряется до заданной скорости. Через 2,3 секунды алгоритм слияния датчиков начинает обнаруживать ребенка-пешехода. Сразу после обнаружения FCW активируется.

Через 2,4 секунды применяется первый этап частичного торможения, и эго-транспортное средство начинает замедляться. Вторая ступень частичного торможения снова приводится в действие через 2,5 секунды.

Когда эго-транспортное средство, наконец, останавливается на 3,9 секунды, путь между эго-транспортным средством и ребенком-пешеходом составляет около 2,4 метра. В этом сценарии система AEB позволила полностью избежать столкновения.

Создать код для алгоритма управления

AEBWithSensorFusionMdlRef модель настроена на поддержку генерации кода C с помощью программного обеспечения Embedded Coder ®. Чтобы проверить наличие доступа к встроенному кодеру, запустите:

hasEmbeddedCoderLicense = license('checkout','RTW_Embedded_Coder')

Можно создать функцию C для модели и изучить отчет о создании кода, выполнив следующие действия:

if hasEmbeddedCoderLicense
    slbuild('AEBWithSensorFusionMdlRef')
end

Можно проверить, что скомпилированный код C ведет себя так, как ожидалось, с помощью моделирования программного обеспечения в цикле (SIL). Для моделирования ACCWithSensorFusionMdlRef ссылочная модель в режиме SIL, используйте:

if hasEmbeddedCoderLicense
    set_param('AEBTestBenchExample/AEB with Sensor Fusion',...
        'SimulationMode','Software-in-the-loop (SIL)')
end

При запуске AEBTestBenchExample модель, код генерируется, компилируется и выполняется для AEBWithSensorFusionMdlRef модель. Это позволяет проверить поведение скомпилированного кода с помощью моделирования.

Заключение

В этом примере реализована система AEB с моделью Simulink с замкнутым контуром. Модель состояла из контроллера AEB на базе Simulink и Stateflow, алгоритма слияния датчиков, динамики эго-транспортных средств, считывателя сценариев вождения и генераторов обнаружения радаров и зрения.

Тестирование системы AEB выполняется с использованием ряда тестовых сценариев, созданных конструктором сценариев вождения.

Теперь можно протестировать систему AEB с другими тестовыми сценариями Euro NCAP для AEB. Доступ к ним можно получить из конструктора сценариев управления.

Удалите папку файла примера из пути поиска MATLAB.

rmpath(genpath(fullfile(matlabroot,'examples','driving')))

Ссылки

[1] Euro NCAP | Европейская программа оценки новых автомобилей. Euro NCAP

[2] W. Hulshof и др., «Результаты испытаний на автономное экстренное торможение», 23-я Международная техническая конференция по повышению безопасности транспортных средств (ESV), документ № 13-0168, 2013

[3] Протокол испытаний Euro NCAP - системы AEB, версия 2.0.1, ноябрь 2017 г.

[4] Протокол тестирования Euro NCAP - системы AEB VRU, версия 2.0.2, ноябрь 2017 г.

См. также

Приложения

Блоки

Объекты

Связанные темы