OptiTrack OpenVR Driver

Back to the Main page

Overview

The OptiTrack VR driver lets you stream tracking data of the head-mounted display (HMD) and the controllers from Motive into SteamVR. The plugin ships in an installer package (MSI), and it will set up the driver along with a tool for configuring streaming settings. Using this, the tracking data from Motive can be used to override the tracking of the VR system in any applications that are compatible with SteamVR.

Info2.png

Supported Systems: At the time of writing, only Vive HMDs (Vive, Vive Pro) are supported.

HMD Setup[edit]


Place Markers on the HMD[edit]

In order to track the HMD, markers must be attached. You can either use the Vive Pro clip with active markers or manually attach the markers onto the HMD.

Vive Pro Clip[edit]

Vive Pro Clip is an HMD enclosure with a total of 8 embedded active markers for tracking. This clip is designed to fit onto Vive Pro HMDs only, and you can simply attach this clip for tracking the HMD. The clip can be mounted easily by pushing clip the HMD it until the latches click, and you detach it by gently lifting the three latches located at the top, left, and right side of the clip.

Once the clip has been mounted, you will need to import the provided rigid body definition into Motive for the calibrate pivot point, which will be explained in the later sections.

  • Active marker clip for HTC Vive Pro.

Marker Types[edit]

You can either use the passive retro-reflective type markers or the active LED markers to track the HMD. Passive markers are retroreflective markers that reflect infrared light emitted from the IR LEDs on the camera. On the other hand, the active markers are LED markers that emit the IR light which gets uniquely identified in Motive. Either type of marker can be used to track HMDs. Using active marker is recommended especially for applications that involve tracking of multiple HMDs in the scene.

Marker Placement[edit]

  • Make sure the markers are attached securely and do not move. If the markers happen to move even slightly after a rigid body is defined, it will negatively affect the tracking and the rigid body definition may need to be updated.
  • Avoid placing multiple markers in close vicinity as they may overlap in the camera view in certain orientations.
  • Using marker posts to extend out the markers is recommended to improve marker visibility from more angles.
  • If you are using the active markers, there is an extra USB port on the HMD that you could draw the power from.
  • Please read through the Rigid Body Tracking page for additional information on the marker placement on a rigid body.

Setup HMD Rigid Body in Motive[edit]

After the markers have been placed on the HMD, a rigid body must be defined from the 3D markers in Motive. For HMD tracking, it is important that the rigid body has a calibrated pivot point.

Step 1: Make sure the active markers are tracking[edit]

First of all, both the system and Motive should already be calibrated and configured for tracking active markers at this point. If not, please read through the Active Marker Tracking page and set up the tracking volume.

ViveClip Markers NoRB.png


Step 2: Download and import the rigid body definition for Vive Pro clip[edit]

Download template rigid body definition from the following page (Vive_Pro.motive): download link.


Step 3: Import the template file onto Motive[edit]

Import the downloaded MOTIVE file into Motive. You can either click Open under the File tab or drag-and-drop the file directly onto Motive. Once it's loaded, the template rigid body definition will be listed under the Assets pane as Vive Pro, and you should see the rigid body getting tracked over the HMD markers in Motive.

ViveClip Tracked.png


Step 4: Configure the Active IDs in rigid body properties to match the markers on the clip[edit]

Next step is to modify the properties of the imported rigid body definition so that it tracks only active markers with matching IDs. To do so, you will need to check active IDs from your HMD clip and input them into the properties of Vive Pro rigid body.

  1. [Motive → Perspective View] Make sure viewing of marker labels is enabled in the perspective view. To do so, click on the visual aids icon Viewport16.png and check mark Marker Labels.
  2. [Motive → Perspective View] Select all of the 8 active markers. It will show the active IDs for each selected marker.
  3. [Motive → Properties] While the Vive Pro rigid body is selected in the Assets pane, open the Properties pane to view its properties.
  4. [Motive → Properties] At the bottom, information about the markers in rigid body definition will be listed. Go through each marker and input the matching active IDs as monitored in the perspective view. It's important that all markers get assigned with correct active IDs; otherwise, the rigid body will not track.
  • Rigid body marker properties before specifying the active IDs. All IDs in the template is set to 0 for tracking any marker IDs.
  • Rigid body marker properties after inputing matching Active IDs. Once this is set, the rigid body will track on reconstructions with matching Active IDs only.


Step 5: Refine rigid body definition[edit]

Using the RigidBody Refinement tool for improving asset definitions.

