# Intelligent Environment-Adaptive GNSS/INS Integrated Positioning with Factor Graph Optimization
## 2 System Architecture of Adaptive GNSS/INS Integration by FGO
### Basic Parameters about GNSS, INS, and the State Vector  
At epoch \(t\), the system state vector \(S_{t}\) depicted in Equation (1) contains the information of positions \(\mathbf{X}_{t}^{\textit{ceef}}\), orientation \(\mathbf{\Phi}_{t}^{\textit{body}}\), velocity \(\mathbf{V}_{t}^{\textit{ceef}}\), and INS bias \(\mathbf{B}_{\mathbf{t},\textit{INS}}^{\textit{body}}\), whose specifications [11,16] are displayed as:  
\[S_{t}=\left[\mathbf{X}_{t}^{\textit{ceef}},\mathbf{\Phi}_{t}^{\textit{body}},\mathbf{V}_{t }^{\textit{ceef}},\mathbf{B}_{t,\textit{INS}}^{\textit{body}}\right]^{T} \tag{1}\]  
\[\mathbf{X}_{t}^{\textit{ceef}}=\left[x_{t}^{\textit{ceef}},y_{t}^{\textit{ceef}},z _{t}^{\textit{ceef}}\right] \tag{2}\]  
\[\mathbf{\Phi}_{t}^{\textit{body}}=\left[\mathbf{y}_{t}^{\textit{body}},\mathbf{b}_{t}^{ \textit{body}},\mathbf{\phi}_{t}^{\textit{body}}\right] \tag{3}\]  
\[\mathbf{V}_{t}^{\textit{ceef}}=\left[v_{x_{t}^{\textit{ceef}}},v_{y_{t}^{\textit{ ceef}}},v_{z_{t}^{\textit{ceef}}}\right] \tag{4}\]  
\[\mathbf{B}_{t,\textit{INS}}^{\textit{body}}=\left[\mathbf{B}_{\mathbf{t},f}^{\textit{ body}},\mathbf{B}_{\mathbf{t},\omega}^{\textit{body}}\right]=\left[b_{N_{\textbf{t},\textit{ acce}}},b_{\textbf{e},\textit{dece}}^{\textit{body}},b_{D_{ \textbf{t},\textit{acce}}},b_{N_{\textbf{t},\textit{g}ro}},b_{E_{\textbf{t}, \textit{g}ro}}^{\textit{body}},b_{D_{\textbf{t},\textit{g}ro}}^{\textit{ body}}\right] \tag{5}\]  
where \"ceef\" denotes the global coordinates based on the Earth's center and \"body\" means the North-East-Down (NED) frame based on the body centroid. The raw sensor data from both the accelerometer and gyroscope, denoted by \(\mathbf{A}_{\textbf{t},\textit{INS}}^{\textit{body}}\), are shown as the following:  
\[\mathbf{A}_{\textbf{t},\textit{INS}}^{\textit{body}}=\left[\mathbf{A}_{\textbf{t},f}^ {\textit{body}},\mathbf{A}_{\textbf{t},\omega}^{\textit{body}}\right]=\left[\mathbf{A }_{N_{\textbf{t},\textit{acce}}}^{\textit{body}},\mathbf{A}_{\textbf{t},\textit{ acce}}^{\textit{body}},\mathbf{A}_{D_{\textbf{t},\textit{acce}}^{\textit{body}}},\mathbf{A}_{N_{ \textbf{t},\textit{g}ro}}^{\textit{body}},\mathbf{A}_{E_{\textbf{t},\textit{g}ro}} ^{\textit{body}},\mathbf{A}_{D_{\textbf{t},\textit{g}ro}}^{\textit{body}}\right] \tag{6}\]  
Therefore, the INS measurement input \(\mathbf{U}_{t}\) at epoch t (originated from previous epoch \(t-1\)) can be expressed as:  
\[\mathbf{U}_{t}=\mathbf{A}_{\textbf{t-LINS}}^{\textit{ceef}}=T_{\textit{GB}}\Big{(}\bm {A}_{\textbf{t-LINS}}^{\textit{body}}-\mathbf{B}_{\textbf{t-LINS}}^{\textit{body}} \Big{)} \tag{7}\]  
Figure 1: Flowchart of the proposed AFGO approach.  
where \(T_{GB}\) is a transformation matrix from body frame to global frame, and \(A_{\mathbf{t-1},INS}^{body}\) and \(B_{\mathbf{t-1},INS}^{body}\) represent raw sensor data and bias from the previous epoch, respectively. Moreover, the absolute position measurement from GNSS, \(\mathbf{Z_{t,GNSS}}\), is shown as:  
\[\mathbf{Z_{t,GNSS}}=\left[x_{t,GNSS}^{ccf},y_{t,GNSS}^{ccf},z_{t,GNSS}^{ccf}\right]^ {T} \tag{8}\]