Skip to main content
. 2022 Dec 17;22(24):9968. doi: 10.3390/s22249968
Algorithm 1. GDA algorithm
Input: acc → measured acceleration, ω → measured angular velocity, mag → measured magnetometer, Gacc → earth’s gravity, Gmag → magnetic field vectors
Output: q^t→ updated quaternions
1. Sω=[0 ωx ωy ωz]
2.   If ( | ||mags|| -magEarth | < mag_ stability_thereshold ) then
3.    stability = 1
4. else then
5.      stability = 0
6. end if
7. F(q^t1 . acc) = (q^t1 Gacc) q^t1- acc
8. If (stability) then
9.  F(q^t1 . mag) = q^t1 Gmag q^t1mag
10.  F(q) = [J(q^t1 .acct)J(q^t1 .mag)]T[F(q^t1 .  acct)F(q^t1 . mag)]
11. else then
12.  F(q)=JT(q^t1 .acct )F(q^t1 . acct)
13. end if
14. q˙t=12q^t1 Sωβ F(q)| F(q)|
15. qt=q^t1+q˙t Δt
16. q^t = qt|qt|
17. Return q^t