December 26, 2019

What is a book unhaul?

Everybody who is familiar with youtube will have recognized a certain individualized sort of clips, in which people are showing to the world the content of their bookshelf. Usually the idea is, to introduce newbies into the wonderful joy of reading books, collecting them and organize hundred of books in a self-creating library. Since a while the opposite trend is emerging and the youtube community has chosen the term “book unhaul” for this kind of very interesting video. The idea is, to clean up the bookshelf and remove all the unread, unwanted and boring books from the bookshelf. The idea is not to grow the library, but to clean up the mess.

I can link to some of these funny videos, but after entering the search term lots of these interesting examples are visible in the result list. As far as i can see, most unhaul videos are about fictional books. But perhaps some advanced youtubers have come to the conclusion, that they want to unhaul also the Encyclopedia britannica, the never read book about fuzzy logic or a dissertation of a friend ...

How to create an academic paper

The amount of published papers per year has increased. In the last year, the United states alone have published around 600k new papers from all academic disciplines. But for the newbies, the principles of writing a paper by it's own are not very clear enough so it make sense to give some advice.

The basic idea is that a high quality paper can also be created, if many low quality were written before. So the question is how to create lots of low quality paper to get the amount of experience which is needed to write the next nobel price winning paper? For the beginning, a paper is a collection of blog posts. The author has to write some new blog posts, for example 20 of them about the same topic. The content is structured hierarchical and is added with literature references. For doing so the Lyx document software is a great choice, because it is able to generate high quality PDF documents easily.

Before the document is uploaded to a repository, a proof reading is recommended. For the first paper, a proof reading plus the creation of quality figures can be ignored because this will safe a lot of time. But if the author has more experienced it will get a higher priority. Creating an academic paper and creating some blog posts is the same. The language style and the subject are very similar. The difference is, that blog posts are written about lighter topics which are read by the mainstream, while an academic paper consists of specialized knowledge which needs a larger amount of text. The main reason why so many papers are written each year, is because a paper is only a short text. In contrast to a book which contains of 500 pages, the average paper has only 8 pages. A longer paper contains of 20 pages. Even a single author is able to write such content.

The understanding of most newbie authors is, that an academic paper should provide new information for documenting the latest research. This is true for top authors who are writing excellent papers. A newbie without any experience will write in his first paper for sure not groundbreaking information. It make sense, to see the first writing attempts as an hello world example, similar to creating the first Python program. The idea is, to become familiar with software tools and test out if the resulting pdf document can be downloaded with the browser. It make sense to reduce the own expectations. Writing a bad paper is better than writing no paper at all.

Peer review

The topic of peer review was ignored in the given explanation. Peer review is equal to a conflicting pipeline between different social roles with an academic background. Peer review is very similar to the inner working of a helpdesk: What exactly the stakeholders are discussing is a bit complicated to explain. But in most cases, they are not able to agree towards the same subject and they starting to argue about it. Arguing means, that the result is disappointing for all of them. This is equal to a loose-loose situation.

Bibliographic references

On the first look, an academic paper can be written with any wordprocessing tool. In the easiest case a normal texteditor which is able to wrap words and saves a file to the harddrive is a reasonable choice. The reason why a more elaborated software tool like Lyx version 2.3.3 from Matthias Ettrich et. al. make sense is because an academic consists of bibliographic references and maintaining them can become complicated. With the Lyx tool, it's pretty easy to include such a reference. At first, the bibtex information is needed which is put at the end of the bibtex-file, then the label can be inserted into Lyx and the formatting is done by the software without further intervention. In general, The overall procedure takes around 30 seconds. In contrast to manual formatting of the information this is a great improvement.

December 23, 2019

Asking the wrong questions at SE.AI

A new question was posted today to the SE.AI forum, which is about a machine learning problem in Python:

https://ai.stackexchange.com/questions/17226/split-data-for-training-and-validation-keeping-grouped-data-together

On the first look, the OP looks great. SImilar to the guidelines in Stackoverflow, it's a minimal example and a code snippet is also included. This allows the SE.AI Community to reproduce the problem and provide high quality answer. The problem is, that a closer look will show, that the question has a low quality. RIght now, no comment was written but the probability is high, that the forum will critize the question as well.

