Page 8


The Making of Self-Driving Cars: A Developer’s Guide Ever since the dawn on automobiles, self-driving cars have been a hot topic for sci-fi fans, tech pioneers and sociologists. History has proven one of the key contributors to general development and modern civili-zation is mobility, so it is no exaggeration that a global-scaled autonomous transportation system will have an unprecedented impact on our society - changing the way we live, work and travel. by Árpád Takács, Outreach Scientist, AImotive

Human driving is a complex task. We can recognize and understand the environment, plan and re-plan, control and adapt in a fraction of a second. We can silently communicate with the environment while we are driving, follow written and unwritten rules, and heavily rely on our creativity. On the other hand, today’s automation systems strongly follow an if–then basis of operation, which hardly deployable in self-driving cars. We cannot account for every single traffic scenario, or store the look of every car model or pedestrian for better recognition. To bridge this gap between current technological availability and the demand from society and the mar-ket, many ideas and prototypes have been introduced over the past few years. Regardless of the technology details and deployability, there has always been a common tool: machine learning, and through that, Arti-ficial Intelligence (AI). Figure 1. When ready for mass production, self-driving cars will be

the very first demonstration of AI in safety-critical systems on a global scale. Although it might seem we are planning to trust our lives to AI complete-ly, behind the wheel there will be a lot more than just a couple of bits and bytes learning from an instruc-tor, taking classes on millions of virtual miles. A common approach to solve the problem of self-driving is to analyze human driving, collect tasks and sub-tasks into building blocks, and create a complete environment for self-driving car development, nar-rowed down to the three main components: algorithms, development tools, and processing hardware.

Algorithms: from raw information to a unified understanding

The first, and possibly the most important component of self-driving development is the set of algorithms used in various building blocks for solving necessary tasks related to sensor handling, data processing, per-ception, localization and vehicle control. The ultimate goal at this level is the integration of these blocks into the central software that runs in the car, which poses several engineering challenges. There is a hier-archy among these tasks and subtasks, which can be broken down to three groups: recognition, localiza-tion and planning.

Figure 1 One of AImotive’s prototype vehicles circling the streets of Budapest. While testing AI-based algorithms is a complex task, testing licenses are now issued all over the world to self-driving companies.

8 | RTC Magazine JULY 2017

RTC Magazine  

July 2017