Отправка и получение данных сцены смены маршрута

В этом примере показано, как использовать блоки Simulation 3D Message Set и Simulation 3D Message Get для связи со окружением визуализации 3D при запуске маневра изменения маршрута. В частности, вы используете:

  • Simulation 3D Message Get блок, чтобы узнать, сколько конусов попадает транспортное средство во время маневра.

  • Simulation 3D Message Set блок для управления светофором.

Минимальное оборудование, необходимое для запуска примера, смотрите в 3D Visualization Engine Requirements and Limitations.

Запуск маневра двойного изменения маршрута, который поражает конусы

Когда включено 3D окружение визуализации, запустите двухполосный маневр изменения, который поражает конусы.

  1. Создайте и откройте рабочую копию проекта примера готовых узлов двухполосного изменения.

  2. Включите 3D окружение визуализации. В Подсистеме визуализации откройте маску 3D Engine блока и выберите Enabled. Применить изменения и сохранить модель.

    Также в MATLAB® введите этот код в командной строке.

     Смотрите код, который включает 3D окружение

  3. На верхнем уровне модели установите параметры блоков Lane Change Reference Generator так, чтобы транспортное средство не выполнила маневр успешно. Установите эти параметры блоков, примените изменения и сохраните модель.

    • Maneuver start time с 5.

    • Longitudinal entrance velocity setpoint с 36.

    Кроме того, в командной строке MATLAB введите этот код.

     Смотрите код, который устанавливает параметры

  4. Запускать маневр 30 секунд. Когда симуляция выполняется, в окне AutoVrtlEnv можно увидеть, как транспортное средство сталкивается с конусами.

     Смотрите код, который запускает симуляцию

Используйте Simulation 3D Message Get блок для извлечения данных конуса

Используйте блок Simulation 3D Message Get, чтобы получить количество конусов, которые транспортное средство ударило во время маневра. По умолчанию в маневре используется сцена двухполосного изменения.

  1. Перейдите к разделу Визуализация > 3D Подсистемами двигателей. Щелкните правой кнопкой мыши блок 3D Engine и выберите Mask > Look Under Mask. В 3D Visualization > 3D Engine > Подсистемы двигателей вставьте следующие блоки:

    • Simulation 3D Message Get

    • Display

    • Math Function

  2. Установите параметры блоков Simulation 3D Message Get так, чтобы блок извлекал данные конуса из сцены двухполосного изменения. Установите эти параметры блоков, примените изменения и сохраните модель.

    • Signal name, SigName с NumOfConesHit

    • Data type, DataType с boolean

    • Message size, MsgSize с [2 15]

    • Sample time с -1

    Кроме того, в командной строке MATLAB введите этот код.

     Смотрите код, который устанавливает параметры

  3. Установите параметр Math Function Output dimensionality блока на transpose. Когда вы запускаете симуляцию, Math Function блок выводит [15 2] массив.

    Кроме того, в командной строке MATLAB введите этот код.

     Смотрите код, который устанавливает параметры

  4. Соедините блоки Simulation 3D Message Get, Math Function и Display как показано на рисунке. Подтвердите параметры блоков. Сохраните модель.

  5. Проверьте, что блок Simulation 3D Scene Configuration выполняется перед блоком Simulation 3D Message Get. Таким образом, Unreal Engine® 3D визуализации окружения подготавливает данные до того, как блок Simulation 3D Message Get получит их. Чтобы проверить порядок выполнения блока, щелкните правой кнопкой мыши блоки и выберите Properties. На вкладке General подтвердите следующие Priority настройки:

    • Simulation 3D Scene Configuration0

    • Simulation 3D Message Get1

    Для получения дополнительной информации о порядке выполнения смотрите Управление и Отображение порядка выполнения.

  6. Запустите маневр. Когда симуляция выполняется, блок отображения обновляется с помощью ReadMsg логическое значение 1 когда транспортное средство ударяется о соответствующий конус.

    Результаты показывают, что транспортное средство поражает SM_Cone20 и SM_Cone30 во время маневра.

    В этой таблице приведено имя конуса сцены смены двойного маршрута, которое соответствует ReadMsg элемент массива.

    Simulation 3D Message Get блок- ReadMsg Значение

    Нереально® Имя конуса редактора

    Simulation 3D Message Get Блока Элемента массива

    Нереальное имя конуса редактора

    ReadMsg(1,1)SM_Cone5ReadMsg(2,1)SM_Cone10
    ReadMsg(1,2)SM_Cone4ReadMsg(2,2)SM_Cone09
    ReadMsg(1,3)SM_Cone3ReadMsg(2,3)SM_Cone08
    ReadMsg(1,4)SM_Cone2ReadMsg(2,4)SM_Cone07
    ReadMsg(1,5)SM_Cone01ReadMsg(2,5)SM_Cone06
    ReadMsg(1,6)SM_Cone15ReadMsg(2,6)SM_Cone20
    ReadMsg(1,7)SM_Cone14ReadMsg(2,7)SM_Cone19
    ReadMsg(1,8)SM_Cone13ReadMsg(2,8)SM_Cone18
    ReadMsg(1,9)SM_Cone12ReadMsg(2,9)SM_Cone17
    ReadMsg(1,10)SM_Cone11ReadMsg(2,10)SM_Cone16
    ReadMsg(1,11)SM_Cone25ReadMsg(2,11)SM_Cone30
    ReadMsg(1,12)SM_Cone24ReadMsg(2,12)SM_Cone29
    ReadMsg(1,13)SM_Cone23ReadMsg(2,13)SM_Cone28
    ReadMsg(1,14)SM_Cone22ReadMsg(2,14)SM_Cone27
    ReadMsg(1,15)SM_Cone21ReadMsg(2,15)SM_Cone26

