Research Article  Open Access
A FaultTolerant Filtering Algorithm for SINS/DVL/MCP Integrated Navigation System
Abstract
The Kalman filter (KF), which recursively generates a relatively optimal estimate of underlying system state based upon a series of observed measurements, has been widely used in integrated navigation system. Due to its dependence on the accuracy of system model and reliability of observation data, the precision of KF will degrade or even diverge, when using inaccurate model or trustless data set. In this paper, a faulttolerant adaptive Kalman filter (FTAKF) algorithm for the integrated navigation system composed of a strapdown inertial navigation system (SINS), a Doppler velocity log (DVL), and a magnetic compass (MCP) is proposed. The evolutionary artificial neural networks (EANN) are used in selflearning and training of the intelligent data fusion algorithm. The proposed algorithm can significantly outperform the traditional KF in providing estimation continuously with higher accuracy and smoothing the KF outputs when observation data are inaccurate or unavailable for a short period. The experiments of the prototype verify the effectiveness of the proposed method.
1. Introduction
Integration technology has become one of the key issues in navigation because of its capability of overcoming the drawbacks of single strapdown inertial navigation system (SINS), such as error accumulation and error swing over a period of time. The most commonly used navigation systems are radio and satellite based system, including global positioning system (GPS) [1] and Doppler velocity log (DVL) [2, 3]; their performance is fundamentally limited by propagation of signals [4, 5]. The integrated navigation system proposed in this work is an economic navigating algorithm of high precision, in which the SINS is integrated with a DVL and a magnetic compass (MCP).
The Kalman filter (KF) is an effective optimal estimation algorithm and has been widely used in integrated navigation system since 1970s [6–9]. On one hand, in order to achieve a better performance with a KF, an accurate system model and reliable observation data are indispensable. Moreover, the KF fails to estimate the state vector exactly when the observations noise increases [10–12]. However, in real engineering applications, it is usually difficult to satisfy the above conditions. For example, undersea DVL’s output will be interfered or broken owing to the cliffy sea bottom and other vessel reflections [13, 14]. In order to solve this problem, the following method is often adopted: if the observation data from DVL or MCP are temporarily inaccurate or inaccessible, the integrated navigation system can be compromised to work under pure inertial mode. But, it is evident that the measuring accuracy will deteriorate remarkably and the system error will accumulate or swing over time in pure inertial mode. After the system returns to the integration mode when the observation data are recovered, the position error will definitely not be compensated although the errors of velocities and attitude angles can be reduced. Therefore, a faulttolerant filtering algorithm that can maintain the accuracy of an integrated navigation system through inexact or unavailable observation data is important and urgent [15–17].
Evolutionary programming, put forward by Fogel [18], is essential for random searching in that it boosts the survival of the fittest and organic evolution mechanism and searches for the optimal point in feasible space via population search strategy [19, 20]. Moreover, the artificial neural network (ANN), optimized by evolutionary programming, not only overcomes the obstacle of conventional ANN which may easily plunge into local minimum and requires long training time, but also avoids the problem in genetic algorithms caused by binarycoded and cross operation. Thanks to its superiorities, ANN has been applied in many fields such as financial forecasting [21], breast cancer diagnosis [22], and electricity supply industry [23], and so forth [24].
In this paper, a faulttolerant integrated navigation system with an adaptive Kalman filter (AKF) based on evolutionary artificial neural networks (EANN) is proposed, in which the EANN is used in selflearning and training of the intelligent data fusion algorithm. The proposed faulttolerant adaptive Kalman filter (FTAKF) algorithm is able to maintain a smooth output under the condition when observation data are inaccurate or unavailable. The prototype experiment indicates that the algorithm can efficiently outperform the traditional KF with a higher accuracy when observation data are inaccurate or unavailable.
This paper is organized as follows. In Section 2, the inertial error model is introduced and a corresponding mathematical model in state and measurement space is described. In Section 3, we propose the AKF algorithm and compare its characteristics and properties with those of traditional KF algorithm. A fast ANN based on evolutionary programming is proposed in Section 4. In Sections 5 and 6, applications of algorithm in SINS/DVL/MCP are presented and several tests are conducted to evaluate the performance of the intelligent navigation system with FTAKF. Conclusions are made in Section 7.
2. Mathematical Model for Filter
2.1. Error Model of Integrated Navigation System
(1) Inertial Error Model. Here we define the navigation coordinates frame as an eastnorthvertical (ENV) geography coordinates frame. The attitude angle, velocity, and position errors are given in the following. Attitude angle error is determined bywhere is the orientation error vector of the calculated platform represented in the navigation coordinates frame, represents the rotation projection of the earth onto the ENV axes with to be the angular velocity of the rotation of the earth, and denotes the angular velocity of the rotation of a navigation coordinates frame relative to the earth with , , and that represent the linear velocities, , , and that represent the position coordinates (longitude latitude and height, resp.), and , that represent the radii of the curvatures along the meridian and parallel, respectively (Table 2). Moreover, is the gyrodrifts in the body coordinates frame with . The last term represents the attitude matrix, which can be expressed by the attitude angles , , and .
Given the definition , can be written asVelocity error is defined aswhere viewed as the linear velocity error vector is determined by the specific force vector and the bias vector of accelerometer in the body coordinates frame, along with and that represent the slow variations of and , respectively. Here, .
Position error is given bywhere , , and represent the position errors.
(2) DVL Error Model. The velocity of DVL in the body coordinates frame can be described as follows:Here, is the scale factor error assumed to be random constant and and represents the linear velocity errors of DVL, which can be characterized by firstorder Markov process aswhere is the time correlation coefficient of this Markov process and is the input noise of DVL.
(3) MCP Error Model. Heading attitude angle error of MCP can be represented as firstorder Markov process withwhere is the time correlation coefficient and is the input noise of MCP.
2.2. State Space
The error models given in (1), (3)(4), and (6)(7) have a standard form given bywhere matrices and can be established from the above error model and is the input (system) noise:where , , and are the white noise of the gyros and , , and are the white noise of the accelerometers. The state vector of the integrated navigation system is defined as
2.3. Measurement Space
Supposing that the error of the velocity of DVL in the navigation coordinates frame is mainly caused by platform misalignment, the error of can be described as where is a constant matrix which translates the velocity of DVL from the instrumental frame to the body coordinates frame. The perturbation of the attitude matrix is defined aswhere is the calculating navigation coordinate frame. Substituting (12) into (11), it yieldsAfter differentiating the velocity of SINS and DVL, the measurement model can be written aswhere the measurement velocity vector and can be calculated from Similarly, after differentiating the heading angle of SINS and MCP, the measurement model is given aswhereBased on the previous analysis, the measurement model is defined aswhere is the observation vector, is the observation matrix at the moment of which can be established from (15) and (17), and vector represents the Gaussian measurement noise with zero mean value and covariance matrix .
3. AKF Algorithm to Integrated Navigation System
Given the differential equations, we can have a continuous state transition matrix for error states. The continuous transition matrix can be discretized for KF application by using the firstorder Taylor series approximation. The corresponding discrete transition matrix can be computed aswhere is chosen as 0.01 s. Thus, the state equations and observation equation can be written aswhere is the 22dimensional state vector at the moment of , is the 4dimensional observation vector at the moment of , is statetransfermatrix from sample time to , is the system noise matrix at the moment of , and is system noise. Here, and are uncorrelated white noise sequences with zero mean. So we can have and . is the variance matrix of system noise and is the variance matrix of observation noise.
The equations of AKF based on the new information sequence are written as
Compared with traditional KF equations, there are two differences. Firstly, does not appear in above filter equations. That is to say, the statistical properties of the system noise are not needed in AKF, which is a highlight of this algorithm. Secondly, the initial value is needed, and it can be obtained by applying the traditional KF in the first loop. The AKF scheme of the integrated navigation system is shown in Figure 1.
4. Evolutionary Artificial Neural Networks
In recent years, ANN has been widely used in various fields, especially the backpropagation (BP) training [25]. However, drawbacks like poor convergence and failure in obtaining the global optimum are the bottleneck in the practical applications [26]. Articles [27–29] use genetic algorithms to optimize the parameters of neural networks. But there exist some imperfections. In this work, evolutionary programming is used to optimize the structure and connection weights in neural networks.
4.1. Artificial Neural Networks Model
ANN theory has proved that threelayer feedforward networks containing only one hidden layer can be a nonlinear mapping of any system with any precision [30]. According to this, the ANN model used in this paper consists of an input layer, a hidden layer, and an output layer. The network structure shown in Figure 2 treats the output navigation parameters of SINS as the input of the networks and the measurement errors as the output of the networks. Considering the limitation of underwater experimental environment, tests are conducted on a land vehicle, and the experimental area is flat and the speed of the vertical direction can be regarded as zero. Hence, there are 5 nodes in input layer while there are 3 in output layer.
Based on the assumption that the number of hidden layer nodes is , we have , , and the connection weights between input and hidden layers are , with thresholds to be . The connection weights between output and hidden layers are represented as , with thresholds to be . Then the output of each layer can be written as where and are transfer functions.
In order to study the nonlinear properties of biological neurons, usually is chosen as a sigmoid function and is chosen as a linear function . During optimizing, the threshold value is treated as import power with value of −1.
4.2. Artificial Neural Networks Optimized by Evolutionary Programming
Darwin’s evolutionary programming is a new search algorithm which is largely dependent on the mutation operator, while the genetic algorithms rely greatly on the crossover operator. When using the evolutionary programming as an optimization algorithm, users need not to be constrained to a particular code structure (representation) or a mutation strategy (evolution operator). Therefore, the flexibility and convenience of evolutionary programming make it surpass the conventional genetic algorithm. The steps for ANN optimization with the network structure and parameters using evolutionary programming are described as follows.
(1) Initialization. Here the population of neural networks is set by an initial quantity and the number of hidden layer neurons and the connection weights are initialized randomly within a certain range. Population can be expressed as , where is the weight distribution of the network and defined as with to be the weight between every two connecting nodes of the network.
(2) Performance Calculation and Categorization. The training procedure of neural networks uses the overall mean square deviation as a metric. Training will be terminated if the networks’ overall mean square deviation is less than a preset value. Here, the set error is defined as the individual survival environment, which is the goal of every individual evolutionary. For each individual, the fitness function is defined aswhere is the number of the imported samples and and are the desired and actual outputs of the node of the output layer. Each individual is sorted in a descending order according to fitness.
(3) Termination Condition Check. When the best individual meets the requirement or number of loops exceeds the limitation of evolutionary generation, turn to Step (5); otherwise continue.
(4) New Population Generation. Firstly, individuals in the current generation are picked as part of the next generation, while removing the rest. Secondly, new individuals are generated from individuals selected by mutation. These 2 individuals gather to form the new population. Here Gaussian variation is used as the mutation operator. Moreover, according to the characteristics of BP neural networks, the actual error of network is introduced as the enlightening knowledge in the formula; namely,where and are the weights of the th generation and th generation, respectively, with subscript to be , represents a standard normal distribution, and are definition coefficients, is the maximum training cycles of the network, and is the number of the individual survival generations. When the new population is generated, jump to Step (2).
(5) Termination Cycle. Terminate the evolution procedure and then train the optimal neural networks using BP algorithm until all requirements are met.
5. Applications of Algorithm in SINS/DVL/MCP
On account of the previous algorithm, the FTAKF method based on EANN technology can be applied to the SINS/DVL/MCP integrated system.
The integrated navigation system with an EANN based AKF is shown in Figure 3.
When the observation data are diagnosed as available and reliable, EANN works at training state and uses SINS velocity and attitude information as input while the measurement errors are treated as the desired output. In this case switch 1 is connected and switch 2 is off. When the observation data is unavailable or unreliable, EANN works at forecasting state, with switch 1 to be off and switch 2 to be connected.
Here, we use detecting method to judge whether the observation data is available [31].
When no fault occurs, the residual of filter belongs to white noise, whereThe mean of is and its variance is
While the auxiliary navigation equipment fails, the statistical characteristic of measurements noise changes. Then, the residual no longer belongs to the white noise. So the mean of the residual does not equal , which can be used to judge whether the observation data is available.
Firstly, we define the detection function as where obeys the distribution and its degree of freedom is ; that is, , and is the dimension of observations vector .
Then, the detection criteria are as follows:where the threshold determines the performance of the detection method, which should consider the leakage alarm rate and the false alarm rate.
From (25), (26), and (27), we can conclude that the fault information needs to be great enough; then the value of the detection function will be bigger than . So this method is suitable for the mutant fault detection. The noise sudden increasing fault and gradual fault detection method will be specially introduced in another manuscript of the authors.
6. Experiments
Limited by the experimental condition, onboard experiments were carried out to instead of underwater tests. The defect of the onboard experiments was that the movement of autonomous underwater vehicle (AUV) in the direction of depth cannot be simulated, but the other conditions are similar.
(1) Experiment Equipment. To evaluate the performance of the proposed faulttolerant filtering algorithm, several tests are conducted on a land vehicle platform equipped with integrated navigation system (tested system) and PHINS III (comparison unit).(i)Tested System: Integrated Navigation System (Strapdown Inertial Navigation System, Speed Log, and Magnetic Compass). The inertial measurement unit (IMU) parameters of the tested system are shown in Table 1.(ii)Comparison Unit. PHINS III is produced by IXSEA cooperation which worked on SINS/GPS mode.(iii)Vehicle Test Environment. The vehicle test structure is shown as Figure 4. For the outputs of PHINS are used as the benchmark, the IMU which we used is fixed on a platform with the PHINS. The installation diagram is as Figure 5. The working scene of vehicle test inside the car is shown in Figure 6.

