Jump to content

How to use Ultimate Tracker


Vivi Wu

Recommended Posts

What is Ultimate Tracker: https://www.vive.com/us/accessory/vive-ultimate-tracker/

System requirement:

  • VIVE XR Elite FOTA 6.6 - 1.0.999.508 or later version
  • VIVE Focus 3 for VIVE Ultimate Tracker support and VIVE LBSS LBE Mode is a gradual rollout.
    Please contact VIVE Support to request access.

Support Table:

 

Windows (PC) VR

Android (AIO) VR

Devices

VIVE Focus3 / XR Elite + VIVE Streaming

VIVE Focus3 / XR Elite

Engine

Unity

Unreal Engine

Unity

Unreal Engine

Ultimate Tracker

Body tracking extension

 

 

 

 

Android (AIO) VR Tutorial:

Windows (PC) VR Tutorial:

More detail, support and troubleshooting : https://business.vive.com/us/support/ultimate-tracker/

 

Link to comment
Share on other sites

  • 2 weeks later...

After a week and a half of trying I still can't get the trackers working with Unity - for the sake of testing I've made a simple project where the intention is to translate the tracker data onto a simple cube.

The documentation for deployment of these isn't great - is it possible to deploy using a similar method to the controllers and HMD (Tracked Pose Driver?)

Link to comment
Share on other sites

  • 2 weeks later...
On 12/21/2023 at 8:14 AM, Vivi Wu said:

Hi @RMFoley92,
Please help to confirm below info for us:
1. What platform are you using? Android or Windows?
2. What device and the device version are you using?
3. Is there any error code or specific problem that you encounter

Thanks.

Hi,

1. I'm building to XR Elite using Android utilising OpenXR

2. Headset Firmware is currently 1.0.999.508 - Trackers are currently trying to update to 1.0.999.120 however the poor internet performance of the headset means they're unable to do so. They just get to 97% and fail the Firmware update. The headset is picking up the trackers when setting up and this process works fine, however I'm unable to then apply this to a Gameobject in Unity

3. I don't get any error codes when trying to implement the trackers, I've currently been trying to get the trackers working using the Tracked Pose Driver, the same as the traditional Trackers can be deployed as well as the HMD and controllers. I've tried to follow the deployment guide you've posted above but can't figure out how this translates into actual deployment in Unity.

Link to comment
Share on other sites

  • 2 weeks later...

Hi @Vivi Wu  ,
With the beta feature for the VIVE ultimate tracker, can I use the trackers directly with the PC without any headset (maybe using null HMD driver as in SteamVR or something similar). I just want the to access the tracker info within unity and use it to control a gameobject. Will I be able to do this with the beta and no headset?

Link to comment
Share on other sites

  • 2 weeks later...

Is there really no way to use this without a headset?

I'm trying to use the Vive Ultimate Tracker has a general purpose 3D tracker as a Windows application.

If not I'm going to have to return it.

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...

Managed to get the trackers somewhat working in PC VR.

I've joined the discord (https://discord.gg/viverse) to get access to the beta.

I installed the Vive Streaming Hub (https://www.vive.com/us/support/vs/category_howto/using-vive-streaming.html).

Paired & calibrated the tracker with the help of an Oculus Quest 2. Assigned the tracker as Camera in SteamVR.

I logged in & followed the VIVE_Ultimate_Tracker_PC_OpenXR_v2.pdf, however, it is not working. I'm on Unity 2022.3.16, URP, OpenXR Plugin + Vive OpenXR.

image.png.b889ca506ab6b42f2cabe7b8caa0a6c7.png

image.png.3862a1c490e84e1d7e0d523a19f765e6.png

image.png.049a9e4fc87c4d46d203feb1680589b0.png

Added the HTC VIVE Tracker Profile C# script to the project:

image.png.c77eedcca531ccaf1ba9d3824e9939f5.png

Created an Input Action asset and assigned the camera tracker:

image.png.cbee2979dc9d766db21aeb2514a754ba.png

I get a warning:

No GetDeviceLayoutName() override detected in HTC Vive Tracker Profile. Binding path validator for this interaction profile is not as effective. To fix, add GetDeviceLayoutName and GetInteractionProfileType override in this profile.
UnityEngine.XR.Management.XRGeneralSettings:AttemptInitializeXRSDKOnLoad () (at ./Library/PackageCache/com.unity.xr.management@4.4.1/Runtime/XRGeneralSettings.cs:148)

Errors:

HTC Vive Tracker Extension Not Enabled

Failed to create Action 'htcvivetracker/devicepose' with result 'XR_ERROR_PATH_UNSUPPORTED'.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

Could not create a device for 'HTC HTC Vive Tracker OpenXR (XRInputV1)' (exception: System.ArgumentException: Expected control 'devicePose' to be of type 'PoseControl' but is of type 'PoseControl' instead!
Parameter name: path
  at UnityEngine.InputSystem.InputControl.GetChildControl[TControl] (System.String path) [0x00025] in .\Library\PackageCache\com.unity.inputsystem@1.7.0\InputSystem\Controls\InputControl.cs:674 

I was able to get the tracker working in Unity with the SteamVR plugin, but I'd vastly prefer using OpenXR.

Link to comment
Share on other sites

(If my previous post with error messages goes through) I was able to fix it, I changed:

HTCViveTrackerProfile.cs
// line ~14
// Comment out:
//using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl;
// Change to:
using PoseControl = UnityEngine.InputSystem.XR.PoseControl;

Unity deprecated UnityEngine.XR.OpenXR.Input.PoseControl (it says so if you mouse over it in Visual Studio), they suggest UnityEngine.InputSystem.XR.PoseControl instead.

Now I just need to keep something on my Oculus Quest 2's sensor to make it think a user is in the headset, and I receive tracking in Unity. Trying to figure out if I can eliminated the headset now.

Edited by Jason D
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...