The problem is, that AI related questions are different from programming question. In case of Artificial Intelligence the problem is not how to create a Python script, but how to create an academic paper. That means, instead of including sourcecode into the question, the better idea is to include academic references to existing papers. Artificial Intelligence is grounded in the science, and science communication works with citing each other.

Even if the wrong papers are cited, it makes a good first impression if somebody shows, that he is familiar with the bibtex / Endnote tool already. Instead of reveal all the tricks how to forumulate a good question, let us wait a bit and observe, what the SE.AI community is doing in this case.

December 22, 2019

Transition from teleoperation towards Object Action Complexes

The most powerful robot can be realized with teleoperation. Teleoperation means, that the robot is equipped with human level skills and can adapt to any situation. A pick&place with a teleoperated robot arm works perfect. The most interesting feature of remote control is, that no program is needed. The only piece of software transmits the joystick signals to the robot, but the robot movements itself are not determined by a program.

Suppose the idea is to program a robot which means, that the steering signal is not generated in realtime by a human but from a macro, script or any other robot program. The resulting question is which kind of software is needed for controlling the robot? In the easiest case a robot program is a list of points which are forming a trajectory. In the python language a typical robot program looks like the following example:


moveto(250,200)
time.sleep(1)
moveto(60,210)
time.sleep(1)
moveto(50,325)
time.sleep(1)


The robot program looks different from normal Python sourcecode, it has more in common with a list of absolute values which are executed by the robot. Will this program work? Oh yes it works great, the movements are executed precisely. The more complicated question is, if the robot movements are useful for the environment. That means, in a real life application an industrial robot is asked to do a task, for example to pick&place an object. The robot can fulfill the task or not.

The same robot program can become a failed robot project or a successful robot project. It depends on the task. If the task is easy the given robot trajectory will solve the problem. But if the environment changes to much, the trajectory of the robot doesn't make sense and it won't be able to pick&place any objects.

The overall successrate of the robot project depends on two factory. The robot program and the task description. The combination of a simple repetitive task and a simple robot program is a great choice. The problem is, if the task description is complicated but the robot program is an easy one. The result is a failed robot program.

Let us take a look into real applications. A welding robot is a typical example of an easy task description plus an easy robot program. The task for the robot is, to move the endeffector precisely along a list of points. The trajectory is always the same, and not kind of planning is needed. Such a task can be realized with the mentioned robot program which contains of two simple actions: moveto and time.sleep. The problems will upraise if the task description is more complicated. For example, if the robot should pick&place objects, but the objects can have a different location. In such a case, the easy fixed trajectory of the robot won't be succesful anymore. There are two options available to overcome the issue: first reduce the task description into something more easier or secondly, increase the complexity of the robot program.

A slightly more advanced form of creating a robot program is working with Object action complexes. This technique is derived from the STRIPS notation. The idea is not only provide a list of points, but provide a list of actions which can have preconditions and postconditions. Such motion primitives can be reordered so that the robot isn't executing a fixed trajectory, but is able to create different plans. The good news is, that the STRIPS notation can be used to generate a fixed trajectory as well.

From teleoperation to fully autonomous robot

Controlling a robot with a remote control is not very complicated. The human operaror has to press a button and the robot will move forward.The more advanced question is how to remove the human operator from the loop, so that the character runs autonomously.

On the first look the task can be solved with creating a script, very similar to automating a task on the computer with a Visual basic script. A potential program consists of building blocks like if-then, for loops and action statements. This will allow the human operator to take away the hands from the remote control and the robot will work by it's own. Really? No it was a rhetorical question because one important thing was ignored in that tutorial. The interesting fact with scripts for robots is, that they doesn't work in reality but only in a synthetic challenge.

Let us describe the pattern what is used by self-claimed robotics experts who like to proof that autonomous robotics is available. At first they are creating a macro for the robot. The script is doing a concrete task. For example, the robot is searching for line on the ground, then the robot follows the line, and if an obstacle is there it will activate a submodule to move around the box. In the next step, a game is constructed which contains of a line on the ground, a robot and an obstacle. Then the start button is pressed and the robot is working autonomously.

