The links2 webbrowser can show pdf files

The major advantage of the links2 webbrowser is the low bandwith and the fast performance. There is no need to download images and javascript programs in the background and the user gets the maximum experience of the internet. Sure, some major websites like Facebook and youtube doesn’t work with links2 at all but the problem is not located in the software itself …

Other websites like google are working well enough with a plain text browser. This allows a user to reduce it’s bandwith consumption to a minimum. The experience is comparable with the early internet in the 1990s. At this time, even well established university computer rooms were connected only with small speed to the world wide web.

In case of academic communication the pdf format is very important. All the major scientific publication are based on the two column pdf format. The good news is, that the links2 webbrowser can execute external programs which are displaying the content. What links2 can render direct in the window are jpg and png images and the pdf files are displayed with software which runs in the x-window operating systen.

Unfurtunately, the setup procedure is a bit complicated. The user has to create a new item in the setup ->association menu. Then he can open pdf files with a simple click. The experience is much faster than reading pdf files in the Firefox browser. In theory, the same workflow runs for other file extensions like .pls files for internet radio stations as well, but i haven’t it tested yet.

The main problem with today’s internet that most webdesigner are assuming that the end user is equipped with endless amount of bandwith. So they are creating websites only for major webbrowsers which are all graphical. It would make sense to give low bandwith users a higher priority. A nice side effect is, that browsing with text only browser is way more efficient. The user can focus on the content and gets faster results.

The limits of automation

During the introduction of industrial robots it became obvious that sometimes the productivity can’t be increased with better technology. That means, even if the robot is pick&place an object the workflow in the factory isn’t improved very much. An explanation for this bottleneck is provided in the following post.

There is a difference between a work environment and the labor which is fulfilled in this envrionment. Examples for a work space is a factory building, a table or an assembly line. In contrast, a labor intensive task is equal to assembly an object on the table or to sort objects. Classical automation technology doesn’t try to replace human labor instead the machines are created as a work envrionment in which the human has to fulfill a job. The result is an interaction between a machine which asks for labor and a human worker who can provide the labor.

The main difference of a robot over traditional machines is, that the role model is not clearly defined. Most robotics engineers are assuming that the robot will work like a human. so has to fo fullfill a workitem. What they are ignoring is, that no other machines apart from robots are doing so. In contrast, all the existing automation technology generates work which is fulfilled by somebody else.

Let us talk about the productivity paradox. The reason why a modern factory runs more efficient is because of better machines. If the employees are using a forklift instead of rransport the load manual, the task will become much faster. The interesting situation is, that a forklift truck, an assembly line or a factory in general is never designed with the idea to work by it’s own. Instead the design of a factory assumes that the place is a workplace in which humans have to solve tasks. To be more precise. The factory creates work. It has much in common with a soccer playfield wich produces also a game with rules.

The main reason why robots are useless in a factory is because a robot never creates games but the robots likes to play a game.That means, the robot will search for an unsolved task and will fulfill it. This makes the interaction with a robot very complicated because there is no task which can be solved by a robot.

Perhaps it makes sense to explain who exactly a traditional machine is helping the humans. In contrast to a myth, a machine isn’t able to provide work. In the technical history it is often desribed that machines can work, but this understanding is referencing to work in a physical but not in a economic sense. What machines are providing instead is a work space. The prototype machine is a hamster wheel in which an individual can provide labor. Industrial grade trucks, assembly lines and packacking machines are operating with the same interaction mode. The machine provides a task and a human worker has to fulfill it.

The open question is not how to design an artificial intelligence which can work in a factory of the future, but the open problem is how to design the factory itself so that the game makes more sense for humans. From a general perspective this problem is equal to game design. That means to develop a rule set which procudes a certain outcome.

In theory a factory can realized with any objective in mind. It is possible to ask the employees to run in the factory or they can play tennis. The more advanced question is which kind of game is needed which results into a maximized productivity. This question was ansered a long time ago by Winslow Taylor. His idea was to split a complicated workflow into smaller pieces and ask the workers to do repetitive work all the time. Modern factories are operating with the same principle and it is not possible to replace human workers with robots. Because the game has to be played by humans. This is written in the rule book.

