  Autonomous vehicles are the culmination of advances in many areas such as
sensor technologies, artificial intelligence (AI), networking, and more. This
paper will introduce the reader to the technologies that build autonomous
vehicles. It will focus on open-source tools and libraries for autonomous
vehicle development, making it cheaper and easier for developers and
researchers to participate in the field. The topics covered are as follows.
First, we will discuss the sensors used in autonomous vehicles and summarize
their performance in different environments, costs, and unique features. Then
we will cover Simultaneous Localization and Mapping (SLAM) and algorithms for
each modality. Third, we will review popular open-source driving simulators, a
cost-effective way to train machine learning models and test vehicle software
performance. We will then highlight embedded operating systems and the security
and development considerations when choosing one. After that, we will discuss
Vehicle-to-Vehicle (V2V) and Internet-of-Vehicle (IoV) communication, which are
areas that fuse networking technologies with autonomous vehicles to extend
their functionality. We will then review the five levels of vehicle automation,
commercial and open-source Advanced Driving Assistance Systems, and their
features. Finally, we will touch on the major manufacturing and software
companies involved in the field, their investments, and their partnerships.
These topics will give the reader an understanding of the industry, its
technologies, active research, and the tools available for developers to build
autonomous vehicles.
