-
Notifications
You must be signed in to change notification settings - Fork 146
Tracker Pose Calibration
In order to set up your PS Move tracking space we need to compute the location and orientation of each of the PS Eye cameras you have connected.
Begin the calibration process by selecting the "Compute Tracker Poses" option in the "Tracker Settings" menu:
The next screen allows you verify that your PS Move tracking cameras are streaming video properly. Sometimes the camera drivers can get in a bad state and the video feed can start cutting out. Cycle through the camera feeds with "Previous Tracker" and "Next Tracker" buttons (if you have more than one tracker). If one of the video feeds isn't working, go take a look at the Troubleshooting-(Windows) wiki page.
The current method of determining the location of your tracking cameras involves using a "Calibration Mat":
You place the calibration mat in view of all of your PSMove tracking cameras and then PSMoveController at each numbered location on the mat. The calibration tool records the pixel position of the PSMove bulb at each numbered location. The calibration mat is a known size (8.5in. x 11in.). We define the center of the calibration mat to be the origin of the PSMove tracking space. Using the measured pixel locations, the pre-defined X,Y,Z locations of the PSMove controller at each sample location, and the focal length of each tracking camera we can compute the tracking camera's position and orientation relative to the tracking mat. This calibration method uses OpenCV's SolvePnP function under the hood.
You'll need to download the Calibration Mat PDF, print it out and tape it to a flat and level surface. If you don't have a printer handy, you can just use a regular 8.5in. x 11in. (US Letter) sheet of paper and number the locations yourself. Just make sure point 3 is in the exact center of the paper.
Once you start the calibration process you could see a video feed from the point of view of a tracking camera. When you bring the PSMove into frame you should see an ellipse outline the bulb. If you don't then you probably need to run through the Color Filter Calibration again for your trackers.
[[images/TrackerPose/TrackerSample.jpg]]
Place the PSMove controller standing upright at sample location #1. You should see a time count down waiting to make sure the controller is stable. Once stable, it will start recording pixel sample for each tracker. When it has successfully recorded all the samples it needs you'll be asked to move the controller on to location #2, and so on until all five locations are sampled.
[[images/TrackerPose/SampleLocation.jpg]]
If all went well you should see the camera frustums for each tracking camera you have as well as the tracked PSMove controller position. Hopefully when you hold the PSMove close to your HMD is should be correspondingly close on screen. If things look way off, try re-running the calibration.
[[images/TrackerPose/TestTracking.jpg]]
All of the tracker configuration info, including the camera pose we just configured is stored in: C:\Users\<username>\AppData\Roaming\PSMoveService\PS3EyeTrackerConfig_ps3eye_b<X>_p<Y>.json
where X
and Y
are the USB bus and port numbers the tracking camera is plugged into. Because the PS3Eye doesn't have any unique ID associated with it, we need to identify the cameras by USB plug they are connected to. This means that if you move which USB plug the camera is connected to you'll need to re-run camera pose calibration!