Failure Detection in Quadcopter UAVs Using K-Means Clustering
Abstract
:1. Introduction
- Detecting failures in the UAV;
- Finding and selecting a safe landing zone in case a failure is detected in step 1;
- Steering the vehicle to the selected landing zone in step 2, for landing.
2. Related Works
3. Experimental Setup
3.1. Hardware System Design
3.2. Cases for Propeller Faults
4. UAV Failure Detection System
- Step 1: Conduct Flight Operations (Flight)
- Step 2: Perform Vibration Measurements (Vibration)
- Step 3: Extract Data using Arduino (Data Extraction)
- Step 4: Apply Clustering Algorithm (Clustering)
- Step 5: Decision-Making for Failure Detection (Decision-Making).
4.1. Conduct Flight Operations
4.2. Perform Vibration Measurements
4.3. Extract Data Using Arduino
4.4. Apply Clustering Algorithm
4.5. Decision-Making for Failure Detection
5. Results
5.1. Vibration Graphs
5.2. QFDC Plots
5.3. LED Subsystem
5.4. Discussion of Results
6. Conclusions
Supplementary Materials
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Conflicts of Interest
Appendix A
#include “Wire.h” const int MPU_ADDR = 0x68; int16_t accelerometer_x, accelerometer_y, accelerometer_z; int16_t gyro_x, gyro_y, gyro_z; char tmp_str[7]; char* convert_int16_to_str(int16_t i) { sprint(tmp_str, “%6d”, i); return tmp_str; } int i; int LED1 = 11; //Blue LED from Pin 11 for Normal Condition int LED2 = 12; //Yellow LED from Pin 12 for Faulty Condition int LED3 = 13; //Red LED from Pin 13 for Failure Condition int BlueLEDon = 0; int YellowLEDon = 0; int RedLEDon = 0; void setup() { Serial.begin(9600); Wire.begin(); Wire.beginTransmission(MPU_ADDR); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); for(i = 1; i < 101; i++) //Read 100 lines once for each flight { Wire.beginTransmission(MPU_ADDR); Wire.write(0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU_ADDR, 7*2, true); accelerometer_x = Wire.read()<<8 | Wire.read(); accelerometer_y = Wire.read()<<8 | Wire.read(); accelerometer_z = Wire.read()<<8 | Wire.read(); gyro_x = Wire.read()<<8 | Wire.read(); gyro_y = Wire.read()<<8 | Wire.read(); gyro_z = Wire.read()<<8 | Wire.read(); delay(600); Serial.print(i); Serial.print(“ | aZ = “); Serial.print(convert_int16_to_str(accelerometer_z)); Serial.print(“ | gZ = “); Serial.print(convert_int16_to_str(gyro_z)); if(abs(accelerometer_z) < - –0.74*abs(gyro_z) + 17435) //Boundary Condition #1 { digitalWrite(LED1, HIGH); //Turn Blue LED on digitalWrite(LED2, LOW); //Turn Yellow LED off digitalWrite(LED3, LOW); //Turn Red LED off BlueLEDon = BlueLEDon + 1; } else { if(abs(accelerometer_z) < –4.35*abs(gyro_z) + 40972) //Boundary Condition #2 { digitalWrite(LED1, LOW); //Turn Blue LED off digitalWrite(LED2, HIGH); //Turn Yellow LED on digitalWrite(LED3, LOW); //Turn Blue LED off YellowLEDon = YellowLEDon + 1; } else //Boundary Condition #3 { digitalWrite(LED1, LOW); //Turn Blue LED off digitalWrite(LED2, LOW); //Turn Yellow LED off digitalWrite(LED3, LOW); //Turn Red LED on RedLEDon = RedLEDon + 1; } } Serial.print(“ | Blue LED: “); Serial.print(BlueLEDon); Serial.print(“ | Yellow LED: “); Serial.print(YellowLEDon); Serial.print(“ | Red LED: “); Serial.print(RedLEDon); Serial.println(); } } |
References
- Kandaswamy, G.; Balamuralidhar, P. Health Monitoring and Failure Detection of Electronic and Structural Components in Small Unmanned Aerial Vehicles. Int. J. Mech. Mechatron. Eng. 2017, 11, 1081–1089. [Google Scholar]
- Bektash, O.; Cour-Harbo, A.l. Vibration Analysis for Anomaly Detection in Unmanned Aircraft. In Proceedings of the Annual Conference of the Prognostics and Health Management Society, Nashville, Tennessee, 9–13 November 2020; Volume 12, pp. 1–10. [Google Scholar]
- Bektash, O.; Pedersen, J.N.; Gomez, A.R.; Cour-Harbo, A.l. Automated Emergency Landing System for Drones: SafeEYE Project. In Proceedings of the 2020 International Conference on Unmanned Aircraft Systems (ICUAS), Athens, Greece, 1 September 2020; pp. 1056–1064. [Google Scholar]
- Cheng, D.L.; Lai, W.H. Application of Self-Organizing Map on Flight Data Analysis for Quadcopter Health Diagnosis System. In International Archives of the Photogrammetry, Remote Sensing & Spatial Information Sciences, Proceedings of the International Society of Photogrammetry and Remote Sensing (ISPRS), Enschede, The Netherlands, 10–14 June 2019; ISPRS: Hannover, Germany; pp. 241–246.
- Qi, J.; Song, D.; Wu, C.; Han, J.; Wang, T. KF-Based Adaptive UKF Algorithm and its Application for Rotorcraft UAV Actuator Failure Estimation. Int. J. Adv. Robot. Syst. 2012, 9, 132. [Google Scholar] [CrossRef]
- Rago, C.; Prasanth, R.; Mehra, R.; Fortenbaugh, R. Failure Detection and Identification and Fault Tolerant Control using the IMM_KF with Applications to the Eagle-Eye UAV. In Proceedings of the 37th IEEE Conference on Decision & Control, Tampa, FL, USA, 18 December 1998; Volume 4, pp. 4208–4213. [Google Scholar]
- Zhang, X.; Zhao, Z.; Wang, Z.; Wang, X. Fault Detection and Identification Method for Quadcopter Based on Airframe Vibration Signals. Sensors 2021, 21, 581. [Google Scholar] [CrossRef]
- Nepal, U.; Eslamiat, H. Comparing YOLOv3, YOLOv4 and YOLOv5 for Autonomous Landing Spot Detection in Faulty UAVs. Sensors 2022, 22, 464. [Google Scholar] [CrossRef]
- Qi, X.; Theilliol, D.; Qi, J.; Zhang, Y.; Han, J.; Song, D. Fault Diagnosis and Fault Tolerant Control Methods for Manned and Unmanned Helicopters: A Literature Review. In Proceedings of the 2013 Conference on Control and Fault-Tolerant Systems (SysTol), Nice, France, 9–11 October 2013; pp. 132–139. [Google Scholar]
- Saied, M.; Lussier, B.; Fantoni, I.; Shraim, H.; Francis, C. Fault Diagnosis and Fault-Tolerant Control of an Octorotor UAV using Motors Speeds Measurements. IFAC Pap. 2017, 50, 5263–5268. [Google Scholar] [CrossRef]
- Ghalamchi, B.; Jia, Z.; Mueller, M.W. Real-Time Vibration-Based Propeller Fault Diagnosis for Multicopters. IEEE/ASME Trans. Mechatron. 2020, 25, 395–405. [Google Scholar] [CrossRef]
- Nguyen, N.P.; Hong, S.K. Sliding Mode Thau Observer for Actuator Fault Diagnosis of Quadcopter UAVs. Appl. Sci. 2018, 8, 1893. [Google Scholar] [CrossRef]
- Avram, R.C.; Zhang, X.; Campbell, J.; Muse, J. IMU Sensor Fault Diagnosis and Estimation for Quadrotor UAVs. IFAC Pap. 2015, 48, 380–385. [Google Scholar] [CrossRef]
- Zermani, S.; Dezan, C.; Euler, R. Embedded Decision Making for UAV Missions. In Proceedings of the 2017 6th Mediterranean Conference on Embedded Computing (MECO), Bar, Montenegro, 11–15 June 2017; pp. 1–4. [Google Scholar]
- Sujit, P.B.; Sousa, J.B. Multi-UAV Task Allocation with Communication Faults. In Proceedings of the 2012 American Control Conference (ACC), Montreal, QC, Canada, 27–29 June 2012; pp. 3724–3729. [Google Scholar]
- Boroujeni, S.; Etemad, S.A.; Whitehead, A. Robust Horizon Detection using Segmentation for UAV Applications. In Proceedings of the 2012 Ninth Conference on Computer and Robot Vision, Toronto, ON, Canada, 28–30 May 2012; pp. 346–352. [Google Scholar]
- Fan, H.; Fang, H.; Dong, Y.; Shi, H.; Ren, S. UAV Engine Fault and Diagnosis with Parameter Models based on Telemetry Data. In Proceedings of the 2017 Prognostics and System Health Management Conference (PHM-Harbin), Harbin, China, 9–12 July 2017; pp. 1–6. [Google Scholar]
- Zhao, Z.; Zhou, R.; Dong, Z. Aero-Engine Faults Diagnosis Based on K-Means Improved Wasserstein GAN and Relevant Vector Machine. In Proceedings of the 2019 Chinese Control Conference (CCC), Guangzhou, China, 27–30 July 2019; pp. 4795–4800. [Google Scholar]
- Keipour, A.; Mousaei, M.; Scherer, S. ALFA: A Dataset for UAV Fault and Anomaly Detection. Int. J. Robot. Res. 2020, 40, 515–520. [Google Scholar] [CrossRef]
- Lin, C.E.; Shao, P.C. Failure Analysis for an Unmanned Aerial Vehicle using Safe Path Planning. J. Aerosp. Inf. Syst. 2020, 17, 358–369. [Google Scholar] [CrossRef]
- Arasanipalai, R.; Agrawal, A.; Ghose, D. Mid-flight Propeller Failure Detection and Control of Propeller-Deficient Quadcopter using Reinforcement Learning. arXiv 2020, arXiv:2002.11564. [Google Scholar]
- Dooraki, A.R.; Lee, D.J. Reinforcement Learning Based Flight Controller Capable of Controlling a Quadcopter with Four, Three, and Two Working Motors. In Proceedings of the 2020 20th International Conference on Control, Automation and Systems (ICCAS), Busan, Korea, 13–16 October 2020; pp. 161–166. [Google Scholar]
- Iannace, G.; Ciaburro, G.; Trematerra, A. Fault Diagnosis for UAV Blades using Artificial Neural Network. Robotics 2019, 8, 59. [Google Scholar] [CrossRef]
- Ghalamchi, B.; Mueller, M. Vibration-Based Propeller Fault Diagnosis for Multicopters. In Proceedings of the 2018 International Conference on Unmanned Aircraft Systems (ICUAS), Dallas, TX, USA, 12–15 June 2018; pp. 1041–1047. [Google Scholar]
- Bondyra, A.; Gasior, P.; Gardecki, S.; Kasinki, A. Fault Diagnosis and Condition Monitoring of UAV Rotor using Signal Processing. In Proceedings of the 2017 Signal Processing: Algorithms, Architectures, Arrangements, and Applications (SPA), Poznan, Poland, 22–24 September 2017; pp. 233–238. [Google Scholar]
- Banerjee, P.; Okolo, W.; Moore, A. In-Flight Detection of Vibration Anomalies in Unmanned Aerial Vehicles. J. Nondestruct. Eval. Diagn. Progn. Eng. Syst. 2020, 3, 041105. [Google Scholar] [CrossRef]
- Du, C.; Zhang, X.; Zhong, R.; Li, F.; Yu, F.; Rong, Y.; Gong, Y. Unmanned Aerial Vehicle Rotor Fault Diagnosis Based on Interval Sampling Reconstruction of Vibration Signals and a One-Dimensional Convolutional Neural Network Deep Learning Method. Meas. Sci. Technol. 2022, 33, 065003. [Google Scholar] [CrossRef]
- Ray, D.K.; Roy, T.; Chattopadhyay, S. Skewness Scanning for Diagnosis of a Small Inter-Turn Fault in Quadcopter’s Motor Based on Motor Current Signature Analysis. IEEE Sens. J. 2021, 21, 6952–6961. [Google Scholar] [CrossRef]
- Souza, J.S.; Bezerril, M.C.; Silva, M.A.; Veras, F.C.; Lima-Filho, A.; Ramos, J.G.; Brito, A.V. Motor Speed Estimation and Failure Detection of Small UAV using Density of Maxima. Front. Inf. Technol. Electron. Eng. 2021, 22, 1002–1009. [Google Scholar] [CrossRef]
- Veras, F.C.; Lima, T.L.V.; Souza, J.S.; Ramos, J.G.G.S.; Filho, A.C.L.; Brito, A.V. Eccentricity Failure Detection of Brushless DC Motors From Sound Signals Based on Density of Maxima. IEEE Access 2019, 7, 150318–150326. [Google Scholar] [CrossRef]
- Ambroziak, L.; Simha, A.; Pawluszewicz, E.; Kotta, Ü.; Bożko, A.; Kondratiuk, M. Motor Failure Tolerant Control System With Self Diagnostics for Unmanned Multirotors. In Proceedings of the 2019 24th International Conference on Methods and Models in Automation and Robotics (MMAR), Międzyzdroje, Poland, 26–29 August 2019; pp. 422–427. [Google Scholar]
- Magsino, E.R.; Say, M.F.; Tan, J.A. Achieving Complete UAV Delivery in the Presence of Motor Failures. In Proceedings of the 2020 IEEE 10th Symposium on Computer Applications & Industrial Electronics (ISCAIE), Penang, Malaysia, 18–19 April 2020; pp. 1–5. [Google Scholar]
- Hu, Z.; Zhu, J.; Wang, H. Experimental Research on UAV Stability based on Vibration Signal Measurement of UAV Motors. In Proceedings of the 2021 3rd International Symposium on Robotics & Intelligent Manufacturing Technology (ISRIMT), Changzhou, China, 24–26 September 2021; pp. 131–134. [Google Scholar]
- Pourpanah, F.; Zhang, B.; Ma, R.; Hao, Q. Anomaly Detection and Condition Monitoring of UAV Motors and Propellers. In Proceedings of the 2018 IEEE Sensors, New Delhi, India, 28–31 October 2018; pp. 1–3. [Google Scholar]
- Na, S.; Xumin, L.; Yong, G. Research on k-means Clustering Algorithm: An Improved k-means Clustering Algoritm. In Proceedings of the 2010 Third International Symposium on Intelligent Information Technology and Security Informatics, Jinggangshan, China, 2–4 April 2010; pp. 63–67. [Google Scholar]
Reference | UAV | Type of Failure | Algorithm | Findings |
---|---|---|---|---|
Arasanipalai et al., 2020 [21] | Quadcopter | Propeller Failure | Recurrent Neural Network (RNN) | Propeller failure was detected in 2.5 s by using an RNN for two and three working propellers in a quadcopter |
Bondyra et al., 2017 [25] | Quadcopter | Propeller Failure | Support Vector Machine (SVM) | The best performance label for failure detection is fast Fourier transform, even within 250 ms |
Cheng et al., 2019 [4] | Quadcopter | Motor and Propeller Failure | Self-Organizing Map (SOM) | Based on the confusion matrix, the SOM model has an accuracy of 99%, and recall of failure situation is 100% |
Dooraki et al., 2020 [22] | Quadcopter | Motor Failure | Fault-Tolerant Bio Inspired Flight Controller (FT-BFC) | FT-BFC maximizes the accumulated reward over time, and can reach the desired waypoint in a shorter time |
Keipour et al., 2020 [19] | Fixed-wing | Control Surfaces Failure (Engine, Aileron, Rudder, Elevator) | No algorithm presented, only dataset provided | The failure ground-truth message happens within 0.2 s after the exact moment of the fault |
Magsino et al., 2020 [32] | Octocopter | Motor Failure | Fuzzy Logic | The redundant flight recovery system is operational for Xodd and Xeven flight attitudes, providing effective angle responses |
Ray et al., 2021 [28] | Quadcopter | Motor Failure | Skewness Scanning | Parameters SA5 and SA6 for pitch 1 and SA5, SA6, and SA8 for yaw have precise skewness values and minimal errors for motor short turns |
Zhang et al., 2021 [7] | Quadcopter | Propeller Failure | Long- and Short-Term Memory (LSTM) and Back Propagation (BP) | The LSTM model outperforms the BP model in time series classification, with accuracies of 96% and 65%, respectively |
Dimension | Parameter Set |
---|---|
1 | aY |
1 | aZ |
2 | gY-aY |
2 | gZ-aZ |
3 | gX-gZ-aX |
3 | gY-gZ-aZ |
4 | gY-gZ-aY-aZ |
5 | gX-gY-gZ-aY-aZ |
6 | gX-gY-gZ-aX-aY-aZ |
Clustering Label | Failure State | Faulty State | Normal State | |
---|---|---|---|---|
Actual Label | ||||
Failure State | FF | FA | FN | |
Faulty State | AF | AA | AN | |
Normal State | NF | NA | NN |
Clustering Prediction | Failure State | Faulty State | Normal State | Clustering Prediction | Failure State | Faulty State | Normal State | ||
---|---|---|---|---|---|---|---|---|---|
Actual Label | Actual Label | ||||||||
Failure State | 83 | 124 | 43 | Failure State | 141 | 109 | 0 | ||
Faulty State | 53 | 120 | 77 | Faulty State | 53 | 197 | 0 | ||
Normal State | 1 | 58 | 191 | Normal State | 0 | 12 | 238 | ||
(a) | (b) | ||||||||
Clustering Prediction | Failure State | Faulty State | Normal State | Clustering Prediction | Failure State | Faulty State | Normal State | ||
Actual Label | Actual Label | ||||||||
Failure State | 170 | 80 | 0 | Failure State | 231 | 19 | 0 | ||
Faulty State | 41 | 174 | 35 | Faulty State | 16 | 217 | 17 | ||
Normal State | 0 | 22 | 228 | Normal State | 0 | 7 | 243 | ||
(c) | (d) | ||||||||
Clustering Prediction | Failure State | Faulty State | Normal State | Clustering Prediction | Failure State | Faulty State | Normal State | ||
Actual Label | Actual Label | ||||||||
Failure State | 149 | 101 | 0 | Failure State | 201 | 49 | 0 | ||
Faulty State | 49 | 129 | 72 | Faulty State | 37 | 171 | 42 | ||
Normal State | 0 | 12 | 238 | Normal State | 0 | 9 | 241 | ||
(e) | (f) | ||||||||
Clustering Prediction | Failure State | Faulty State | Normal State | Clustering Prediction | Failure State | Faulty State | Normal State | ||
Actual Label | Actual Label | ||||||||
Failure State | 172 | 78 | 0 | Failure State | 180 | 70 | 0 | ||
Faulty State | 49 | 161 | 40 | Faulty State | 41 | 159 | 50 | ||
Normal State | 0 | 3 | 247 | Normal State | 0 | 11 | 239 | ||
(g) | (h) | ||||||||
Clustering Prediction | Failure State | Faulty State | Normal State | ||||||
Actual Label | |||||||||
Failure State | 201 | 49 | 0 | ||||||
Faulty State | 37 | 171 | 42 | ||||||
Normal State | 0 | 9 | 241 | ||||||
(i) |
n | Parameter Set | Recall | Precision | Accuracy | F-Score |
---|---|---|---|---|---|
1 | aY | 0.606 | 0.332 | 0.525 | 0.429 |
1 | aZ | 0.727 | 0.564 | 0.768 | 0.635 |
2 | gY-aY | 0.806 | 0.680 | 0.763 | 0.738 |
2 | gZ-aZ | 0.935 | 0.924 | 0.921 | 0.930 |
3 | gX-gZ-aX | 0.753 | 0.596 | 0.688 | 0.665 |
3 | gY-gZ-aZ | 0.844 | 0.804 | 0.817 | 0.824 |
4 | gY-gZ-aY-aZ | 0.778 | 0.688 | 0.773 | 0.730 |
5 | gX-gY-gZ-aY-aZ | 0.814 | 0.720 | 0.771 | 0.764 |
6 | gX-gY-gZ-aX-aY-aZ | 0.766 | 0.680 | 0.757 | 0.720 |
Flight | Blue LED | Yellow LED | Red LED | |
---|---|---|---|---|
F1 | Trial 1 | 95 | 5 | 0 |
Trial 2 | 94 | 6 | 0 | |
Trial 3 | 94 | 6 | 0 | |
F2 | Trial 1 | 2 | 94 | 4 |
Trial 2 | 4 | 92 | 4 | |
Trial 3 | 3 | 93 | 4 | |
F3 | Trial 1 | 0 | 8 | 92 |
Trial 2 | 0 | 7 | 89 | |
Trial 3 | 0 | 11 | 93 |
Flight | Trial 1 | Trial 2 | Trial 3 |
---|---|---|---|
F1 | 0.95 | 0.94 | 0.94 |
F2 | 0.94 | 0.92 | 0.93 |
F3 | 0.92 | 0.89 | 0.93 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Cabahug, J.; Eslamiat, H. Failure Detection in Quadcopter UAVs Using K-Means Clustering. Sensors 2022, 22, 6037. https://doi.org/10.3390/s22166037
Cabahug J, Eslamiat H. Failure Detection in Quadcopter UAVs Using K-Means Clustering. Sensors. 2022; 22(16):6037. https://doi.org/10.3390/s22166037
Chicago/Turabian StyleCabahug, James, and Hossein Eslamiat. 2022. "Failure Detection in Quadcopter UAVs Using K-Means Clustering" Sensors 22, no. 16: 6037. https://doi.org/10.3390/s22166037
APA StyleCabahug, J., & Eslamiat, H. (2022). Failure Detection in Quadcopter UAVs Using K-Means Clustering. Sensors, 22(16), 6037. https://doi.org/10.3390/s22166037