-
Notifications
You must be signed in to change notification settings - Fork 146
PSVR Positional Tracking setup
This guide assumes that you have followed all of the other setup guides for PSMoveService, and that you have 3 PSMove controllers, and that the tracking works properly when checking Test tracking in the config tool. We need 3 controllers because in its current form, PSMoveService cannot track the PSVR, so a 3rd PSMove has to be used for positional tracking instead.
(Steps for Trinus PSVR version 0.5.3)
Download the software at https://www.trinusvirtualreality.com/psvr/
Go through the install process, and make sure the PSVR Windows drivers are correctly installed.
Open TrinusPSVR, and check if the SteamVR drivers are installed properly. This should be done automatically. If not, there might be a problem with the Steam install path. One of the solutions might be to re-install Steam at its default location.
Make sure the PSVR is properly connected to your computer (explained in the How-to tab). Also make sure the PSVR is on (white LED on the processing unit), as Trinus PSVR cannot start the headset. If it's red, just press the power button on the PSVR cable.
Before pressing Start in the Main tab, put the PSVR on a flat surface, like the floor or a well balanced table. This is because the PSVR gyroscope has some drift which is normally corrected by the PS4 camera, but here the only thing that can be done is to sample the drift for a short while and try to compensate for it. Because of that, do not touch the headset for a couple of seconds when pressing Start. Also, note that the compensation is not perfect, and the PSVR will still have a very slow drift, usually to the left. This can be corrected by pressing Reset next to Reset view, which will take the current orientation as the new reference. It would also be a good idea to bind a keyboard key to this command, as this will be more convenient when resetting the view while in game.
At this stage, the PSVR is ready to be used with head-tracking only.
(Steps for PSMove FreePIE Bridge version 11)
First, in Trinus PSVR, go to Advanced tab and, if needed, set posIndex to 0 in the text field on the right. Also make sure that the FreePIE Input for SteamVR checkbox is ticked. The first few rows of the text field should now be:
{
"head":{
"rotIndex":-1,
"posIndex":0,
"posScale":0.1,
"enabled":true
},
This will tell Trinus to read the first element of the FreePIE array as positional data. The software used below will take care of putting the positional data of one of the controllers in this FreePIE array.
Make sure the FreePIE platform is installed (seems required). Download here http://andersmalmgren.github.io/FreePIE/
Download PSMove FreePIE Bridge here https://bitbucket.org/hawkinse/psmovefreepiebridge/downloads
Keep the extracted files in a folder as there is no install.
When starting the program, write 1 as the number of controllers, then the id of the one you want to use (between 0 and 2 if you have 3 controllers connected), and then say no (just n) when asking if you want a custom color. Saying no will use the color that was chosen in the PSMoveService config tool, and is thus less error-prone. You can tell which controller is being used because the bulb will light up (SteamVR must not be running for the other controllers' bulb to be off). To avoid doing this every time, a .bat command can be used. Edit TrackThirdControllerExample.bat (right-click on it then Edit). You will want to replace the last line with:
PSMoveFreepieBridge.exe -t x -c -1
Where x is the id of the PSMove controller you want to use. If you make sure to always connect the 3 controllers in the same order, running this .bat should allow positional tracking to be enabled in a single click.
If you want to use a virtual HMD instead of a controller, use this instead:
PSMoveFreepieBridge.exe -hmd 0 -c -1
If all went well, the 3rd PSMove is now working as a positional tracker! If it's not working, try to restart all 3 programs, and make sure the configurations of all of them are correct (following this guide and the others). Now you need to attach this controller to the PSVR or to your head. How you do it is up to you, but try to place it in a way such that the bulb is always visible from the cameras.
You can now run SteamVR. You should see 2 controllers in the SteamVR pannel. If you see 3, you forgot to filter the 3rd controller (check wiki). If you see none, check if positional tracking is working by putting on the PSVR and the 3rd controller. If it works, there might be a small problem with the PSMoveService-SteamVR link. Try to restart the service, or your computer, and make sure you have enabled the use of multiple drivers in steamvr.vrsettings (and check that the file is formatted properly). If even positional tracking doesn't work, PSMoveService is not working. Check if it's running and if it detects the controllers. If not, again, try to restart.
While testing is still underway, you can try to add the following line to steamvr.vrsettings, in psmove_settings:
"use_orientation_in_alignment" : false
This setting takes into account the fact that tracking comes from the same coordinate space than the PSMove controllers, and thus should allow for a more accurate positioning of the controllers in the VR space.