# Spoofing Detection Using GNSS/INS/Odometer Coupling for Vehicular Navigation
## 3 RIO Mechanization  
RIO mechanization and the loose coupling model used are described in this section. The local-level frame is the East-North-Up (ENU) frame with axes along east, north and vertical (up) directions. The sensors measurements provided by the gyroscope, the two accelerometers and the odometer comprise the control inputs represented by the vector:  
\[\mathbf{u}_{i}=\left[v_{i}^{o},a_{i}^{o},f_{i}^{x},f_{i}^{y},\omega_{i}^{z} \right]^{T} \tag{2}\]  
where \(v_{i}^{o}\) is the speed from the odometer output, \(a_{i}^{o}\) is the acceleration from the vehicle odometer output, \(f_{i}^{x}\) and \(f_{i}^{y}\) are the \(x\) and \(y\) accelerometer outputs and \(\omega_{i}^{z}\) the vertical gyroscope output. The vertical gyroscope is mounted in alignment with the vertical axis of the vehicle and two accelerometers are mounted in the transversal and forward directions. The rate gyroscope is used to measure heading change of the vehicle and two accelerometers to measure changes in roll and pitch of the vehicle. The vehicle attitude information along with odometer derived forward speed are used to compute the user velocities in the ENU frame. Subsequently, the user position is obtained by integrating the velocity solution. The state vector for the mechanization is:  
\[\mathbf{x}_{k}=\left[\varphi_{k},\lambda_{k},h_{k},v_{k}^{E},v_{k}^{N},v_{k}^{ UI},p_{k},r_{k},A_{k}\right]^{T} \tag{3}\]  
where \(\left\{\varphi_{k},\lambda_{k},h\right\}\) is the position vector in the geodetic coordinate frame, \(\left\{v_{k}^{E},v_{k}^{N},v_{k}^{UI}\right\}\) is the velocity vector in the East-North-Up (ENU) coordinate frame, and \(\left\{p_{k},r_{k},A_{k}\right\}\) is the pitch, roll and azimuth angles of the vehicle. The pitch angle is computed from the forward accelerometer. When the vehicle is in motion, the accelerometer measures the forward acceleration as well as the component due to gravity. In order to compute the pitch angle, this forward acceleration needs to be removed from the forward accelerometer measurement. Similarly, for roll angle computation, the transversal accelerometer  
Figure 2: Loosely coupled RIO mechanization for spoofing detection. measurement needs to be compensated with the normal component of the acceleration. The azimuth angle is computed from the vertical gyroscope and its measurement is compensated with earth rotation as well as the rotation of the local level frame with earth's curvature. Thus, the mechanization equations to compute the vehicle attitude information is given by:  
\[ \begin{array}{l}r_{i}=-\sin^{-1}\left(\frac{f_{i}^{T}+\varphi_{i}^{d}\omega_{i }^{z}}{g\cos{\varphi_{i}}}\right)\\ p_{i}=\sin^{-1}\left(\frac{f_{i}^{T}-\sigma_{i}^{a}}{g}\right)\\ A_{i}=A_{i-1}-\omega_{i}^{z}\Delta t+\omega^{e}\sin{\varphi_{i-1}\Delta t}+\frac {v_{i-1}^{E}\tan{\varphi_{i-1}}}{R_{N}+h_{i-1}}\Delta t\end{array}  \tag{4}\]  
where \(r,p,A\) are the roll, pitch and heading of the vehicle, and \(g\) is gravity. The user velocity in ENU frame can be obtained as:  
\[ \begin{array}{l}v_{i}^{E}=v_{i}^{o}\sin{A_{i}\cos{p_{i}}}\\ v_{i}^{N}=v_{i}^{o}\cos{A_{i}\cos{p_{i}}}\\ v_{i}^{II}=v_{i}^{o}\sin{p_{i}}\end{array}  \tag{5}\]  
User coordinates can be obtained as:  
\[ \begin{array}{l}\varphi_{i}=\varphi_{i-1}+\frac{v_{i}^{N}}{R_{M}+h_{i}} \Delta t\\ \lambda_{i}=\lambda_{i-1}+\frac{v_{i}^{E}}{(R_{N}+h_{i})\cos{\varphi_{i}}} \Delta t\\ h_{i}=h_{i-1}+v_{i}^{UI}\Delta t\end{array}  \tag{6}\]  
where \(\varphi\), \(\lambda\) and \(h\) are latitude, longitude and height. In the loose coupling approach, GNSS and RIO navigation solutions are combined in a navigation KF. Both system and measurement model are nonlinear. Since linearization is performed, only the perturbations in the states are computed in the filter.