Запуск, связывающийся с нереальной средой визуализации Engine

Можно настроить связь с Нереальным Engine® при помощи блоков Simulation 3D Message Set и Simulation 3D Message Get:

Чтобы использовать блоки и связаться с Нереальным Engine, убедитесь, что вы устанавливаете Интерфейс Vehicle Dynamics Blockset™ для Нереального Engine 4 пакета поддержки Проектов. Для получения дополнительной информации смотрите Пакет Поддержки Установки и Сконфигурируйте Среду.

Затем выполните эти шаги рабочего процесса, чтобы настроить модель Simulink® и Нереальную среду Engine и запустить симуляцию.

Рабочий процесс Описание
Настройте модель Simulink, чтобы отправить и получить данные

Сконфигурируйте Simulation 3D Message Get и блоки Simulation 3D Message Set в Simulink, чтобы отправить и получить коническое местоположение от Редактора Unreal®. Шаги обеспечивают общий рабочий процесс для связи с редактором.

Simulation 3D Message Get и блоки Simulation 3D Message Set могут отправить и получить эти типы данных: doubleединственныйint8uint8int16uint16int32uint32, и Boolean. Simulation 3D Actor Transform Set и блоки Simulation 3D Actor Transform Get могут отправить и получить только single тип данных.

Настройте нереальный Engine, чтобы отправить и получить данные

Рабочий процесс C++: настройте нереальный Engine, чтобы отправить и получить данные

Определенный Нереальный рабочий процесс C++, чтобы отправить и получить данные о местоположении конуса Simulink.

  • Simulation 3D Message Get получает данные из Нереальной среды Engine класс агента C++. В этом рабочем процессе в качестве примера вы используете блок, чтобы получить коническое местоположение от Нереального Редактора.

  • Simulation 3D Message Set отправляет данные в Нереальный Engine класс агента C++. В этом примере вы используете блок, чтобы установить начальное коническое местоположение в Нереальном Редакторе.

Чтобы следовать за этим рабочим процессом, необходимо быть удобным кодированием с C++ в Нереальном Engine 4.23. Убедитесь, что у вас есть Визуальный Studio® 2017 или более новый установленный на вашем компьютере.

Рабочий процесс проекта: настройте нереальный Engine, чтобы отправить и получить данные

Обобщенный Нереальный Редактор копирует рабочий процесс, чтобы отправить и получить данные Simulink.

Запустите симуляцию

После того, как вы настраиваете модель Simulink и Нереальную среду Редактора, запускаете симуляцию.

Настройте модель Simulink, чтобы отправить и получить данные

Шаг 1: установите пакет поддержки

Если вы уже загрузили и установили Нереальную Версию 4.23 Engine и Интерфейс Vehicle Dynamics Blockset для Нереального Engine 4 пакета поддержки Проектов, перейдите к следующему шагу.

Чтобы установить и сконфигурировать пакет поддержки, смотрите Пакет Поддержки Установки и Сконфигурируйте Среду.

Шаг 2: настройте модель Simulink

Откройте новую модель Simulink. Соедините блоки как показано.

Simulink model with connected blocks

Шаг 3: сконфигурируйте блоки

Используйте эти настройки блока, чтобы сконфигурировать блоки, чтобы отправить и получить конические данные из Нереального Редактора.

БлокУстановки параметров

Constant

  • Constant value[100,10,50]

    Устанавливает начальное коническое местоположение в Нереальной системе координат Редактора (в cm, предназначенном для левой руки, в системе координат Z-up)

  • Interpret vector parameters as 1-Doff

  • Output data typesingle

Data Type Conversion

  • Output data typesingle

Simulation 3D Scene Configuration

  • Scene SourceUnreal Editor

  • ProjectYour_Project_Path\TestSim3dGetSet.uproject

  • Open Unreal Editor — Выберите, чтобы открыть редактор

Simulation 3D Message Get

  • Signal name, SigNameConeLocGet

  • Data type, DataTypesingle

  • Message size, MsgSize[1 3]

  • Размер шага -1

Simulation 3D Message Set

  • Signal name, SigNameConeLocSet

  • Размер шага -1

Рабочий процесс C++: настройте нереальный Engine, чтобы отправить и получить данные

