October 17, 2019

A nearly universal robot control system

Most robotics problems can be summarized into a number of given joints which have to be controlled according to sensor inputs. This description fits well to a single robot arm, but describes the situation for a self-driving car and a complete nanofactory at the same time. The difference is the amount of joints which can be moved freely. A complex domain like a fully automated factory has many hundred of joints.

The problem is, that from a technical point of view, this kind of description is not the answer to the problem, but it's the problem. Because it's unknown what how to program the software which is able to control the robot's joint. A possible path in solving the issue is object oriented programming. The idea is, to describe a domain with the help of classes which are arranged in an UML chart. This object oriented system is not able to control the robot but a more easier to realize system is only capable of annotate the actions of a human. Let us make a short example.

The task is a robot arm who have to fulfill a pick and place task. At first, a newly Python file is created on the harddisc which contains all the object oriented classes which is a class for the trajectory, the high level sequence, the list of motion primitives, the position of the object and so on. Now the human operator sends action signals to the robot simulation. The robot control system has to identify these signals according to the UML diagram. It converts low level input into a semantic description.

The problem is to formalize a domain into an UML diagram. For classical software engineering the idea of using classes is widespread used. But for modeling a domain for example a pick&place task the idea is new.