The problem with this demonstration is, that the task was created in response to the script. That means in the first step the macro was written and in the second step the problem for the macro was imagined. Unfortunately, the macro can't solve real tasks. This kind of bottleneck is often ignored. The assumption is, that the script can be extended to more demanding applications. It's funny to realize that not a single autonomous robot is available which is solving a practical application. So called autonomous robots are only available for trivial examples.

A possible explanation for this mismatch has to do with sorting tasks by it's complexity. The hypothesis is, that two sorts of problems are available: easy to automate problems and hard to automate problems. The problem “Follow a line” is an easy to automate problem. Replacing a human worker with a robot is a hard to automate task. What robotics engineers are able to automate are only trivial tasks. These tasks are constructed so that a robot is able to fulfill it autonomously. What robotics engineers aren't able to automate a real tasks which are important in the real life.

The funny thing is, that on the first look both task categories are looking the same. Suppose, in a factory there is a line on the ground and the transport vehicle has to move on that line from start to finish. It's exactly the same task which was automated by a script, so is the hypothesis wrong and it's possible to automate real life tasks? No it's not. A simple look into the reality will show, that not a single automated robot is available which is used for a line following task. If a company is using a robot for this task, a human operator controls the robot all the time.

Or let me explain the situation from a different perspective. Suppose, in a factory there is a transport vehicle which is moving on a line. The robot is remotely controlled by a human operator. The prediction is, that it's not possible to replace the human operator with a software program. Because what the human is doing is a little different from executing a simple line following algorithm.

To understand the paradox better we have to take a look at a task which is remote controlled already. The best example is a crane. A human operator sits behind a joystick and has to press the buttons. The operator doesn't invest physical energy into the system but only his ability to control the crane is requested. Such a crane is available on most construction sites in the reality. Now it make sense to think about increasing the productivity. The idea is, that the human operator costs too much and he can be replaced with software. Technically, a simple USB cable can be plugged into the joystick of the crane operator and then a computer is in charge of all the operation. The only what is missing is a piece of software. And at this point the problem will start. There is no such thing available like a crane control software. What the engineers have to do is to create it's own sort of software. A first step would be to create submodules for a program for the basic features of the crane like open the gripper, unload the box and so on. And then an overall highlevel planner has to decide which operation is next.

The problem with such an automation attempt is, that it will fail in reality. The computer controlled crane will behave different from a human controlled crane. That means, the system can't be used in the reality. What the human operator will do is to deactivate the program and control the crane with the normal joystick. And he is right, because it's the only option available.

The problem is not located in the crane itself. Because in the lab the software auto mode will work great. The crane is able to execute a longer program for pick&place objects. What is wrong is the reality, which provides a different kind of problem. That means, the task which is solved by the software and the task on a real construction site are different. A human operator is needed, because the real crane has to do with unstructured situations. Each day the problems on the construction site are a bit different.

A robot program

The idea of a teleoperated robot is, that all the actions are initiated by the human. Apart from the human-machine-interface no additional software is there. The opposite of teleoperation is a system which has to be programmed. A robot program is a script which runs without human intervention. For most real life applications no script is available. The answer to the problem is, to modify the application into the direction of an easy to automate task.

The reason why a program controlled robot is prefered over a teleoperation system is because it has a higher productivity. Instead of training a human operator, the idea is, that the robot can execute the task by it's own. Apart from the written script no additional input data are needed. The only problem is how to write a robust script which is able to solve important tasks?

Industrial robots are usually programmed with a trajectory table. That is a list of points in the space which are reached by the robotarm in a sequence. A typical robot program looks like:


p1, p2, p3, p4, p5, stop


The disadvantage of such script is, that it's not very robust. But in some cases it works. The question is, why exactly is a list of points powerful enough to control an industrial robot? The answer is, that the task was modified in a way, that the robot is doing something useful if he repeats over and over the same sequence. In general there are two strategies available for robot programming. The first one is to make the original task more easier for a robot, and secondly improve the software so that it can handle more complicated tasks. Let us try to improve the robustness of a robot program. A more elaborated example if formulated in the STRIPS notation. The robot executes steps, and each step has a precondition and a postcondition. For example:


