Motion Tracking
CAVE2 uses an optical motion tracking system consisting of fourteen Vicon (qty 4 Bonita Model 10 plus qty 10 Bonita Model 3) infrared cameras mounted to the circular truss and positioned above the displays to cover the entire volume of the CAVE2 environment. Retroreflective markers are mounted in unique patterns on various objects (eg. glasses and controllers), identified and registered into tracker memory. In use, the tracker recognizes and separately tracks those objects ie. the position and orientation of user's stereo glasses (head) and navigation controller (hand) in six degrees of freedom. This allows for multiple controllers, users and yet-to-be-enabled devices to interact in the CAVE2 space independently, subject to the functionality the application may grant them.
tracked objects - Playstation controller and passive-stereo glasses
Bonita camera
Our initial camera configuration had all ten cameras focused on the center of CAVE2 which allowed for very accurate tracking of objects located near center. The tracked viewer would often venture close to the displays and potentially outside of the trackable volume. To compensate, we reoriented the cameras so that two cameras are focused on one of four sides of CAVE2. This allowed for improved coverage near the displays without the expense of additional cameras, at the cost of slightly decreased reliability at close ranges. In July 2013 we added four Bonita 10's to the array for a total of fourteen cameras to further improve in-close object tracking. The Bonita 10's are similar to the Bonita 3's but have higher resolution, the two camera models can be arrayed in any combination to establish the tracking volume.
Vicon Bonita Cameras: Brochure System Spec File
Playstation Controllers
drill and tap blocks pocket anodizer
unique patterns
The Vicon Tracker software uses Virtual-Reality Peripheral Network (VRPN) protocol to stream data to omicron's input management service. 'Oinput server' aggregates the tracking data with events from the Playstation controller as well as alternate input sources (controllers, touch surfaces or other tracking technologies like the Kinect) before broadcasting this data to CAVE2 applications using TCP/UDP socket communication.
Tracked Objects
Our primary user devices are the common Playstation Move controller and your typical 3D cinema passive-stereo glasses. We attach retro-reflective balls in unique patterns for the tracking system to identify each object and continuously track its position (x, y, z) and orientation (pitch, yaw, roll) in the 3D space.
We use a fabricated hexagonal block attached by #4-40 screw anchored to the controller center. A #10-24 tapped hole is added to the controller body to stabilize block rotation. Multiple #10-24 holes on the hex block provide for nylon threaded rods of varying lengths to create unique tracking patterns. Available tracking targets come with various diameters, base and thread styles, usually requiring some attachment modification. Ours are drilled and tapped to #10-24 to mount onto the rod ends.
Pearl Markers, 19mm sphere B&L Engineering Link
Event Capture
The Playstation controller's Bluetooth capability is used to communicate joystick and button events to CAVE2 applications. The MotioninJoy driver grabs the Playstation controller event data which oinput server in-turn communicates to the VR application using an evolving control map:
Omicron PS3 Navigation controller mapping:
Cross - Button2
Circle - Button3
L1 (Upper trigger) - Button5
L3 (Analog stick button) - Button6
DPad Up - ButtonUp
DPad Down - ButtonDown
DPad Left - ButtonLeft
DPad Right - ButtonRight
extraDataFloat[0] - Left analog stick -left/+right -1.0 to +1.0
extraDataFloat[1] - Left analog stick -up/+down -1.0 to +1.0
extraDataFloat[2] - Right analog stick -left/+right -1.0 to +1.0
extraDataFloat[3] - Right analog stick -up/+down -1.0 to +1.0
extraDataFloat[4] - L2 (Pressure sensitive trigger) 0.0 to 1.0