Шаг 4: откройте нереальный редактор в режиме редактора

  1. В Нереальном Редакторе, на вкладке Edit, выбирают Plugins. Убедитесь что MathWorks Interface плагин включен. При появлении соответствующего запроса перезапустите Нереальный Редактор.

  2. Создайте Нереальный Engine проект C++. Назовите его TestSim3dGetSet. Для шагов о том, как создать проект C++, см. Нереальную документацию Engine 4.

  3. В Нереальном Редакторе кликните по вкладке Edit в левом верхнем угле. Выберите Plugins и убедитесь что MathWorks Interface плагин включен. Если MathWorks Interface плагин отключен, включите его и перезапустите Нереальный Редактор, если запрошено.

  4. Закройте нереальное.

  5. Если Visual Studio не открыта, откройте ее.

  6. Добавьте зависимость MathWorksSimulation в TestSim3dGetSet файл типа "build" проекта.

    • Файл типа "build" проекта, TestSim3dGetSet.Build.cs, расположен в этой папке: ...\TestSim3dGetSet\Source\TestSim3dGetSet.

    • В файле типа "build", TestSim3dGetSet.Build.cs, отредактируйте линию 11, чтобы добавить зависимость “MathWorksSimulation”:

       PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", 
      "Engine", "InputCore", "MathWorksSimulation"}); 

  7. Сохраните изменение. В Visual Studio восстановите TestSim3dGetSet проект. Закройте Visual Studio.

    Совет

    Прежде, чем восстановить проект в Visual Studio, убедитесь, что Нереальный не открыто.

  8. Запустите MATLAB®. Измените текущую папку в местоположение Нереального Engine TestSim3dGetSet проект.

  9. В MATLAB, открытом проект:

    editor = sim3d.Editor('TestSim3dGetSet.uproject'); 
    editor.open();

Шаг 5: создайте класс агента

  1. В Нереальном Редакторе, из директории классов C++ MathWorksSimulation, выбирают Sim3dActor.

    Unreal Editor content browser

    Щелкните правой кнопкой и выберите Create C++ class derived from Sim3dActor.

    Unreal Editor class actions

  2. Назовите новый Sim3dActor SetGetActorLocation. Выберите Public. Нажмите Create Class.

  3. Закройте нереальный редактор.

Шаг 6: открытый SetGetActorLocation.h

Visual Studio открывается новыми файлами C++ в папке проекта:

  • SetGetActorLocation.h

  • SetGetActorLocation.cpp

Убедитесь, что вы закрываете Нереальный Редактор.

В Visual Studio создайте решение TestSim3dGetSet:

  1. В Проводнике Решения щелкните правой кнопкой по Solution 'TestSim3dGetSet' (2 projects).

  2. Выберите Build Solution.

  3. После сборок решения откройте SetGetActorLocation.h. Отредактируйте файл как показано.

     Заменяющий код: SetGetActorLocation.h

Шаг 7: открытый SetGetActorLocation.cpp

Открытый SetGetActorLocation.cpp и замените блок кода.

 Заменяющий код: установите указатель на параметр

 Заменяющий код: доступ к имени тега агента

 Дополнительный код: читайте и запись данных в течение времени выполнения

 Дополнительный код: остановите симуляцию

 Целый заменяющий код: SetGetActorLocation.cpp

Шаг 8: разработайте проект Visual Studio и откройте нереальный редактор

Нажмите F5 на клавиатуре, чтобы запустить решение для Visual Studio TestSim3dGetSet. Нереальный Редактор открывается.

Примечание

В Нереальном Редакторе сохраните текущий уровень путем нажатия на Save Current (расположенный в левом верхнем) и назовите его TestMap. Добавьте этот уровень как значение по умолчанию к Настройкам Проекта путем нажатия на Edit> Project Settings> Maps&Modes. Затем выберите TestMap как значение по умолчанию для Карты Значения по умолчанию Карты и Игры редактора Стартупа. Закройте Настройки Проекта, чтобы сохранить значения по умолчанию.

Unreal Editor project settings

Unreal Editor modes tab

Шаг 9: проверяйте агента

На вкладке World Outliner проверяйте что новый инстанцированный агент, SetGetActorLocation1, перечислен.

Unreal Editor World Outliner tab

Шаг 10: добавьте Mesh

Нажмите на агента, которого вы создали на Шаге 9: Проверяйте Агента.

  1. В панели Details нажмите на Add Component, чтобы добавить mesh в агента SetConeLocation1. Выберите Cone как mesh по умолчанию.

  2. Найдите теги свойства для агента SetConeLocation1. Добавьте тег путем нажатия на знак "плюс" рядом с 0 Элементами массива. Назовите его ConeLoc.

Unreal Editor add component

Шаг 11: установите коническое местоположение

На вкладке Details нажмите Cone. Установите конус на X = 0.0, Y = 0.0, и Z = 0.0. Также установите свойство Mobility агента на Подвижный.

Unreal Editor set cone location

Шаг 12: установите родительский класс и сохраните сцену

Установите родительский класс.

  1. Под Blueprints нажмите Open Level Blueprint и выберите Class Settings.

    Unreal Editor Work Outliner tab

  2. В Class Options, набор Parent Class к Sim3dLevelScriptActor.

    Unreal Editor class settings

Сохраните Нереальную сцену Редактора.

Шаг 13: запустите симуляцию

