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

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

В этом примере вы:

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

  2. Протестируйте систему AEB в модели Simulink с обратной связью с помощью серии сценариев тестирования, созданных приложением Driving Scenario Designer

  3. Сконфигурируйте настройки генерации кода для симуляции цикл и автоматически сгенерируйте код С для алгоритма управления.

Введение

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

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

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

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

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

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

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

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

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

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

  2. Vehicle and Environment, который моделирует динамику автомобиль , оборудованный датчиком и окружение. Он включает в себя считыватель сценария вождения и генераторы радиолокации и обнаружения зрения. Эти блоки обеспечивают синтетические данные о датчике для объектов.

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

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

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

open_system('AEBTestBenchExample/AEB with Sensor Fusion')

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

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

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

  • Подсистема Робот освобождает ускоритель транспортного средства при активации 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].

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

open_system('AEBWithSensorFusionMdlRef/AEB Controller')

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

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

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

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

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

Откройте Подсистему Транспортного средства и Окружения.

open_system('AEBTestBenchExample/Vehicle and Environment')

  • Подсистема Динамики аппарата моделирует динамику автомобиля , оборудованного датчиком с Транспортным средством Body 3DOF (Vehicle Dynamics Blockset) Single Track из Dynamics Blockset.

  • Подсистема Драйвера модели рулевого управления генерирует драйвер угол рулевого управления, чтобы сохранить автомобиль , оборудованный датчиком в своей полосе и следовать изогнутой дороге, заданной кривизной, K.

  • Подсистема симуляции актёра и датчика генерирует синтетические данные датчика, необходимые для отслеживания и слияния датчика. Сразу после загрузки модели 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;

Имя сценария является файлом сценария, созданным Driving Scenario Designer.

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

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

Блок Scenario Reader считывает, что актёр помещает данные из файла сценария. Блок преобразует положения актёра из мировых координат сценария в автомобиль , оборудованный датчиком координаты. Положения актёра транслируются по шине, сгенерированной блоком. Блок Vision Detection Generator и блок Radar Detection Generator синтезируют визуальные и радиолокационные обнаружения для актёров цели соответственно.

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

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

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

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

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

Модель 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 против времени остановки) показывает сравнение между временем столкновения (TTC) и временем остановки для FCW, частичным тормозом первой ступени, частичным тормозом второй ступени и полным тормозом соответственно.

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

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

  • Четвертый график показывает ускорение автомобиля , оборудованного датчиком.

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

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

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

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

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

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

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

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

if hasEmbeddedCoderLicense
    slbuild('AEBWithSensorFusionMdlRef')
end

Можно проверить, что скомпилированный код С ведет себя должным образом, используя симуляцию цикл (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 с помощью ряда сценариев тестирования, созданных Driving Scenario Designer.

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

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

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

Ссылки

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

[2] W. Hulshof, et al., «Autonomous Emergency Braking Test Results», 23-я Международная техническая конференция по повышенной безопасности транспортных средств (ESV), бумажный номер 13-0168, 2013

[3] Euro NCAP Test Protocol - AEB systems, ver. 2.0.1, Nov. 2017.

[4] Протокол испытаний Euro NCAP - AEB VRU systems, ver. 2.0.2, Nov. 2017.

См. также

Приложения

Блоки

Объекты

Похожие темы