Check'in GPS Free-Flight Verification System Christian Quest (cquest@cquest.org) - 26-Sept-2001
Macintosh: any PowerPC based Macintosh (PowerPC G3 recommended). 32 MB of free RAMPC: any Pentium PC (Pentium III and above recommended), 32 MB of free RAM
Serial ports and GPS cables are required to transfer track logs from GPS receivers.
Additional serial ports for PC or Macintosh
CheckIn has been tested with several kind of additional serial ports:
- ISA cards (PC) or NuBus card (Mac)
- PCI cards
- PCCard or PCMCIA cards
- USB adapters
The simplest to setup is the last one, the USB adapter. It works on both desktop and laptop computers, on PC and Macintosh. It is the most universal solution I've used so far.
I highly recommend you to have a look at the Edgeport from IO Networks which provides 2, 4 or 8 additional serial ports. It doesn't need an external power supply (usefull if you plan to do GPS flight verification on the landing field with a laptop) and is very easy to setup (thanks to USB plug-and-play feature).
Check'in has been written with these main goals in mind:
- simplify flight verification for both the pilot and the organizer
- conforms to FAI sporting code and PWC rules and other local rules
- save time and money by reducing hardware and people needs during run reports (handle several GPS at the same time, reduced human actions to save time and reduce organization needs)
The current version has been used in PWC competitions and only one person and one computer was needed to do the run report of 120 pilots in less than 2 hours.
With the current version of Checkin, during runreport (the critical moment) you simply plug the pilot GPS, press 1 key and read the result after download... nothing else to do !
Check'in has been developed with the following goals :
- easy to use and setup (should I say "idiot-proof" ?)
- handle all GPS related organization tasks (pilot registration, provide official waypoints list to pilots, identify pilot GPS automatically, keep track of GPS serial numbers, etc)
- handle communication simultaneously with up to 4 GPS receivers (most Garmin models, Aircotec's Top Navigator with Y2K update and the new MLR SP24XC specially designed for free flight and flight verification) to speed-up run report and reduce hardware and human needs
- give results instantly during run report (no need for pilots to leave their GPS and them back later)
- create and display a graphical view of the whole pilot track for "manual" checking (generally not needed during run report)
- create and display a graphical view each turnpoint separately (including FAI sector or cylinders) for "manual" checking (generally not needed during run report)
- handle runreport as efficiently and fast as possible to avoid having pilots lining up
- run on both MacOS and Windows
- import/export of data with Race 2000 (sp2 and above) thru XML files.
What does Check'in checks and computes ?
- checks startpoint (including last time in startpoint using interpolation)
- checks turn points (using FAI Sectors or cylinders)
- computes flight distance ("normal" task distance, distance on axis or free distance)
- compute time at goal (using interpolation / extrapolation, still EXPERIMENTAL)
- computes best pilot position and the corresponding flight distance
The next major features will include:
- landing place and time checked with the track log and not only with the last marked waypoint,
- first pilot at turnpoints and other statistics,
- run report printing,
- etc...
All files required by Check'in are located in one single folder/directory with one sub-folder or sub-directory.
On Windows:
Check'in comes as a self-extracting file (ending with ".EXE") or a "ZIP" file (in that case you must "unzip" it using a tool like WinZip or Stuffit Expander)After decompressing Check'in, open the selected directory and launch the "CHECKIN.EXE" file. That's all !
To uninstall Check'in, simply delete the folder containing "CHECKIN.EXE", no other files (DLL or whatever) are installed on your hard-disk.
On MacOS:
Check'in comes as a Stuffit compressed file. Use Stuffit Expander to decompress this file. Check'in will be decompressed in a single folder, with one subfolder.To uninstall Check'in, simply delete the folder containing Check'in, no other files are installed on your hard-disk.
Check'in stores all its data (parameters, waypoints, pilots, tracklog, results) in a datafile.It is highly recommended to use one datafile per competition event as this datafile can get large very quickly.
Everytime you'll launch Check'in, you'll be asked to select a datafile or to create a new one (using the "New..." ou "New datafile" button in the file selection dialog).
If your datafile is damaged, you can use the "4DTools" utility to verify it and/or repair it. Always make a copy of your datafile before using 4DTools.
The program is separated in 6 parts:
- Competition setup
- Pilots Registration
- Task Setup
- Run report
- Flight check
- Result
These parts are logically organised as "steps". The first step at the top, and the last at the bottom... and they are generally used in that order.
This first step allows you to define parameters and informations that will be used for one competition event.This step contains 3 screens, and you can go from one screen to the next using the "<<" and ">>" buttons.
Warning : To validate your changes, you must go up to the 3rd screen and press the "OK" button.
Competition Setup (1/3)The first screen in the competition setup step allows to define :
- the name of the competition (it will show up in printed results),
- the language you want CheckIn to use (you'll need to quit and restart CheckIn for the change to take effect),
- flight check parameters like the maximum GPS pilot position error (typically 75m),
- the type of turnpoint (FAI Sector or cylinder),
- the sector check algorithm (see below),
- the FAI Sector or cylinder radius (typically 1000m for FAI sector, a few hundreds meters for cylinders),
- the local time zone during the competition (mandatory to allow to enter times in local time zone instead of GMT, and show time in local time zone in the results),
- the "Maximum Time Interval" allowed between two tracklog points (interpolation/extrapolation not done is time interval is above this value, the same applies for shortest path between two points),
- the optional use of the "best pilot position",
- the optional use of unsafe MARK/ENTER (not implemented yet).
The "Full Export..." button can be used to export all the content of Checkin's data into a compact text file much smaller than the normal datafile. This text file can be sent by email or by FTP for debugging purpose or to check special cases.
The "License number" button allows you to change your license number.
Competition Setup (2/3)On the left side, up to 5 GPS connection can be setup up using 2 pop-up menus (MacOS) or combo-box (Windows), one to select the serial port, the other to select the kind of communication protocol (Garmin, Top Navigator or MLR). A "Test" button allows to check that each GPS setup is correct (this test is not available for TopNavigator).
At the bottom of these GPS settings, 2 check box allow to force CheckIn to use the slowest speed for MLR protocol (19200bps instead or 38400bps) and a fast Garmin mode. Check the "slow MLR" if you encounter some problems during downloads. The "Fast Garmin" is EXPERIMENTAL, uncheck it if you encounter download problems.
On the right side, the list of official waypoints is displayed. Three button allow to get this list from a Garmin or MLR GPS (setup as GPS number 1 on the left side of the screen), to import (or export) this list from an Ozi Explorer ".wpt" file, or to edit manually the list of waypoints.
Warning: The coordinates must be in decimal degrees and in the WGS 84 datum. North and East coordinates are positive values, South and West ones are negative values.
As long as pictures are still used in competition, GPS Flight Verification can only work if the turnpoints coordinates are accurate. The best way to have accurate turpoint coordinates is to go on the turpoint place and measure the coordinate using a modern 12 channels GPS. Measuring coordinates on a map can be accurate if the map is accurate and if the measurment is done properly. The worst way to measure coordinates is by marking them while flying "above" the turnpoint.
If picture are not used (even for backup), the pilot must turn around the turnpoint coordinates, not around the physical object (if existing). In that case, coordinates accuracy is not needed.
Competition Setup (3/3)The last competition setup screen allows you to import the pilot list from a text file. The text file can be TAB Delimited or in CSV format with the following fields: Competitor number, Last name, First name, Country. It can also be an XML file coming from Race 2000 sp2 (see Race2000 Import/Export chapter).
Example (CSV format):
ID;LASTNAME;FIRSTNAME;COUNTRY <-- this first line is mandatory
006;PACHER;Jimmy;I
007;COX;Steve;CHWarning: Competitor numbers must be unique !
The "Edit..." button allows to manually edit the list of pilots, add new pilots, delete and modify existing ones.
Press the "OK" button to validate the competition Setup
At the beginning of the competition, pilots are registering with the organization. During the registration process, Check'in can be used to keep track of the pilot GPS serial numbers, send the official competition waypoints to the pilot GPS, create a special "pilot waypoint" to accelerate run reports.This step is really usefull to simplify and accelerate run-reports.
The whole list of pilots is displayed. The "Find..." button (keyoard shortcut = Ctrl-F on PC or Cmd-F on Mac) can be used to find a pilot by its first name or his competitor number.
By double-clicking you can also acces to a pilot record:
The last field names "GPS sn#" can be used to keep track of the pilot GPS serial number(s). This information will show-up automatically during track log download at the run report.
The "Send WP to GPS#1" and "Send WP to GPS#2" buttons can be used to automatically send the official competition waypoints to the pilots GPS (only for Garmin or MLR models) setup as GPS#1 or GPS#2 in the Competition Setup. The special "pilot waypoint" will also be created automatically and on MLR GPS, the serial number of the GPS will be read automatically.
The "WP" button can be used to send only the official waypoint, without creating the pilot waypoint. This button is usefull to update the pilots GPS without changing their pilot waypoint, or to provide the official waypoints to a team leader that will then copy them to some pilots GPS.
This step is used before a run report to define the task of the day. It will first show the already defined tasks (in order to modify one by double-clicking on it), or will directly go in a new empty task record if no tasks have been defined yet (otherwise, use the "New task..." button to create a new task).The "Delete..." button allows you to delete a task with all attached data. Be carefull when you delete a task, all downloaded tracks for this task will also be delete permanently !
List of currently defined tasks
Task record windowExplanation of task fields:
- ID: this is a mandatory field. You can use a short ID like T1, T2, T3, etc...
- Name: this field is optional.
- Date: date of the task (mandatory).
- Window open: optional
- First start: this is the time when the first startpoint is opened, for speed runs with air start, leave this field to 00:00.
- Start Interval: used in case of "clock-start"
- Number of starts: used in case of "clock-start"
- Goal time: this is the maximum time allowed to reach goal. After this time, pilots don't get goal times anymore, just the goal distance.
- Max-landing: this is the last time when flight data are accepted (all data after this time are not used in flight verification). In case of task stopping, put the time at which the task has been stopped in this field.
- With safety TP: there is a turnpoint before the startpoint
- With startpoint: the task includes a startpoint
- With turnpoint AFTER goal: there is a turnpoint after goal
- Start: 4 types of startpoint are currently handled by CheckIn:
- FAI Sector: the start time is the last time the pilot leaves the FAI Sector
- Cylinder - ground start: the start time is the first time the pilot leaves the cylinder
- Cylinder - air start: the start time is the last time the pilot leaves the cylinder
- Cylinder around 1st TP: the start time is the last time the pilot enters the cylinder around TP#1.
- Start Size: can be used to set a different radius size for the start and the other turn points in the task
- Goal Size: if set to 0, the goal is a line perpendicular to the last TP, otherwise, the goal is cylinder with the given radius.
Then you have to define the list of waypoints for the task, including take-off (mandatory), turnpoints before start (if needed), start point (if needed), turpoints (if needed), goal (mandatory), turpoint after goal (if needed). This is done by selection a waypoint in the left list, then use the ">" button to add it in the right list or "<" to remove the waypoint selected in the right list. The "<<" button clears the current right list. You can also move a waypoint up or down in the right list using the "Up" and "Down" buttons.
The right list has two columns, the first one is the waypoint name, the second one indicates what kind of turn-point it is based on the task definition (T = TakeOff, B0 = Safety TP, S = startpoint, #1..#n = turn-point #1..#n, G = Goal, BA = Safety TP after goal). This second column allows to verify that the list of waypoint is correct.
The total task length is automatically calculated to check that the correct waypoint have been entered.
You can also specify the distance type for the task ("normal" taks distance, distance on axis, free distance).
The "Generate Random films" buttons allows to automatically select which pilot will have to give their films during runreport (to follow PWC 2000 rules). Check'in will ask how many films must be requested, then the selected pilots will be displayed. Check'in will remind you during run report if a pilot must provide his film.
This is the most important step. Time is the limited resource during runreport. If it takes 2 minute to check a pilots flight and there is 100 pilots in the competition, is will take more than 3 hours to check all pilots !A lot of work has been invested in Check'in to reduce as much as possible the time needed to check one pilot flight during run report.
Run report stepFirst of all, it is required to select the current task in the right list. Task are sorted in the right list so that the last one appears at the top of the list.
To check a pilot flight:
- simply plug the pilot GPS to the corresponding cable connected to the serial port defined in the "Competition Setup" step.
- click on the corresponding button on the left side of the screen of press the corresponding function key (faster than using the mouse).
During download, the white rectangle will display progress informations (Getting pilot ID, Getting marked waypoints) then the track log will be transfered and the progress bar will be updated. As soon as the transfer is finished, the received data are checked and the result is displayed in the progress rectangle.
Tip: You can look at the progress bar to know which GPS will finish download first.
Example:
- "006 -> S (13:40:00) -> #1 -> #2 -> G" : pilot #006 has leaved the startpoint at 13:40:00, then turned turnpoint #1 and #2 successfully then reached the Goal
- "007": pilot #007 didn't do anything (not even entered the startpoint)
- "008 -> S (13:50:20) -> #1: pilot #008 has leaved the startpoint at 13:50:20, then turned turnpoint #1 and nothing else
Warning: Be aware that Check'in will not check the next turnpoint if the previous one is bad (including startpoint).
After this result is displayed, you can unplug the GPS receiver and start again with another GPS.
You can start up to 5 transfers and checks at the same time !!!
Tip: It is recommended to put some ID (#1, #2, #3, #4) on each GPS cable to avoid mixing them.
The "Manual Check" button allows you to go directly to the "Flight Check" step to do a manual check if needed (see below).
This part is used when you want to manually check one pilot flight. It can be used while other GPS transfers and flight checking are taking place, which is usefull during runreport to explain to a pilot what is wrong with his track.First, select in the left list the task for which you want to check a pilot track.
Then select which track you want to check in the right list.
Then select your checking options:
- Check pilot track: the track will be checked and the result displayed as text.
- Draw pilot track: the whole track will be displayed (check pilot track will also be automatically selected)
- Draw turn points: each turnpoint (and startpoint) will be diaplayed (grey disk and color squares).
- Export Track: will allow you to export a pilot track log in an OZI explorer ".plt" text file or IGC standard format ".IGC" files.
The "Check All" button will force Check'in to execute the same check options to all tracks. Be sure to select your options correctly first !
Checking all tracks can take several minutes.
This step is used to collect results for a task, display them, print them or export them.
Results screenSelect a task in the top list, the results for each pilot track is displayed in the bottom list.
The "Print..." button can be used to print this result list, the "Export..." button can be used to export these results in a text file (TAB delimited).
The "Exp. Race2000..." button allows to export the results into an XML file that can be imported directly into Race2000 (see Race2000 Import/Export chapter).
When checking a pilot flight, Check'in displays a text string giving the checking result.This result can contain the following informations:
- B0 = TP Before Start
- S (hh:mm:ss) : Startpoint OK, last time in start = hh:mm:ss
- #1..#n = TP#1..TP#n OK
- G (hh:mm:ss) : Goal reached and estimated time at goal
- d=xx.xx : Task distance according to the last marked waypoint (used as landing coordinates declaration)
- dA = xx.xx : distance on axis according to the last marked waypoint
- dF = xx.xx : free distance according to the last marked waypoint
- dB = xx.xx : distance according to the "Best pilot position"
- T=hh:mm:ss : time in speed section (goal time - startpoint time)
- t=hh:mm:ss : time really spent in speed section (goal time - last time in start)
Example:
-> B0 -> S (14:40:10) -> #1 -> G (16:45:14) T=02:15:14 t=02:05:04TP before start is OK, last time in start at 14:40:10, then TP#1 is OK and goal reached at 16:45:14. Task result time is 2:15:14 and the time really spent by the pilot in the speed section is 2:05:04 (usefull to check average speed).
-> S (14:20:10) !!!! -> #1 -> G (16:45:14) T=02:15:14 t=02:25:04
Last time in start at 14:20:10 but it was before the official start time (the !!!! are there to show it), then TP#1 is OK and goal reached at 16:45:14. Task result time is 2:15:14 and the time really spent by the pilot in the speed section is 2:25:04 (usefull to check average speed).
The checking algorithm is based on 1999 FAI Sporting code section 7.For each coordinates logged by the GPS receiver, the pilot position is compared to the FAI sector using the following techniques:
- check if the position given by the GPS is on or out of the sector
- check if the 4 square corners around the position given by the GPS to which a pilot position error is added or substracted are in or out of the sector. This square represent the possible pilot position given the GPS positionning error.
- check if the shortest path between two consecutive squares crosses the sector
Then the position is diaplayed using a color code:
- Dark Green square (not in the following example): pilot was in the sector (the whole square is in the sector)
- Light Green square: pilot could be in the sector (center of square is in the sector)
- Orange square : pilot could be in the sector (center of square is out, but parts of the square are in)
- Red squares: pilot was out of the sector (square is completely out)
- Yellow squares and lines (not in the following example): pilot track is crossing the sector
Example:
North is up. The grey disk represents a 1km circle around the turnpoint (center of disk).
The two blue lines are the sector borders (90° angle oriented according to FAI sporting code).
Squares are pilot positions as recorded by the GPS receiver, the square size represent the maximum GPS position error.
In the above example, the dark green square indicates that the pilot was completely inside the sector, the 2 orange squares indicates that the pilot could be in the sector due to the position error margin.
On the top right of the drawing, the time for these 3 squares is also indicated. This information is usefull if the same turnpoint is used twice in the task or if the pilot flies in the turnpoint area during the task but before turning the turnpoint.
For each coordinates logged by the GPS receiver, the distance from this point to the TP is computed. If this distance is less than the cylinder radius minus the error position both defined in "Comp. Setup" screen, then a dark green circle is draw around the pilot position (this circle has its radius being equal to the error position).If the distance is less than the cylinder radius, the circle is draw in light green, and if this position is less than the cylinder radius plus the error position, then it is drawn in orange, and if the distance is above the cylinder radius plus the error position, it is drawn in red (pilot out).
North is up. The grey disk represents the cylinder around the turnpoint. The blue cross represent the exact position of the turnpoint.
Small circles are pilot positions as recorded by the GPS receiver, the circle radius represents the maximum GPS position error.
In the above example, the dark green circles indicate that the pilot was completely inside the sector, the 2 orange squares indicate that the pilot could be in the sector due to the position error margin.
On the top right of the drawing, the time for these positions is also indicated. This information is usefull if the same turnpoint is used twice in the task or if the pilot flies in the turnpoint area during the task but before turning the turnpoint.
CheckIn has been designed to avoid required visual checks, but it can help understand the results given by the automatic check algorithm.Here is an example of visual check:
![]()
This represents the full flight. Take-off is at the bottom (letter "T"), the start is at WNW of take-off and you see the FAI Sector drawn in dark blue (FAI sectors were used in that competition). The pilot track starts around the startpoint because all point before the official start time are not drawn.
TP #1 if at NE of the startpoint, then goal is at ESE of TP#1.
Here is the detailed view of each turnpoint:
![]()
This is the startpoint. Red squares are outside of the start sector.
The yellow arrow shows you the line between the last point in start and the first out. The pink arrow show the corresponding time computed by interpolating these two points. Each part of the track log showing that the pilot is leaving the start will be displayed like this. This means that you can have more than one (Start @). The automatic flight checking will use the last one after the start time and before reaching TP#1.
![]()
This graphics show the first turnpoint in the task. The red squares are outside of the sector, the orange one has less than 50% in the sector, the green ones are fully in the sector. The time for the orange and green squares is shown in the top right list.
When the pilot track crosses the turnpoint area several times, be sure to check the time in this list and compare it to the previous turnpoint times. This is done automatically in the automatic flight check.
![]()
This graphics show the goal line crossing. In this task, goal line were using (instead of goal cylinders).
The dark blue thick line represents the goal line and is perpendicular to the last TP (represented by the thin black line with the arrow).
The green dots indicate pilot positions recorded in the tracklog. One of them as a black thin line representing the goal crossing.
The top right list gives a goal time of 16:45:14 computed by interpolation and/or extrapolation, the other times are the ones of the points inside the goal recorded after reaching goal.
When the pilot track crosses the goal line several times, be sure to check the time in this list and compare it to the previous turnpoint times. This is done automatically in the automatic flight check.
Software versions
To be able to import and export data between CheckIn and Race2000, you need at least the following versions for both software:
- CheckIn 1.0 beta 12 or above
- Race2000 sp2 (Service Pack 2) or above, see http://www.fai.org/hang_gliding/race/
Importing the pilot list from Race2000
The first step is done in Race 2000, where you must setup your competition, enter the pilot list with the pilot "glider" number entered for each pilot, create a dummy task (and do not erase it), then you can export data using "Export task..." menu item in the "File" menu in Race2000.
Now, in CheckIn, in the competition setup screen, go to the pilot list and click on the "Import..." button and select the file you exported previously from Race2000. CheckIn will automatically recognize the file and import the pilot list.
The other parameters for the competition are not currently used by CheckIn.
It is mandatory to import the pilot list from Race2000 if you want to be able to export the results back into Race2000 because Race2000 uses an internal "ID" that is different from the pilot "glider" number.
Exporting task results to Race2000
You can export any task result from CheckIn to Race2000 at any moment. You don't have to wait for all the pilots to have reported and downloaded their GPS before exporting some results to Race2000. This allows you to have provisional results. CheckIn will ask you if you want to export only new results computed since last export. This allows to avoid having previous changed done directly in Race2000 to be erased in the next import.
To export results from CheckIn, go in the "Result" screen, select the task you want to export, then click on the "Exp. Race2000..." button and save the results. If you already exported some results, CheckIn will ask you if you want to export only the new results. this will avoid to overwrite possible updates made directly to the results in Race.
In Race2000, select "Import task results..." in the "File" menu and select the file you've just exported. Race will import the results directly. You may need to fix some possible incorrect CheckIn calculations directly in Race2000. Be aware that these fixes may be overwritten if you import results again later unless you export only new results computed in CheckIn (as explained above).
Should you have any question, please contact: Christian Quest (cquest@cquest.org)