Kinematic


 

 

Snapshot #8. Feb 10, 2007

[download source]

I'm taking classes and starting a new position at work, so Kinematic has been not been getting the attention it needs. In addition, I had setbacks when simple test data failed to converge.  Assuming a coding problem, I spent a lot of time reviewing algorithms and implementation. As it turns out, the Pigeon Point CORS station (ppt5) is giving out suspect data.

Here are some recent changes:

  • Using a higher order polynomial for interpolating sp3 satellite positions. Tests show a ninth order polynomial is much better than the previous fourth order one.
  • Started coding for Furuno GT8032 receivers.
  • Added preliminary code for parsing Trimble SSF files. This feature allows 'acquire' to be used as an SSF-->RINEX converter, and it allows differencing against Trimble Community Base Stations.
        (acquire -rinex=output.obs  SSF  R070210A.ssf).
  • The SSF feature might work with Trimble rovers. Let me know if you have Trimble hardware and want to explore this possibility.

 

Quick update. Oct 20, 2006

[download source]

I updated the source files and created "make" files for building under Cygwin. There are a couple software fixes to RINEX files. This is "source only" until I get some more testing done.

New with snapshot #7: August 4, 2006

[download source]  [download binary]

For a while, the positions were looking extremely poor. Neither the AC12 nor the Antaris were giving the quality of positions I expected, with worst case wandering of a couple  meters off the mark. Now, the big problems seem to have been solved. Both receivers do well in "zero" and "short" baseline experiments. Longer distances appear stable but need verification.

I'm posting this snapshot a bit prematurely. I will probably update it after testing the other receivers.

Here are the new features:

  • Redefined the internal software "layers" in search of a cleaner design.
  • Fixed a number of Antaris issues
     - "Wandering" was fixed by including Doppler when aligning data to an epoch
     - Latest LEA-4T firmware would hang at startup
     - Redesigned to handle 5hz updates (for later)
  • AC12 pseudoranges were off with old firmware (issue with smoothing)
  • Known problem: cep calcuations are completely bogus.

Plus the changes posted earlier in binary form:

  • Display per-satellite residuals in the "residuals.txt" file
  • Handle >12 satellites in Rinex files
  • Check for consistency between carrier phase and pseudorange when processing
  • Filter out some marginal data
  • Filter out satellites close to the horizon (<15 degrees)
  • Adds SNR and Doppler measurements to Rinex
  • Started an Allstar interface.

 

New with snapshot #6: March 21, 2006

Things are starting to work. The testing so far has been with CORS stations as base and the Antaris 4T or Garmin as roving. There is more work to go before "release", but the code might start being useful.

This snapshot adds:

  1. support for the Antaris gps receiver
  2. SBAS satellites, SV 120-152
  3. numerous bug fixes in the RINEX code
  4. simple testing with real world data
  5. new formatting options for the output

Updated binaries (Mar17)  (will be included in next snapshot)

  • Added support for Antaris gps receiver
  • The post-processor outputs positions to a file
  • Fixed a wgs84 conversion problem.
  • Changed formatting of lat/lon

New binaries.  The earlier binaries required Visual Studio 2005 runtime .dll's. The new binaries are linked statically and will run on machines which don't have Visual Studio 2005 installed.

New with snapshot #5:  March 6, 2006

  1. Created two command line applications to acquire and process gps data.
  2. Rearranged data streams to support "raw byte stream" files.
  3. Extracting Sirf ephemerides from 50bps messages

To do for next snapshot:

  1. Finish the Antaris interface
  2. Position error estimation
  3. Testing with own data - close the loop

 

----------------------------------------------------------------------------------------------

New with snapshot #4:

  1. Created 'jam' files for building. Not finished.
  2. Included Visual Studio project files for building.
  3. Fixed bugs in receiver code.
  4. Normalized Garmin measurements to epoch.
  5. Created an "Acquire" application to read from GPS and write to Rinex.

To do for next snapshot:

  1. Create double difference application using Rinex data
  2. Create real header information for Rinex data.
  3. Test things to make sure they really work.
  4. Figure out how to estimate the position error (left over from earlier).

 

------------------------- snapshot #3 --------------------------------------------

(Download source code)

New with snapshot #3:

  1. Separated code for gain/loss of satellites from double differencing mathematics
  2. Added the following Receivers
    • Sirf Star III  (code only)
    • Thales AC12
  3. Read and write RTCM-104 RTK messages
    (These are standard messages to communicate pseudorange and carrier phase data over a radio link)
  4. Created the following test programs:
    • Read from Thales AC12, Sirf Star III, Garmin, Trimble Lassen IQ
    • Double difference of CORS data
  5. Rearranged the code into a hierarchy of directories.

To do for next snapshot:

  1. Work out the correct way to estimate the position error.
  2. Fix the pseudo-range "normalization" for the garmin receiver
  3. Reset rtcm carrier phase to start around zero. Otherwise it overflows.
  4. Verify the Lassen IQ and Garmin Gps18 acquisition code still works.

Upcoming Steps:

  1. Create an application to acquire raw data and save as RINEX or RTCM-104 files.
  2. Create post processing application to read RINEX or RTCM-104 and calculate positions.
  3. Do the "bit slip" synchronization for the RTCM data stream.
  4. Redo the build environment using gnumake or jam.

 

For problems or questions regarding this Web site contact [info@precision-gps.org].
Last updated: 09/16/06.