step1, pre=gripper(100,100), box(50,50), post=gripper(200,100), box(50,50), action

step2, pre=gripper(200,100), box(50,50), post=gripper(250,100), box(150,50), action

step3, pre=gripper(100,100), box(50,50), post=gripper(200,100), box(50,50), action


Similar to the first example, the scripts executes a predefined robot trajectory. In this case, the some constraints checks are made to investigate if the robot and the box are inside the expected range. If not, the script stops with an error message. The advantage is, that smaller problems during the execution are recognized autonomously.

Both examples have the disadvantage that the script is static. That means, the script is executed from top to bottom and no planning is available.

Instead of explaining how to create more advanced robotics script the better idea is to focus on the most simple robot program which was given in the first example. In the simple case, the robot program contains of a point list which are traversed by the robot. It's not like a classical computer program but it looks like a pattern. The program is equal to a trajectory which gets executed with the start button. The only open problem is to find a task for such a program. That means, the robot by itself is working great, but what is missing is a situation in which the program makes sense. A very easy pick&place robot can be programmed with that principle in mind. The robot isn't able to detect objects, nor the system is able to avoid obstacles. Instead the environment has to be static so that the same trajectory results into a success. A possible usecase is, if all the products on the assembly line are at the same position and there is only size of the product available. The robot picks the object and transports it into the box, where the objects gets released.

December 21, 2019

Limits of remote controlled robots

The good news is, that a remote controlled robot can provide amazing skills. The robot can drive a car, pick&place objects, work in real life applications and so on. It's even possible to combine a biped robot with the ability of remote controlled. The resulting machine looks similar to what is known from the I, robot movie which means, that it's a humanoid biped robot which can walk on the street. Providing such functionality is technically not very complicated, because the joystick controls the servo motors and that is all the secret.

The sad news is, that all of these remote controlled robots provide the same productivity like a normal human. That means, if 10 humanoid robots should walk on the street, 10 human operators are needed. The same is true, if the robot should do a pick&place task. What is not possible is, that a single operator controls a robot fleet. This would be equal to provide a better productivity.

On the first look, the problem seems not very hard to solve. If it's technically possible to build a teleoperated robot, it's also possible that man machine interface will become more efficient. Unfortunately, this is not possible. The only option which is available is to reduce the complexity of the task. That means, if the robot should follow a line but is not asked to do something useful, that the remote control system can provide a higher productivity.

The problem is, that reduced complexity tasks are different from what a robot should do. In most cases, the idea is, that the robot is doing something useful, for example deliver a box to the destination. This kind of task has a certain complexity, which is fixed. If the complexity is reduced, the task will become something else.

I know the explanation isn't a bit complicated. Perhaps it make sense to go a step backward. Increasing the productivity of a robot has to do with programming a macro or an algorithm. The algorithm calculates the next movement and the human operator can relax. So the question is which kind of algorithm is needed to control a certain robot. And exactly this is the bottleneck. An algorithm which means an autonomous robot can only be created, if the task is very easy to handle. This is the case for computer games. If the rules are known in advance, it's possible to create some kind of solver, which transforms the remote controlled robot into an autonomous one.

Unfortunately, real robotics applications do not providing fixed rules. It's not possible to formalize the actions of a human worker in an algorithm. Surprisingly this is also the case for simple tasks like an pick&place operation. Even if the robot arm has nothing to do than pick and place an object, the task can only be handled with remote controlled but not with an algorithm.

Perhaps it make sense to research the topic from the opposite perspective. Suppose it's possible to program an algorithm for a pick&place task. A working algorithm can be executed autonomously without a human in the loop. In theory this is equal to the maximum productivity. Are such robots available? No they don't. Because this would be equal that an autonomous robot is able to fulfill a task which is important.

Let us summarize the situation a bit: teleoperated robots are working great for practical applications. The disadvantage is, that the productivity is low. It's not possible to increase the productivity, because this is equal to provide human level AI which is not available. The open question is, if such a telerobot makes sense for today's companies. In theory, it's possible to build some sort of cloud service in which human robot controller are providing the service to control all sorts of robots. These robots are able to replace normal human workers. At the same time, the workers in the cloud will produce labor costs as well. The advantage is, that the labor is located in a single place which can be requested by lots of robots.

