“inventor, n. A person who makes an ingenious arrangement of wheels, levers and springs, and believes it civilisation” from THE DEVIL’S DICTIONARY by Ambrose Bierce.
I am going to try to get all my thoughts down on “inventing” GPS games. In the first instance, here is an examination of what we get from GPS. Most GPS units will output data in a standard format called NMEA. Here is a link to some basic info on this. Several different strings of data may be output but GPCGA (fix data) is the most important – e.g.
$GPGGA,165459.000,5049.3553,N,00009.4173,W,1,10,0.92,3.5,M,47.0,M,,*7B
meaning for the above string
– the current time is 16:45:59
– our postition is (lat) 5049.3553,N and (long) 00009.4173,W
– the data is valid – (1 is valid GPS, 0 would be invalid)
– 10 satellites are in view
– horizontal dilution of position is 0.92 – accuracy of the reading where the lower the number the better – more on this in a moment, and further stuff here
– height above sea level in meters is 3.5
– height of geoid is 47.0 meters (try not to worry about this, but more info here)
– 2 empty fields and then a checksum
——————–
GPRMC is the recommended minimum sentence, looks like this
$GPRMC,165459.000,A,5049.3553,N,00009.4173,W,0.34,277.92,210807,,,A*74
and means
– fix taken at 16:54:59 UTC with A= active status (Note V = void)
– our position 5049.3553 N and 00009.4173 W
– our speed = 0.34 knots
– our track angle = 277.92 in degrees
– the date – 21/08/07
—————————-
GPGSA (satellite status) gives details of the satellites being used as in
$GPGSA,A,3,14,30,31,05,12,02,01,21,06,24,,,1.23,0.92,0.81*02
The A,3 indicates Auto 3D fix
Following is up to 12 satellite ids (PRN)
And finally 3 indications of dilution of position – overall (1.23) horizontal, (0.92) and vertical (0.81).
————————–
GSV – Satellites in View shows data about the satellites that the unit might be able to find based on its viewing mask and almanac data. It also shows current ability to track this data. Depending on the number of satellites being tracked more than one sentence could be required.
$GPGSV,3,1,12,06,74,195,40,30,64,090,49,31,52,295,43,05,45,097,48*7B
$GPGSV,3,2,12,01,31,261,41,24,27,140,39,12,26,094,42,02,24,049,41*74
$GPGSV,3,3,12,14,16,223,35,21,08,169,43,04,01,023,,35,,,29*46
Thus the first 2 digits give the number of sentences of this data (3) and which sentence in particular 1 (then 2, and 3) and the number of satellites in view (12)
Followed by for up to 4 satellites data – 06,74,195,40
Satellite PRN = 06
Elevation, 74 degrees
083 Azimuth, 195 degrees
Signal to Noise (higher is better) 40
—————————————-
So what is the useful raw data that we can use. Most obviously
Fix is going to be a part of every game (?). This can be made absolute or could be made relative to the starting point of the game. Or could be played within a boundary that we set by jogging around a marked area.
Speed can obviously be important too – maybe if we go too slowly or too fast certain rules could come into play. Also one could notionally move a virtual obstical (wall) only if we are going at a certain speed (could be combined with our weight too).
Track angle (this is the angle relative to the longitude with 0 pointing N) can be used in various ways – measuring the approach to or through something; coordinating direction with other players; require a player to follow a path by change of angles.
Time can be used to mark game start and end, or phases of game
Date could be used to provide different parameters on different days.
These can all be obtained from the RMC
Random factors could be obtained by using other data such as the number of satellites, or the change in the SNR of signals.
Altitude – don’t think that we have quite enough accuracy to use this in a simple form for any game (maybe with a human pyramid, but could come in useful in location-specific games.
DOP (dilution of position) gives us an indication of how accurate our signal is (Stated accuracy for our unit * DOP). If our unit is accurate to 10 meters then with a DOP of 1.0 we can be sure that we are within that tollerance. A reading of less than one, will give a better accuracy which is good. A reading of less is bad, and you can see this occuring as you approach buildings, trees or anything else hanging overhead. Nevertheless, we can use this figure to improve the quality of our games by factoring it in to our programs. We could even use it in a novel way where we had to perform tasks under different values of DOP and try to factor this in to our play.