Skip to content
Kenneth Moser edited this page Mar 22, 2016 · 14 revisions

Thank you for your interest in the Android SPAAM software. The aim of this project is to provide a simple program for performing a Single Point Active Alignment Method (SPAAM) calibration on the Epson Moverio BT-200 Optical See-Through Head-Mounted display. The Moverio runs on Android 4.0.4, which is why this project is called Android SPAAM. It is important to note that this code is not intended to calibrate other mobile android devices which use Video See-Through (VST) software. This is intended to calibrate Optical See-Through (OST) devices only.

Introduction

The goal of calibrating an OST head-mounted display (HMD) is to create a projection matrix for use in the graphics pipeline that will create a perspectively correct view for the user looking through the device. This means that it should be possible to make objects rendered to the screen appear as though they are located (registered) in the real world. This project provides a simple interface for calibrating an Epson Moverio BT200 display.

Project Setup and Program Use

See the README.md file for complete instructions on importing this code into the Eclipse IDE and usage of the program on the Moverio device.

Calibration Procedure

To use the calibration software, simply install the apk available in the bin directory of the project and follow these simple steps.

1: Print out the required tracking marker (the black border of the marker should be 20cm x 20cm). There is a Microsoft Power Point and also 2 pdf versions (letter & A4 size) that contain printable versions of the marker.

Tracking Marker

Even though the marker image is in red, Vuforia is also capable of tracking the marker in grey scale. Therefore, if you can only print the marker in black and white, that is also fine as long as the dimensions are 20cm x 20cm.

2: Run the program on the Moverio device. The icon for the program will resemble the printed tracking marker.

Application Icon

3: On the main start screen select the eye to calibrate (left or right).

Main Screen

4: Once the eye is chosen, the alignment crosses will appear in that eye. The other eye will see only a black screen (nothing on the display itself). It is best to close the unused eye during calibration to avoid binocular rivalry. Cross Grid

5: Look at the printed tracking marker. If the Moverio's camera is able to see the marker the crosses will appear green. If the crosses appear red then the marker is not seen. Please make sure that the Moverio camera can see the marker at all times. (Blue crosses mean that the marker is tracked but that the internal storage of the device cannot be accessed to record the result).

TrackingNot Tracking

6: Tap on the touch pad to begin the calibration. During calibration only a single cross should be visible. (take care not to accidentaly tap on the touchpad during calibration since taps signal for a measurement to be taken).

7: Align the green crosshair with the center of the white cross on the tracking marker. Once the screen cross and tracking marker cross are aligned, tap on the touch pad to take the measurement and show the next cross.

Aligned Cross

9: Repeat the process for as many crosses as desired to achieve a satisfactory calibration. A green wireframe square will be shown during the calibration. A very good calibration should result in the wireframe square matching the border of the tracking marker very closely.

Verification Square

Using Calibration Results

The calibration results should be saved in the 'Download' folder of the device in the new folder 'SPAAM_Calib'. A seperate file for the left and right eye will be created and can be used by other programs to create perspectively correct projections. The calibration results are created using a RandomAccess file object writting doubles. So be sure to read doubles in your own programs using these files. It is also worth mentioning that these files are binary and not text files, and that Android stores values as Little Endian, so keep that in mind. The saved results are 4x4 matrices in column major order that can be used directly in an Opengl ES programs.

Clone this wiki locally