The explanation why the productivity of a remote controlled robot is limited isn't available in the domain of Artificial Intelligence itself, but it has to do who the normal economy is organized. The normal workplace for a human is organized in a way to maximize the productivity. That means, the truck driver who transports a load isn't able to do a second task while he is driving and the worker at the assembly line is also fully occopied what he is doing right now. That means, the average workplace generates a certain amount of stress to the human worker.

If the worker is replaced by robot, the robot has to provide the same amount of work, that means, he must resist to the workload as well. The sensor signals are transmitted to a remote location and the human operator behind the joystick will get the same amount of stress like before. If the normal human worker is not able to reduce the workload, how should the remote operator can do so? And exactly of this reason it's possible to increase the productivity. No matter, if the crane operator sitts physical in the crane or is located 100 miles away, the workload for the human is the same.

The only way for reducing the stress would be to replace the human operator with an Artificial Intelligence, which is a software which doesn't need a human operator anymore. This kind of robot is the opposite of a remote controlled robot, it's an autonomous device. The problem with autonomous robots is, that they fail in reality. They are not working for practical applications. Instead of asking how to improve the robot, the more elaborated question is, why a certain workplace produces a certain workload?

The answer is located in the industrial revolution. The workplace of a crane operator is the result of the invention of the crane. What a crane operator is doing physically is to press some buttons. At the same time, this job is very hard, that means, if no crane operator is available the construction site gets in trouble. The same is true for other jobs, for example in the service industry. An existing job is a sign, that the economy has a certain workload which is important. This workload is different from playing a game.

In contrast, the task which are available in robotics challenges for example the line following task, provide a small or even a zero workload. That means, the robot how drives on the line in a circle isn't providing real work which is needed by the economy, but it's his own pleasure. Solving a zero workload task with an algorithm is easy going, but solving a high workload task with an algorithm is not possible.

