Abstract
Openpilot is a vast open-source semi-automated driving system developed by comma.ai, with 200+ contributors and 750K lines of code according to the OpenHub open-source community-tracking portal. On the one hand, the documentation available gives insights on what Openpilot is capable of doing, how to install it and how people can contribute to it, while the development team posts periodically update on the company’s blog on the state of the project and implementation of new features. On the other hand, this material does little in helping newcomers to embrace the technology with near-zero knowledge over its intended programming model. What is more, not having access to closed-source autonomous-driving framworks does not warrant an appropriate architectural analysis of the framework, the decisions to be made, and the concerns typically emerging in such a decision-making process. This study addresses this gap by exploiting mixed-methods research, featuring (a) an ethnographical study of the community’s operations and (b) a reverse engineering of the OpenPilot codebase both from a structure and operations perspective. This paper is intended as an early-stage adopter study for those software designers, operators, policy-makers and other practitioners aiming at embracing the aforementioned framework and programming model for their own professional endeavours.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
a larger and browsable version of this same figure is available online: https://tinyurl.com/ECSA-openpilot.
- 7.
- 8.
- 9.
Note that if Thneed is used, a full execution is required only the first time since then the outputs are recorded and can be used to make faster predictions.
- 10.
- 11.
The authors would like to thank Mr. Francesco Fontana for his invaluable help in preparing the materials conveyed in this manuscript.
References
Dajsuren, Y., van den Brand, M.: Automotive software engineering: past, present, and future. In: Automotive Systems and Software Engineering, pp. 3–8. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-12157-0_1
AUTOSAR: Guidelines for the use of the C++14 Language in Critical and Safety-related Systems. AUTOSAR, 839 edn. (2017)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. SEI series in software engineering, Addison-Wesley (2003)
Cipresso, T., Stamp, M.: Software Reverse Engineering. In: Stavroulakis, P., Stamp, M. (eds.) Handbook of Information and Communication Security, pp. 659–696. Springer, Berlin, Heidelberg (2010). https://doi.org/10.1007/978-3-642-04117-4_31
Djuric, D., Devedzic, V., Gasevic, D.: Adopting software engineering trends in AI. IEEE Intell. Syst. 22(1), 59–66 (2007)
Krippendorff, K.: Content Analysis: An Introduction to Its Methodology (second edition). Sage Publications (2004)
Kruchten, P.: The 4+1 view model of architecture. IEEE Softw. 12(6), 42–50 (1995)
Lee, H.H.S., Clemons, J.: Automotive computing. IEEE Micro. 38(1), 29–30 (2018), http://dblp.uni-trier.de/db/journals/micro/micro38.html#LeeC18
Roca, J.L.: Microelectron. Reliab. 36(5), 609–620 (1996)
Tamburri, D.A., Palomba, F., Kazman, R.: Success and failure in software engineering: a followup systematic literature review. IEEE Trans. Eng. Manage. 68(2), 599–611 (2021). https://doi.org/10.1109/TEM.2020.2976642
Tamburri, D.A., Lago, P., Muccini, H.: Leveraging software architectures through the ISO/IEC 42010 standard: a feasibility study. In: Proper, E., Lankhorst, M.M., Schönherr, M., Barjis, J., Overbeek, S. (eds.) TEAR 2010. LNBIP, vol. 70, pp. 71–85. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16819-2_6
Teddlie, C., Tashakkori, A.: Foundations of Mixed Methods Research : Integrating Quantitative and Qualitative Approaches in the Social and Behavioral Sciences. SAGE, Los Angeles (2009)
Zhou, X., Huang, H., Zhang, H., Huang, X., Shao, D., Zhong, C.: A cross-company ethnographic study on software teams for DevOps and microservices: organization, benefits, and issues. In: 2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP), pp. 1–10. Association for Computing Machinery, New York (2022)
Zimmermann, T.: Card-sorting. In: Menzies, T., Williams, L.A., Zimmermann, T. (eds.) Perspectives on Data Science for Software Engineering, pp. 137–141. Academic Press (2016), http://dblp.uni-trier.de/db/books/collections/MWZ2016.html#000116
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Baresi, L., Tamburri, D.A. (2023). Architecting Artificial Intelligence for Autonomous Cars: The OpenPilot Framework. In: Tekinerdogan, B., Trubiani, C., Tibermacine, C., Scandurra, P., Cuesta, C.E. (eds) Software Architecture. ECSA 2023. Lecture Notes in Computer Science, vol 14212. Springer, Cham. https://doi.org/10.1007/978-3-031-42592-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-031-42592-9_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-42591-2
Online ISBN: 978-3-031-42592-9
eBook Packages: Computer ScienceComputer Science (R0)