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

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

В этом примере, вас:

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

Контроллер AEB с Fusion датчика

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

open_system('AEBTestBenchExample/AEB with Sensor Fusion')

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

  • Видение процессов подсистемы Fusion Отслеживания и Датчика и радарные обнаружения, прибывающие из подсистемы Транспортного средства и Среды и, генерируют положение и скорость дорожки самого важного объекта (MIO) относительно автомобиля, оборудованного датчиком.

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

  • Подсистема Робота Акселератора выпускает акселератор транспортного средства, когда 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 использование относительного расстояния и скорости ведущего транспортного средства или самого важного объекта

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

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

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

Откройте подсистему Транспортного средства и Среды.

open_system('AEBTestBenchExample/Vehicle and Environment')

  • Подсистема Динамики аппарата моделирует динамику автомобиля, оборудованного датчиком с блоком Vehicle Body 3DOF (Vehicle Dynamics Blockset) Single Track из Vehicle 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 на основе евро тестовый протокол NCAP

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

  • Евро NCAP AEB - Задняя часть От автомобиля к автомобилю тестирует протокол [3]

  • Евро NCAP AEB - Уязвимый тестовый протокол [4] Водителя

Automated Driving Toolbox предоставляет предварительно созданные ведущие сценарии согласно Евро тестовые протоколы 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 сделала полное предотвращение столкновения в этом сценарии.

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

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

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

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

if hasEmbeddedCoderLicense
    rtwbuild('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 с обратной связью. Модель состояла из Simulink и Stateflow базирующийся контроллер AEB, алгоритм сплава датчика, динамика автомобиля, оборудованного датчиком, ведущее средство чтения сценария и радар и генераторы обнаружения видения.

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

Можно теперь протестировать систему AEB с другим Евро сценарии тестирования NCAP для AEB. К ним можно получить доступ от Driving Scenario Designer.

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

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

Ссылки

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

[2] В. Хулсхоф, и др., "Автономные Результаты испытаний Экстренного торможения", 23-я Международная Техническая Конференция по Расширенной Безопасности Транспортных средств (ESV), Бумага Номер 13-0168, 2013

[3] Евро Тестовый Протокол NCAP - системы AEB, ver. 2.0.1, ноябрь 2017.

[4] Евро Тестовый Протокол NCAP - системы AEB VRU, ver. 2.0.2, ноябрь 2017.

Смотрите также

Приложения

Блоки

Объекты

Похожие темы