(2) Experiment Route. The experiment was conducted on the campus of Southeast University.
Experiment 1 (for a traditional KF algorithm). The experiment consists of three phases.
Phase 1. From start time as the yellow arrow on the map to 1000 seconds, this phase marked by yellow line on the map, the tested system works in the integration mode, and the observation data are available.
Phase 2. From 1000 seconds to 1600 seconds marked by black line on the map, the tested system works in the pure inertial mode, and the observation data are unavailable.
Phase 3. From 1600 seconds to 2800 seconds marked by light green line on the map, the tested system recovers from the pure inertial mode and works in the integration mode, while the observation data are renewed again.
Figures 7–9 show the system’s navigation errors of Experiment 1. Figure 10 shows the navigation route of Experiment 1.
According to Figures 7 to 9, during Phase 2, the horizontal attitude errors are bigger than the attitude errors when the system is working in the integrated mode. For lack of outside velocity and yaw information, the yaw error, velocity error, and the position errors are increased fast as time grows when the system works in the pure inertial mode, and the precision of the system depends highly on IMU’s accuracies.
From 1600 seconds, the observation data are available again and the system returns to the integration mode. The attitude and velocity errors can be lessened due to correction effects of KF, while the position errors cannot be eliminated.
(3) Experiment Results
Experiment 2 (for the FTAKF algorithm based on EANN). The experiment also consists of three phases like Experiment 1. In order to verify the effects of evolutionary neural networks, the observation data will be unavailable during Phase 2 from 1000 to 1600 seconds; the tested system will work in the faulttolerant filtering mode instead of the pure inertial mode.
Experiment results shown in Figures 11–13 indicate that when the observation data are unavailable, the evolutionary neural network, which has completed training process, works on the forecasting mode and provides KF with required inputs. Thus, the KF can keep operating in a continuous manner and the system precision can be maintained stably. Figure 14 shows the navigation route of Experiment 2.
7. Conclusion
In this paper, aimed at addressing the problems of inaccurate model and unreliable observation data for KF in practical applications of AUV (autonomous underwater vehicle), a FTAKF algorithm for integrated navigation system based on EANN is proposed and tested. The conclusions are listed as follows:(1)The performance of a traditional KF is vulnerable due to its dependence on precision of the system model, such as state equation, observation equation, and noise statistic characters. In order to reduce the dependence on the precision of the system model, an AKF algorithm is designed.(2)The FTAKF algorithm based on EANN is capable of maintaining a smooth filter output even under the severe condition when observation data are inaccurate or unavailable and of enhancing the precision and reliability of integrated navigation system.(3)The results of experiments show that the FTAKF algorithm based on EANN proposed in this paper is effective and practical for engineering application.(4)It should be noted that, because of the utilization of the evolutionary neural network, the prerequisite for this system is that the training time of neural networks must be longer than the period that observation data is unavailable.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
Acknowledgments
The authors would like to thank the Chinese National Natural Science Foundation (51175082, 60874092) and the Project Supported by the Foundation of Key Laboratory of MicroInertial Instrument and Advanced Navigation Technology, Ministry of Education, China (201404), for the support of this work.
References
 R. McEwen, H. Thomas, D. Weber, and F. Psota, “Performance of an AUV navigation system at arctic latitudes,” IEEE Journal of Oceanic Engineering, vol. 30, no. 2, pp. 443–454, 2005. View at: Publisher Site  Google Scholar
 P. Ridao, D. Ribas, E. Hernandez, and A. Rusu, “USBL/DVL navigation through delayed position fixes,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '11), pp. 2344–2349, Shanghai, China, May 2011. View at: Publisher Site  Google Scholar
 B. Jalving, K. Gade, K. Svartveit, A. Willumsen, and R. Sørhagen, “DVL velocity aiding in the HUGIN 1000 integrated inertial navigation system,” Modeling, Identification and Control, vol. 25, no. 4, pp. 223–235, 2004. View at: Publisher Site  Google Scholar
 T. Zhang and X. Xu, “A new method of seamless land navigation for GPS/INS integrated system,” Measurement, vol. 45, no. 4, pp. 691–701, 2012. View at: Publisher Site  Google Scholar
 L. Paull, S. Saeedi, M. Seto, and H. Li, “AUV navigation and localization: a review,” IEEE Journal of Oceanic Engineering, vol. 39, no. 1, pp. 131–149, 2014. View at: Publisher Site  Google Scholar
 M. J. Dove, “Kalman filter techniques in marine integrated navigation systems,” Journal of Navigation, vol. 30, no. 1, pp. 135–145, 1977. View at: Publisher Site  Google Scholar
 S. A. Broatch and A. J. Henley, “An integrated navigation system manager using federated Kalman filtering,” in Proceedings of the IEEE National Aerospace and Electronics Conference (NAECON '91), pp. 422–426, Dayton, Ohio, USA, May 1991. View at: Google Scholar
 X.Y. Chen, J. Yu, and X.F. Zhu, “Theoretical analysis and application of Kalman filters for ultratight global position system/inertial navigation system integration,” Transactions of the Institute of Measurement and Control, vol. 34, no. 5, pp. 648–662, 2012. View at: Publisher Site  Google Scholar
 T. Xu, “Adaptive Kalman filter for INS/GPS integrated navigation system,” in Proceedings of the 2nd International Conference on Measurement, Instrumentation and Automation, vol. 336–338, pp. 332–335, Guilin, China, April 2013. View at: Google Scholar
 T. Abdelazim, W. AbdelHamid, N. ElSheimy, and E. H. Shin, “Experimental results of an adaptive fuzzy network Kalman filtering integration for low cost navigation applications,” in Proceedings of the Annual Meeting of the North American Fuzzy Information Processing Society: Fuzzy Sets in the Heart of the Canadian Rockies (NAFIPS '04), pp. 844–849, Banff, Canada, June 2004. View at: Google Scholar
 H. Yanling, Z. Yi, and S. Feng, “An anomaly recognition algorithm for DVL,” in Proceedings of the IEEE International Conference on Mechatronics and Automation (ICMA '11), pp. 2423–2427, IEEE, Beijing, China, August 2011. View at: Publisher Site  Google Scholar
 Y. Zhang, Y. Ding, and N. Li, “A tightly integrated SINS/DVL navigation method for autonomous underwater vehicle,” in Proceedings of the 5th International Conference on Computational and Information Sciences (ICCIS '13), pp. 1107–1110, Shiyan, China, June 2013. View at: Publisher Site  Google Scholar
 K.H. Tang, M.M. Jiang, and J. Weng, “Design of SINS/Phased Array DVL integrated navigation system for underwater vehicle based on adaptive filtering,” Journal of Chinese Inertial Technology, vol. 21, no. 1, pp. 65–70, 2013 (Chinese). View at: Google Scholar
 Ø. Hegrenaes and O. Hallingstad, “Modelaided INS with sea current estimation for robust underwater navigation,” IEEE Journal of Oceanic Engineering, vol. 36, no. 2, pp. 316–337, 2011. View at: Publisher Site  Google Scholar
 H. Miller and D. A. Hilts, “Fault tolerant integrated inertial navigation/global positioning systems for next generation spacecraft,” in Proceedings of the IEEE/AIAA 10th Digital Avionics Systems Conference, pp. 207–212, Los Angeles, Calif, USA, October 1991. View at: Google Scholar
 T. Zhang, X.S. Xu, Y. Li, and S.P. Gong, “AUV Faulttolerant technology based on inertial navigation and underwater acoustics assisted navigation system,” Journal of Chinese Inertial Technology, vol. 21, no. 4, pp. 512–516, 2013 (Chinese). View at: Google Scholar
 M. Ushaq and F. J. Cheng, “A fault tolerant integrated navigation scheme realized through online tuning of weighting factors for Federated Kalman Filter,” Applied Mechanics and Materials, vol. 446447, pp. 1078–1085, 2014. View at: Publisher Site  Google Scholar
 D. B. Fogel, “Introduction to simulated evolutionary optimization,” IEEE Transactions on Neural Networks, vol. 5, no. 1, pp. 3–14, 1994. View at: Publisher Site  Google Scholar
 A. F. Tappenden and J. Miller, “A novel evolutionary approach for adaptive random testing,” IEEE Transactions on Reliability, vol. 58, no. 4, pp. 619–633, 2009. View at: Publisher Site  Google Scholar
 M. L. M. Víctor, C. Vicent, L. Luis, and F. Anta Antonio, “A model of selfavoiding random walks for searching complex networks,” Networks, vol. 60, no. 2, pp. 71–85, 2012. View at: Google Scholar  MathSciNet
 J. Du and R. Rada, “Dilemmas in knowledgebased evolutionary computation for financial investing,” Intelligent Decision Technologies, vol. 7, no. 2, pp. 123–136, 2013. View at: Publisher Site  Google Scholar
 M. Mahsal Khan, A. Masood Ahmad, G. Muhammad Khan, and J. F. Miller, “Fast learning neural networks using Cartesian genetic programming,” Neurocomputing, vol. 121, pp. 274–289, 2013. View at: Publisher Site  Google Scholar
 C. Xilin, “Neural network combined with evolutionary algorithm for Knowledge management in Electricity Supply Industry,” in Proceedings of the IEEE International Symposium on Test and Measurement (ICTM '09), vol. 2, pp. 355–358, Hong Kong, 2009. View at: Google Scholar
 N. Mehdiyev and D. Enke, “Interest rate prediction: a neurohybrid approach with data preprocessing,” International Journal of General Systems, vol. 43, no. 5, pp. 535–550, 2014. View at: Publisher Site  Google Scholar
 F. Zha, B.Q. Hu, and J. Liu, “Prediction of gyro motor's state based on grey theory and BP neural network,” Journal of Chinese Inertial Technology, vol. 18, no. 1, pp. 120–123, 2010 (Chinese). View at: Google Scholar
 G. Jing, W. Du, and Y. Guo, “Studies on prediction of separation percent in electrodialysis process via BP neural networks and improved BP algorithms,” Desalination, vol. 291, pp. 78–93, 2012. View at: Publisher Site  Google Scholar
 Z. Haodong and L. Hongchan, “Optimized BP neural network model based on niche genetic algorithm,” in Proceedings of the 2nd International Conference on Green Communications and Networks, vol. 223 of Lecture Notes in Electrical Engineering, pp. 219–226, Springer, 2013. View at: Google Scholar
 L. Tian, Y. Luo, and Y. Wang, “Prediction model of TIG welding seam size based on BP neural network optimized by genetic algorithm,” Journal of Shanghai Jiaotong University, vol. 47, no. 11, pp. 1690–1696, 1701, 2013 (Chinese). View at: Google Scholar
 H. Yang, R. S. Fan, and D. H. Xu, “Power information system risk assessment method based on genetic algorithms and neural network,” Applied Mechanics and Materials, vol. 530531, pp. 429–433, 2014. View at: Publisher Site  Google Scholar
 H. Wei, Theory and Method of the Neural Network Structure Design, National Defence of Industry Press, Beijing, China, 2005.
 P.J. Li, X.S. Xu, L.H. Wang, and Y. Li, “Design of intelligent faulttolerant to passive underwater integrated navigation system,” Journal of Chinese Inertial Technology, vol. 21, no. 2, pp. 221–225, 2013 (Chinese). View at: Google Scholar
Copyright
Copyright © 2015 Xiaosu Xu et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.