Question on the logistics of GPS

I've heard different answers from different sources on the exact capabilities of GPS technology (specifically, the Parallax GPS Receiver). One thing I was wondering was about the heading information the GPS receiver outputs. I understand this is done through differential positioning, but how fast does the vehicle have to be traveling in order to get a semi-accurate bearing?My prototype goes slower than walking speed, which from some people, I've heard is good enough to get a heading, while others have expressed concern that even an Easy Star, which is significantly faster than walking speed, would not get a decent bearing lock.I imagine if something that's moving slower than walking speed is constantly updating its current heading with a +- 5 meter accuracy, then the reading will jump all over the place.So for a slow vehicle, would spacing out the navigation loop (i.e., adding a couple seconds of pause before starting each loop) compensate for any inaccuracy to a reasonable level?\Otherwise, I would need to use a separate compass to simulate a GPS reading, which is something I'd rather not do.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • The first thing to keep in mind is that GPS receivers output "Course Made Good" (A.K.A. "Ground Track"), not "Heading". Heading is the direction you are pointing, not necessarily the direction you are moving, and can only be determined using a magnetic compass or differentially using multiple GPS receivers. "Bearing" is the direction from your current location to the destination. Course Made Good and Bearing are normally reported relative to true north, heading obtained from a magnetic compass is normally reported relative to magnetic north.

    Most recent GPS receivers calculate Course Made Good by using a 3D velocity vector calculated from the doppler shifts of the signals received from the satellites, not the position deltas. The velocity vector is typically accurate to within 0.1 m/sec, which is somewhat slower than walking speed. Bottom line, use the provided Course Made Good (from the RMC sentence), or if your GPS has a suitable binary data mode, you can calculate it yourself from the 3D velocity vector. If you can't get this information from your receiver, get a better receiver...
  • Ugh, not looking forward to the final tally of expenses for this project. I guess I'll be ordering a BS2P, and a an EM406 if I can't resolve this issue.

    Thanks Chris.
  • Thanks Chris, I haven't thought about that. I guess if the bearing does end up being inaccurate, I can just program the calculations manually.

    On a side note, I've ran out of EEPROM already -_-

    If I upgrade to the BS2P, is it simply a plug and play deal? Aside from changing a few constants and whatnot.

    edit: My GPS receiver is outputting data that is way off (0.5 fractional minutes off for latitude, 0.15 fractional minutes off for longitude), according to where I should be at in Google Earth (should I trust Google Earth to be accurate?). These numbers are also growing consistently bigger, when the GPS receiver has been sitting in the same place sending data for 15 minutes.

    Would switching to RAW mode alleviate this problem?
  • 3D Robotics
    SImon,

    There are two ways to test this. Use the GPS's own bearing data, and calculate your own. The best way is to record the last five data points or so and do a least squares linear regression, but for the sake of a simple experiment, just take the last data point and the current one and the heading should be atan (y2-y1)/(x2-x1).

    Chris
This reply was deleted.

Activity