Factory automation and increasing the productivity means basically to create repetitive jobs. If all teh employees are doing the same tasks very often, then the factory was designed great. An interesting seldom explored sub problem in creating an optimal work environment is to replace physical work with intellectual one. The main purpose of a machine is, that the human will press buttons instead of using his muscles to do a task. A possible example of a futuristic factory would be a collection of two arm robots which are operated by human operators in a different room. Such a factory needs lots of human workers and they will execute the same task many times.

Let us increase the abstraction level. A successful example for automation technology results into a human worker how is doing a repetitive task. Only if such a human worker is available somewhere the automation can be used in the reality. So called autonomous robots are not operating in such a way, so they will lower the productivity.

From a perspective of robotics engineers are remote controlled robot is not what they to invent because such a machine doesn’t increase the productivity. Really? The hypthesis in the beginning was that highly productive factories are asking their workers to do only repetitive work. This includes repetive work with a remote controlled robot. According to this definition a teleoperated robot is highly productive.

Let us compare teleoperation with autonomous robot. Autonomous robot doesn’t need a human worker who has to do repetitive work. Because the buttons are pressed by an algorithm. Such an interaction looks highly productive on the first look but it isn’t. The reason is that an autonomouos robot isn’t providing a working space but it is acting in such a space. This should be prevented because it will lower the produvtivity drastically. The better idea is to analyze the man machine interaction. There is a work space, and a human how has to do a job. A teleoperated robot is some sort of workspace which asks for a human to do something which is repetitive by nature.

A short look into the attempts of introducing robots at the work place have shown, that most robots are designed as autonomous machines. The idea is, that a kitchen robot has to fulfill a task in the work space ktichen and can replace a human worker. And because the human is no longer forced to repeat the same movements it is perceived as highly productive. Perhaps it makes sense to explain the situation the other way around. Suppose the kitchen robot is teleoperated. The result is, that a human has to do control the machine over hours. And this is sign, that the real work is provided by the human which is equal to a high productivity.

The recommendation is simple. It makes sense to remove autonomous robots from a factory and replace them with teleoperated one. This will increase the productivity drastically. The result is, that the classical man machine interaction is established. That means, the robot provides work and the human has to do the task.

Video games are machines

A machinery in the traditional sense is equal to an infrastructure in which work takes place. Typical examples are a factory building, a forklift, and even a soccer play field. In the domain of computers the infrastructure is equal to a program which can be an operating system or a video game. The program is doing a task and provides a space in which a human can do certain tasks. A word processing software allows the human to enter a letter, while a pacman game allows the human to press the joystick in a certain direction.

The interesting situation is, that infrastructure like computer programs and traditional machines in the real world are ignored by Artificial intelligence researchers. They are not interested in programming the pacman game itself, but they are trying to create a character who can play the game. And a robot engineer in the real world is not interested in designing a factory building, but he likes to program a robot who has to work in the factory.

Game AI and robotics as well assumes that a certain task is available as a precondition and then the algorithm should solve this task. Basically spoken an AI controlled character is the opposite of a video game and a robot is the opposite of a traditional machinery.

The reason why robots are sometimes introduced as better machines is because the authors are simply ignoring man machine interaction. They are describing technical innovation from an engineering perspective. They are measuring how many electricity in watts a machine needs, and what the purpose of the machine is. A manual controlled forklift and robot forklift is perceived as the same sort of technical innovation. But from a man machine interaction paradigm they are very different.

The contrast is the same like the difference between a video game and an AI character who takes action in the game. The game itself is programmed with normal techniques. Which means, the game has to render the sprites and accepts user input from the keyboard. Creating such a software has much in common with creating a database application or an operating system.

In contrast a software which is controlling an AI Character is very different. Because the AI Character has to provide certain actions in response to the workload. The game formulates a request, for example the player should navigate with pacman in a maze, and the AI player has to fulfill the request. The naive question is: what have a video game and an AI character in common? The answer is: they have nothing in common. They are maybe programmed in the same programming language, but the purpose is the opposite.

