Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: GPS : how location is computed, and way to improve it

777
  1. [translate]    #1
    Member
    Join Date
    Apr 2010
    Posts
    66

    Default GPS : how location is computed, and way to improve it

    Hello,

    If one wants to get a GPS location, there are typically two ways :

    1) Using a local time reference (seems to be what's used on android)
    2) Using only the signal sent by the viewable satellites.

    A gps sat sends a signal containing the current time (at time of emission by the sat) and its position.

    Using the method 1), the gps receiver will compute its distance to the sats (c*(t-temission)) it is able to see, meaning that he knows that it can tell that it is on a sphere of center the sat and radius the distance... So if it spots 4 sats, it can tell that it is at the intersection of four different spheres and that gives a sngle point...

    Problem is that if there is an error in the local time, the radii of the spheres are wrong, and the intersection of the four sphere may be null or a false point. In order to solve this, people tend to use ntp servers and so on... but well... In the end, the receiver will try to adjust the local time in order to get a single point as intersection...

    Using method 2 is much more reliable since it does not depends on local (and false nd innacurate) time reference...

    Instead of computing it distance to the differents sats, it computes the difference of distance between different pairs of sats (d=c(T_sat1 - T_sat2)). This information does not define a sphere but a revolution hyperboloid. With four sats, the receiver can define four hyperboloids and compute the intersection.

    This method is much more accurate since the only error is due to the transmission of the signal through the atmosphere and ionosphere instead of vacuum. This error is partially corrected by the satellites, but this is only partially. This error also exists in the first method.

    Questions are :

    a. Why does gps on android use method 1 instead of method 2 ?
    b. Is it the gps driver or the apps that computes the position ?

    If answer to b. is the driver, then it may be worth to try writing a new driver that uses method 2.

    Regards

  2. [translate]    #2
    Senior Member
    Join Date
    Jun 2010
    Location
    Kiev
    Posts
    761

    Default

    HMM... interesting method...

    trying to make spica working at speeds over 1000kmh?
    New advertisements: Use your Spica as rocket guide! Buy now!

  3. [translate]    #3
    Senior Member
    Join Date
    May 2010
    Location
    India
    Posts
    509

    Default

    in time settings choose network time and then there really wont be any error in local time.

  4. [translate]    #4
    Senior Member
    Join Date
    Aug 2010
    Location
    netherlands
    Posts
    225

    Default

    I think applications are using the location coordinates they get from the driver, via LocationManager, as it is the easiest method.
    From the individual gps satellites you can get azimuth/elevation but not timings; i think everything is resolved in the driver itself.
    This is what you can extract per satellite:

    float getAzimuth() Returns the azimuth of the satellite in degrees.
    float getElevation() Returns the elevation of the satellite in degrees.
    int getPrn() Returns the PRN (pseudo-random number) for the satellite.
    float getSnr() Returns the signal to noise ratio for the satellite.
    boolean hasAlmanac() Returns true if the GPS engine has almanac data for the satellite.
    boolean hasEphemeris() Returns true if the GPS engine has ephemeris data for the satellite.
    boolean usedInFix() Returns true if the satellite was used by the GPS engine when calculating the most recent GPS fix.

  5. [translate]    #5
    Senior Member
    Join Date
    Mar 2010
    Location
    Belgium
    Posts
    233

    Default

    Quote Originally Posted by tgpraveen View Post
    in time settings choose network time and then there really wont be any error in local time.
    Using Network Time is 1 hour off here for some odd reason :s
    I believe this should be possible but will require some deep knowledge of GPS, GPS receivers AND android drivers/kernel.
    It would be great to have improved accuracy for geocaching etc Too bad reception in bad conditions will probably not improve (clouds, dense forests, ...)

    Actually, I have never did an accuracy test between my Spica and Garmin GPSMAP60CSx... Will maybe do that later ^^

  6. [translate]    #6
    Junior Member
    Join Date
    Aug 2010
    Location
    Finland
    Posts
    14

    Default

    If I had to guess, the GPS location fix is handled in the MSM6246, which the gps is located at. Possibly transmitted to the rild using normal NMEA commands.

    The MSM6246 is a slow arm core and the documents on it say it uses some sort of trusted boot, so it's possible the images are encrypted or signed, so modifying those would be quite hard.

  7. [translate]    #7
    Member
    Join Date
    Apr 2010
    Posts
    66

    Default

    @yuna. : i do not see the link between this an speed. As many users, i have a very random time to fix with my spica gps ( from 5s to a few hours)
    Since common belief is that setting a closer ntp server in gps.conf helps method 2 may help.

    @tgpraveen : well, ligjt speed being around 300 000 km/s if your clock has ms shift, you are allready a few hundreds km wrong on the radii estimation.
    And i do not thonl you could have better with network tome

  8. [translate]    #8
    Senior Member
    Join Date
    Jun 2010
    Location
    Kiev
    Posts
    761

    Default

    Quote Originally Posted by drebon View Post
    i do not see the link between this an speed
    standart gps (e.g us) can work upto 400-500km/h speeds..
    but military can do at any speed

  9. [translate]    #9
    Senior Member
    Join Date
    Mar 2010
    Location
    Belgium
    Posts
    233

    Default

    Quote Originally Posted by Yuna View Post
    standart gps (e.g us) can work upto 400-500km/h speeds..
    but military can do at any speed

    I had my GPS functional and accurate at 8km high at speeds of more than 850km/h ;-)

  10. [translate]    #10
    Senior Member
    Join Date
    Jun 2010
    Location
    Kiev
    Posts
    761

    Default

    with i5700?

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •