main index This page is a dirty quick note draft for one of my projects. Sorry for some inconsistences and lack of completeness!


Some theory: the "positioning" problem

A complete navigation system should be able to report in real-time:

The GPS (Global Positioning System) features all those parameters: a GPS receiver analyzes signals coming from GPS satellites network and gives out all those parameters.

But... what to do when GPS is not available? There are a number of alternatives, based on:

For example, the BGM-109 "Tomahawk" missile uses TERCOM (Terrain Contour matching) and DSMAC (Digital Scene Matching Area Correlation) or GPS systems; the RGM-84 "Harpoon" radar-guided missile also uses an active radar.

Recent positioning systems are called network-centric because they fetch data from multiple sources (both "aboard" and "remote" sensors); for example, a laser-guided missile finds its target hit by a laser beam.

Except for inertial systems, all those solutions either require non-cheap hardware, or require non-cheap external references (which could be unreliable, disabled, unavailable, subject to interference...). The network-centric approach vastly improves accuracy, at a higher cost.


An inertial positioning system (INS) able to report position, orientation and velocity, will use at least:

An accelerometer gives out the acceleration data, on which your software can compute current speed. Some typical accelerometers are able to detect accelerations of up to 1.5g (where g=9.81m/s²) or up to 10g. Their "resolution" is quite limited, so it's better to choose the accelerometer having maximum range sligthly larger than the maximum acceleration of your project.

Example: Ferrovie dello Stato common trains for short paths, have no more than 0.6-0.8g maximum acceleration, while Circumvesuviana trains have 1.2g maximum acceleration and 1.33g maximum deceleration (emergency brake). A 4g or 10g accelerometer is useless if you want to track train speeds only.
There are out also some "high g" sensors for special automotive applications; a famous 100000g sensor (!) is used in crash-test and missile launches.

In order to build an Inertial Navigation System you first need three accelerometers which mount have an exact (as exact as possible) XYZ axis alignment. Fortunately, a number of these systems is available COTS ("commercial, off-the-shelf") and are very cheap.

A 3D accelerometer breakout board (three accelerometers with decent XYZ alignment axis) is as cheap as $30-$40 (late 2008). You can even save more, buying some game controller which has a 3D accelerometer inside (like the Nintendo Wii Nunchuck), going to less than $30 (yes, I've bought one and verified that its acceleration/joystick/keys data were readable by an Arduino-based project): saved a few bucks and had a nice white case, cable, keys and potentiometers available... It was my first electronics-related thing I bought to hack: currently I don't even have a Wii (but I plan to buy it).

Angular accelerometers (or gyroscopes) provide orientation values that the 3D accelerometer itself cannot give (mathematics will help you understand why).

Precision problems

The most precise inertial system cannot compete with other positioning systems relying on external references (such as GPS) because of large accumulation of small errors (which turns in a large error): long-range missiles simply need external references (but they have higher budgets than my gadgets...)

It will be near to impossible to deal with some problems (only in part addressed by manufacturers):

Example: if you have a +-1% error, after 50 readings you will have a +-50% error!
This is not a problem for videogaming, because video feedback allows you to correct all errors (and auto-sync at every game stage also goes for it).

There are a number of preassembled solutions, but they are not as cheap as common accelerometers. I see $450 for a complete Inertial Measurement System with accelerometers, gyroscopes and magneto readings (which reduce offset tilt error), plus Bluetooth interface. A nice brick (51×41×23mm) but far too pricey - buying a common GPS receiver with bluetooth interface will save at least 90%: then, why should we use that IMS?

I got an HSDPA capable cellphone: 50 bucks. It was better than buying some Elegant Powerful HSDPA USB modem (80 to 200 bucks): this also has an USB port. And it can even make phone calls and messaging. Thus, somethimes it is cheaper to choose a "complex" solution than a "theoretically simple" one.
This said, there could be some applications (like R/C models) where an INS could give better results than GPS (the resolution of GPS is a few meters: what if you need a meter or less?).

I should rewrite this page and document better...