I think users should not care about or change this.
This value should be the same as the calling rate of the task: TaskDataAcquisition.
If you want to change the algorithm calling rate, please refer to the implementation of
static void _Algorithm(uint16_t dacqRate, uint8_t algoType)
for details. You can see there how the EKF algorithm is called according to gAlgorithm.callingFreq.
Best posts made by Dong xiaoguang
Standard NMEA is supported, but not recommended because NMEA lacks some required information.
Novatel BestPos and BestVel are also supported.
I added support of ublox nav-pvt, but this is not included in the release version yet.
I think there are a few things to do.
First, make sure the timer is correctly increased at each step. If the ODR is 20Hz, timer increment should be 50ms. From the picture, the timer increment seems to be 50ms. But there are repeated timer in the output of each channel. This is not right.
Second, make sure the ODR is really 20Hz and fix the issue of repeated timer. That means each port can output timer you desire (+50ms each time)even if they are not synced.
Third, a sync mechanism should be added if sending data via two ports is implemented in two tasks, or you can do this in one task.
Finally, just a reminder: make sure you are outputing the same timer.
For VG/AHRS, the pitch and roll angles are stabilized using accelerometer measurements. It is assumed that the accelerometer measures gravity plus some white noise. This is "true" in static mode. However, in dynamic mode, there is linear acceleration which cannont be considered as noise any more. You have to implement a mechanism in your algorithm to detect such linear motions and then reduce the weight of the acceleration in attitude determination.
If GPS is available, pitch and roll can be well stabilized since pitch and roll are coupled with GPS north and east velocities.
For LPF, we are using 3rd Butterworth. It is an IIR filter.
这个资料很多啊,比方说:Shin - 2001 - Accuarcy improvement of low cost INSGPS for land .pdf