-
Introduction
-
Tracking modes
-
ArUco markers and marker-based tracking features
-
ArUco markers
-
Marker-based tracking features
-
-
Marker-Based Location Sharing setup
- Setting up Marker-Based Location Sharing
- Creating ArUco markers for Marker-Based Location Sharing
- Aligning the height of a virtual scene using an ArUco marker
- Moving a user to a specific point in a virtual scene
- Setting up Marker-Based Location Sharing with VIVE Business Streaming
- Marker-Based Location Sharing APIs (AIO)
- Marker-Based Location Sharing APIs (PC VR)
-
LBE Mode/LBE Hybrid Mode setup
-
LBE map configuration
-
Marker-Based Drift Prevention setup
-
Marker-Based Advanced Relocation setup
-
Marker-Based Scene Alignment setup
- Setting up Marker-Based Scene Alignment
- Configuring the position of an ArUco marker in a virtual scene (Unity)
- Creating ArUco markers for Marker-Based Scene Alignment
- Setting up Marker-Based Scene Alignment with VIVE Business Streaming
- Marker-Based Scene Alignment APIs (AIO)
- Marker-Based Scene Alignment APIs (PC VR)
-
Simulator VR Mode setup
- Setting up Simulator VR Mode
- Pairing wrist trackers with a headset
- Installing an anchor controller or tracker in a VR simulator
- Coordinate alignment
- Anchor controller and tracker origin points
- Aligning VR and anchor coordinate systems using a VR controller
- Aligning VR and anchor coordinate systems using an ArUco marker
- Simulator VR Mode FAQs
-
Other services
-
Additional features
- Contact Us
Aligning VR and anchor coordinate systems using a VR controller
-
Make sure the VIVE Wave SDK is updated to version 4.4.0 before using the coordinate alignment APIs.
-
Test the APIs before operating your VR simulator to make sure the coordinate systems work as expected.
-
Define the offset of the VR and anchor coordinate systems.
The offset must be defined before the VR and anchor coordinate systems can be aligned. Use the string key ClearRecenterXform to define the offset:
Controller
string key = "ClearRecenterXform"; Interop.WVR_SetParameters (WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key)); Interop.WVR_SetParameters (WVR_DeviceType.WVR_DeviceType_Controller_Right, Marshal.StringToHGlobalAnsi(key)); Interop.WVR_SetParameters (WVR_DeviceType.WVR_DeviceType_Controller_Left, Marshal.StringToHGlobalAnsi(key));
Wrist tracker
string key = "ClearRecenterXform"; Interop.WVR_SetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key)); key = "ClearRecenterXformTR"; Interop.WVR_SetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key));
-
Calculate the values for the string key used to align the VR and anchor coordinate systems.
The string key PLAYER01InCarOrg is used to align the VR and anchor coordinate systems. Calculate the values for this string key by using the following equation by using the following equation, where T is a meter and q is the quantum angle.
In the following illustration, the anchor coordinate system is offset from the VR coordinate system, following the right-hand rule.
For this setup, the string key PLAYER01InCarOrg would be defined as follows:
PLAYER01InCarOrg = -0.4,0.9,-0.4,0.0,0.0,0.0,1.0
-
Modify the values of string key
PLAYER01InCarOrg as needed and insert it in the following API.
AIO
string key = "PLAYER01InCarOrg=-0.4,0.9,-0.4,0.0,0.0,0.0,1.0"; uint RETURN_SIZE = 256; IntPtr value = Marshal.AllocHGlobal(new IntPtr(RETURN_SIZE)); Interop.WVR_GetParameters(WVR_DeviceType.WVR_DeviceType_HMD, Marshal.StringToHGlobalAnsi(key), value, RETURN_SIZE);
PC VR
string key = "PLAYER01InCarOrg="; string setting = "-0.4,0.9,-0.4,0.0,0.0,0.0,1.0"; key += setting; string result = SendRequestMessage(DeviceType.HMD, key); if (string.Compare(result, "InitMAErr") == 0) { // write your error handling code here }