В этом примере показано, как реализовать автономное экстренное торможение (AEB) с помощью алгоритма слияния датчиков с помощью Automated Driving Toolbox.
В этом примере вы:
Интегрируйте контроллер AEB на основе Simulink ® и Stateflow ®, алгоритм слияния датчиков, динамику ego автомобиля, считыватель сценария вождения и генераторы обнаружения радиолокации и зрения.
Протестируйте систему AEB в модели Simulink с обратной связью с помощью серии сценариев тестирования, созданных приложением Driving Scenario Designer
Сконфигурируйте настройки генерации кода для симуляции цикл и автоматически сгенерируйте код С для алгоритма управления.
Автономное экстренное торможение (AEB) является передовой активной системой безопасности, которая помогает драйверам избегать или уменьшать столкновения с другими транспортными средствами или уязвимыми участниками дорожного движения. Системы AEB повышают безопасность за счет:
Предотвращение аварий путем раннего выявления критических ситуаций и предупреждения драйвера.
Уменьшение серьезности неизбежных аварий путем снижения скорости столкновения. В некоторых случаях системы АЕБ подготавливают транспортное средство и удерживающие системы к влиянию [1].
Европейская программа оценки новых автомобилей (Euro NCAP) включила город АЕБ и межгородскую систему в свой рейтинг безопасности с 2014 года. НЦАП Евро продолжает пропагандировать системы АЕБ для защиты уязвимых участников дорожного движения, таких, как пешеходы и велосипедисты.
Современные системы AEB в основном используют радары и датчики зрения, чтобы идентифицировать потенциальных партнеров по столкновению перед автомобилем , оборудованным датчиком. Для точного, надежного и надежного обнаружения при минимизации ложных срабатываний часто требуется несколько датчиков. Именно поэтому технология слияния датчиков играет важную роль для системы AEB.
Добавьте папку файла примера в путь поиска файлов MATLAB ®. Затем откройте основную модель Simulink, используемую в этом примере.
addpath(genpath(fullfile(matlabroot,'examples','driving'))) open_system('AEBTestBenchExample')
Модель состоит из двух основных подсистем:
AEB с Sensor Fusion, который содержит алгоритм слияния датчиков и контроллер AEB.
Vehicle and Environment, который моделирует динамику автомобиль , оборудованный датчиком и окружение. Он включает в себя считыватель сценария вождения и генераторы радиолокации и обнаружения зрения. Эти блоки обеспечивают синтетические данные о датчике для объектов.
Чтобы построить графики обнаружения синтетических датчиков, отслеживаемых объектов и достоверных данных, используйте Bird ' s-Eye Scope. Область Bird ' s-Eye Scope является инструментом визуализации уровня модели, который можно открыть с панели инструментов модели Simulink. На вкладке Simulation, в разделе Результаты, нажмите Bird ' s-Eye Scope. После открытия возможностей нажатия кнопки Find Signals, чтобы настроить сигналы. Панель приборной панели отображает автомобиль , оборудованный датчиком скорость, ускорение и состояние контроллеров автономного аварийного торможения (AEB) и предупреждения столкновения (FCW).
Откройте контроллер AEB с подсистемой Sensor Fusion.
open_system('AEBTestBenchExample/AEB with Sensor Fusion')
Эта подсистема содержит алгоритм отслеживания и слияния датчиков, а также контроллеры скорости и AEB.
Подсистема Tracking and Sensor Fusion обрабатывает визуальные и радиолокационные обнаружения, поступающие от подсистемы Vehicle and Environment, и генерирует положение и скорость наиболее важной дорожки объекта (MIO) относительно автомобиля , оборудованного датчиком.
Подсистема Контроллера Скорости заставляет автомобиль , оборудованный датчиком перемещаться с установленной скоростью драйвер с помощью пропорционального интегрального (PI) контроллера.
Подсистема Робот освобождает ускоритель транспортного средства при активации AEB.
Подсистема Контроллер реализует предупреждение столкновения (FCW) и алгоритм управления AEB на основе подхода вычисления времени остановки.
Время остановки относится к времени, с которого эго машина впервые применяет свои тормоза с замедлением, к тому, когда речь заходит о полной остановке. Время остановки может быть получено следующим уравнением:
Система FCW предупреждает драйвер о скором столкновении с ведущим транспортным средством. Ожидается, что драйвер среагирует на предупреждение и применит тормоз со временем задержки,.
Общее время в пути автомобиля , оборудованного датчиком перед столкновением с ведущим транспортным средством может быть выражено:
Когда время столкновения (TTC) ведущего транспортного средства становится меньше, активируется предупреждение 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 синтезируют визуальные и радиолокационные обнаружения для актёров цели соответственно.
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.