## 3 An Adaptive Attitude Estimation Method Based on Multi-Sensor Fusion
### Attitude Estimation Based on Kalman Filter
#### 3.3.3 Attitude Estimation for Suppressing Maneuvering Acceleration Disturbance  
For the angular attitude estimation of roll angle \(\gamma\) and pitch angle \(\theta\) when the influence of maneuvering acceleration cannot be ignored as well as the angular attitude estimation of yaw angle \(\psi\), the attitude error caused by gyro dynamic drift is regarded as a time-varying signal. A more accurate attitude error estimation value is obtained through Kalman filter to compensate for the attitude angle error. There is an attitude drift error between the angular attitude calculated by the gyro and the actual angular attitude due to the existence of gyro zero drift. The relationship between the actual angular attitude and the calculated angular attitude at moment \(k\) is as follows:  
\[\left[ \begin{array}{c}\gamma^{\prime}_{k}\\ \theta^{\prime}_{k}\end{array} \right]=\left[ \begin{array}{c}\gamma_{k}- \varepsilon_{\gamma k}\\ \theta_{k}-\varepsilon_{\theta k}\\ \psi_{k}-\varepsilon_{\psi k}\end{array} \right], \tag{18}\]  
where \(\gamma^{\prime}_{k}\), \(\theta^{\prime}_{k}\) and \(\psi^{\prime}_{k}\) are the actual 3-axis angular attitude at moment \(k\), \(\gamma_{k}\), \(\theta_{k}\), and \(\psi_{k}\) are the 3-axis angular attitude calculated by the gyro at moment \(k\) and \(\varepsilon_{\gamma k}\), \(\varepsilon_{\theta k}\), and \(\varepsilon_{\psi k}\) are the 3-axis angular attitude drift error at moment \(k\). The attitude error caused by the zero drift of gyro is related to the motion complexity of the measured carrier and the attitude error accumulates with time when measuring the moving carrier. The motion complexity is described as the change of the angular attitude at moment \(k\) relative to the angular attitude at moment \(k-1\) and the attitude drift error model equation is established as  
\[\left[ \begin{array}{c}\varepsilon_{\gamma k}\\ \varepsilon_{\theta k}\\ \varepsilon_{\psi k}\end{array} \right]=\left[ \begin{array}{c}\varepsilon_ {\gamma(k-1)}\\ \varepsilon_{\theta(k-1)}\\ \varepsilon_{\psi(k-1)}\end{array} \right]+\delta_{j}\cdot\left[ \begin{array} []{c}\gamma_{k}-\gamma_{k-1}\\ \theta_{k}-\theta_{k-1}\\ \psi_{k}-\psi_{k-1}\end{array} \right]+\left[ \begin{array}{c}\omega_{\gamma k }\\ \omega_{\theta k}\\ \omega_{\psi k}\end{array} \right], \tag{19}\]  
where \(\varepsilon_{\gamma k}\), \(\varepsilon_{\theta k}\) and \(\varepsilon_{\psi k}\) are the 3-axis angular attitude drift error at moment \(k\), \(\varepsilon_{\gamma(k-1)}\), \(\varepsilon_{\theta(k-1)}\) and \(\varepsilon_{\psi(k-1)}\) are the 3-axis angular attitude drift error at moment \(k-1\) and \(\delta_{j},j=1,2,3\) is adjustable parameter. Random process noise sequence \(\omega_{\gamma k}\), \(\omega_{\theta k}\) and \(\omega_{\psi k}\) are determined by the measurement accuracy of the gyro. The state equation of Kalman filter is established according to the attitude drift error model. The state variable is  
\[x_{k}=\big{[} \begin{array}{cc}\varepsilon_{\gamma k}&\varepsilon_{\theta k }&\varepsilon_{\psi k}\end{array} \big{]}^{T}. \tag{20}\]  
The control variable is  
\[u_{k}=\big{[} \begin{array}{cc}\gamma_{k}-\varepsilon_{\gamma k}&\theta_{k}- \varepsilon_{\theta k}&\psi_{k}-\varepsilon_{\psi k}\end{array} \big{]}^{T}. \tag{21}\]  
In our study, the LPF between the angular attitude calculated by the gyro at moment \(k\) and the first few moments of moment \(k\) is used as the measurement of attitude drift error caused by gyro drift. The measurement variable of attitude drift error is  
\[z_{k}=a_{j}\cdot\left[ \begin{array}{c}\gamma_{k}\\ \theta_{k}\\ \psi_{k}\end{array} \right]+b_{j}\cdot\left[ \begin{array}{c}\gamma_{k-1}\\ \theta_{k-1}\\ \psi_{k-1}\end{array} \right]+c_{j}\cdot\left[ \begin{array}{c}\gamma_{k-2} \\ \theta_{k-2}\\ \psi_{k-2}\end{array} \right]-\left[ \begin{array}{c}\gamma_{k-3}\\ \theta_{k-3}\\ \psi_{k-3}\end{array} \right],j=1,2,3, \tag{22}\]where \(a_{j},b_{j},c_{j},j=1,2,3\) meet the condition \(a_{j}+b_{j}+c_{j}=\left[ \begin{array}{cccc}1&1&1&1\end{array} \right]^{T}\).