Wishlist/Determine Position

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Reverting vandalism)
m (Wishlist:Determine Position moved to Wishlist/Determine Position: Replacing 'Wishlist:' with 'Wishlist/')
 
(14 intermediate revisions by 8 users not shown)
Line 5: Line 5:
 
GPS requires you to be able to see the GPS satellites. If you are in a tunnel or on a subway this will not work.
 
GPS requires you to be able to see the GPS satellites. If you are in a tunnel or on a subway this will not work.
  
Another way to determine you position is using accelerometers. If you know the position and the speed at a given time and you know all the accelerations done since that time you can compute the current location. It is computed as: position + integral speed + integral integral accelerations.
+
== Absence of GPS - Accelerometers ==
  
To do this accurately you need to read the accelerometers very often. If the reading is done in a FPGA it can be done several 1000 times per second. Depending on the power consumption this may be more power efficient than determining the GPS position again and again.
+
Another way that might be considered to determine your position is using [http://en.wikipedia.org/wiki/inertial_navigation inertial navigation]. If you know the position, speed and orientation precisely at a given time and you know all the accelerations and rotations done since that time you can compute the current location.  
  
----
+
You need both accelerometers, and gyroscopes to determine your position by this method.
 +
Even disregarding budget, the current devices available are not good enough for this for any more than very short periods (seconds).
 +
See [[Accelerometer Fundamentals]] for more details.
  
This is not possible, firstly, you need some orientation reference, such as an gyroscope or compass.
+
[http://www.analog.com/en/prod/0,,764_800_ADXL202,00.html] is the datasheet for an example of the sort of accelerometer that might be put into the neo.
  
Unfortunately also, the accellerometers are simply not good enough for this.
+
Accelerometers have a certain amount of noise.
 
+
[http://www.analog.com/en/prod/0,,764_800_ADXL202,00.html] is the datasheet for an example of the sort of accellerometer in the neo.
+
 
+
Accellerometers have a certain amount of noise.
+
Simply reading them often does not reduce - and in some cases may increase this noise.
+
  
 
This noise gives you severe positioning errors. An error of only a thousandth of a G gives an uncertainty of velocity of 10mm/s after a second, 1.2m/s after 2 minutes.
 
This noise gives you severe positioning errors. An error of only a thousandth of a G gives an uncertainty of velocity of 10mm/s after a second, 1.2m/s after 2 minutes.
 
This is 80m after 1 minute, 8Km after 10 minutes.
 
This is 80m after 1 minute, 8Km after 10 minutes.
 +
The integrated gyroscopes are around as bad, and drift typically at degrees per minute.
 +
 +
Accelerometers have also been utilized creatively doing:
 +
* drop detection
 +
* over-engineered pedometers. Nokia have 'sports' mobiles with this feature.
 +
* automatic wakeup
 +
 +
== Absence of GPS - OBD-II interface ==
 +
 +
If the accelerometers are not accurate enough, there is another method which could be used in a car.
 +
The phone could interface itself (e.g. via bluetooth) to a "scan tool" connected to the [http://en.wikipedia.org/wiki/OBD-II OBD-II] interface of the car.
 +
See [http://openbossa.indt.org/carman/ Carman].
 +
 +
So, at least an user that has such a scan tool, could enable a useful feature.
 +
 +
From the OBD-II interface I think one could obtain the speed of the car quite accurately. The direction could be a problem though. Even a gyroscope in the phone could not suffice. But having a map of the streets, and supposing that the driver does not do a u-turn in a tunnel, a quite good guess could be done in absence of GPS signal.
 +
 +
== Kalman filter ==
 +
What about using something like [http://en.wikipedia.org/wiki/Kalman_filter Kalman filter] to use both gps and accelerometers and get some more precision?
 +
 +
[[Category:Ideas]]
 +
[[Category:Accelerometer]]

Latest revision as of 13:20, 31 August 2008

Contents

[edit] Determine Position

GPS can be used to determine the position with a fair accuracy.

GPS requires you to be able to see the GPS satellites. If you are in a tunnel or on a subway this will not work.

[edit] Absence of GPS - Accelerometers

Another way that might be considered to determine your position is using inertial navigation. If you know the position, speed and orientation precisely at a given time and you know all the accelerations and rotations done since that time you can compute the current location.

You need both accelerometers, and gyroscopes to determine your position by this method. Even disregarding budget, the current devices available are not good enough for this for any more than very short periods (seconds). See Accelerometer Fundamentals for more details.

[1] is the datasheet for an example of the sort of accelerometer that might be put into the neo.

Accelerometers have a certain amount of noise.

This noise gives you severe positioning errors. An error of only a thousandth of a G gives an uncertainty of velocity of 10mm/s after a second, 1.2m/s after 2 minutes. This is 80m after 1 minute, 8Km after 10 minutes. The integrated gyroscopes are around as bad, and drift typically at degrees per minute.

Accelerometers have also been utilized creatively doing:

  • drop detection
  • over-engineered pedometers. Nokia have 'sports' mobiles with this feature.
  • automatic wakeup

[edit] Absence of GPS - OBD-II interface

If the accelerometers are not accurate enough, there is another method which could be used in a car. The phone could interface itself (e.g. via bluetooth) to a "scan tool" connected to the OBD-II interface of the car. See Carman.

So, at least an user that has such a scan tool, could enable a useful feature.

From the OBD-II interface I think one could obtain the speed of the car quite accurately. The direction could be a problem though. Even a gyroscope in the phone could not suffice. But having a map of the streets, and supposing that the driver does not do a u-turn in a tunnel, a quite good guess could be done in absence of GPS signal.

[edit] Kalman filter

What about using something like Kalman filter to use both gps and accelerometers and get some more precision?

Personal tools

Determine Position

GPS can be used to determine the position with a fair accuracy.

GPS requires you to be able to see the GPS satellites. If you are in a tunnel or on a subway this will not work.

Another way to determine you position is using accelerometers. If you know the position and the speed at a given time and you know all the accelerations done since that time you can compute the current location. It is computed as: position + integral speed + integral integral accelerations.

To do this accurately you need to read the accelerometers very often. If the reading is done in a FPGA it can be done several 1000 times per second. Depending on the power consumption this may be more power efficient than determining the GPS position again and again.


This is not possible, firstly, you need some orientation reference, such as an gyroscope or compass.

Unfortunately also, the accellerometers are simply not good enough for this.

[1] is the datasheet for an example of the sort of accellerometer in the neo.

Accellerometers have a certain amount of noise. Simply reading them often does not reduce - and in some cases may increase this noise.

This noise gives you severe positioning errors. An error of only a thousandth of a G gives an uncertainty of velocity of 10mm/s after a second, 1.2m/s after 2 minutes. This is 80m after 1 minute, 8Km after 10 minutes.