The same situation is available for the relationship between robots and traditional machines. An assembly line and a robot who is doing a task at the machine have nothing in common. They are completely different machines. The first machine (the assembly line) creates a work item. For example, it presents some objects which have to be grasped. And the robot has to fulfill the request by grasping the objects in a short time frame.

Some historians are surprised about the low amount of robots in real factories. They have argued that today’s robots are not highly enough developed. Or that robots are not accepted because they are too complicated. The more realistic explanation why the amount of robots is low is because they are working different from classical machines. A machine is a tool which generates work. The work item is fulfilled by a human who has to interact with the machine. It is not possible to create a machine which can work by it’s own. only from a technical perspective it is possible to switch on a motor and let the device run for some hours. From an economic perspective each machinery is creating a work station for humans. A car is a workcell for a human truck driver, and a workbench creates a space for a human mechanic.

The relationship between man, machine and robots

Suppose there is a hamster wheel. The wheel is equal to the machinery. It is maybe a power generator or it can be assembly line in a factory. It is not very hard to guess who has to run inside the wheel. The person is called a worker because he has to solve a complex physical and mental workload.

The open question is which social role is played by robots? Robots are something in between, they not equal to classical machines because they can be reprogrammed, but they are not human-like because they are not intelligent enough. In case of doubt, the robot is designed with the goal to become a human. So it makes sense to categorize them not as another hamster wheel, but a robot is able to run in the wheel with artificial legs.

In the existing literature about man machine interaction the productivity paradox is a well known fact. It means in short, that robots won’t increase the productivity but they are doing the opposite. IN the example with the hamster wheel the reason why can be explained. The only social role what the robot can provide is to replace a human in the wheel. That means, the robot is able to do the same what a human can do. He can work on the assembly line or he can do a physical task. The interesting situation is, that a robot can’t replace the hamster wheel. This role is fulfilled by classical machines and infrastructure.

In a more abstract description the hamster wheel is some sort of video game. It provides a space which contains of rules and obstacles. It is up to human or artificial characters to play this game. The interesting situation is, that the only way to increase the productivity is by introducing a better hamster wheel. For example it has an improved material. It is not up tot he human or the robot in the wheel to increase the productivity. Bascially spoken, automation technology and robots have nothing in common. They are designed with different purpose in mind.,

This understanding explains why robot won’t be introduced in a real factory. The robots known from robcup who can play soccer or grasp an object from a table are useless for a factory. The reason is, that the social role of a robot is fixed. He can only play a game, but he is not able to provide an infrastructure which allows humans to become more productive. If the aim of a factory is to maximize it’s productivity, low technology is a here to stay.

Somebody may argue that robots are useless if they can’t compete with automation technology. But this understanding ignores the benefit of Artificial Intelligence. A robot is some sort of Anti automation technology. It helps to slow down the industrial revolution and creates a space for exploring new ideas.

Let us describe a practical example to test the thesis with the hamster wheel. Suppose there is an assembly line and the idea is to introduce a robot. Technically it is possible in doing so. With some advanced algorithm the robot is able to grasp an object. But he won’t compete with a human worker. The robot is some sort of low productivity worker. Even if the task is very basic the robot will fail to satisfy the needs of the factory.

If productivity has a low priority, the robot is accepted at the assembly line. The idea is, that the robot is some sort message which explains to the world what a pick&place task is about. But suppose the productitiy has a high priority. The recommendation in such a case is, to focus not on robots but on the assembly line itself. For example how fast the line is running and what can be done to simplify the process further. None of these attempts has something to do with Artificial Intelligence, but it is classical machine design.

Perhaps it makes sense to give a second example. Suppose there is a video game, a human player and an AI player. The video game is a jump’n’run game. it contains of some tasks and formulates a work request to the player. The video game is equal to classical machinery because it is equal to the infrastructure in which work is available. The human player has to fulfill these requests. He has to control the character on the screen so that he gets a good scoore. A potential alternative way to play a video game is to create an AI character. He has to simulate the human, which means that the AI character has to realize a high reward as well.