Запустите симуляцию. Пойдите, чтобы Запустить Симуляцию.

Ссылка: функции C++ для отправки и получения данных Simulink

Вызовите эти функции C++ от Sim3dSetup, Sim3dStep, и Sim3dRelease отправить и получить данные Simulink.

Рабочий процесс проекта: настройте нереальный Engine, чтобы отправить и получить данные

Шаг 4: сконфигурируйте сцены, чтобы получить данные

Чтобы использовать блок Simulation 3D Message Set, необходимо сконфигурировать сцены в Нереальной среде Engine, чтобы получить данные из модели Simulink:

  1. В Нереальном Редакторе инстанцируйте Sim3DGet агент, который соответствует типу данных, который вы хотите получить от модели Simulink. Этот пример показывает Нереальному Редактору Sim3DGet типы данных.

    Unreal Editor Modes tab

  2. Задайте имя тега агента, которое совпадает с блоком Simulation 3D Message Set параметр Signal name.

  3. Перейдите к проекту уровня.

  4. Найдите метод проекта для Sim3DGet класс агента на основе типа данных и размера, который вы хотите получить от модели Simulink.

    Например, в Нереальном Редакторе, эта схема показывает тот Read Scalar Integer метод для Sim3DGetInteger класс агента, чтобы получить int32 тип данных скаляра размера.

    Unreal Editor blueprint connections

  5. Скомпилируйте и сохраните сцену.

Шаг 5: сконфигурируйте сцены, чтобы отправить данные

Сконфигурировать сцены в Нереальной среде Engine, чтобы отправить данные в модель Simulink:

  1. В Нереальном Редакторе инстанцируйте Sim3DSet агент, который соответствует типу данных, который вы хотите отправить в модель Simulink. Этот пример показывает Нереальному Редактору Sim3DSet типы данных.

    Unreal Editor Modes tab

  2. Задайте имя тега агента, которое совпадает с блоком Simulation 3D Message Get параметр Signal name.

  3. Перейдите к проекту уровня.

  4. Найдите метод проекта для Sim3DSet класс агента на основе типа данных и размера, заданного блоком Simulation 3D Message Get Data type и параметры Message size.

    В данном примере размер массивов равняется 3. Нереальная схема Редактора показывает тот Write Array Float метод для Sim3DSetFloat3 класс агента, который отправляет тип данных float размера массивов 3.

    Unreal Editor blueprint connections

  5. Скомпилируйте и сохраните сцену.

Примечание

Опционально, для лучшей эффективности, устанавливает Read Array Float Max Num Elements на Num El в проекте агента.

Unreal Editor blueprint connections

Шаг 6: создайте проект

В Нереальном Редакторе создайте проект уровня, соединяющий Получать и Настроенных актеров.

  1. Установите значения тега агента.

    • Sim3dGetFloat1 — блок Simulation 3D Message Set значение параметров Signal name, SigName, например, ConeLocSet

    • Sim3dSetFloat1 — блок Simulation 3D Message Get значение параметров Signal name, SigName, например, ConeLocGet

  2. Установите родительский класс.

    1. Под Blueprints нажмите Open Level Blueprint и выберите Class Settings.

      Unreal Editor Work Outliner tab

    2. В Class Options, набор Parent Class к Sim3dLevelScriptActor.

      Unreal Editor class settings

  3. В проекте уровня установите связи, например:

    Unreal Editor blueprint connections

Шаг 7: запустите симуляцию

Запустите симуляцию. Пойдите, чтобы Запустить Симуляцию.

Запустите симуляцию

После того, как вы сконфигурируете модель Simulink и Нереальную среду Редактора, можно запустить симуляцию.

Примечание

В событии BeginPlay Simulink не получает данные из Нереального Редактора. Simulink получает данные в событиях Tick.

Запустите симуляцию.

  1. В модели Simulink нажмите Run.

    Поскольку источник сцен является проектом, открытым в Нереальном Редакторе, симуляция не запускается.

  2. Проверьте, что окно Diagnostic Viewer в Simulink отображает это сообщение:

    In the Simulation 3D Scene Configuration block, you set the scene source to 'Unreal Editor'. In Unreal Editor, select 'Play' to view the scene.

    Это сообщение подтверждает, что Simulink инстанцировал транспортных средств и других активов в Нереальном Engine 3D среда.

  3. В Нереальном Редакторе нажмите Play. Запуски симуляции в сцене в настоящее время открываются в Нереальном Редакторе.

Можно отправить и получить эти типы данных: doubleединственныйint8uint8int16uint16int32uint32, boolean. Код на Шаге 7: Откройтесь SetGetActorLocation.cpp читает одно значения типа данных (или значения плавающие) от Simulink.

Смотрите также

| | | | | |

Похожие темы

Внешние веб-сайты