That means, if somebody like to replace a real worker with a robot, he will need a teleoperated robot. And if somebody has build an autonomous robot which doesn't need a human in the loop, the task has only zero workload which means, it's a synthetic challenge which is not needed in reality.`



In the graphic, the desired goal is located in the bottom right, which is a combination of autonomous robot plus high workload which is available in reality. What most robotics engineers are trying to realize is to built a software controlled robot which can do real tasks. The reason why this combination is colored in red is because it's not possible in doing so. The reason is, that if a certain task is highly complex it's not possible to create an algorithm for it. And if a robot is controlled only by software it will only be able to solve low workload tasks. Let us make a small thought experiment. Suppose, there is a human worker available who is doing nothing else as walking back and forth on the street. He moves 100 meter from left to right, and then the same 100 meter in the opposite direction. In the thought experiment the human worker gets 20 US$ for each hour he is doing so. Automating such a task with a robot and replacing the human worker by an algorithm would be pretty easy. A simple python script in under 100 lines of code would do the job very well. The problem is, that such a task is not available in the reality. It's equal to a synthetic challenge given in a robotics competition, but it is nothing which is requested by the real economy. Real obs in which the human worker earns 20 US$ per hour are much more complicated. They can't be automated with a simple Python script in under 100 lines of code.

The perhaps most interesting feature of teleoperated robots is their ability to solve high workload tasks from the reality. A well designed humanoid robot is able to replace a human worker. The only disadvantage teleoperation has is, that they can't do much more. If a company likes to replace all the 1000 employees with robots they will need exactly 1000 humanoid robots plus 1000 human operators in the cloud. They are not able to do the same workload with only 500 human operators, because it's the same job with the same workload. It's up to the company to decide, if cloud based teleoperation make sense or not.

Workload reduction in teleoperation is a myth

Robotics is about industrial automation. The hope is to increase the productivity with modern technology. A first attempt in building a robot includes teleoperation. A teleoperated robot has the same workload, there is no advantage available for the human operator. What the engineeres are trying to achive is to reduce the workload. They want to design a human-robot-interface in which a single operator is able to control a swarm of robot. The interesting fact is, that such an interface can't be realized in reality. The reason why is a bit complicated. But for the moment it make sense to locate the increase of productivity outside of a control problem.

Let me give an example of a transportation problem. A load can be transported either by a truck or with the railroad. Logistics with the railroad is more efficient. A single operator is able to transport lots of container at once. In contrast, a fleet of trucks is needed to do the same task. The example is interesting because no artificial Intelligence at all is needed to increase the productivity. It seems, that the amount is connected to the mechanical vehicle but not to the control problem.

Somebody may argue, that from a technical perspective it's possible to invent a swarm based teleoperation device. Similar to what it's known from real time strategy games, the human operator selects 10 vehicles at once and command them to move to the new location. So he has reduced his own workload. The problem with this example is, that such a swarm control is a synthetic example. That means, in a newly created game the swarm is controlled in such a way. In reality, no such control problem is available.

This produces the question which kind of domains are available in reality? This question goes into the right direction. Jobs which are done by human workers are organized with a certain principle. In most cases, a task was optimized already. That means, that no potential for further improvement is available. The best example is a airplane pilot. What he is doing is to act inside an existing system. The combination of the airplane together with the pilot produces a certain productivity. That means, the overall system has costs and provide a service. The amount of costs is not determined by the pilot but by the system in general.

If the human pilot is replaced by a teleoperated robot, the same productivity is the result. Perhaps this is the most dominant reason why teleoperation is not discussed very often in the literature. In contrast to real Artificial Intelligence it doesn't provide extra productivity.

Let us analyze what the untold assumption of robotics engineers is. They are programming a software which can control an airplane by it's own. The idea is to install such software in all the airplanes in the world and then the human pilots are replaced by the software. Without the software, around 1000 human pilots are needed and with the working software 0 humans are needed because the system can fly by it's own. This is equal to a great productivity increase. The only problem with this outlook is, that the engineers have struggled in doing so. They are not able to write such a software. In the laboratory it works great, but in a real airplane the software is not able to replace a human pilot.

The interesting point is, that this is not a technical problem but it has to do with a bias of the engineers. They are focussed on technical problems for example how to calculate the trajectory or how to setup a neural network. What the engineers ignoring is the history of failed automation project. They are ignoring automatic airplane software from the past and they belief they can reinvent everything from scratch.

What modern computers and robots can do is to distribute work between humans more efficient. A teleoperated airplane can be controlled from the ground. What modern technology can't provide is to reduce the total amount of workload. That means, if the pilot in the airplance should be removed, a human operator on the ground is needed to do the same job.

The most efficient workflow

Suppose, the idea is combine telerobotics with a high productivity. The first step is to identify in the economy high efficient systems. The best example is an electric train plus cranes who can unload and load the containers. Such a system is highly efficient because it minimizes the demand for human work.

Now a robotic system can be used to remote control the system. The teleoperation won't increase the productivity further but it will allow the human workers to do the job from any location. The train gets remote controlled and the cranes for unloading too. The resulting system will need some humans in the loop, but not very much. And the most important feature is, that it can be realized. It's not a fictional scenario what robots can do in 30 years, but it can be realized with today's technology.

What is needed is cloud based teleoperation to control an electric train which is fulfilling a logistics task. The human operator behind the screen is replacing the physical operator in the train.

December 20, 2019

Non Teleoperated robots

Classical robotics competitions like Micromouse are working with non-teleoperated robots. That means, the robot is taking the next decision only by artificial intelligence. The reason why is because the AI engineers are trying to increase the productivity level. The assumption is, that a human operator doesn't make sense, because it will produce a high workload to that operator.

Non teleoperation has a major disadvantage. If all the decisions of the robot are controlled by software, the software needs to become very elaborated to solve a task. The problem is, that how to program an advanced AI is unknown, so what is available in reality is, that the difficulty of the robot competition gets smaller, so that current AI software is able to solve it. That means, the micromouse in the challenge doesn't need to do complex tasks, but it's enough if the mouse finds a way through the maze.- This reduced complexity allows the participant of the competition to program an AI Software which can do the task autonomously.

The problem is, that in reality the tasks have a higher complexity. A problem in which a robot has to travel through a maze isn't available in a real factory. Therefor the programmed software is useless. It will only be successful in synthetic robotics competition but not for practical applications. The gap between a robotic challenge and replacing real humans at the workplace is too large.

The reason why the gap is there has to do with the autonomous paradigm. All robotics competition have in common that the robot is controlled by software but not with a teleoperator. That means, the decision of the robot has to be calculated by the AI software. It's not possible to cheat the challenge, because it is doublechecked, if the onboard software is really able to control the robot. The requirement, that only software controlled are allowed to participant at the challenge is asking for a certain sort of robot. In case of the micromouse challenge, the typical software contains of a hierachical pathplanner in which high level trajectory is calculated together with low level motion commands. Such a pathplanner is optimized for the micromouse challenge. It's the opposite of a human level AI.

Somebody may argue, that it's not possible to program a human level AI which can solve more than a single game. And he is right, because such software is out of the scope of current AI. nobody knows, how to program a software which can play all the games and is able to communicate in natural language. The consequence is, that no alternative to a normal robotics competition is available.

Robotics competitions

The rules of challenge result into certain styles how to solve the issue. A typical example is a line following challenge. The task is to program a robot which can follow the line. The robot who is ooing so in the fastest amount of time has won. The problem with a line following challenge is, that it's not a robot task itself, but it's a programming problem. It can be solved by implementing an algorithm in the Python language. At first, the sensor information are read, then the robot has to calculate the next movement. A typical program for solving this task is working with the pid control method. That means, the sensor readings of the line is taken as input for the steering controller.

The problem is, that even a robot has won the challenge the robot project has failed. The created software can't be used outside the competition. It's a synthetic competition which provides a sandbox in which the programmer should proof if they have understood what a pid control algorithm is. The more elaborated form of a robotics challenge is an open problem which is equal to practical applications of robots in the reality.

It's important to know, that synthetici robotics challenges like a line following task and the requirement in the reality have nothing to do with each other. A line following problem is a game which is working by it's own rules. These rules are created with the purpose to simplify the problem. In contrast, using a robot in reality, for example in a factory or as a self-driving car is working by different rules.

The requirement in the reality can be summarized to “human level AI”. If a robot should replace human worker, the robot needs the same skills like a human. That means, the minimum requirement is, that the AI of the robot will pass the turing test. For sure, this requirement is a bit too high, no robot today will fulfill such a requirement. That means, a robot is not able to do useful tasks in the reality, because he failed in the turing test.

The problem is not described very well in the literature, so it make sense to focus on the detail. A naive assumption is, that practical applications of robots can be realized without providing human level AI. The hope is, that a normal AI algorithm which includes sensor perception and a bit of pathplanning is enough to solve tasks form the reality. The assumption is, that an industrial robot has to solve only simple tasks but there is no need to equip the robot with a massive human level AI which will pass the turing test.

This kind of assumption was never tested in the reality. It's the hope of the engineers because they can only program narrow AI system and the hope is, that these narrow AI systems can solve tasks from the reality. The altenative description is, to assume, that these narrow AI systems will fail in the task. That means, the robot which was programmed with some algorithm is not able to replace human workers and it can't be used in the reality. There are many facts available which are showing that this pessimistic thesis is correct.

All the robotics projects from the past have two things in common. First they are working with narrow AI but not with human level AI and secondly they failed. That means, the robot was not able to replace human workers. And between two facts there is a strong connection. That means, the robot projects failed because the robot was not able to pass the turing test.

Artificial Intelligence has a lot to do with solving games. Creating an AI controller is equal to solving a game. The open question is, which kind of games are available. An easy to solve game is TicTacToe. Such a game can be solved with a narrow AI. A basic strategy would be a gametree search. The problem is, that games played in reality are much harder to solve. For a certain standpoint, human workers are solving games too. If a cook prepares a meal he has to solve a game. This games contains of manipulation tasks with the hand and it has to do with decision making which kind of ingredients are needed. All the games in reality are too complex for current AI. That means, it's not possible to create an AI which can play games in the reality. The problem is, that games in the reality are fixed. It's not possible to simplify the existing games. So the answer is to increase the ability of the robot to a human level.