The last step is to refine the template rigid body definition so that it matches exactly how the markers are placed on your Vive Pro clip. Please follow the below steps so that the positions of all 8 markers get calibrated precisely.

  1. Under View tab, open the Builder pane.
  2. Select the Rigid Bodies option at the bottom of the pane and go to the Edit tab.
  3. In Live mode, select the Vive Pro rigid body asset that you wish to refine.
  4. Hold the selected rigid body at the center of the capture volume so that as many cameras as possible can clearly capture the markers on the rigid body.
  5. Press Start Refine in the Builder pane and the
  6. Slowly rotate the rigid body to collect samples at different orientations.
  7. Once all necessary samples are collected, the refinement results will be displayed.
  8. Click Apply.

Step 1: Create Rigid Body[edit]

  1. [Motive] Place the HMD at the center of the tracking volume and make sure the HMD markers are well tracked in Motive.
  2. [Motive] Open the Builder pane under the View tab.
  3. [Motive: Builder pane] Select Rigid Bodies at the bottom and select the Create tab
  4. [Motive: Builder pane] Make sure rigid body is selected under the type section.
  5. [Motive] Select all of the HMD markers in the 3D viewport.
  6. [Motive: Builder pane] Click Create to create a rigid body.


Step 2: Use the External Pivot Alignment tool[edit]

For using OptiTrack system for VR applications, it is important that the pivot point of HMD rigid body gets placed at the appropriate location, which is at the root of the nose in between the eyes. External Pivot Alignment tool utilizes both the OptiTrack mocap system and the HMD's own tracking system (Oculus Tracker / Vive Base Stations) for precisely calculating the location of the pivot point of an HMD. When using this feature, both systems must be tracking the HMD simultaneously.

Info2.png

HMD Compatibility Notes:

  • For Motive versions 2.1 Final and later: Oculus and Vive HMDs are supported.
  • For older versions of Motive: Only Oculus HMDs are supported.
  • The corresponding native HMD tracker must be tracking the HMD along with the motion capture system simultaneously.
  • For CV1 active HMD clips, the rigid body definition will be provided separately.

Steps[edit]

  1. First of all, connect the HMD Tracker (Oculus Tracker / Vive Base Stations) and have its corresponding software running in the background.
  2. Launch Motive.
  3. [Motive] Create a rigid body asset from the markers on the HMD.
  4. [Motive] Open the Builder pane and access editing options for rigid bodies.
  5. [Motive] Select the HMD rigid body in Motive.
  6. [Motive → Builder pane] Under Detected Type, it should indicate Custom RigidBody.
  7. [Motive → Builder pane] Set the desired number of sample counts (Default: 750) and the desired orientation.
  8. [Motive → Builder pane] Press start to initiate the sampling process.
  9. [Motive → Builder pane] During calibration, make sure both the mocap system and the HMD tracker (Oculus Tracker / Vive Base Stations) is tracking the HMD.
  10. [Motive → Builder pane] Once it starts collecting the samples, point the HMD towards the tracker and slowly rotate it and sample different orientations.
  11. [Motive → Builder pane] When it finishes collecting samples, it will display the offset distance, in mm, between positions of the pivot point detected by the HMD tracking system and the motion capture system.
  12. [Motive → Builder pane] If the results are satisfying, press Apply to calibrate the HMD rigid body.

Setting up the driver[edit]


Info2.png

SteamVR Required: The VR driver streams tracking data through SteamVR. Please make sure SteamVR is installed on the computer.

Setup Steps[edit]

Download and run the installer[edit]

Download and run the installer. Then follow the installation prompts to set up the driver.

OpenVR Installation.gif


Open the configuration program[edit]

Once the driver has been successfully installed, launch the configuration utility software (C:\Program Files\OptiTrack\OpenVR Driver\ConfigUtil). Using this tool, you can load and check existing configurations and make changes to the settings as needed. To import current settings, click Load and to save out the changes, click Save.

If the configuration software detects a running instance of SteamVR through OpenVR, it will indicated as Initialized at the very top as shown in the image. Please note that when the settings are modifies while SteamVR is running, the SteamVR must be restarted to apply the changes.

OpenVR ConfigTool.png


Configure connection settings[edit]

First, configure the connection settings so that the driver listens to the Motive server where the tracking data is streamed from. The server address must match the address where Motive is streaming the data to, and the local address must match the IP address of the computer on the network where the driver is installed.

