Этот пример показов, как программно создать изменения сценария вождения, который был построен с использованием приложения Driving Scenario Designer. Программное создание изменений сценария позволяет вам быстро протестировать алгоритмы вождения при нескольких условиях.
Чтобы создать программные изменения сценария вождения, выполните следующие шаги:
В интерактивном режиме создайте сценарий вождения с помощью приложения Driving Scenario Designer.
Экспорт функции MATLAB ®, которая генерирует код MATLAB, эквивалентный этому сценарию.
В редакторе MATLAB измените экспортированную функцию, чтобы создать изменения исходного сценария.
Вызовите функцию, чтобы сгенерировать drivingScenario
объект, который представляет сценарий.
Импортируйте объект сценария в приложение, чтобы симулировать измененный сценарий или сгенерировать дополнительные сценарии. Кроме того, чтобы симулировать измененный сценарий в Simulink ®, импортируйте объект в модель Simulink с помощью блока Scenario Reader.
Схема показывает визуальное представление этого рабочего процесса.
Используйте Driving Scenario Designer, чтобы в интерактивном режиме создать сценарий вождения, на котором можно протестировать алгоритмы. Для получения дополнительной информации о построении сценариев, смотрите Создание Сценария Вождения в интерактивном режиме и Генерация Синтетических Данных Датчика.
В этом примере используется сценарий вождения, который основан на одном из предварительно созданных сценариев, которые можно загрузить из приложения Driving Scenario Designer.
Откройте файл сценария в приложении.
drivingScenarioDesigner('LeftTurnScenarioNoSensors.mat')
Щелкните Запуском, чтобы симулировать сценарий. В этом сценарии автомобиль , оборудованный датчиком перемещается на север и проходит прямо через перекресток. Между тем, транспортное средство, идущее с левой стороны перекрестка, поворачивает налево и оказывается перед автомобилем , оборудованным датчиком, в соседней полосе.
Для простоты в этот сценарий не входят датчики, установленные на автомобиль , оборудованный датчиком.
После просмотра и моделирования сценария можно экспортировать сценарий в командную строку 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, используйте блок Scenario Reader. Этот блок считывает дороги и актёров из файла сценария, сохраненного из приложения или drivingScenario
переменная, сохраненная в рабочем пространстве MATLAB или рабочем пространстве модели. Добавьте блок Scenario Reader к своей модели и установите эти параметры.
Установите Источник сценария вождения в From workspace
.
Установите имя переменной рабочего пространства MATLAB или модели на имя drivingScenario
переменная в рабочей рабочей области.
При работе с drivingScenario
объекты в Simulink, имейте эти точки в виду.
Когда Источник автомобиль , оборудованный датчиком установлен в Scenario
, модель использует автомобили , оборудованные датчиком, определенные в вашем drivingScenario
объект. Блок определяет, какой актёр является автомобиль , оборудованный датчиком, на основе заданного ActorID
свойство актёра. Этот актёр должен быть Vehicle
объект (см. vehicle
). Чтобы изменить назначенный автомобиль , оборудованный датчиком, обновите параметр Автомобиля , оборудованного датчиком ActorID.
При соединении выходных положений актёра к блокам датчика подтвердите, что в блоках датчика параметр для определения источника профилей актёра установлен в From Scenario Reader block
. При выборе этой опции блоки датчиков получают профили актёра непосредственно от актёров, заданных в вашем drivingScenario
объект.