• Autonomous driving explained easily

    From aa5@gmx.net@21:1/5 to All on Tue Apr 9 23:18:20 2019
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)