Speed Noise/accuracy for the acceleration calculations

My friend and I are working out some bugs with our GPS + analog input project, and one of them is really nagging us with how it interacts with the RaceChrono software- the GPS signals to accelerations calculations.

Firsrt- the speed data- we trying to use a 10Hz GPS, using a Venus634FLPx GPS reciever, and it seems quite good for general GPS- start is quick and when mapped onto Google Earth, the info looks pretty accurate.

But.

The velocity data that we are getting is XXX.X knots, so the accuracy of the speed becomes an issue with acceleration data, since at 10 Hz, a .1 knot change becomes a 1 knot/sec acceleration, which is totally due to the precision of the measurement compared to the rate. So we've slowed to 5hz, and that has helped, some... not perfect.

But also, the chip is giving us what seems to be a lot of noise in the speed signal- were there's a lot of change in one step, but not so much in surrounding data. And that noise seems to be influencing the acceleration information, too.

Anyway, if you have any insight to the above, that would be very interesting.

I also have two specific questions:

1) we are using the $GPRMC data for vehicle speed, which is xxx.x kts. And that also has heading information in it. This also will output the $GPVTG data, which is a little less data than the $GPRMC, and also has a xxxx.x KPH string. While not a huge improvement, the .1 kph precision is slightly better than the .1 kts precision. And the string does not include reduntant lattidude and longitude data (which is also in the $GPGGA data).

2) is there another DYI chip set out there that works better?

3) for the acceleration data that RaceChrono generates, which set GPS data does that use, and is that actually my source of error?

Thanks.
Eric