There is a big difference between the video game itself, and a player who takes action in the game. Taking actions has to do with decision making and a certain amount of knowledge. This problem is located within Artificial Intelligence. In contrast, the video game itself works with a different principle in mind. Most video games are based on a game loop and some datastructures to store the map. Programming a video game and designing a factory building have much in common. In both cases a game is invented from scratch which has to be played by others. That means, a factory for producing shoes is some sort of video game. It follows strict rules and contains of work stations in which the employees have to do something.

The wonderful world of industrial cobots

Academic robotics is technically advanced but ignores the human machine interaction. A typical robot from the domain of micromouse or robocup works by it’s own and the algorithm stands in the focus. What real factories are interested in is to use robots in combination with existing human labor. Only the combination of man and machines generates profit.

Unfortunately the typical micro mouse robot doesn’t need human labor because it executes only the onboard algorithm. But the problem can be fixed easily. The resulting technology is called a cobot which stands for collaborative robots. In contrast to autonomous robots, cobots are providing work for human employees. This makes them interesting for real factories.

An example cobot would take two objects from the assembly line and place them on the table. The human at the table has to mount the objects together, and then the cobots takes the resulting product back to the assembly line. programming such cobots is not very different form normal robotics, except that the resulting human robot workcell is highly interesting for a factory.

Let us compare useful with failed robotics automation. Useful automation means, that the robot is generating work which is fulfilled with human labor. If one and more humans are under high work load the factory owner generates profit with the overall automation technology. In contrast, a failed robotic project is working by it’s own. The robot is doing something, but all the humans have nothing to do. This is funny for the employees but the factory owner will become bankrupt quickly.

Machines are similar to land

A common theory is, that machines can do work so they are equal to the production factor labor. Another assumption is that machines are equal to capital which is often described in economy books. The only theory not mentioned frequently is that machines are equal to land.

The production factor land consists of raw material like rice, buildings, and the machines in the buildings as well. All these elements are static and they are asking for labor otherwise the land is useless. Suppose there is a potato field and a harvesting machine. What is missing is human labor which utilizes the work environment in a productive way.

The relationship between labor and land is called man machine interaction. The machine is a ressource and the employee is doing something with it. Machines can’t replace humans because both are located in different categories. Humans are labor and machines are land. This definition works for simple machines like a stone which is used as a hammer and it works for more complex technology like cars and even robots. Even if the term robot is translated to worker, the robot is located in the land category as well. He is not able to work by it’s own but he needs a human worker. A good example is a robot arm which is installed on the assembly line. The robot arm is similar to other machines a work environment in which humans have to run a task. The interesting situation is that machines are not able to reduce the workload but they are increasing it. For example, if the robot arm is able to pick&place 100 boxes each hour, somebody else has to load the boxes on a truck.

Dialogue between two prisoners

A: I have a plan.

B: Sure, tell me more.

A: i know how to escape from the maximum security facility.

B: There was not a single successful attempt in the past. Try to go to bed and we are talking tomorrow, yes?

A: No, it is urgent.

B. OK, I’m your friend. Tell me more.

A: Thanks. At first we have to unlock the door.

B: You have no key and it gets opened from the other side.

A: I know the facts very well. But suppose the door is open.

B: This makes no sense, the door is closed and i want to sleep a bit.

A: No you can’t. It is s a strategy to imagine that the reality makes it easier for us.

B: what?

A: A what if question assumes that a certain fact is solved already.

B: ah, the assumption is, that the door was opened successfully with magic or something like this.

A: Exactly, and now we can imagine the follow up plan.

B: This makes sense, if the door is open, we can visit other prisoners and give them something.

A: for example,

B: And then?

A: Suppose, that one of the prisoners has a hidden key for the next door.

B: Nobody has such a key. But let me be polite. It is an assumption, right?

A: exactly. The imagine is that a diferent prisoner has organized the key in the past. We can take the key and open the second door at the end for the corridor.

B: this makes sense. Perhaps your escape plan is better then i have expected first. But how do want to jump over the wall outside the building.

A: I don’t know, this part of the plan is left open. But we have endless amount of time to think about it.

