SkyReal Documentation

  1. Accueil
  2. Docs
  3. SkyReal Documentation
  4. Devices Configuration
  5. Powerwall

Powerwall

What is a powerwall ?

A powerwall is a large, ultra-high-resolution display which displays stereoscopic 3D images. Coupled with a tracking system, it provide an immersive virtual reality experience.

Requirements

VRPN

VRPN is an interface which can recieve data from a software and expose it to another.

NDisplay Launcher

Ndisplay is an UE4 plugin which allows you to start your project on several PC arranged in cluster. It is also working for a cluster of only one device.

The NDisplay documentation can be found here.

To be able to run Skyreal in Powerwall mode, it must be started with the NDisplay Launcher.

It can be found in the UE4 directory :

C:\Program Files\Epic Games\UE_4.20\Engine\Binaries\DotNET\nDisplayLauncher.exe

Interaction Device

To be able to interact in Skyreal set in Powerwall mode, interaction devices are needed. They must be trackable by the ART captors and preset buttons to do actions in Skyreal (navigate, use commands …).

We recommend you to use the VenomX device which has enough buttons and on which reflective balls can be added to make the device trackable.

Configuration

VRPN Configuration

In the config file “vrpn.cfg”, the used port need to be defined, by default it is 5000.

In VRPN, the VenomX is managed as a keyboard. And so, if a VenomX is used, a vrpn_Keyboard must be added too.

# start vrpn test for DTrack
vrpn_Tracker_DTrack DTrack  5000
vrpn_Keyboard Keyboard

The StartServer.bat (located in the VRPN directory) launchs the VRPN server.

The StartTest.bat (located in the VRPN directory) allows you to see which data are received by the server.

NDisplay Configuration File

The “configPowerwall.cfg” contains the configuration of the VR space and devices for NDisplay.

Not all settings must be redefined for the standard use of Skyreal but for a more precise description of this file please refer to the NDisplay documenation.

Cluster_node

The IP address of the cluster_node must be redefined. Use the address of the test PC.

[cluster_node] id=node_1 addr=127.0.0.1 screen=screen_1 viewport=vp_1080 port_cs=41001 port_ss=41002 master=true sound=true

Screen

The size of the screen must be redefined.

[screen] id=screen_1 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=1.435,Y=0.85" parent=display_1

Viewport

The standard line need no modification.

[viewport] id=vp_1080 x=0 y=0 width=1920 height=1080 flip_h=False flip_v=False

Camera

The standard line need no modification.

[camera] id=camera_static loc="X=0,Y=0,Z=0" parent=EyesCenter

Input

To connect the powerwall input device to SkyReal, connect all the devices to the VRPN and use the [input] tag.

In the example bellow, three kind of inputs device has been connected: Analog, Buttons and tracker.

[input] id=SkrMouse type=analog addr=Mouse0@127.0.0.1
[input] id=SkrKeyboard type=buttons addr=Keyboard0@127.0.0.1
[input] id=SkrTrackers type=tracker addr=DTrack@127.0.0.1 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" front=Y right=X up=Z parent=cave_origin

The tracker device should be connected to a parent node (see bellow) to used this node as tracking origin.

Scene_node

You need to redefine the locations of the nodes.

  • The Z component of cave_origin. In this example, Z=-0.043 because the room calibration tool used was 0.043 m high.
  • All the components of display_1 (center of the screen) : X is the distance between the screen and the origin, Z is the distance between the floor and the center of the screen
[scene_node] id=cave_origin loc="X=0,Y=0,Z=-0.043" rot="P=0,Y=0,R=0"
[scene_node] id=display_1 loc="X=2.435,Y=0.12,Z=1.485" rot="P=0,Y=0,R=0" parent=cave_origin

In order to remap the input trackers to the eyes, controllers, and bodie parts, add following nodes:

[scene_node] id=EyesCenter loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=0
[scene_node] id=RightHandController loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=1
[scene_node] id=LeftHandController loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=2

[scene_node] id=HeadTracker loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=3

[scene_node] id=Hips loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=4
[scene_node] id=Pelvis loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=5

[scene_node] id=RightShoulder loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=6
[scene_node] id=LeftShoulder loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=7
[scene_node] id=RightUpperArm loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=8
[scene_node] id=LeftUpperArm loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=9
[scene_node] id=RightElbow loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=10
[scene_node] id=LeftElbow loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=11
[scene_node] id=RightLowerArm loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=12
[scene_node] id=LeftLowerArm loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=13
[scene_node] id=RightWrist loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=14
[scene_node] id=LeftWrist loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=15
[scene_node] id=RightHand loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=16
[scene_node] id=LeftHand loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=17

