## 4 Calibration of Differential Code Biases  
As discussed in Section 2, the differential code biases (DCBs) prevent the combination of different types of pseudo-range observations without loss of accuracy. To eliminate this restriction, calibration of DCBs is required. For this purpose, the method described in [4] was adopted, albeit on a much smaller scale. A single pseudo-range observation \(\rho\) is given by:  
\[\rho=R+c\delta t^{rcv}-c\delta t^{sat}+T+I+B^{rcv}-B^{sat} \tag{7}\] \begin{table}
\begin{tabular}{c c c} \hline \hline
**State** & **Description** & **Symbol** \\ \hline
19 & Dyn. tire radius error (front left) & \(\Delta r_{dyn,FL}\) \\
20 & Dyn. tire radius error (front right) & \(\Delta r_{dyn,FR}\) \\
21 & Dyn. tire radius error (rear left) & \(\Delta r_{dyn,RL}\) \\
22 & Dyn. tire radius error (rear right) & \(\Delta r_{dyn,RR}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Additional States for the Odometry Model. Figure 1: Block diagram of the tightly coupled GNSS/IMU/odometry integration algorithm. Superscript \(-\) denotes estimated values before the EKF’s measurement update, superscript \(+\) denotes updated estimates after the EKF’s measurement update. with geometric range \(R\), receiver and satellite clock biases \(\delta t\), tropospheric and ionospheric delays (\(T\) and \(I\)) as well as a receiver- and satellite-specific code biases \(B\). For two pseudo-range observations to the same satellite at the same epoch, but based on different signals, the terms \(R\) and \(T\) are identical. \(\delta t^{rcv}\) is identical as well because all differences that might exist in this term are absorbed by the receiver-specific code bias \(B^{rcv}\), which differs from signal to signal [4]. The satellite clock bias for a GPS signal \(\alpha\) (\(\alpha\) = L1 C/A, L2C, L5I or L5Q) is given by (8) [11; 12]. The _space vehicle_ (SV) clock error \(\delta t_{SV}\) is valid for the ionosphere-free combination of L1 P(Y) and L2 P(Y) pseudo-ranges. \[\delta t_{\alpha}^{sat}=\delta t_{SV}-T_{GD}+\text{ISC}_{\alpha} \tag{8}\]  
Satellite clock bias corrections for Galileo signals are broadcast via F/NAV for E5a and via I/NAV for E1 and E5b. Since the two different values for \(\delta t_{SV}\) are valid for E5a-E1 (F/NAV) and E5b-E1 (I/NAV) ionosphere-free combinations respectively, the corresponding BGD has to be subtracted to get the satellite clock bias for single-frequency pseudo-ranges [16]. \[\delta t_{\text{E1}}^{sat} =\delta t_{SV}\left(\text{E1},\text{E5b}\right)-\text{BGD}\left( \text{E1},\text{E5b}\right) \tag{9}\] \[\delta t_{\text{E5a}}^{sat} =\delta t_{SV}\left(\text{E1},\text{E5a}\right)-\gamma_{\text{E1 },\text{E5a}}\text{BGD}\left(\text{E1},\text{E5a}\right)\] (10) \[\delta t_{\text{E5b}}^{sat} =\delta t_{SV}\left(\text{E1},\text{E5b}\right)-\gamma_{\text{E1 },\text{E5b}}\text{BGD}\left(\text{E1},\text{E5b}\right) \tag{11}\]  
Ionosphere-free linear combinations of pseudo-ranges are formed according to (3) for GPS and according to (6) for Galileo, respectively. Since the DCBs between a ionosphere-free combination (L2C-L1 C/A, L5-L1 C/A, E5a-E1 or E5b-E1) on the one hand and a single-frequency pseudo-range (L1 C/A or E1) on the other hand are to be calibrated, the difference between these two types of observations is formed in (12). \[\rho_{IF}-\rho_{\alpha}=-c\delta t_{IF}^{sat}+I_{IF}+B_{IF}^{rcv}-B_{IF}^{sat}- \left(-c\delta t_{\alpha}^{sat}+I_{\alpha}+B_{\alpha}^{rcv}-B_{\alpha}^{sat}\right) \tag{12}\]  
\(I_{IF}\) can be neglected. Assuming that the broadcast values of BGD, ISC and \(T_{GD}\) match the satellite-specific code biases well enough that  
\[c\delta t_{IF}^{sat}+B_{IF}^{sat}=c\delta t_{\alpha}^{sat}+B_{\alpha}^{sat}= c\delta t_{SV} \tag{13}\]  
holds, (12) simplifies to:  
\[ \begin{array}{ll}\rho_{IF}-\rho_{\alpha}&=B_{IF}^{rcv}-B_{\alpha}^{rcv}-I_{ \alpha}\\ &=\text{DCB}_{IF,\alpha}-I_{\alpha}\end{array}