Abstract
This paper uses the extended Kalman filter (EKF) for estimation of position, velocity and attitude of an UAV of quadrotor type. The sensors used are low cost microelectromechanical systems (MEMS) accelerometer and gyroscope, MEMS barometer and GPS. The standard EKF is improved with adaptive approaches. Two innovation adaptive estimation methods were taken from the literature. One involves the change of the theoretical matrix of the innovation covariance, by another one which is determined experimentally; the second one involves the computation of the output noise covariance matrix of the Kalman filter (KF) via fuzzy logic. A new method for adaptive estimation was also developed by extending an approach of heuristic metrics of bias and amplitude of oscillation taken from the literature. It consists in the use of the metrics, together with fuzzy logic, for adjusting the input and output noise covariance matrices of the EKF. The adaptive and standard filters were both implemented in hardware and simulated. The hardware implementation involves rotation filters in indoor tests performed in open loop; these observations were exclusively carried out in a hand-controlled environment, with no flight of the quadrotor itself. The simulations were performed in conditions of the full capability of the filters, in a scenario representing a fault condition in the gyroscope. The tests showed the ability of the adaptive filters of correcting the covariance matrix for improving performance.
Similar content being viewed by others
Abbreviations
- UAV:
-
Unmanned aerial vehicle
- KF:
-
Kalman filter
- EKF:
-
Extended Kalman filter
- PVAT:
-
Position, velocity and attitude
- MEMS:
-
Microelectromechanical systems
- IMU:
-
Inertial measurement unit
- IAE:
-
Innovation adaptive estimation
- AKF:
-
Adaptive Kalman filter
- BRF:
-
Body reference frame
- NED:
-
North, east, down reference frame
- cm:
-
Center of mass
- RF:
-
Reference frame
- RCS:
-
Rotational control system
- TCS:
-
Translational control system
- PIV:
-
Proportional, integral, velocity
- REKF:
-
Rotation extended Kalman filter
- TEKF:
-
Translation extended Kalman filter
- EIAE:
-
Experimental innovation adaptive estimation
- FIAE:
-
Fuzzy innovation adaptive estimation
- ICM:
-
Innovation covariance matrix
- SISO:
-
Single input, single output
- FIS:
-
Fuzzy inference system
- LSF:
-
Least squares fitting
- MF:
-
Membership function
- MC:
-
Microcontroller
- AAE:
-
Average absolute errors
- MAE:
-
Maximum absolute error
- \({\mathbf {V}}=[v_n\ v_e\ v_d]^t\) :
-
NED’s velocity vector of the UAV’s cg
- \({\mathbf {R}}=[x_n\ y_e\ z_d]^t\) :
-
NED’s position vector of the UAV’s cg
- \({\mathbf {F}}_b\) :
-
Summing of the non gravitational forces that act in the body, written in the BRF
- m :
-
Body’s mass
- g, \({\varvec{{g}}}\) :
-
Acceleration due to gravity, scalar and vector forms
- \({{\mathbf {C}}}^b_0\) :
-
Coordinate transformation matrix from the BRF to NED
- \({\varvec{\omega }}=[p\ q\ r]^t\) :
-
Body’s angular velocity with respect to the inertial RF, written in the BRF
- \({\mathbf {I}}\) :
-
Body’s inertia matrix written in the BRF
- \({\mathbf {M}}=[{\mathscr {L}}\ {\mathscr {M}}\ {\mathscr {N}}]^t\) :
-
Summing of all the moments (torques) that act in the body
- \({\mathbf {q}}=[q_0\ q_1\ q_2\ q_3]^t\) :
-
Rotation quaternion
- \(\phi\), \(\theta\), \(\psi\) :
-
Euler angles: roll, pitch and yaw, respectively
- \({\varvec{\Omega }}_s\) :
-
Skew-symmetric matrix of angular velocity
- \(F_i\), \(M_i\) :
-
Aerodynamic thrust force and moment on the i-th propeller, respectively
- T :
-
Resulting thrust force
- \(k_f\) :
-
Force constant
- \(k_m\) :
-
Torque constant
- l :
-
Moment arm
- \(T_s\) :
-
Sampling interval, time between two successive state estimations
- \({\mathbf {Q}}\), \({\mathbf {R}}\) :
-
Generic covariance matrices of process and measurement noises, respectively
- \(t_k\) :
-
k-th sampling time
- \({\hat{\mathbf {x}}}_k^-\), \({\hat{\mathbf {x}}}_k^+\) :
-
Predicted and corrected state at time k, respectively
- \({\mathbf {P}}_k^-\), \({\mathbf {P}}_k^+\) :
-
Predicted and corrected error covariance matrix at time k
- \({\mathbf {P}}_{\tilde{e}_{z_k}}\) :
-
Theoretical covariance matrix
- \({\tilde{\mathbf {e}}}_{z_k}\) :
-
Innovation process
References
Adigbli P (2007) Nonlinear attitude and position control of a micro quadrotor using sliding mode and backstepping techniques. In: 3rd US-European competition and workshop on micro air vehicle systems and European micro air vehicle conference and flight competition
Ali J (2010) Strapdown inertial navigation system/astronavigation system data synthesis using innovation-based fuzzy adaptive kalman filtering. IET Sci Meas Technol 4(5):246–255
Amir M, Abbass V (2008) Modeling of quadrotor helicopter dynamics. In: International Conference on smart manufacturing application, 2008. ICSMA 2008, IEEE, Gyeonggi-do, Korea, pp 100–105. doi:10.1109/ICSMA.2008.4505621
Bento MDF (2008) Unmanned aerial vehicles: an overview. Inside GNSS 3(1):54–61
El-Sheimy N, Hou H, Niu X (2008) Analysis and modeling of inertial sensors using allan variance. IEEE Trans Instrum Meas 57(1):140–149
Grewal MS, Weill LR, Andrews AP (2007) Global positioning systems, inertial navigation, and integration, 2nd edn. Wiley, Hoboken
Han JH, Kwon JH, Lee I, Choi K (2011) Position and attitude determination for uav-based gps, imu and at without gcps. In: 2011 International workshop on multi-platform/multi-sensor remote sensing and mapping (M2RSM), pp 1–5
Hoffmann G, Huang H, Waslander S, Tomlin C (2007) Quadrotor helicopter flight dynamics and control: theory and experiment. In: AIAA guidance, navigation and control conference and exhibit, Hilton Head, South Carolina, AIAA-2007-6461
Hua MD (2009) Attitude observers for accelerated rigid bodies based on gps and ins measurements. In: Proceedings of the 48th IEEE Conference on decision and control, 2009 held jointly with the 2009 28th Chinese Control Conference. CDC/CCC 2009, Shanghai, China, pp 8071–8076
Huang H, Hoffmann GM, Waslander SL, Tomlin CJ (2009) Aerodynamics and control of autonomous quadrotor helicopters in aggressive maneuvering. In: IEEE International Conference on robotics and automation, 2009. ICRA ’09, pp 3277–3282
Jiancheng F, Sheng Y (2011) Study on innovation adaptive ekf for in-flight alignment of airborne pos. IEEE Trans Instrum Meas 60(4):1378–1388
Karasalo M, Hu X (2011) An optimization approach to adaptive Kalman filtering. Automatica 47(8):1785–1793
Michael N, Mellinger D, Lindsey Q, Kumar V (2010) The grasp multiple micro-uav testbed. IEEE Robot Autom Mag 17(3):56–65
Sanchez A, Carrillo LRG, Rondon E, Lozano R, Garcia O (2011) Hovering flight improvement of a quad-rotor mini uav using brushless dc motors. J Intell Robot Syst 61(1–4):85101
Stevens BL, Lewis FL (2003) Aircraft control and simulation, 2nd edn. Wiley, Hoboken
Wendel J, Meister O, Schlaile C, Trommer GF (2006) An integrated gps/mems-imu navigation system for an autonomous helicopter. Aerosp Sci Technol 10(6):527–533
Xing Z, Gebre-Egziabher D (2008) Modeling and bounding low cost inertial sensor errors. In: Position, location and navigation symposium, 2008 IEEE/ION, pp 1122–1132. doi:10.1109/PLANS.2008.4569999
Acknowledgments
The authors thank the company Gyrofly Innovations by the support in the use of the quadrotor Gyro 200ED. Thanks also to the CNPq by the partial support to this research (Grant No. 303627/2012-3).
Author information
Authors and Affiliations
Corresponding author
Additional information
Technical Editor: Glauco A. de P. Caurin.
Conventions: Vectors are represented by column matrices. Vector operator “×” means the cross product. A t represents the transpose of matrix A. The letter “s” after an acronym means its plural.
Appendix
Appendix
1.1 Kalman filter: Notation and structure
The EKF considers the nonlinear dynamical system represented by the model in Eq. 30.
where \({\mathbf {x}}\in {\mathbb {R}}^n\) is the state, \({\mathbf {u}}: [0,\ \infty )\rightarrow {\mathbb {R}}^l\) is a given driving function, \({\mathbf {f}}: {\mathbb {R}}^n\times {\mathbb {R}}^l\times [0,\ \infty )\rightarrow {\mathbb {R}}^n\) is a vector valued nonlinear state function. \({\mathbf {w}}\in {\mathbb {R}}^m\) is called process noise, it is a white Gaussian process with zero mean and covariance \({\mathbf {Q}}(t)\in {\mathbb {R}}^{m\times m}\). \({\mathbf {G}}: {\mathbb {R}}^n\times [0,\ \infty )\rightarrow {\mathbb {R}}^{n\times m}\) is a matrix valued nonlinear function called process noise distribution matrix.
The measurements are state dependent and represented by the nonlinear output function in Eq. 31.
where \({\mathbf {z}}\in {\mathbb {R}}^p\) is the vector of measured outputs, \({\mathbf {h}}: {\mathbb {R}}^n\rightarrow {\mathbb {R}}^p\) is a vector-valued nonlinear output function. \({\mathbf {v}}\in {\mathbb {R}}^p\) is called measurement noise, it is a white Gaussian process with zero mean and covariance \({\mathbf {R}}(t)\in {\mathbb {R}}^{p\times p}\).
The following procedure composes the k-th iteration of the EKF. An initial estimate is needed, as usual, the method assumes that the initial state is distributed according to a white Gaussian noise with zero mean.
1.1.1 Prediction (time propagation)
Prediction of the state vector:
Prediction of the error’s covariance matrix:
1.1.2 Correction (measurement update)
Kalman gain:
Correction of the state estimate:
Correction of the error’s covariance matrix estimate:
In Eq. 32, the vector function \({\mathbf {u}}(t)\) is given by data determined from measurement, for example, from a gyroscope. In Eq. 39, \({\mathbf {z}}_k\) is the output measured by another instrument at time k, for example, a GPS receiver.
Rights and permissions
About this article
Cite this article
da Silva, A.L., da Cruz, J.J. Fuzzy adaptive extended Kalman filter for UAV INS/GPS data fusion. J Braz. Soc. Mech. Sci. Eng. 38, 1671–1688 (2016). https://doi.org/10.1007/s40430-016-0509-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s40430-016-0509-7