Hola, que tal?
Hay una diferencia substancial entre cada elemento.
La brujula electronica te puede ser util, pero es muy costosa y necesitas hacer calculos
algo complejos para obtener la direccion si es que la brujula no se encuentra en paralelo horizonte, o sea, si no esta derechita al piso puedes tener falsas lecturas.
No te la recomiendo.
Actualmente existen giroscopios de 3 ejes, sparkfun cuenta con versiones tanto analogicas como digitales. estos giroscopios te reportaran la cantidad de giro instantaneo
que se genere en el sistema, asi que en tu software tienes que ir "sumando" los giros para obtener la posicion real.
En el caso de los acelerometros, el problema es que miden como dice su nombre, la aceleración y cuando se empieza a generar un movimiento, la aceleración se mide como un pico que en tu software tienes que discriminar, la ventaja es que después del movimiento, obtienes la posición real del objeto en reposo, así que si en un momento dado mides la posición en x,y y z, tendrás la posición real.
Para tu proyecto yo usaría 2 acelero metros por grado de libertad, así podrías discriminar movimientos reales de picos de aceleración.
Las otras dos opciones son viables pero caras.
Saludos!