HTC Vive Trackers

Vive Trackers are an extension for the OpenVR support which makes it possible to tracks body parts like head, arms, hips and feet by attaching them to the various body parts.

Prerequisites

Humanoid Control

Vive Trackers are supported in the Humanoid Control Plus and Pro packages.

Unity

Unity versions 2017.4 and up are supported.

Hardware

HTC Vive Trackers require the HTC Vive headset connected to the same system.

Operating System

Vive Trackers are supported on the Microsoft Windows platform.

Setup

In Humanoid Control v3 the Vive Tracker role in SteamVR should be set to Disabled. This can be set in the SteamVR Settings. In the Controller section, click on the Manage Trackers button:

SteamVR Settings

For each tracker, set the Tracker Role to Disabled:

Setting the tracker role (with Tracker hardware Ids blacked out)

For HTC Vive Tracker support in Humanoid Control, both OpenVR Support and Vive Tracker Support need to be enabled in the Humanoid Preferences. You can find these in theĀ Edit Menu->Preferences->Humanoid.

Automatic tracker location detection

Humanoid Control tries to determine location of Vive Trackers on the bod automatically. The conditions for detection are listed below for each target.

When not all trackers have been identified yet, it is possible that they change location on the body. For example when a tracker is first recognized as a hip tracker and later moves above 1.2m and no head tracker has been detected yet, it will transform into a head tracker.

Trackers are only recognized being on a certain body part if the Vive Tracker has been enabled for that body part. So if Vive Trackers are not enabled on the feet, no Vive Tracker will be recognized as a foot tracker.

The tracker assignment process is restarted when Calibrate() is called on the Humanoid Control component.

Manual tracker location assignment

It is possible to assign specific trackers to certain body parts maually. To do this you need to know the Tracker hardware Id of each tracker. You can find these in the in the SteamVR settings: see Setup above, you can find them in the Manage Trackers section.

You can also find these by running the scene. All active trackers should appear in the scene and can be found as active Vive Trackers in the humanoid/Real World/UnityXR object in the hierarchy:

Active Vive Tracker in the hierarchy while running the scene

Then you can find the Hardware Id in the Vive Tracker Component of that object.

Hardware Id of the Vive Tracker (with the value blacked out)

Now we can assign this tracker to the right part of the body. To do this, the tracker should first be made visible in the Scene by pressing the Show button for the Vive Tracker on the applicable Target:

The show button for the Vive Tracker on the Foot Target

Double click on the Vive Tracker (Transform) to open the tracker assigned to that target:

Double click on the Vive Tracker field

On this Vive Tracker Component, you can now fill in the Hardware Id of the Vive Tracker you want to use for this target:

Assign the Vive Tracker by filling in the Hardware Id found ealier.
(the specific value is blacked out here)

Head Target

A Vive Tracker can be used on the head instead of an HMD. There is no need to have a UnityXR controller or any camera at all in the scene.

It is not possible to have both a Unity XR and Vive Tracker enabled on the head.

A head mounted Vive Tracker is recognized automatically when an active tracker is detected at least 1.2m above ground level.

Hand Target

Vive Trackers can be placed on different bones on the arm. This makes it possible to combine a SteamVR controller with a Vive Tracker on the arm to improve the Inverse Kinematics solution. The bone on which the tracker in mounted should be set using the Bone parameter.

It is not possible to have both a UnityXR controller and a Vive Tracker on the hand.

Trackers on the arm are recognized at the left and rightmost tracker.

Left and right are relative to the forward direction of the headset. So even if the HMD is not used, it still needs to be place such that it is pointing in the forward direction at start.

Hips Target

A Vive Tracker can be placed on the hips. In this position the orientation of the tracker is not used, so it is not important how the tracker is rotated around the Vive logo (forward direction).

A Tracker on the hips is recognized when an active tracker is found between 0.3m and 1m above ground level.

Foot Target

Vive Trackers on the foot are recognized when they are less than 0.2m above ground level. The left foot tracker is the leftmost tracker below 0.2m, the right foot tracker the rightmost tracker below 0.2m.

Left and right are relative to the forward direction of the headset. So even if the HMD is not used, it still needs to be place such that it is pointing in the forward direction at start.