December 10, 2019

Why robots are not available in the reality

Since decades, AI researchers have experimented with robots. Lots of papers were written, many lectures were held and since 20 years demonstrations are available in which real robots are shown to the audience. The average consumer wonders, why robots are not available in the store, next to a computer. The reason for this question should be given in the following blogpost.

What AI researcher and robotics experts are doing is to build production systems. A production system is a sandbox in which a simple version of the world is formalized. The shakey robot which was using the STRIPS language is a notable example for a production system. But recent biped robots are working with the same principle.

The self-understanding of a production system is, that there is the system itself and the environment. The system itself is working great. That means, the shakey robot will find the way along the obstacle and a biped robot is able to balance on two legs. Unfortunately, a production system has a border and everything which is outside the system is ignored.

What AI researchers are doing is to create a production system aka a sandbox first, and then they are programming software which works in this sandbox. A typical example is the cart balancing problem. The first step is to define the problem, which contains of a cart and a pendulum. This system is converted into a forward model, which means, that the software is able to predict future states of the pendulum. And then a so called controller is built on top of the production system which brings the pendulum into the desired direction. The result of the experiment are written down in software and the working prototype is presented to the audience.

Unfortunately, the concept has a big disadvantage. It is given in the first step in which the sandbox was defined. The cart balancing problem contains of certain elements and what is not represented in the system gets ignored. This is done because it helps to reduce the complexity. It ensures, that the AI researcher is able to create a forward model and it allows the same researcher to program an AI Controller which brings the system into a goal state.

The problem is, that production systems and the reality are not the same. In the reality, there is no such thing like a cart balancing problem which is encapsulated in a controlled environment. The problem is only available in the imagination. It's a synthetic challenge similar to the problem of following a line or do the peg in hole task.

Most of these synthetic problems were already solved by AI engineers. They have developed lots of algorithms for doing so. The problem is, that these algorithm are working only in combination with a production system. If no sandbox is defined first, it's not possible to create an AI system.

To understand why robotics fails in reality we have to focus what AI programmers are doing. The strategy is always the same, in the first step a production system is created and in the second step this synthetic production system gets solved. AI is focussed only on the second step. The question asked in the books is how to solve a certain problem, for example who to navigate a robot in a maze.

For real robotics application this kind of questions goes into the wrong direction. The more elaborated problem is, if the reality is about a maze navigating problem. The sad answer is, that in most cases the assumed production system doesn't match the reality. The result is, that from a technical perspective the AI engineers are able to solve the problem, and at the same time they don't.

The robotics available today are working from it's self understanding great. That means, the software is able to balance the biped robot. The problem is, that this balancing task was not requested by the reality. The AI engineers have solved a different task from what is needed. To understand this phenomena we have to go back to the first micromouse challenge. Micromouse is a robotics challenge with a long history. The motivation was, that robotics has failed to automate the workflow in a factory but instead asking why, the researchers have imageined a challenge they are able to solve.

Instead of using a robot to replace a human worker in a factory, the idea is to focus on a problem which can be solved by a robot. This sort of problem is a micromouse challenge. The task of driving through a maze has no practical application, it's useless. And the algorithm can't be transfered into the reality. This kind of workflow was repeated for other challenges. As a result, today's robot are successful in solving lots of problem, but the problems have nothing to do with practical applications.

System identification

In the classical control theory, there is a step available called “system identification”. The idea is to transfer a task from the reality into a simulation. The system identification step is the bottleneck for modern robotics. In all the robotics projects, the system identification was made the wrong way. Instead of describing a real system, the engineers have identified a simplified version of the reality. This model is used in the later steps as the problem definition and gets solved by the algorithm. The engineers believe they are able to solve the problem, but what they are doing is to solve the wrong problem.

A robotic problem contains of two steps: 1. system identification 2. solver. The solver step is equal to what is discussed as core AI. The question is how to play a game with Artificial Intelligence. Not a human operator takes the decision but an algorithm. Creating solver algorithm is surprisingly easy. For most problems it's available to program the software. The common techniques of object-oriented programming, neural networks and expert systems are well suited to play games autonomously.

The first step (system identification) is much harder to tackle. The amount of literature about the subject is low, and most AI engineers are not aware why this step is needed. They assume, that a model is already there. And if not, a simplified model can be used. If the system identification step is ignored or handled with a low priority the robot project will fail. That means, the working robot is useless for practical application. The problem solved by the robot is different from the needs in the reality. Nearly all existing robots can be categorized in such a way.

Solving Tictactoe

The tictactoe game has already a system identification. The game rules are known and the AI can be programmed. The AI works with a gametree search in which the possible actions are evaluated and the solver decides what to do next. Creating an AI for the TicTacToe game is easy.

A slightly more difficult problem is to solve the game of chess. Similar to TicTacToe, the rules are known. The chess board in the computer program is the same like a real chess board. This moves generated by the AI are making sense in a real game of chess.

The problem in the robotics domain is, that in contrast to TicTacToe and chess the system identification step is missing. The rules are not known. The AI engineeres are starting with a wrong model and then they are programming a solver for this wrong model. The generated moves for the wrong model are nonsense for the real model, therefore the robotics project fails.