В этом примере показано, как использовать блоки Simulation 3D Message Set и Simulation 3D Message Get для связи со окружением визуализации 3D при запуске маневра изменения маршрута. В частности, вы используете:
Simulation 3D Message Get блок, чтобы узнать, сколько конусов попадает транспортное средство во время маневра.
Simulation 3D Message Set блок для управления светофором.
Минимальное оборудование, необходимое для запуска примера, смотрите в 3D Visualization Engine Requirements and Limitations.
Когда включено 3D окружение визуализации, запустите двухполосный маневр изменения, который поражает конусы.
Создайте и откройте рабочую копию проекта примера готовых узлов двухполосного изменения.
Включите 3D окружение визуализации. В Подсистеме визуализации откройте маску 3D Engine блока и выберите Enabled. Применить изменения и сохранить модель.
Также в MATLAB® введите этот код в командной строке.
На верхнем уровне модели установите параметры блоков Lane Change Reference Generator так, чтобы транспортное средство не выполнила маневр успешно. Установите эти параметры блоков, примените изменения и сохраните модель.
Maneuver start time с 5
.
Longitudinal entrance velocity setpoint с 36
.
Кроме того, в командной строке MATLAB введите этот код.
Запускать маневр 30 секунд. Когда симуляция выполняется, в окне AutoVrtlEnv можно увидеть, как транспортное средство сталкивается с конусами.
Используйте блок Simulation 3D Message Get, чтобы получить количество конусов, которые транспортное средство ударило во время маневра. По умолчанию в маневре используется сцена двухполосного изменения.
Перейдите к разделу Визуализация > 3D Подсистемами двигателей. Щелкните правой кнопкой мыши блок 3D Engine и выберите Mask > Look Under Mask. В 3D Visualization > 3D Engine > Подсистемы двигателей вставьте следующие блоки:
Simulation 3D Message Get
Display
Math Function
Установите параметры блоков Simulation 3D Message Get так, чтобы блок извлекал данные конуса из сцены двухполосного изменения. Установите эти параметры блоков, примените изменения и сохраните модель.
Signal name, SigName с NumOfConesHit
Data type, DataType с boolean
Message size, MsgSize с [2 15]
Sample time с -1
Кроме того, в командной строке MATLAB введите этот код.
Установите параметр Math Function Output dimensionality блока на transpose
. Когда вы запускаете симуляцию, Math Function блок выводит [15 2]
массив.
Кроме того, в командной строке MATLAB введите этот код.
Соедините блоки Simulation 3D Message Get, Math Function и Display как показано на рисунке. Подтвердите параметры блоков. Сохраните модель.
Проверьте, что блок Simulation 3D Scene Configuration выполняется перед блоком Simulation 3D Message Get. Таким образом, Unreal Engine® 3D визуализации окружения подготавливает данные до того, как блок Simulation 3D Message Get получит их. Чтобы проверить порядок выполнения блока, щелкните правой кнопкой мыши блоки и выберите Properties. На вкладке General подтвердите следующие Priority настройки:
Simulation 3D Scene Configuration — 0
Simulation 3D Message Get — 1
Для получения дополнительной информации о порядке выполнения смотрите Управление и Отображение порядка выполнения.
Запустите маневр. Когда симуляция выполняется, блок отображения обновляется с помощью ReadMsg
логическое значение 1
когда транспортное средство ударяется о соответствующий конус.
Результаты показывают, что транспортное средство поражает SM_Cone20
и SM_Cone30
во время маневра.
В этой таблице приведено имя конуса сцены смены двойного маршрута, которое соответствует ReadMsg
элемент массива.
Simulation 3D Message Get блок- | Нереально® Имя конуса редактора | Simulation 3D Message Get Блока Элемента массива | Нереальное имя конуса редактора |
---|---|---|---|
ReadMsg(1,1) | SM_Cone5 | ReadMsg(2,1) | SM_Cone10 |
ReadMsg(1,2) | SM_Cone4 | ReadMsg(2,2) | SM_Cone09 |
ReadMsg(1,3) | SM_Cone3 | ReadMsg(2,3) | SM_Cone08 |
ReadMsg(1,4) | SM_Cone2 | ReadMsg(2,4) | SM_Cone07 |
ReadMsg(1,5) | SM_Cone01 | ReadMsg(2,5) | SM_Cone06 |
ReadMsg(1,6) | SM_Cone15 | ReadMsg(2,6) | SM_Cone20 |
ReadMsg(1,7) | SM_Cone14 | ReadMsg(2,7) | SM_Cone19 |
ReadMsg(1,8) | SM_Cone13 | ReadMsg(2,8) | SM_Cone18 |
ReadMsg(1,9) | SM_Cone12 | ReadMsg(2,9) | SM_Cone17 |
ReadMsg(1,10) | SM_Cone11 | ReadMsg(2,10) | SM_Cone16 |
ReadMsg(1,11) | SM_Cone25 | ReadMsg(2,11) | SM_Cone30 |
ReadMsg(1,12) | SM_Cone24 | ReadMsg(2,12) | SM_Cone29 |
ReadMsg(1,13) | SM_Cone23 | ReadMsg(2,13) | SM_Cone28 |
ReadMsg(1,14) | SM_Cone22 | ReadMsg(2,14) | SM_Cone27 |
ReadMsg(1,15) | SM_Cone21 | ReadMsg(2,15) | SM_Cone26 |
Перейдите к разделу Визуализация > 3D Подсистемами двигателей. Щелкните правой кнопкой мыши блок 3D Engine и выберите Mask > Look Under Mask. В 3D Visualization > 3D Engine > Подсистемы двигателей вставьте следующие блоки:
Simulation 3D Message Set
Repeating Sequence Stair
Установите параметры блоков Simulation 3D Message Set так, чтобы блок отправлял данные сигнала трафика в сцену двухполосного изменения. Установите эти параметры блоков, примените изменения и сохраните модель.
Signal name, SigName с TrafficLight1
Sample time с -1
Эта таблица предоставляет цвет света светофора сцены, который соответствует WriteMsg
значение в сцене «Смена двойного маршрута».
Simulation 3D Message Set блок- |
|
---|---|
0 | Red |
1 | Yellow |
2 | Green |
Кроме того, в командной строке MATLAB введите этот код.
Установите параметры блоков Repeating Sequence Stair, чтобы отправить команду, которая соответствует красным, желтым и зеленым сигналам светофора. Установите эти параметры блоков, примените изменения и сохраните модель.
Vector of output values: с [0 0 0 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2].'
Sample time с 1
Output data type с int32
Кроме того, в командной строке MATLAB введите этот код. Применить изменения блоков и сохранить модель.
Соедините блоки как показано на рисунке. Подтвердите параметры блоков и сигнальные соединения. Сохраните модель.
Проверьте, что блок Simulation 3D Message Set выполняется перед блоком Simulation 3D Scene Configuration. Таким образом, Simulation 3D Message Set подготавливает данные сигнала до того, как окружение визуализации Unreal Engine 3D получит их. Чтобы проверить порядок выполнения блока, щелкните правой кнопкой мыши блоки и выберите Properties. На вкладке General подтвердите следующие Priority настройки:
Simulation 3D Scene Configuration — 0
Simulation 3D Message Set — -1
Для получения дополнительной информации о порядке выполнения смотрите Управление и Отображение порядка выполнения.
Запустите маневр. Во время симуляции в окне AutoVrtlEnv можно увидеть TrafficLight1
свет изменяется с красного на желтый на зеленый.
Временные области (Области) значений (ы) |
|
|
---|---|---|
0–3 | 0 | Red |
3–5 | 1 | Yellow |
5–30 | 2 | Green |
3D Engine | Изменение двойного маршрута | Simulation 3D Message Get | Simulation 3D Message Set | Simulation 3D Scene Configuration