Velocity estimation

Q&A forumVelocity estimation
LucaR asked 4 months ago

Hi everyone,
I would like to ask a simple question regarding the estimation of speed made by a receiver like simpleRTK2B. I have a simpleRTK2B and I use it with NTRIP corrections from a reference station, and I got RTK fix quality. The receiver give me back the NMEA sentences and there, there is a field regarding the “Speed over ground”.
I know that there are different kind of methods to calculate velocity like position difference, doppler estimation and difference in carrier phase measurement, but I wasn’t able to find clear information about what kind of method is used to fill this NMEA sentence. Maybe is it calculated using the best method the receiver can afford?
Probably it is a silly question and I apologize for that, but if someone had some information to give about it, it would be really appreciated.

2 Answers

You can contact directly on Ublox’s forum to get answers on how to calculate velocity.
I believe that no question is silly, taking care of speed output will really help your system work safely and perfectly.
 Output velocity is included in the message RMC-MNEA and VTG-MNEA on F9P.
If your system needs speed all the time, pay attention to the problem which Ublox calls ‘Freezing the course over ground’.
It occurs when the travel speed is too low (under 0. 1m / s), the velocity value becomes incorrect and the RMC-VTG messages will be turned off.
This really caused some systems to be affected, with a Topic posted here (solved) :  https://www.ardusimple.com/question/setting-to-keep-nmea-string-vtg-active-while-stationary/

Of course, Ublox also provides complete documentation of the algorithms they use and exactly when Freezing-COG occurs and what factors affect it.
You can download here : https://esprtk.files.wordpress.com/2019/07/zed-f9p_integration_manual.pdf

  • 4.9 Navigation configuration settings description….- Page 53
  • 4.9.1 Platform settings…………………………………….   Page 53
  • 4.9.2 Navigation input filters………………………………..Page 54
  • 4.9.3 Navigation output filters………………………………Page 54
  • 4.9.4 Static hold………………………………………………..Page 55
  • 4.9.5 Freezing the course over ground…………………Page .57
  • 4.9.6 Degraded navigation…………………………………Page 58

 

clive1 answered 4 months ago

>I know that there are different kind of methods to calculate velocity like position difference, doppler estimation and difference in carrier phase measurement, but I wasn’t able to find clear information about what kind of method is used to fill this NMEA sentence. 

The receiver is tracking all the signals, and making local copies to correlate against. So the carrier, the doppler shift, the code signal, are followed based on the velocity/acceleration of both the receiver and the satellites with respect to the receiver. The tracking loop is running a lot faster than the navigation engine, both run concurrently, and solution is iterative in nature, as everything in the system is moving even if you are stationary. How the receiver is moving is part of the solution, how the velocity is reported is going to depend on the dynamic settings, and the filtering of the solution from one reporting interval to the next.
 
Rather than using NMEA, which tends to be a 2D boating orientated solution, you should perhaps look the at reporting via UBX-NAV-PVT. Speed-over-Ground (SOG) will be ignoring any vertical motion, and Course-over-Ground (COG) might not reflect the direction the vehicle is actually pointing, especially for boats/planes where current/wind are factors.
 
The stationary case is the most problematic because all the measurement noise is reflected as instantaneous motion where the perceived location jumps from one point to another, and back-and-forth. Often best to have some threshold distance to determine actual movement/velocity at slow speeds. Helps to understand the expected dynamics of the system it is attached too.