and 3-axis magnetometers. These sensors are
constantly sampled, with raw values being written
into registers that can be read out by users. The VN-
100 however, can already perform a lot of the
calculations necessary to convert these
measurements into an attitude solution. To estimate
attitude, the sensor employs quaternion mathematics.
This is done automatically by the chip, and takes
into account the offsets created by, for example,
gravity and the earth’s magnetic field.
Because data can be noisy and problems like
sensor drift could account for some errors in
measurement, the VN-100 makes use of an extended
Kalman filter to both reduce noise and give the best
estimate as to the current attitude solution. Because
this filter is run on the chip, no detailed information
about the mathematical model is necessary to work
with it. What is important to know is that the
parameters of this filter can be adjusted by the user,
to tweak the sensor for optimal performance in a
desired situation.
To interface with the sensor, read out its registers
and perform the necessary calculations to come to
the position solution, the SunSPOT was used as the
sensor platform (Oracle Labs, 2012) (Figure 2). The
SunSPOT is a prototyping platform developed by
Sun Microsystems. It is programmable in the JAVA
language, and offers a series of inputs/outputs to
interface with sensors or other peripheral hardware.
Using a build-in radio, the SunSPOT is capable of
wireless communication up to 20m in theory,
although this range can be increased by connecting
for example an XBee radio.
Figure 2: The SunSPOT, developed by Sun Microsystems,
and which is used as prototyping platform for this project.
3 INTEGRATION
With the accelerations and attitude in the earth
inertial reference frame coming from the VN-100
sensor we can calculate the distance travelled for all
axes using double integration. However when
calculating velocity and distance from these
measurements by integration an integration error is
accumulated. The sensor's velocity and thus distance
keeps increasing even when the IMU is stationary.
By using low cost IMU's for navigation purposes the
errors accumulate in such a rapid rate that it is no
longer suitable for the application.
3.1 ZUPT
Zero Velocity Updates (ZUPT), a method used to
improve the long-term accuracy of the IMU is used
in this project. Since the application we are
developing is supposed to track the position of a
person in a building, the sensor node needs to be
placed somewhere on the user’s body. In order to
improve long term accuracy of the INS the sensor
node is placed on the foot of the user. After each
step there is a moment in which the foot is
stationary, thus the velocity of the foot is zero.
Because we know the velocity should be zero at
mid-stance we can set the calculated velocity back to
zero, meaning that the errors previously
accumulated will not have an effect on future
measurements, thus improving long term accuracy
(Park and Suh, 2010); (Skog et al., 2010). To detect
a footstep this project uses a pressure sensor located
beneath the middle of the foot. Figure 3 shows the
detection of the ZUPT periods in between the
acceleration. The pressure sensor allows us to detect
a footstep regardless of how fast you walk. Other
methods such as magnitude or variance detection
tend to lose accuracy at higher speeds.
Figure 3: ZUPT detection using a pressure sensor.
There is however another source of error in
determining distance. Despite having very dense
data sets with roughly 100 measurements per
second, the integration is never perfect. Sudden
abrupt movements have been found to be
SENSORNETS2013-2ndInternationalConferenceonSensorNetworks
174