C: Sorry guys to interrupt you. But i have heard the discussion.

A: And you have an idea how to overjump the wall?

C: No, but the idea with a simplified facts can be adapted very well.

A: Tell me more.

C: Suppsoe the wall is not 3 meter high but only 50 cm. Then it is pretty easy to overjump the wall.

A: your a correct. Tomorrow during the daily sport acticitiry we can train a bit how to overjump a small wall.

C: Yeah, and we can explain that there is a new prison escape plan which is working only in the imagination.

Chaotic systems

In mathematics there are differential equations and sequences available. Both have in common that the numbers which are generated by the formulas are highly unpredictable. A typical example is the formula which describes an inverted pendulum or the predator prey equation. After plotting the values in to phase diagram the result looks highly chaotic, similar to a fractal.

The reason for the chaotic behavior is located in the self-referential nature of the equation. A typical sequence which is newx=oldx*4. Needs the previous value as input and produces a new value as output. If not a single variable but two and more used, the situation will look very complicated.

Nearly all robotics problems can be understood as highly chaotic systems. The future position of a robot depends on the current position plus a modification. It is not possible to predict a future value by over jumping the steps in between.

The interesting situation is that mathematical chaos theory isn’t teached in school nor in university. It is some sort of advanced physical theory which is too complicated to explain. A discipline which comes close to chaotic systems is a physics engine used in videogames. Similar to a predator prey equation a physics engine needs the current game state as input and calculates to follow up state.

____Example____

An easy to explain practical example for a chaotic system expressed with differential equations is the game of pong. The video game contains of a ball which can bounce on the corner and the player has the objective to move the ball into a certain direction. Most pong games are using for internal calcuations a physics engine. It has the form: newposition=oldpostion + some variables. This equation is exactly what mathematicans are calling a differential equation. It takes a previous situation as input and determines the follow up state.

What the game of pong makes so interesting is, that the after a few steps the behavior can’t be predicted anymore. IF the ball has hit some walls, it is not known in which direction he will move. THis chaotic behavior makes the game play interesting for humans. They perceive the game as hard to master.

A similar situation is available for a mini golf simulation. The situation has much in common with pong because it is hard to predict the future behavior.

____How to solve the trailer parking problem____

Parking a robot trailer backwards is a typical example for a chaotic system. The behavior of the system can be modeled with differential equations and it is difficult to solve the equations. A naive attempt in parking the trailer backwards is to create a game tree for all the situation and then search for the optimal node. The reason why this strategy fails is because the state space is too large. There are endless amount of possibilities to navigate with the truck.

The more elaborated problem solving technique is to ask a human operator to demonstrate the task and record the keyframes. The distance between two keyframes is low and a search algorithm can find the actions to move towards the next keyframe.

This time the algorithm doesn’t run autonomously, but he needs as input a list of keyframes. This list has much in common with waypoints. It helps the search algorithm to find the sequence much faster. The keyframe list can be retrieved from a database. If the current situation fits to a similar situation in the database the keyframes are known in advance.x

____Solving differential equations____

Differential equations and robotics control have much in common. In both case, a single step can be predicted into the future and the question is how to plan longer horizons. A typical example is the lotka volterra equation set which is a prediction model for a predator pray ecosystem. For a robotics domain, a typical differential equation described the position of the robot arm as the result of a forward model.

Solving differential equations means usually to bring the system into a goal state. For the predator pray system a certain numerical value is given as a target and the question is how to influence the system with input parameters.

The main reason why it makes sense to analyze differential equations in detail is because this single mathematical theory fits to a large amount of problems. Differential equations can be used to model economic systems, games and robotic movements. Additionally the solver works always the same. The system is in a current state and the question is which actions are needed to reach a goal state.

What is Fuzzy logic?

Fuzzy logic solves the grounding problem. Grounded information labels semantic facts with numerical values. And numerical values can be stored and calculated with computers. In the following blog post, I’d like to give the details what Fuzzy logic is about.