[scene_node] id=RightUpperLeg loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=18
[scene_node] id=LeftUpperLeg loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=19
[scene_node] id=RightKnee loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=20
[scene_node] id=LeftKnee loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=21
[scene_node] id=RightLowerLeg loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=22
[scene_node] id=LeftLowerLeg loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=23
[scene_node] id=RightAnkle loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=24
[scene_node] id=LeftAnkle loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=25
[scene_node] id=RightFoot loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=26
[scene_node] id=LeftFoot loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=27

[scene_node] id=OtherTracker0 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=28
[scene_node] id=OtherTracker1 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=29
[scene_node] id=OtherTracker2 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=30
[scene_node] id=OtherTracker3 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=31
[scene_node] id=OtherTracker4 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=32
[scene_node] id=OtherTracker5 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=33
[scene_node] id=OtherTracker6 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=34
[scene_node] id=OtherTracker7 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=35
[scene_node] id=OtherTracker8 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=36
[scene_node] id=OtherTracker9 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" tracker_id=SkrTrackers tracker_ch=37

User inputs

To remap all inputs coming from VRPN to the SkyReal inputs, use the [input_setup] tag. This tag will link the input to an Unreal event. In the example bellow, the chanel 28 comming from the input SkrKeyboard declared before, is connected to the SkyReal input nDisplay Button 0.

[input_setup] id=SkrKeyboard ch=28 bind="nDisplay Button 0"
[input_setup] id=SkrKeyboard ch=29 bind="nDisplay Button 2"

[input_setup] id=SkrKeyboard ch=15 bind="nDisplay Button 1"
[input_setup] id=SkrKeyboard ch=42 bind="nDisplay Button 3"

[input_setup] id=SkrKeyboard ch=78 bind="nDisplay Button 4"
[input_setup] id=SkrKeyboard ch=74 bind="nDisplay Button 5"

[input_setup] id=SkrKeyboard ch=72 bind="nDisplay Button 6"
[input_setup] id=SkrKeyboard ch=80 bind="nDisplay Button 8"
[input_setup] id=SkrKeyboard ch=75 bind="nDisplay Button 10"
[input_setup] id=SkrKeyboard ch=77 bind="nDisplay Button 12"
[input_setup] id=SkrKeyboard ch=17 bind="nDisplay Button 7"
[input_setup] id=SkrKeyboard ch=31 bind="nDisplay Button 9"
[input_setup] id=SkrKeyboard ch=30 bind="nDisplay Button 11"
[input_setup] id=SkrKeyboard ch=32 bind="nDisplay Button 13"

#[input_setup] id=SkrMouse ch=0 bind="nDisplay Analog 0"
#[input_setup] id=SkrMouse ch=1 bind="nDisplay Analog 2"

By default, these inputs are declared in the SkyReal/SkyReal/Config/Input/DefaultInputVrpn.ini file.

Stereo

The standard line need no modification.

[stereo] eye_swap=False eye_dist=0.064

General

The standard line need no modification.

[general] swap_sync_policy=0

NDisplay Launcher

Start the NDisplay Launcher.

Add and select the project (1) and add and select the config file (2).

NDisplay 4.22 launcher

Starting 1.7, Sky Real support command line arguments for the powerwall, enabling  easier configuration of the base parameter. For more information, look at: https://sky-real.com/docs/skyreal-documentation/getting-started/start-with-parameters/

Also the selection of a file go through the window selection picker.

VenomX

Input Configuration

The VenomX inputs can be mapped with a dedicated software which can be downloaded here.

To reassign inputs, go to the PC tab and click on the button to remap. Hit then the new key. When 2 VenomX are used, one of them must be disconnected to configure the other.

Troubleshooting

You setup should now be correct

  • Starts the Dtrack record
  • Starts the VRPN server
  • Starts the NDisplay launcher
  • Starts the listeners executable
  • click on the run button

Skyreal should start on your powerwall and your trackers should be tracked

If you experience some troubles about powerwall configuration, please contact SkyReal support team.

Cet article vous a-t-il été utile ? Oui Non

Comment pouvons-nous aider ?