This plugin adds ROS Vision Support to your Unreal Engine 4 Project. A specialized Camera can measure rgb and depth data from your Unreal World and publishes it into a running ROS environment. In order to use this plugin you also need to add the ROSIntegration Core Plugin (https://github.com/code-iai/ROSIntegration) to your project.
This plugin depends on F16C Intrinsic Support (https://msdn.microsoft.com/de-de/library/hh977022.aspx), which should be included in newer CPU generations. This ensures the depth data to be converted quickly.
Important: If you use this Plugin on Linux, you need to enable F16C support manually in Unreal Engine 4 and recompile it.
To do this, open
PATH_TO_UNREAL/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
, find the GetCLArguments_Global
method and add Result += " -mf16c";
in a suitable place. After that, recompile UE4.
After installing this plugin and the core ROSIntegration plugin, you can load your UE4 project. If the plugin is not enabled in the project yet, you can do this in the UE4Editor in Edit -> Plugins.
When the plugin is loaded correctly, a new Actor
named VisionActor
and a new CameraComponent
named VisionComponent
will be available to use.
Each one represents the RGBD camera.
In some cases (for example on Linux), it might be necessary to call the Generate Project Files action on UE4 in order to fetch the new header files for the plugin before your first compile.
Actor Attachment:
#include "ROSIntegrationVision/Public/VisionComponent.h"
...
UVisionComponent * vision = CreateDefaultSubobject<UVisionComponent>(TEXT("Vision"));
vision->SetupAttachment(RootComponent);
Disable TF Publishing:
This is useful for fixed cameras with links / joints defined via URDF.
vision->DisableTFPublishing = true;
Camera Parent Link Naming:
vision->ParentLink = "desired_link"
A bare-bones Actor
with a VisionComponent
attached to it's RootComponent
Credits go to http://unrealcv.org/ and Thiemo Wiedemeyer, who laid out the rendering and data handling basics for this Plugin.