{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,2]],"date-time":"2025-08-02T14:33:11Z","timestamp":1754145191347,"version":"3.41.2"},"reference-count":59,"publisher":"Association for Computing Machinery (ACM)","issue":"ISSTA","funder":[{"DOI":"10.13039\/501100012166","name":"National Key Research and Development Program of China","doi-asserted-by":"publisher","award":["2022YFB4501803"],"award-info":[{"award-number":["2022YFB4501803"]}],"id":[{"id":"10.13039\/501100012166","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["62472100"],"award-info":[{"award-number":["62472100"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2025,6,22]]},"abstract":"<jats:p>Flight control programs are widely used in unmanned aerial vehicles (UAVs) to manage and maintain UAVs\u2019 flying behaviors dynamically. These flight control programs include a PID control module that takes three user-configurable PID parameters: Proportional (P), Integral (I), and Derivative (D). Users can also adjust these PID parameters during flight to suit the needs of various flight tasks. However, flight control programs do not have sufficient safety checks on the user-provided PID parameters, leading to a severe vulnerability of UAV\u2014input validation bug. It happens when the user misconfigures PID parameters and causes the UAV to enter a dangerous state, such as deviation from the expected path, loss of control, or even crash.<\/jats:p>\n          <jats:p>Prior works use random testing approaches like fuzzing to identify invalid PID parameters from user input. However, they are not effective in the three-dimensional search space of PID parameters. Meanwhile, each dynamic execution of the UAV test is very expensive, further affecting the performance of random testing.<\/jats:p>\n          <jats:p>In this work, we address the problem of PID parameter misconfiguration by combining the Routh-Hurwitz stability criterion with coordinate search, introducing a method called RouthSearch. Instead of identifying misconfigured PID parameters in an ad-hoc fashion, RouthSearch principledly determines valid ranges for three-dimensional PID parameters. We first leverage the Routh-Hurwitz Criterion to identify a theoretical PID parameter boundary. We then refine the boundary using an efficient coordinate search. The valid range of three-dimensional PID parameters determined by RouthSearch can filter out misconfigured PID parameters from users during flight and further help to discover logical bugs in popular flight control programs.<\/jats:p>\n          <jats:p>We evaluated RouthSearch across eight flight modes in two popular flight control programs, PX4 and ArduPilot. The results show that RouthSearch can determine the valid ranges of the three-dimensional PID parameters with an accuracy of 92. 0% when compared to the ground truth. In terms of the total number of misconfigured PID parameters, RouthSearch discovers 3,853 sets of PID misconfigurations within 48 hours, while the STOA work PGFuzz only discovers 449 sets of PID misconfigurations, significantly outperforming prior works by 8.58 times. Additionally, our method helps to detect three bugs in ArduPilot and PX4.<\/jats:p>","DOI":"10.1145\/3728904","type":"journal-article","created":{"date-parts":[[2025,6,22]],"date-time":"2025-06-22T10:53:21Z","timestamp":1750589601000},"page":"640-662","source":"Crossref","is-referenced-by-count":0,"title":["RouthSearch: Inferring PID Parameter Specification for Flight Control Program by Coordinate Search"],"prefix":"10.1145","volume":"2","author":[{"ORCID":"https:\/\/orcid.org\/0009-0008-1807-2746","authenticated-orcid":false,"given":"Siao","family":"Wang","sequence":"first","affiliation":[{"name":"Fudan University, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-1193-0696","authenticated-orcid":false,"given":"Zhen","family":"Dong","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-5826-343X","authenticated-orcid":false,"given":"Hui","family":"Li","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8107-0590","authenticated-orcid":false,"given":"Liwei","family":"Shen","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3376-2581","authenticated-orcid":false,"given":"Xin","family":"Peng","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6655-0468","authenticated-orcid":false,"given":"Dongdong","family":"She","sequence":"additional","affiliation":[{"name":"Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,6,22]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"ArduPilot Dev Team. 2024. ArduPilot - Versatile Trusted Open. https:\/\/ardupilot.org\/ Accessed: 2024-10-29"},{"key":"e_1_2_1_2_1","unstructured":"ArduPilot Dev Team. 2024. SITL Simulator (Software in the Loop). https:\/\/ardupilot.org\/dev\/docs\/sitl-simulator-software-in-the-loop.html Accessed: 2024-10-29"},{"key":"e_1_2_1_3_1","unstructured":"ArduPilot Discourse. 2024. Wild ride after successful Auto-tune - Copter 4.4 - ArduPilot Discourse. https:\/\/discuss.ardupilot.org\/t\/wild-ride-after-successful-auto-tune\/113718 Accessed: 2024-10-29"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/B978-0-08-040185-0.50014-2"},{"key":"e_1_2_1_5_1","unstructured":"Australian Transport Safety Bureau (ATSB). 2023. Docklands drone swarm accident. https:\/\/www.atsb.gov.au\/media\/2023\/docklands-drone-swarm-accident Accessed: 2023-11-17"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICUAS51884.2021.9476821"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00093"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3372297.3417249"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.3390\/agronomy11020203"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3564821"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.3182\/20080706-5-KR-1001.00298"},{"key":"e_1_2_1_12_1","unstructured":"FossilRider. 2024. Unstable Flight While Attempting PID Tweak Ending In Catastrophic Crash. https:\/\/discuss.ardupilot.org\/t\/unstable-flight-while-attempting-pid-tweak-ending-in-catastrophic-crash\/118665 Accessed: 2023-10-26"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.21203\/rs.3.rs-2354753\/v1"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2024.3354739"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510084"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/1211\/1\/012039"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/9.661607"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.11591\/ijpeds.v10.i2.pp822-830"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.engappai.2023.105938"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1155\/2014\/791230"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.isatra.2020.12.033"},{"key":"e_1_2_1_22_1","first-page":"141","article-title":"Cohen-coon PID tuning method; A better option to Ziegler Nichols-PID tuning method","volume":"2","author":"Joseph EA","year":"2017","unstructured":"EA Joseph and OO Olaiya. 2017. Cohen-coon PID tuning method; A better option to Ziegler Nichols-PID tuning method. ENginerring Research, 2, 11 (2017), 141\u2013145.","journal-title":"ENginerring Research"},{"key":"e_1_2_1_23_1","volume-title":"Particle Swarm Optimization aided PID gait controller design for a humanoid robot. ISA transactions, 114","author":"Kashyap Abhishek Kumar","year":"2021","unstructured":"Abhishek Kumar Kashyap and Dayal R Parhi. 2021. Particle Swarm Optimization aided PID gait controller design for a humanoid robot. ISA transactions, 114 (2021), 306\u2013330."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2021.24096"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549164"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498361.3538938"},{"key":"e_1_2_1_27_1","volume-title":"Junghwan Rhee, Fan Fei, Zhan Tu, Gregory Walkup, Xiangyu Zhang, Xinyan Deng, and Dongyan Xu.","author":"Kim Taegyu","year":"2019","unstructured":"Taegyu Kim, Chung Hwan Kim, Junghwan Rhee, Fan Fei, Zhan Tu, Gregory Walkup, Xiangyu Zhang, Xinyan Deng, and Dongyan Xu. 2019. RVFUZZER: finding input validation bugs in robotic vehicles through control-guided testing. SEC\u201919. USENIX Association, USA. 425\u2013442. isbn:9781939133069"},{"key":"e_1_2_1_28_1","volume-title":"Specifying real-time properties with metric temporal logic. Real-time systems, 2, 4","author":"Koymans Ron","year":"1990","unstructured":"Ron Koymans. 1990. Specifying real-time properties with metric temporal logic. Real-time systems, 2, 4 (1990), 255\u2013299."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.arcontrol.2023.100900"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.eswa.2021.114937"},{"key":"e_1_2_1_31_1","unstructured":"Graeme Massie. 2022. Amazon delivery drone sparked fire when it crashed into Oregon field says FAA. https:\/\/www.independent.co.uk\/news\/world\/americas\/amazon-delivery-drone-field-fire-b2043644.html Accessed: 2024-10-29"},{"key":"e_1_2_1_32_1","volume-title":"IEEE-international conference on advances in engineering, science and management (ICAESM-2012)","author":"Meshram PM","year":"2012","unstructured":"PM Meshram and Rohit G Kanojiya. 2012. Tuning of PID controller using Ziegler-Nichols method for speed control of DC motor. In IEEE-international conference on advances in engineering, science and management (ICAESM-2012). IEEE, Nagapattinam, India. 117\u2013122."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3264417"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.3390\/environsciproc2023026135"},{"volume-title":"Modern control engineering","author":"Ogata Katsuhiko","key":"e_1_2_1_35_1","unstructured":"Katsuhiko Ogata. 2020. Modern control engineering. Prentice Hall, New Jersey, USA."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3607199.3607221"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/SEAMS59076.2023.00030"},{"key":"e_1_2_1_38_1","unstructured":"PX4 Autopilot. 2024. jMAVSim with SITL. https:\/\/docs.px4.io\/main\/en\/sim_jmavsim\/ Accessed: 2024-10-29"},{"key":"e_1_2_1_39_1","unstructured":"PX4 Autopilot. 2024. Open Source Autopilot for Drones - PX4 Autopilot. https:\/\/px4.io\/ Accessed: 2024-10-29"},{"key":"e_1_2_1_40_1","unstructured":"sauravhobyy. 2023. 20kg payload quad copter Auto Tune Results- advise changes. https:\/\/discuss.ardupilot.org\/t\/20kg-payload-quad-copter-auto-tune-results-advise-changes\/105268 Accessed: 2023-10-26"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2023.24217"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/TIE.2011.2161056"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICUAS60882.2024.10557032"},{"key":"e_1_2_1_44_1","unstructured":"Corrado Steri. 2019. 24KG Quad light crash after manual PID tuning advice needed. https:\/\/discuss.ardupilot.org\/t\/24kg-quad-light-crash-after-manual-pid-tuning-advice-needed\/39953 Accessed: 2023-10-26"},{"key":"e_1_2_1_45_1","unstructured":"ArduPilot Dev Team. 2024. AutoTune Mode \u2014 Copter Documentation. https:\/\/ardupilot.org\/copter\/docs\/autotune.html Accessed: 2024-10-29"},{"key":"e_1_2_1_46_1","unstructured":"ArduPilot Dev Team. 2024. Brake Mode \u2014 Copter Documentation. https:\/\/ardupilot.org\/copter\/docs\/brake-mode.html Accessed: 2024-10-29"},{"key":"e_1_2_1_47_1","unstructured":"ArduPilot Dev Team. 2024. Circle Mode \u2014 Copter Documentation. https:\/\/ardupilot.org\/copter\/docs\/circle-mode.html Accessed: 2024-10-29"},{"key":"e_1_2_1_48_1","unstructured":"ArduPilot Development Team. 2024. RTL Mode Documentation. https:\/\/ardupilot.org\/copter\/docs\/rtl-mode.html Accessed: 2024-05-16"},{"key":"e_1_2_1_49_1","unstructured":"ArduPilot Dev Team. 2024. ZigZag Mode \u2014 Copter Documentation. https:\/\/ardupilot.org\/copter\/docs\/zigzag-mode.html Accessed: 2024-10-29"},{"key":"e_1_2_1_50_1","unstructured":"PX4 Autopilot Dev Team. 2024. Hold Mode (Multicopter). https:\/\/docs.px4.io\/main\/en\/flight_modes_mc\/hold.html Accessed: 2024-10-29"},{"key":"e_1_2_1_51_1","unstructured":"PX4 Autopilot Dev Team. 2024. Land Mode (Multicopter). https:\/\/docs.px4.io\/main\/en\/flight_modes_mc\/land.html Accessed: 2024-10-29"},{"key":"e_1_2_1_52_1","unstructured":"PX4 Autopilot Dev Team. 2024. Orbit Mode (Multicopter). https:\/\/docs.px4.io\/main\/en\/flight_modes_mc\/orbit.html Accessed: 2024-10-29"},{"key":"e_1_2_1_53_1","unstructured":"PX4 Autopilot Dev Team. 2024. Return Mode (Multicopter). https:\/\/docs.px4.io\/main\/en\/flight_modes_mc\/return.html Accessed: 2024-05-16"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468559"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-981-15-6978-4_108"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10107-015-0892-3"},{"key":"e_1_2_1_57_1","volume-title":"2009 International Conference on Electrical and Electronics Engineering-ELECO","author":"Yeroglu Celaleddin","year":"2009","unstructured":"Celaleddin Yeroglu, Cem Onat, and Nusret Tan. 2009. A new tuning method for PI \u03bb D \u03bc controller. In 2009 International Conference on Electrical and Electronics Engineering-ELECO 2009. IEEE, Bursa, Turkey. II\u2013312."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678832"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11432-016-0879-3"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3728904","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,16]],"date-time":"2025-07-16T16:45:22Z","timestamp":1752684322000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3728904"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,22]]},"references-count":59,"journal-issue":{"issue":"ISSTA","published-print":{"date-parts":[[2025,6,22]]}},"alternative-id":["10.1145\/3728904"],"URL":"https:\/\/doi.org\/10.1145\/3728904","relation":{},"ISSN":["2994-970X"],"issn-type":[{"type":"electronic","value":"2994-970X"}],"subject":[],"published":{"date-parts":[[2025,6,22]]}}}