feat(gps): split Doppler paths for ESKF and PPS
This commit is contained in:
@@ -136,7 +136,7 @@ tracking loop, her 20 ms:
|
||||
-> sabit tracking snapshot
|
||||
-> synchronizer + APB-domain atomik register + interrupt
|
||||
-> C/N0 ve Doppler/range-rate donusumu
|
||||
-> satellite velocity/clock-drift duzeltmeli C/N0-weighted velocity WLS
|
||||
-> ham Doppler + tek-kanal FDE ile C/N0-weighted velocity WLS
|
||||
-> ECEF velocity + 3x3 covariance + receiver clock drift
|
||||
-> ECEF->ENU adapter
|
||||
-> ayri velocity NIS gate
|
||||
@@ -145,14 +145,42 @@ tracking loop, her 20 ms:
|
||||
```
|
||||
|
||||
RTL Doppler veya C/N0 uzerinde IIR yapmaz; ham ve 20 ms sabit snapshot'i
|
||||
software'e verir. Software ayni PRN icin C/N0'yi `alpha=0.2`, Doppler'i
|
||||
`alpha=0.05` ile yumusatir. L1 range-rate
|
||||
`-doppler_hz * c / 1575420000` ile hesaplanir. En az dort uyduyla cozulmus
|
||||
velocity WLS state'i `[vx, vy, vz, receiver_clock_drift_mps]`'dir; uydu LOS
|
||||
hizi ve broadcast satellite clock drift observation'dan ayrilir. C/N0,
|
||||
software'e verir. Software ayni PRN icin C/N0'yi `alpha=0.2` ile yumusatir;
|
||||
Doppler'in hem ham de `alpha=0.05` IIR sonucu korunur. L1 range-rate
|
||||
`-doppler_hz * c / 1575420000` ile hesaplanir. Ham yol tek-kanal
|
||||
leave-one-out FDE'li velocity WLS'ten ESKF'ye, filtreli yol ayri velocity
|
||||
WLS'ten yalniz PPS clock-bias drift predictor'una gider. PPS'in ana faz/zaman
|
||||
olcumu position WLS `clock_bias_m` sonucudur; Doppler yalniz 200 ms epoch'lar
|
||||
arasindaki turev prediction'ina ve kalite siniflandirmasina yardim eder. Her
|
||||
iki velocity WLS state'i `[vx, vy, vz, receiver_clock_drift_mps]`'dir; uydu
|
||||
LOS hizi ve broadcast satellite clock drift observation'dan ayrilir. C/N0,
|
||||
range-rate agirligini belirler; post-fit residual gerekirse formal
|
||||
covariance'i yalniz buyutur.
|
||||
|
||||
Klasik mutlak-pseudorange GNSS modelinde receiver zaman hatasi
|
||||
`delta_t_r(t)` ise:
|
||||
|
||||
```text
|
||||
code WLS 4. state: b_r = c * delta_t_r [metre]
|
||||
Doppler WLS 4. state: bdot_r = c * d(delta_t_r)/dt [metre/saniye]
|
||||
b_r(t + dt) ~= b_r(t) + bdot_r * dt
|
||||
```
|
||||
|
||||
Burada `bdot_r`, receiver oscillator frequency error'inin range-rate
|
||||
birimindeki ortak etkisidir. Ornegin `0.1 ppm` yaklasik `29.98 m/s` eder;
|
||||
Doppler WLS bu ortak terimi uydu yonune gore degisen gercek `vx/vy/vz`
|
||||
hareketinden ayirir.
|
||||
|
||||
Bu projede onemli bir datum farki vardir: position WLS'e verilen capture
|
||||
zamanlarindan ortak receiver zamani cikarilir ve `STARTOFFSET` eklenir. Bu
|
||||
nedenle `solution.clock_bias_m`, saf `c*delta_t_r` degil, yaklasik
|
||||
`c*STARTOFFSET - reference_range` olan referans-uyduya bagli goreli
|
||||
datumdur. Doppler WLS'nin dorduncu bilinmeyeni yine uydulara ortak receiver
|
||||
clock/frequency drift'tir; fakat iki fit arasinda
|
||||
`clock_bias_m(t+dt)=clock_bias_m(t)+clock_drift_mps*dt` kisiti kurulmaz.
|
||||
Fit'ler ayri measurement/normal-equation kullanir. Doppler WLS, LOS
|
||||
vektorleri icin position WLS'nin guncel receiver konumuna baglidir.
|
||||
|
||||
ESKF; ENU position/velocity, quaternion attitude, accel bias ve gyro bias
|
||||
iceren 15 hata durumlu filtredir. Her timestamp'li IMU ornegi prediction'a
|
||||
girer. Gecikmis GPS position ve Doppler velocity olcumleri kendi capture
|
||||
|
||||
Reference in New Issue
Block a user