В этом примере показано, как программно создать изменения ведущего сценария, который был создан с помощью приложения Driving Scenario Designer. Программно создание изменений сценария позволяет вам быстро протестировать свои ведущие алгоритмы при нескольких условиях.
Чтобы создать программируемые изменения ведущего сценария, выполните эти шаги:
В интерактивном режиме создайте ведущий сценарий при помощи приложения Driving Scenario Designer.
Экспортируйте функцию MATLAB®, которая генерирует код MATLAB, который эквивалентен этому сценарию.
В редакторе MATLAB измените экспортируемую функцию, чтобы создать изменения исходного сценария.
Вызовите функцию, чтобы сгенерировать drivingScenario
объект, который представляет сценарий.
Импортируйте объект сценария в приложение, чтобы симулировать модифицированный сценарий или сгенерировать дополнительные сценарии. В качестве альтернативы, чтобы симулировать модифицированный сценарий в Simulink®, импортируйте объект в модель Simulink при помощи блока Scenario Reader.
Схема показывает визуальное представление этого рабочего процесса.
Используйте Driving Scenario Designer, чтобы в интерактивном режиме создать ведущий сценарий, на котором можно протестировать ваши алгоритмы. Для получения дополнительной информации о создании сценариев смотрите, Создают Ведущий Сценарий В интерактивном режиме и Генерируют Синтетические Данные о Датчике.
Этот пример использует ведущий сценарий, который основан на одном из предварительно созданных сценариев, которые можно загрузить из приложения Driving Scenario Designer.
Откройте файл сценария в приложении.
drivingScenarioDesigner('LeftTurnScenarioNoSensors.mat')
Нажмите Run, чтобы симулировать сценарий. В этом сценарии автомобиль, оборудованный датчиком перемещается на север и идет сквозной пересечение. Между тем транспортное средство, прибывающее из левой стороны пересечения, поворачивает налево и заканчивается перед автомобилем, оборудованным датчиком в смежном маршруте.
Для простоты этот сценарий не включает датчики, смонтированные на автомобиле, оборудованном датчиком.
После того, как вы просмотрите и симулируете сценарий, можно экспортировать сценарий в командную строку MATLAB. От панели инструментов приложения Driving Scenario Designer выберите Export> Export 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]
Чтобы импортировать модифицированный сценарий с модифицированным транспортным средством в приложение, используйте drivingScenarioDesigner
функция. Задайте drivingScenario
возразите как входной параметр.
drivingScenarioDesigner(scenario)
Ранее другое транспортное средство проходило через пересечение сначала. Теперь со скоростью автомобиля, оборудованного датчиком, увеличенного с 10 до 20 метров в секунду, автомобиль, оборудованный датчиком проходит через пересечение сначала.
При работе с drivingScenario
объекты в приложении, помните об этих точках.
Чтобы испытать различные скорости автомобиля, оборудованного датчиком, вызовите экспортируемую функцию снова, и затем импортируйте новый drivingScenario
объект с помощью drivingScenarioDesigner
функция. Приложение не включает пункт меню для импорта этих объектов.
Если ваш сценарий включает датчики, можно вновь открыть и сценарий и датчики при помощи этого синтаксиса: drivingScenarioDesigner(scenario,sensors)
.
Если вы вносите существенные изменения в размерности агента, уверены что ClassID
свойство агента соответствует Значению идентификатора Класса, заданному в приложении. Например, в приложении, автомобили имеют ID Класса 1
и грузовики имеют ID Класса 2
. Если вы программно изменяете автомобиль, чтобы иметь размерности грузовика, обновить ClassID
свойство того транспортного средства от 1
(автомобиль) к 2
(грузовик).
Чтобы импортировать модифицированный сценарий в модель Simulink, используйте блок Scenario Reader. Этот блок читает дороги и агентов или из файла сценария, сохраненного из приложения или из drivingScenario
переменная, сохраненная в рабочее пространство MATLAB или рабочее пространство модели. Добавьте блок Scenario Reader в свою модель и установите эти параметры.
Установите Источник ведущего сценария к From workspace
.
Установите рабочее пространство MATLAB или имя переменной рабочего пространства модели к имени drivingScenario
переменная в вашей рабочей области.
При работе с drivingScenario
объекты в Simulink, помните об этих точках.
Когда Источник автомобиля, оборудованного датчиком установлен в Scenario
, модель использует автомобиль, оборудованный датчиком, заданный в вашем drivingScenario
объект. Блок определяет, какой агент является автомобилем, оборудованным датчиком на основе заданного ActorID
свойство агента. Этим агентом должен быть Vehicle
объект (см. vehicle
). Чтобы изменить обозначенный автомобиль, оборудованный датчиком, обновите Автомобиль, оборудованный датчиком параметр ActorID.
При соединении выходных положений агента с блоками датчика, обновляет эти блоки, чтобы получить профили агента непосредственно из drivingScenario
объект. По умолчанию блоки используют тот же набор профилей агента для всех агентов, где профили заданы на вкладке Actor Profiles блоков. Чтобы получить профили из объекта, на вкладке Actor Profiles каждого блока датчика, устанавливают Избранный метод указывать, что агент профилирует параметр к MATLAB expression
. Затем установите выражение MATLAB для параметра профилей агента вызывать actorProfiles
функция на объекте. Например: actorProfiles(scenario)
.