ABSTRACT
Self-driving cars, or Autonomous Vehicles (AVs), are increasingly becoming an integral part of our daily life. About 50 corporations are actively working on AVs, including large companies such as Google, Ford, and Intel. Some AVs are already operating on public roads, with at least one unfortunate fatality recently on record. As a result, understanding bugs in AVs is critical for ensuring their security, safety, robustness, and correctness. While previous studies have focused on a variety of domains (e.g., numerical software; machine learning; and error-handling, concurrency, and performance bugs) to investigate bug characteristics, AVs have not been studied in a similar manner. Recently, two software systems for AVs, Baidu Apollo and Autoware, have emerged as frontrunners in the open-source community and have been used by large companies and governments (e.g., Lincoln, Volvo, Ford, Intel, Hitachi, LG, and the US Department of Transportation). From these two leading AV software systems, this paper describes our investigation of 16,851 commits and 499 AV bugs and introduces our classification of those bugs into 13 root causes, 20 bug symptoms, and 18 categories of software components those bugs often affect. We identify 16 major findings from our study and draw broader lessons from them to guide the research community towards future directions in software bug detection, localization, and repair.
- August 2019. 46 Corporations Working On Autonomous Vehicles. https://www.cbinsights.com/research/autonomous-driverless-vehicles-corporations-list/.Google Scholar
- August 2019. Apollo Cyber RT. https://github.com/ApolloAuto/apollo/tree/master/cyber.Google Scholar
- August 2019. Autoware: Open-source software for urban autonomous driving. https://github.com/CPFL/Autoware.Google Scholar
- August 2019. Baidu Apollo: An open autonomous driving platform. http://apollo.auto/.Google Scholar
- August 2019. Baidu hits the gas on autonomous vehicles with Volvo and Ford deals. https://techcrunch.com/2018/11/01/baidu-volvo-ford-autonomous-driving/.Google Scholar
- August 2019. Baidu starts mass production of autonomous buses. https://www.dw.com/en/baidu-starts-mass-production-of-autonomous-buses/a-44525629.Google Scholar
- August 2019. Bazel. https://bazel.build/.Google Scholar
- August 2019. CMake. https://cmake.org/.Google Scholar
- August 2019. A Comprehensive Study of Autonomous Vehicle Bugs - Artifact Website. http://tiny.cc/cps_bug_analysis.Google Scholar
- August 2019. Fatal Tesla Crash Exposes Gap In Automaker's Use Of Car Data. https://www.forbes.com/sites/alanohnsman/2018/04/16/tesla-autopilot-fatal-crash-waze-hazard-alerts/#7bb735fb5572.Google Scholar
- August 2019. Github: The CARMA platform. https://github.com/usdot-fhwa-stol/CARMAPlatform.Google Scholar
- August 2019. Self-Driving Tesla Was Involved in Fatal Crash, U.S. Says. https://www.nytimes.com/2016/07/01/business/self-driving-tesla-fatal-crash-investigation.html.Google Scholar
- August 2019. Self-Driving Uber Car Kills Pedestrian in Arizona, Where Robots Roam. https://www.nytimes.com/2018/03/19/technology/uber-driverless-fatality.html.Google Scholar
- August 2019. Tesla: Autopilot was on during deadly Mountain View crash. https://www.mercurynews.com/2018/03/30/tesla-autopilot-was-on-during-deadly-mountain-view-crash/.Google Scholar
- August 2019. Tesla driver dies in first fatal crash while using autopilot mode. https://www.theguardian.com/technology/2016/jun/30/tesla-autopilot-death-self-driving-car-elon-musk.Google Scholar
- August 2019. The 18 Companies Most Likely to Get Self-driving Dars on the Road First. https://www.businessinsider.com/the-companies-most-likely-to-get-driverless-cars-on-the-road-first-2017-4.Google Scholar
- August 2019. There are some scary similarities between Tesla's deadly crashes linked to Autopilot. https://qz.com/783009/the-scary-similarities-between-teslas-tsla-deadly-autopilot-crashes/.Google Scholar
- August 2019. Two Years On, A Father Is Still Fighting Tesla Over Autopilot And His Son's Fatal Crash. https://jalopnik.com/two-years-on-a-father-is-still-fighting-tesla-over-aut-1823189786.Google Scholar
- August 2019. Uber Self-Driving Car Crash: What Really Happened. https://www.forbes.com/sites/meriameberboucha/2018/05/28/uber-self-driving-car-crash-what-really-happened.Google Scholar
- August 2019. Udacity: Self-Driving Fundamentals: Featuring Apollo. https://www.udacity.com/course/self-driving-car-fundamentals-featuring-apollo-ud0419.Google Scholar
- August 2019. USDOT: The CARMA platform. https://highways.dot.gov/research/research-programs/operations/CARMA.Google Scholar
- August 2019. Waymo Launches Self-driving car Service Waymo One. https://techcrunch.com/2018/12/05/waymo-launches-self-driving-car-service-waymo-one.Google Scholar
- August 2019. Waymo's autonomous cars have driven 8 million miles on public roads. https://www.theverge.com/2018/7/20/17595968/waymo-self-driving-cars-8-million-miles-testing.Google Scholar
- August 2019. You can take a ride in a self-driving Lyft during CES. https://www.theverge.com/2018/1/2/16841090/lyft-aptiv-self-driving-car-ces-2018.Google Scholar
- Karl J Åström and Björn Wittenmark. 2013. Adaptive control. Courier Corporation.Google Scholar
- Peter Biber and Wolfgang Straßer. 2003. The normal distributions transform: A new approach to laser scan matching. In Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003)(Cat. No. 03CH37453), Vol. 3. IEEE, 2743--2748.Google ScholarCross Ref
- N. Cacho, E. A. Barbosa, J. Araujo, F. Pranto, A. Garcia, T. Cesar, E. Soares, A. Cassio, T. Filipe, and I. Garcia. 2014. How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C# Applications. In 2014 IEEE International Conference on Software Maintenance and Evolution. 31--40. Google ScholarDigital Library
- Yulong Cao, Chaowei Xiao, Dawei Yang, Jing Fang, Ruigang Yang, Mingyan Liu, and Bo Li. 2019. Adversarial Objects Against LiDAR-Based Autonomous Driving Systems. arXiv preprint arXiv:1907.05418 (2019).Google Scholar
- R. Coelho, L. Almeida, G. Gousios, and A. v Deursen. 2015. Unveiling Exception Handling Bug Hazards in Android Based on GitHub and Google Code Issues. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. 134--145. Google ScholarCross Ref
- SAE On-Road Automated Vehicle Standards Committee et al. 2014. Taxonomy and definitions for terms related to on-road motor vehicle automated driving systems. SAE Standard J 3016 (2014), 1--16.Google Scholar
- Melvin E Conway. 1968. How do committees invent. Datamation 14, 4 (1968), 28--31.Google Scholar
- Anthony Di Franco, Hui Guo, and Cindy Rubio-Gonzalez. 2017. A Comprehensive Study of Real-world Numerical Bug Characteristics. In Proceedings of the 32Nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2017). IEEE Press, Piscataway, NJ, USA, 509--519. http://dl.acm.org/citation.cfm?id=3155562.3155627 event-place: Urbana-Champaign, IL, USA.Google ScholarCross Ref
- Kevin Eykholt, Ivan Evtimov, Earlence Fernandes, Bo Li, Amir Rahmati, Florian Tramer, Atul Prakash, Tadayoshi Kohno, and Dawn Song. 2018. Physical Adversarial Examples for Object Detectors. In USENIX Workshop on Offensive Technologies (WOOT).Google Scholar
- Kevin Eykholt, Ivan Evtimov, Earlence Fernandes, Bo Li, Amir Rahmati, Chaowei Xiao, Atul Prakash, Tadayoshi Kohno, and Dawn Song. 2017. Robust physicalworld attacks on deep learning models. arXiv preprint arXiv:1707.08945 (2017).Google Scholar
- Carlos E Garcia, David M Prett, and Manfred Morari. 1989. Model predictive control: theory and practice - a survey. Automatica 25, 3 (1989), 335--348.Google ScholarDigital Library
- Ali Ghanbari, Samuel Benton, and Lingming Zhang. 2019. Practical program repair via bytecode mutation. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 19--30.Google ScholarDigital Library
- Dirk Holz, Alexandru E Ichim, Federico Tombari, Radu B Rusu, and Sven Behnke. 2015. Registration with the point cloud library: A modular framework for aligning in 3-D. IEEE Robotics & Automation Magazine 22, 4 (2015), 110--124.Google ScholarCross Ref
- Md Johirul Islam, Giang Nguyen, Rangeet Pan, and Hridesh Rajan. 2019. A Comprehensive Study on Deep Learning Bug Characteristics. arXiv:1906.01388 [cs] (June 2019). http://arxiv.org/abs/1906.01388 arXiv: 1906.01388.Google Scholar
- Guoliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu. 2012. Understanding and Detecting Real-world Performance Bugs. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '12). ACM, New York, NY, USA, 77--88. event-place: Beijing, China. Google ScholarDigital Library
- Tanakorn Leesatapornwongsa, Jeffrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. 2016. TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16). ACM, New York, NY, USA, 517--530. event-place: Atlanta, Georgia, USA. Google ScholarDigital Library
- Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XIII). ACM, New York, NY, USA, 329--339. event-place: Seattle, WA, USA. Google ScholarDigital Library
- Manish Motwani, Sandhya Sankaranarayanan, René Just, and Yuriy Brun. 2018. Do automated program repair techniques repair hard and important bugs? Empirical Software Engineering 23, 5 (01 Oct 2018), 2901--2947. Google ScholarDigital Library
- Nvidia. 2010. CUDA Programming guide.Google Scholar
- Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y Ng. 2009. ROS: an open-source Robot Operating System. In ICRA workshop on open source software, Vol. 3. Kobe, Japan, 5.Google Scholar
- Carolyn B. Seaman, Forrest Shull, Myrna Regardie, Denis Elbert, Raimund L. Feldmann, Yuepu Guo, and Sally Godfrey. 2008. Defect Categorization: Making Use of a Decade of Widely Varying Historical Data. In Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM '08). ACM, New York, NY, USA, 149--157. Google ScholarDigital Library
- Marija Selakovic and Michael Pradel. 2016. Performance Issues and Optimizations in JavaScript: An Empirical Study. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, USA, 61--72. event-place: Austin, Texas. Google ScholarDigital Library
- F. Thung, S. Wang, D. Lo, and L. Jiang. 2012. An Empirical Study of Bugs in Machine Learning Systems. In 2012 IEEE 23rd International Symposium on Software Reliability Engineering. 271--280. Google ScholarDigital Library
- Yuchi Tian, Kexin Pei, Suman Jana, and Baishakhi Ray. 2018. Deeptest: Automated Testing of Deep-neural-network-driven Autonomous Cars. In International Conference on Software Engineering (ICSE).Google ScholarDigital Library
- Yuchi Tian and Baishakhi Ray. 2017. Automatically Diagnosing and Repairing Error Handling Bugs in C. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 752--762. event-place: Paderborn, Germany. Google ScholarDigital Library
- Bogdan Vasilescu, Yue Yu, Huaimin Wang, Premkumar Devanbu, and Vladimir Filkov. 2015. Quality and productivity outcomes relating to continuous integration in GitHub. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM, 805--816.Google ScholarDigital Library
- Zhiyuan Wan, David Lo, Xin Xia, and Liang Cai. 2017. Bug characteristics in blockchain systems: a large-scale empirical study. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE, 413--424.Google ScholarDigital Library
- Greg Welch and Gary Bishop. 1995. An introduction to the Kalman Filter. (1995).Google Scholar
- X. Xia, L. Bao, D. Lo, and S. Li. 2016. "Automated Debugging Considered Harmful" Considered Harmful: A User Study Revisiting the Usefulness of Spectra-Based Fault Localization Techniques with Professionals Using Real Bugs from Large Systems. In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). 267--278. Google ScholarCross Ref
- Mengshi Zhang, Yuqun Zhang, Lingming Zhang, Cong Liu, and Sarfraz Khurshid. 2018. DeepRoad: GAN-based Metamorphic Testing and Input Validation Framework for Autonomous Driving Systems. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018). ACM, New York, NY, USA, 132--142. Google ScholarDigital Library
- Yuhao Zhang, Yifan Chen, Shing-Chi Cheung, Yingfei Xiong, and Lu Zhang. 2018. An Empirical Study on TensorFlow Program Bugs. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018). ACM, New York, NY, USA, 129--140. event-place: Amsterdam, Netherlands. Google ScholarDigital Library
- Yue Zhao, Hong Zhu, Ruigang Liang, Qintao Shen, Shengzhi Zhang, and Kai Chen. 2018. Seeing isn't Believing: Practical Adversarial Attack Against Object Detectors. arXiv preprint arXiv:1812.10217 (2018).Google Scholar
- Hucheng Zhou, Jian-Guang Lou, Hongyu Zhang, Haibo Lin, Haoxiang Lin, and Tingting Qin. 2015. An empirical study on quality issues of production big data platform. In Proceedings of the 37th International Conference on Software Engineering-Volume 2. IEEE Press, 17--26.Google ScholarDigital Library
- A comprehensive study of autonomous vehicle bugs
Recommendations
Motion planning of autonomous vehicles in a non-autonomous vehicle environment without speed lanes
Planning is one of the key problems for autonomous vehicles operating in road scenarios. Present planning algorithms operate with the assumption that traffic is organised in predefined speed lanes, which makes it impossible to allow autonomous vehicles ...
A Macroscopic Study on Dedicated Highway Lanes for Autonomous Vehicles
Computational Science – ICCS 2019AbstractThe introduction of Autonomous Vehicles (AVs) will have far-reaching effects on road traffic in cities and on highways. The implementation of Automated Highway Systems (AHS), possibly with a dedicated lane only for AVs, is believed to be a ...
Development of a robotic driver for autonomous vehicle following
This paper presents the development of autonomous control of a passenger vehicle for vehicle following using a robotic driver. The aim is to have a modular and transferable device that can autonomously control a standard passenger car. The robot ...
Comments