October 24, 2019

The bottleneck in desktop microfactories

In the last years a new technology was invented, called MEMS. MEMS stands for ultrasmall motors and nanofactories in the size of a table. A well known consumer product which is using ultrasmall motors is a DLP projector which contains 2 million magnetic actuators for controlling the mirros. From a mechanical standpoint, MEMS technology is available at mass scale and for a small price. It is possible to print an array of motors and sensors.

The bottleneck isn't located in the hardware side but has to do with controlling of the motors. Suppose there is factory which contains of unlimited amount of working cells, transport systems and assembly stations. Each of the units contains of 30 degree of freedoms. A mechanical test will show, that the factory is working great. After pressing a switch, the motor drives in the correct position. The problem is, that without a control program the MEMS factory is useless. It is same situation that somebody creates in a mechanical simulator a robot but he doesn't know what the correct program for the robot is.

In contrast to larger mechanical systems, for examples a real factory or a car, it's not possible to control a nanofactory with human intervention. Somebody may argue, that this is not a problem, because the software is doing the same like a printer driver. The software sends a signal to the motors and then the factory is working. Unfortunately this kind of software is very hard to program. The problem is equal to controlling a real time strategy game. The difference is, that a microfactory is much more complex than a Starcraft AI Simulation.

The good news is, that the bottleneck can be localized precisely. It's not the MEMS hardware itself, which makes trouble, but the missing software for controlling million of servo motors in a game environment. The problem is solved, if algorithms are available which are able to play real time strategy games which are very complex. That means, the player has to direct many hundred units at the same time to fulfill a certain task. From the computer science perspective, it's not clear which kind of software is needed here. The only thing what is known is, that some kind of Narrow AI has to solve the task. That means, the Narrow AI gets the sensor readings as input and produces the control signals as output. But what is in the software is an open problem.

Let us go back to the MEMS array from a DLP projector. Such a device is sold for under 10 US$ in electronics store. The user gets in exchange for the money a huge number of motors which can be adjusted individually. In the task for mirror the light in the red green blue colors it's obvious what the advantage is. But it's not possible to use these motors for anything else. Not because of the hardware, which is great. The problem is, that before the motors can work together they need an input signal. And this input signal has to be determined by an algorithm. For testing reasons, it's possible to send a random signal to the motors. The problem is, that they won't produce any useful with it. It's the same situation if a programmer tires to control a line following robot with a random generator. It won't work. The robot won't do what he should. If the number of servo motors is higher, the problem will become more complicated. At the end, the programmer sitts before hundred of servo motors which are working technically great, but the overall robotics project failed.

To understand the problem in detail, we have to focus on a much smaller problem. Suppose an hardware engineered has built a mini robot with only 2 servo motors. One is mounted on the left side, the other on the right side. On the first look, the robotics project is done. It looks great. Surprisingly, the robot can't do anything. Creating the software on top is not a detail problem, but it's the only problem which is available. That means, wiring the motors together and use electric current is the easiest part of the game. It will take less then 5 minute in doing so. Writing the software to move the robot on a straight line is the harder part, which will take 20 years and longer and in most cases it fails.

It's some kind of paradox. On the one hand, the engineers have developed advanced hardware. They are able to build robots in the size of 10 centimeter, 10 millimeter and even 10 micrometer. They can use as material normal metal, but it's also possible to build robots out of wood. What is missing is the part which is not visible, it's the software, better known as Narrow AI. The missing software is the reason, why MEMS nanofactories are not available.