There are
two issues that I have noticed while playing Wii Sports. One involves
bowling and one involves golf. In the bowling game I have been
soundly defeated by a 7 year old. While that in and of itself is not
an issue, he usually beats me by swinging his arm in a random
convulsive fashion behind his back. Last time I checked, his high
score was 217. The issue with the golf game is when the golf club
swings backwards with respect to the motion of the Wiimote. This
happens most often while putting.
These kind of issues hint at large
errors interpreting the outputs of the accelerometer, estimating the
Wiimote orientation, or perhaps a low battery in the Wiimote. Or all
three. This article shows a useful way to improve the outputs of the
accelerometers. A more complete version of this method can be used
to improve the estimate of the orientation of the Wiimote. Sadly this
method will not help too much with a low battery.
Inexpensive
accelerometers are known for fuzzy input. An error of 5% in
acceleration is enough to throw position and velocity estimates off
quickly. I wager to guess that the accelerometers in the Wiimote are
neither the most expensive nor the most accurate versions available.
But can one get anything useful out of cheap accelerometers?
Absolutely. Some good information is already pulled from the
accelerometer in the Wii Sports and the Wii Play games. But can more
accurate information be extracted? Definitely. But how can it be
done?
One way
to eke out better information from accelerometers is to use a
complicated form of time dependent probability theory. This is known
as Kalman Filtering. Kalman Filtering is commonly used in the
navigation systems of airplanes, where knowing the location
accurately, and precisely if possible, is important. Versions of the
Kalman Filter are also used to estimate spacecraft and satellite
trajectories.
The
description, justification, and general use of the Kalman Filter is
challenging, so I will merely state the results that are relevant and
then go through an example. There are a few good, and more so-so
books and web pages on Kalman Filtering. I list in the references
only what I consider good pages, so please realize that it is a
subjective list. Good luck with them [1,2,3,4]. Familiarity with
differential equations, some statistics, and matrix mechanics is
assumed throughout this article.
After the
basic Kalman Filter equations, this article discusses a 'simple'
Kalman Filter example. The 'simple' example is a one dimensional
motion of an accelerometer and with ideally fairly accurate position
measurements. I use the word simple only because this is as
uncomplicated as Kalman Filtering gets. It does not describe the
example as something that is necessarily easily understood. This
example has nothing in it that explains how to extract the
orientation of the Wiimote, that is the next level up in complexity
of a Kalman Filter design. This example is perfect for estimating the
motion of an object in one dimension, like the motion of a pool cue
before it strikes the cue ball.