Программно создавайте изменения сценария вождения

Этот пример показов, как программно создать изменения сценария вождения, который был построен с использованием приложения Driving Scenario Designer. Программное создание изменений сценария позволяет вам быстро протестировать алгоритмы вождения при нескольких условиях.

Чтобы создать программные изменения сценария вождения, выполните следующие шаги:

  1. В интерактивном режиме создайте сценарий вождения с помощью приложения Driving Scenario Designer.

  2. Экспорт функции MATLAB ®, которая генерирует код MATLAB, эквивалентный этому сценарию.

  3. В редакторе MATLAB измените экспортированную функцию, чтобы создать изменения исходного сценария.

  4. Вызовите функцию, чтобы сгенерировать drivingScenario объект, который представляет сценарий.

  5. Импортируйте объект сценария в приложение, чтобы симулировать измененный сценарий или сгенерировать дополнительные сценарии. Кроме того, чтобы симулировать измененный сценарий в Simulink ®, импортируйте объект в модель Simulink с помощью блока Scenario Reader.

Схема показывает визуальное представление этого рабочего процесса.

Сценарий сборки в приложении

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

В этом примере используется сценарий вождения, который основан на одном из предварительно созданных сценариев, которые можно загрузить из приложения Driving Scenario Designer.

Откройте файл сценария в приложении.

drivingScenarioDesigner('LeftTurnScenarioNoSensors.mat')

Щелкните Запуском, чтобы симулировать сценарий. В этом сценарии автомобиль , оборудованный датчиком перемещается на север и проходит прямо через перекресток. Между тем, транспортное средство, идущее с левой стороны перекрестка, поворачивает налево и оказывается перед автомобилем , оборудованным датчиком, в соседней полосе.

Для простоты в этот сценарий не входят датчики, установленные на автомобиль , оборудованный датчиком.

Экспорт функции MATLAB сценария

После просмотра и моделирования сценария можно экспортировать сценарий в командную строку MATLAB. На панели инструментов приложения Driving Scenario Designer выберите Экспорт > MATLAB Function. Экспортированная функция содержит код MATLAB, используемый для создания сценария, созданного в приложении. Откройте экспортированную функцию.

open LeftTurnScenarioNoSensors.m

Вызов этой функции возвращает эти аспекты сценария вождения.

  • scenario - Дороги и актёры сценариев, возвращенные в качестве drivingScenario объект.

  • egoVehicle - Автомобиль , оборудованный датчиком, заданная в сценарии, возвращается как Vehicle объект. Для получения дополнительной информации смотрите vehicle функция.

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

Изменение функции для создания изменений сценария

Изменяя код в экспортированной функции MATLAB, можно сгенерировать несколько изменения одного сценария. Одной из распространенных изменений является тестирование автомобиля , оборудованного датчиком на разных скоростях. В экспортированной функции MATLAB скорость автомобиля , оборудованного датчиком устанавливается на постоянное значение 10 метров в секунду (speed = 10). Чтобы сгенерировать различные скорости автомобиля , оборудованного датчиком, можно преобразовать переменную скорости в входной параметр в функцию. Откройте скрипт, содержащий измененную версию экспортированной функции.

open LeftTurnScenarioNoSensorsModified.m

В этой измененной функции:

  • egoSpeed включен в качестве входного параметра.

  • speed, постоянная переменная, удаляется.

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

Этот рисунок показывает эти изменения скрипта.

Чтобы создать дополнительные изменения, примите во внимание:

  • Изменение параметров дороги и маршрута для просмотра эффекта на обнаружения маршрута

  • Изменение траектории или стартовых положений транспортных средств

  • Изменение размерностей транспортных средств

Вызов функции для генерации программных сценариев

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

scenario = LeftTurnScenarioNoSensorsModified(20) % m/s
scenario = 
  drivingScenario with properties:

        SampleTime: 0.0400
          StopTime: Inf
    SimulationTime: 0
         IsRunning: 1
            Actors: [1x2 driving.scenario.Vehicle]
          Barriers: [0x0 driving.scenario.Barrier]

Импорт измененного сценария в приложение

Чтобы импортировать измененный сценарий с измененным транспортным средством в приложение, используйте drivingScenarioDesigner функция. Задайте drivingScenario объект как входной параметр.

drivingScenarioDesigner(scenario)

Предварительно другое транспортное средство прошло через перекресток. Теперь со скоростью автомобиля , оборудованного датчиком, увеличенной с 10 до 20 метров в секунду, автомобиль , оборудованный датчиком проходит через перекресток первым.

При работе с drivingScenario объекты в приложении, имейте эти точки в виду.

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

  • Если ваш сценарий включает датчики, можно повторно открыть и сценарий, и датчики с помощью этого синтаксиса: drivingScenarioDesigner(scenario,sensors).

  • Если вы вносите значительные изменения в размерности актёра, убедитесь, что ClassID свойство актёра соответствует значению Class ID, заданному в приложении. Например, в приложении автомобили имеют Class ID 1 и грузовики имеют идентификатор класса 2. Если вы программно измените автомобиль, чтобы иметь размерности грузовика, обновите ClassID свойство этого транспортного средства от 1 (автомобиль), чтобы 2 (грузовик).

Импорт измененного сценария в Simulink

Чтобы импортировать измененный сценарий в модель Simulink, используйте блок Scenario Reader. Этот блок считывает дороги и актёров из файла сценария, сохраненного из приложения или drivingScenario переменная, сохраненная в рабочем пространстве MATLAB или рабочем пространстве модели. Добавьте блок Scenario Reader к своей модели и установите эти параметры.

  1. Установите Источник сценария вождения в From workspace.

  2. Установите имя переменной рабочего пространства MATLAB или модели на имя drivingScenario переменная в рабочей рабочей области.

При работе с drivingScenario объекты в Simulink, имейте эти точки в виду.

  • Когда Источник автомобиль , оборудованный датчиком установлен в Scenario, модель использует автомобили , оборудованные датчиком, определенные в вашем drivingScenario объект. Блок определяет, какой актёр является автомобиль , оборудованный датчиком, на основе заданного ActorID свойство актёра. Этот актёр должен быть Vehicle объект (см. vehicle). Чтобы изменить назначенный автомобиль , оборудованный датчиком, обновите параметр Автомобиля , оборудованного датчиком ActorID.

  • При соединении выходных положений актёра к блокам датчика подтвердите, что в блоках датчика параметр для определения источника профилей актёра установлен в From Scenario Reader block. При выборе этой опции блоки датчиков получают профили актёра непосредственно от актёров, заданных в вашем drivingScenario объект.

См. также

Приложения

Блоки

Функции

Объекты

Похожие темы