Wednesday, October 14, 2009

Progress report on application programming

Zach and I have made progress on the application that will run the WiiCane system.  This application consists of two components:
  • The device driver, which Zach is programming in Java. This is a program that will run on the PC mounted to the pole at the end of the course. The driver establishes and manages the wireless connection between two Wii Remote units: one mounted on the cane and the other mounted on the user's body. The driver maintains information on: 
    • Linear distance between the starting point and current location.  
    • Body compass bearing, expressed as a positive or negative angle.  Pointing straight on the course returns a bearing of zero, and deviation to the left or right returns a negative or positive value, respectively.
    • Amount of veering, measured linearly from the imaginary line connecting the start and finish points. 
    • Cane taps events. A "tap threshold" is used to distinguish intentional taps from normal accelerometer fluctuations. Three taps in rapid sequence is a special signal that can be used to indicate that the user is about to start running the course.
    • Wrist roll. As Gene mentioned, the system will not work if the user rotates his or her wrist such that the Wii remote mounted on the cane is not pointing up at the lights. We can assume that this has happened if the body-mounted Wii places the user in proper position on the course, but the cane-mounted unit reports that no lights are seen.
    • Cane arc, expressed as a positive or negative angle of the cane in respect to the body at the moment when a tap occurs.
  • The course set up and test administration program, carried out in Adobe Director, which I will be creating. We will use the Moka Xtra to act as a bridge between Zach's Java-based Wii Cane driver and Director.  We have tested this, and it works well, and is very fast, which means that we will be able to respond to user actions without perceptible latency, which would result in system sluggishness. The Director application that we will use for testing in November will include the following features: 
    • A user log in screen so that subject parameters (cane height, body width, age) can be set prior to testing, and so that performance statistics can be saved to the computer's hard drive for later analysis.
    • A course parameter screen that permits an administrator to customize feedback conditions.
    • An animated plan view of the course with an avatar representing the test subject indicating instantaneous body and cane position and bearing during the test. 
    • A training administration screen that shows elapsed time and a visual display of feedback prompts currently playing in the subject's headphones. 
These programs are being developed specifically for the upcoming tests. The actual commercial version of the WiiCane product will include other features and a more polished presentation.


Bonnie DB said...

Steve - it sounds like much progress has been made! I don't understand some of the technical aspects. It is great there is no perceptible latency. I understand we are focusing on cane arc width and veering in regards to the feedback schedule. Is the rest of the information simply collected and saved for future analysis?

When does testing start in November and what age subjects are scheduled first?

Dona said...

Hi Steve! Are you saying that it will be too difficult to develop a program that can measure arc width without taps before the testing starts?