OpenVR ConfigTool Connection.png


Set up the HMD[edit]

In the HMD section, enable the HMD and input the rigid body ID of the HMD. The rigid body ID must match the streaming ID property of the HMD rigid body definition in Motive.

OpenVR ConfigHMD.png VR HMDProperties 20.png


Save out the configuration[edit]

Save the configurations by clicking on Save. This will modify the set of configurations in the steamvr.settings file in the steam installation directory, and they will override the HMD tracking with the tracking data from Motive. If you already had an instance of OpenVR or SteamVR running, restart the application to apply the changes.


Confirm the setup[edit]

Launch SteamVR. If the driver is successfully set up, you should see a tracker icon added beneath the HMD icon and the HMD will now be using the motion capture system instead of the base stations. Here, please make sure all of the lighthouse base stations are powered off.

OpenVR SteamVR.png


Vive Controllers[edit]

Setting up the controller (optional)[edit]

Info2.png

Important note: External pivot calibration feature is not supported for controllers in Motive 2.1. This will be supported in the next release. In 2.1, you will need to manually position and orient the rigid body pivot point.

When needed, the Vive controllers can be configured as well. To do so, open the configuration utility tool while SteamVR is running. At the top of the configuration tool, it should indicate OpenVR status as Initialized and the controllers must be showing up in SteamVR. Then, in the controller sections, enable the controllers, specify the override device using the drop-down menu, and input the corresponding streaming ID of the controller rigid bodies in Motive. Once everything has been configured, save the changes and restart SteamVR. When the override is configured properly, SteamVR will have additional tracker icon per each enabled controller.

OpenVR Controller.png

Data Streaming[edit]

Now that the driver is set up, the HMD tracking will be overridden by tracking data from the mocap camera system, and you can integrate HMDs into the game engine through their own VR integration.

Streaming settings in Motive[edit]

HMD rigid body streaming settings in Motive.

First of all, make sure the streaming settings are configured in Motive for streaming out the data:

  • Broadcast Frame Data must be set to true.
  • Local interface must be set to the desired IP address to stream the tracking data from.
  • Streaming of Rigid Bodies must be set to True
  • For wireless streaming, use Unicast streaming type.

Notes for Unity users[edit]

Please make sure the Unity project is configured for OpenVR development. In Unity, open player settings from Edit → Project Settings → Player and select the OpenVR under the Virtual Reality SDK lists. Once this is set up properly, it will play the scene on the HMD.

Unity-OpenVR documenation: https://docs.unity3d.com/Manual/VRDevices-OpenVR.html

Unreal Engine[edit]

Make sure Unreal Engine is configured for SteamVR development. Please refer to the Unreal Engine's documentation for more information on developing for SteamVR.

Unreal Engine-SteamVR: https://docs.unrealengine.com/en-us/Platforms/SteamVR

Streaming Rigid Body/Skeleton data[edit]


This driver is designed for streaming of HMD and controller tracking data only. For streaming tracking data of other rigid body objects, you will need to use the corresponding plugins (UnrealEngine or Unity). In other words, the HMD tracking data will be streamed through the SteamVR using the driver you've installed, and all other tracking data will be streamed through the plugin's client origin.

Aligning world coordinates[edit]

Client Origin[edit]

When using both the VR driver and the plugins (UE/Unity), it is important that the client origin object is located at the origin without any rotations. In other words, it must have the position set to (0,0,0) and the rotation set to (0,0,0).

Notes for Unreal Engine Users[edit]

When using the Unreal Engine plugin, you will need to additionally create a custom pawn for properly aligning the coordinate systems between SteamVR and OptiTrack UE plugin:

  1. Create an "Optitrack Client Origin" to the scene and set the relevant connection info. Refer to the OptiTrack Unreal Engine 4 Plugin page for more information on setting up the client origin.
  2. Create a new pawn. Right-click in Content Browser, and from the context menu, select Blueprint → Blueprint Class → Pawn.
  3. Load created Blueprint in the editor and add a camera component.
  4. (optional) Double-check that the “Lock to HMD” property is set to true under the camera component properties in the details pane.
  5. Select the pawn and set the “Base Eye Height” property to 0 in the details pane.
  6. Compile the pawn then add it to the scene.
  7. Select the pawn and set the “Auto Possess Player” to “Player 0”.
  8. The HMD should now be working for Levels built for VR.
  • Configured properties of the custom pawn.
  • Configured properties of the added camera component.

Related Pages[edit]