Comments

  • edited August 2010
    RaceChrono calculates the lateral acceleration from bearing change and the longitudinal acceleration from speed change. RaceChrono does not do averaging/smoothing for the speed data. While the lack of the averaging is not the actual source for the error, it would be a sensible fix for the issue, as you can't expect the GPS data not to have noise.

    If you want to calculate the G-force graph yourself, you can calculate it from change of speed, after applying some averaging/smoothing to the curve.
  • edited August 2010
    Well, I looked closer at the raw data, and did some rough speed and accel caclulations- it looks as if there's a good amount of noise in OUR GPS data- I compare that with the examples that came with the RaceChrono down load.

    So we are going to try to do a few things with the GPS to fix it- make sure all of the accuracy switches are on, and ground the antenna/case/etc.

    Still, can you use the GPRMC data, since that uses a little less data (which is redundant with the core string).

    And is there another GPS chip out there that is better? One that we can integrate into this cool little Bluetooth GPS+analog box we are making.


    Once we are done, I'll write it up- and see if we can explain how you all can do the same thing. And I'll get a better idea of how good RaceChrono is. Which, so far, I'm quite happy with.

    Thanks!
  • Sorry I have no experience with this GPS chipset, so I cannot comment on what is better and what is not.

    RaceChrono uses $GPRMC and $GPGGA sentences (both are needed) which are outputted by all cheap GPS as default. Also $GPGSA and $GPGSV are used for satellite information, but they are not compulsory.

    If you want to avoid overlapping data, then you may consider outputting $GPGGA and $GPVTG. You need also $GPZDA, $GPGSV and $GPGSA but you do not need to output them for every position update. Like this:

    $GPGGA,124343.30,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,5.3,0120*42
    $GPVTG,312.08,T,,M,0.08,N,0.15,K,D*3C
    $GPGGA,124343.40,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,5.4,0120*42
    $GPVTG,206.92,T,,M,0.09,N,0.17,K,D*38
    $GPGGA,124343.50,6058.53527,N,02239.41118,E,2,06,1.2,110.2,M,20.8,M,5.5,0120*43
    $GPVTG,131.89,T,,M,0.16,N,0.29,K,D*36
    $GPGGA,124343.60,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,5.6,0120*42
    $GPVTG,75.09,T,,M,0.18,N,0.34,K,D*0D
    $GPGGA,124343.70,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,2.7,0120*45
    $GPVTG,30.60,T,,M,0.16,N,0.29,K,D*01
    $GPGGA,124343.80,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,2.8,0120*45
    $GPVTG,50.52,T,,M,0.03,N,0.06,K,D*0F
    $RD1,45837,1543,1575.4200,1,0-0,0,0.0,0,1F,1F,120,1699779
    $GPGGA,124343.90,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,2.9,0120*45
    $GPVTG,143.72,T,,M,0.23,N,0.42,K,D*3C
    $GPGGA,124344.00,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.0,0120*43
    $GPVTG,338.90,T,,M,0.09,N,0.17,K,D*36
    $GPGSV,3,1,12,01,04,250,,05,43,245,,09,75,221,50,11,06,017,*74
    $GPGSV,3,2,12,12,38,243,48,14,23,320,42,15,11,187,47,17,45,071,54*70
    $GPGSV,3,3,12,18,03,260,,22,12,289,42,26,48,271,52,28,10,074,42*77
    $GPGGA,124344.10,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.1,0120*43
    $GPVTG,343.47,T,,M,0.10,N,0.19,K,D*36
    $GPGGA,124344.20,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.2,0120*43
    $GPVTG,357.40,T,,M,0.09,N,0.17,K,D*32
    $GPGGA,124344.30,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.3,0120*43
    $GPVTG,347.55,T,,M,0.03,N,0.06,K,D*3D
    $GPGGA,124344.40,6058.53527,N,02239.41118,E,2,06,1.2,110.2,M,20.8,M,3.4,0120*42
    $GPVTG,117.23,T,,M,0.13,N,0.25,K,D*3B
    $GPGGA,124344.50,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.5,0120*43
    $GPVTG,159.67,T,,M,0.10,N,0.18,K,D*3C
    $GPGGA,124344.60,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.6,0120*43
    $GPVTG,240.55,T,,M,0.07,N,0.13,K,D*3B
    $GPGGA,124344.70,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.7,0120*43
    $GPVTG,47.15,T,,M,0.12,N,0.22,K,D*0C
    $GPGGA,124344.80,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.8,0120*43
    $GPVTG,183.28,T,,M,0.18,N,0.33,K,D*31
    $RD1,45838,1543,1575.4200,1,0-0,0,0.0,0,1F,1F,120,1699779
    $GPGGA,124344.90,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,3.9,0120*43
    $GPVTG,351.04,T,,M,0.13,N,0.24,K,D*3F
    $GPGGA,124345.00,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.0,0120*45
    $GPVTG,121.41,T,,M,0.09,N,0.17,K,D*30
    $GPGSV,3,1,12,01,04,250,,05,43,245,,09,75,221,50,11,06,017,*74
    $GPGSV,3,2,12,12,38,243,48,14,23,320,43,15,11,187,47,17,45,071,54*71
    $GPGSV,3,3,12,18,03,260,,22,12,289,42,26,48,271,52,28,10,074,41*74
    $GPGGA,124345.10,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.1,0120*45
    $GPVTG,34.23,T,,M,0.13,N,0.25,K,D*0B
    $GPGGA,124345.20,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.2,0120*45
    $GPVTG,335.89,T,,M,0.13,N,0.24,K,D*38
    $GPGGA,124345.30,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.3,0120*45
    $GPVTG,15.97,T,,M,0.14,N,0.26,K,D*03
    $GPGGA,124345.40,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.4,0120*45
    $GPVTG,142.45,T,,M,0.11,N,0.20,K,D*3C
    $GPGGA,124345.50,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.5,0120*45
    $GPVTG,326.33,T,,M,0.03,N,0.06,K,D*3A
    $GPGGA,124345.60,6058.53527,N,02239.41119,E,2,06,1.2,110.2,M,20.8,M,4.6
  • edited August 2010
    Thanks-
    I assume that in your example, RD1 is really RC1- or did you just change that recently?

    We are having really good luck with the analog input set up, BTW- it's more a matter of me setting up the parts on my car now, and not my buddy's.

    And I'll see if we can output the GSV and GSA data at a slower rate. It's quite interesting to me that your software is able to read all the info at different rates if it so wants it. Pretty cool.

    Anyway, I'm going up to get the most recent data that was run yesterday. If there is still noise, we'll look into a few other options to fix it before bailing and getting a new GPS chip. Mainly in properly grounding the antenna....
  • No, $RD1 is just something related to the high-end GPS I was using for the example. You can ignore that... The NMEA parser implementation is quite tricky when you want to support everything. It's still not perfect, but works pretty well for most GPS out there...
Sign In or Register to comment.