Используйте Simulation 3D Message Set блок для управления сигналом трафика

  1. Перейдите к разделу Визуализация > 3D Подсистемами двигателей. Щелкните правой кнопкой мыши блок 3D Engine и выберите Mask > Look Under Mask. В 3D Visualization > 3D Engine > Подсистемы двигателей вставьте следующие блоки:

    • Simulation 3D Message Set

    • Repeating Sequence Stair

  2. Установите параметры блоков Simulation 3D Message Set так, чтобы блок отправлял данные сигнала трафика в сцену двухполосного изменения. Установите эти параметры блоков, примените изменения и сохраните модель.

    • Signal name, SigName с TrafficLight1

    • Sample time с -1

    Эта таблица предоставляет цвет света светофора сцены, который соответствует WriteMsg значение в сцене «Смена двойного маршрута».

    Simulation 3D Message Set блок- WriteMsg Значение

    TrafficLight1 Цвет

    0Red
    1Yellow
    2Green

    Кроме того, в командной строке MATLAB введите этот код.

     Смотрите код, который устанавливает параметры

  3. Установите параметры блоков 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 введите этот код. Применить изменения блоков и сохранить модель.

     Смотрите код, который устанавливает параметры

  4. Соедините блоки как показано на рисунке. Подтвердите параметры блоков и сигнальные соединения. Сохраните модель.

  5. Проверьте, что блок Simulation 3D Message Set выполняется перед блоком Simulation 3D Scene Configuration. Таким образом, Simulation 3D Message Set подготавливает данные сигнала до того, как окружение визуализации Unreal Engine 3D получит их. Чтобы проверить порядок выполнения блока, щелкните правой кнопкой мыши блоки и выберите Properties. На вкладке General подтвердите следующие Priority настройки:

    • Simulation 3D Scene Configuration0

    • Simulation 3D Message Set-1

    Для получения дополнительной информации о порядке выполнения смотрите Управление и Отображение порядка выполнения.

  6. Запустите маневр. Во время симуляции в окне AutoVrtlEnv можно увидеть TrafficLight1 свет изменяется с красного на желтый на зеленый.

    Временные области (Области) значений (ы)

    WriteMsg Значение

    TrafficLight1 Цвет

    0–3

    0Red

    3–5

    1Yellow

    5–30

    2Green

См. также

| | | |

Похожие примеры

Подробнее о