How accurate is gps3d ?
a) !!! DO NOT USE THIS SET OF TOOLS FOR ANY REAL-WORLD NAVIGATION !!!
These tools are toys, and the various math formulas used throughout
the software are based on a spherical earth model (which is *way*
wrong), and are more than likely to contain errors.
b) This set of utilities was developped and tested with a Magellan GPS 315,
and has never been tested with any other GPS devices out there.
I don't have a gps unit, can I stil use gps3d ?
yes. gps3d does not need to be connected to a gps to
let you navigate earth in 3D. If you have a gps connected
to your computer, gps3d just displays additional info
I can't get gps3d to talk to my gps unit
At the moment, gps3d only supports NMEA capable devices.
Please make sure that your gps is NMEA-capable.
What are the other utilities that come with gps3d ?
viz
viz is the main gps3d program. It is an OpenGL application that
will connect to a gpsd daemon and display a 3D, texture-mapped
earth with all kinds of GPS related stuff it reads off the daemon:
- current fix (position on earth's surface)
- current track (the trip recorded by the GPS unit)
- waypoints (special locations that you have marked with your GPS)
- satellite trajectories (the GPS satellites's travel in time)
viz can also download road maps from mapblast and display them on
the earth model.
gpsd
gpsd is a daemon (program that runs in the background) that
will monitor a serial port for messages sent by a GPS device
and broadcast it on a TCP port (actually, it broadcasts anything
that comes in on the serial port, so you could use gpsd to do
an internet broadcast the output of any device: an atomic clock,
an acquisition device, etc...).
This allows you to have multiple processes listening to the same
GPS unit at the same time. Also, a machine with a dedicated connection
to the internet and a GPS unit attached to it can use this to permanently
broadcast its position to anyone who wants to know (this also means that
everyone on the net knows where you live within a few meters :) ).
Finally, gpsd can also relay client requests to the GPS unit (it will write
NMEA sentences received on a TCP socket to the GPS). Warning: there is no
arbitration mechanism for write access to the GPS, so if two clients send
requests at the same time, you're on your own: the only guarantee of atomicity
is at the sentence level, that is gpsd will not mix two NMEA sentences.
gps
gps is a simple example client for the gpsd daemon. It connects to a gpsd
server, reads and parses the NMEA sentences and prints them in human readable
form. This is not intended to be useful for anything other than debugging or
tinkering with your gps unit.
What does it run on and what does it need
So far, gps3d has been tested on the following systems:
Linux
Mac OSX
Windows 95
Windows 98
Windows 2000
Windows NT 4.0 SP5
At this point, gps3d only supports serial connections to GPS devices, and does not
support USB GPD units. This may change in the near future.
How do I install it ?
On Linux, extract the tarball and type make
On Win32, if you have Visual C++ 6.0, there is a .dsw in the win32 sub-directory.
Alternatively just grab the latest binaries from https://www.mgix.com/gps3d/?download
There is no installer. You just run it from where it's at.
How do I use viz ?
Just launch ./viz.
By default it will try to connect to a gpsd server on the localhost.
If it can't connect, it will still let you play with the texture mapped
earth, but won't display anything GPS related.
If you want to, you can specifiy the host and port of the gpsd viz will
try to connect to as follows:
./viz gps.southpole.aq 1234
When viz is up and running, press H, it will display a quick help screen.
I've included an example Track file. It's a very small track, by earth
proportions, so you will have to find it :) . Once it's loaded, you'll
find it as a tiny speck, next to Los Angeles.(It's a sailing trip, hence
the zigzags when tacking upwind).
If you want to capture RAW NMEA gps output to build your own track files,
you can use something along the lines of:
./gps | grep -i '$GP'
How do I use gpsd ?
By default, gpsd connects to /dev/ttyS0 (COM1) at 19200 bauds, and broadcasts
on TCP port 2222.
These defaults can be changed from the command line as follows:
./gpsd -serial /dev/ttyS1 -speed 4800 -port 1234
To test that gpsd can hear your GPS device, use the example client gps: it will
dump everything it can read from gpsd.
How should I configure my gps ?
1. Connect it to a serial port. Preferably /dev/ttyS0 or COM1 since
it is the default port gpsd connects to
2. Configure your GPS to output NMEA messages on the serial connection,
preferably at 19200 bauds (again, gpsd's default).
3. If it doesn't work, read item b) of the Disclaimer below.
Can I use my own map of the earth ?
1. If you want to use your own map of the earth.
- Get your map of of earth into your favorite image editor
- Flip it (turn it upside down)
- Resize it to NxN, where N is a power of two.
- Save the result in PNM binary mode in map.pnm
2. How big can my map be ?
The bigger you map is, the more detail you will get for the earth
surface, but the more Texture RAM will be eaten up on your OpenGL
accelerator. Typically, a 2048x2048 map requires 32Mb onboard RAM,
and a 1kx1k map will fit in 16Mb.
However, you should be able to feed viz real large map, because
it tries to resize the map down until it fits in texture RAM. But
a larger map will not buy any more quality than you OpenGL board
RAM can handle.
How come the satellites trajectories aren't ellipses ?
Actual GPS satellites orbits are indeed ellipses but in an absolute
frame of reference, i.e whose axes are not moving wrt to, say, some
distant stars. But, GPS3D displays stuff in an earthbound frame of
reference (i.e. the frame rotates along with the planet). In that frame
of reference, the satellite's trajectories are not *at all* ellipses.
They look like a horse's saddle. See http://www.mgix.com/gps3d/orbits.jpg
to see a plot.
What about the license ?
gps3d and its source code are in the public domain.
|