Computers have the same capabilities like a pocket calculator. They have built in mathematical functions like addition and subtraction and they can store the result into a memory cell for further processing. If a computer has no or only a little operating system it can be used always as a calculator and all programming languages in the world are supporting this feature very well.

All the other capabilities of modern computers like database access, internet connection and playing games is realized with the ability to calculate with numbers. If the idea is to realize artificial Intelligence with a computer a mapping from the reality to numerical information has to be found first.

In the literature this problem is called the grounding problem. Grounding is equal to create simplified simulation of the reality which can be processed in a computer. For example, if a video game contains of a variable for the player’s position, then the domain was grounded. Variables and classes are one powerful tool for storing information in a program. The variable “player1” holds the position in the format (x,y).

Classical variable based storage have some bottleneck which prevents that a domain can be grounded. For example, the temperature variable in a washing machine can be stored as “temperature=45”,but this information makes it hard to process the information further.

What most programmers are doing by themself is build categories with the help of case statements. In the c programming language the case statement is written with:

switch(temperature) {

case 1:

case 2:

case 3:

}

Fuzzy logic is an advanced case statement. Instead of jumping to a single statement, the idea is to jump to many statements at the same time. Let me give an example. In a traditional Python script the washing machine has maintain a certain temperature:

if temperature>30 and temperature<=50: increasetemperature()

elif temperature >50 and temperature<=70: donothing()

elfi temperature>70 and temperature<=90: decreasetemerature()

This controller design results into computer like control mechanism. If temperature jumps to 71 the washing machine has to react with an action immediately because a certain boundry was hit.

The idea behind fuzzy logic is to provide a smooth behavior with the help of more advanced variables. A variable like temperature can hold more than a numerical value but it stores semantic information as well. The case statement is no longer needed, because it is stored in the fuzzy variable already. The example situation with the temperature variable would be stored as the following membership variable:

temperature: low(30..50), mid(50..70), high(70..90)

Additionally the boundaries can overlapping so that inbetween values between low and mid temperature are possible. Around this simple idea, many follow up ideas has been invented which includes fuzzy rules and neuro fuzzy systems.

___Criticism___

An often asked question is, if grounding is really needed to create a model. In many cases no formal grounding was introduced but the computer allows to simulate a system perfectly. A typical example are differential equations which doesn’t provide semantic information but are based on mathematical equations. Another argument which speaks against fuzzy logic is, that with normal neural network inbetween values can be stored already. A neural network consists of many input neurons which can have values from 0..1 This allows to store vague information very well.

Fuzzy advocates are claiming that fuzzy logic consists of some unique features not available in differential equations and in neural networks. This feature is the semantic layer. Fuzzy logic has much in common with variable names, but it provides categories for each variable.

___AND operation___

Fuzzy logic is an advanced form of a case statement. The example with temperature categories was mentioned before. Let us increase the complexity a bit to make clear what the advantage of fuzzy logic is. Suppose the washing machine contains of more than a single variable. which are temperature and rotational speed. The idea is to write a controller which reacts to different conditions. A possible attempt to write the controller in normal python code would be:

if if temperature>30 and temperature<=50: tempgrounded=low

elif temperature >50 and temperature<=70: tempgrounded=middle

elfi temperature>70 and temperature<=90: tempgrounded=high

if rotationalspeed>0 and rotationalspeed<=100: rotationgrounded=low

elif rotationalspeed>100 and rotationalspeed<=200:
rotationgrounded=high

if tempgrounded==low and rotationgrounded=low: increasetemperature()

elif tempgrounded==low and rotationgrounded=high: donothing()

The code convertes numerical values into categories and then a decision is made with an AND operation between the categories. This coding style is equal to classical boolean logic. The idaa is that a variable has clear boundary and it is possible to combine values into more complex variables.

The interesting bottleneck is, that the system will respond in the category boundaries not very precise. The problem is known from a line following robot which is working with a bang bang controller. The decision is made very fast and no inbetween values are allowed. The reason is, that after converting a range of temperature values into a string variable many information are lost forever. Fuzzy logic can fix this problem. It is especially useful if the idea is to combine variables with an AND operatror. During that operation no information is lost and the precision is high.