Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Autonomous driving explained easily

16 views
Skip to first unread message

a...@gmx.net

unread,
Apr 10, 2019, 2:18:21 AM4/10/19
to
In a recent post
https://medium.com/@jonathan_hui/self-driving-car-path-planning-to-maneuver-the-traffic-ac63f5a620e2
it was explained how Artificial Intelligence works in self-driving
cars. The surprising context is, that the description was not written
as a scientific paper but provides the information as a story. All the
details are missing and also references to previous papers. Let us take a
detailed look into the description itself. What the author introduced is
called model predictive control (MPC) for driverless cars. The software
is doing two things: first, prediction with the forward model and second,
control with the solver.

According to my understanding the concept makes sense. MPC is the right
underlying technology to realize autonomous driving. Sure, the sourcecode
for a real autonomous car is not given in the medium.com article, but the
chance is high, that software engineers have created such a software in
the past or trying to do so in the future. And the medium article provides
the correct information where to start. The only critics from my side is,
that the article was not published at Google Scholar in the pdf format but
was provided as a blog post. So it is hard to reference to the article.

Why is this technology important? Because Model predictive control answers
the AI problem. It explains who to write the software for controlling
complex systems like an autonomous car. MPC stays in contrast to other
AI techniques for example neural networks or expert systems. MPC is
without any doubt a very powerful technique which provides Narrow AI
capabilities. Even without knowing how the software was created in
detail, it's possible to use the MPC paradigm to create such software
from scratch.

But let us go a step backward and assume that self-driving cars is an
unsolved problem. The first thing what the engineers are asking for is
an AI Controller. This is a piece of software which controls the car by
it's own. The AI Controller is sometimes called “the AI”, because
it's able to drive the car without human intervention. How can the AI be
realized? The number of options are endless. In the literature under the
keyword “ingame AI” many techniques are presented. The most important
ones are gametree search which is used quite often in chess engines and
behavior tree which is utilized in real time strategy games. Implementing
a behavior tree for a car contains of two conditions: if front=blocked
then stop, and if speed>40 then press the brake. The funny thing about
this behavior tree is, that it doesn't work. It defines the behavior of
the non-player character as a direct policy.

The more advanced technique is to use an indirect control policy. That
means, the AI gets separated into two parts: prediction and control. This
is called model predictive control. And this was the topic in the medium
article which was referenced in the beginning. The surprising fact is,
that it's very easy to create a MPC-controller for an autonomous car. And
what makes things more pleasant is, that even if the controller behaves
wrong, the issue can be fixed in a controlled workflow. That means,
it's possible to create a software which controls the car perfectly under
all situations. It's only a question how much manpower was invested into
the project.

What the story was really about was, that the author want's to tell
the public, that the engineers have solved the issue and that the
underlying technique is MPC. AI experts have found the answer for the
control problem, and they have written the software for controlling the
car autonomously.

I would like to explain at which part of the software, the AI is
taking over. The AI in the MPC controller works different from human
intelligence. The main idea behind MPC is, to predict the future
outcome of a system. There is a simulation available which calculates
the future. This is done in realtime. Very similar to what a chess
engine is doing. In case of an autonomous car, the horizon is around 10
minutes for the short period, and about 4 hours for the overall route
until the goal is reached. The software knows what will happen in this
time period. It's able to predict the future, because the model of the
system is provided in the software.

On ground of this prediction it's possible to take a decision, for example
to slow down the car and move the steering wheel to the left. The decision
is not taken directly by an AI, but a solver takes the prediction together
with the constraints and calculates the correct action. A model based
control for autonomous driving is a great example for a Narrow AI. It's
solving a certain task with software.

Sure the details of this advanced technology remains unclear. It's
not given in the medium article if the underlying prediction model was
realized as a neural network or as an expert system. From a technical
point of view many options are possible. But these are detail questions,
which doesn't influence the result very much. What is important to
know is, that the AI consists of a simulation module which is able to
predict future states in the traffic system and a control-module which
is searching for the best action in the gametree. If both modules are
working errorfree the resulting system is equal to an autonomous car. It
can drive without a human in the traffic and won't make any mistakes.
0 new messages