The textual robot languages possess a variety of structures and capabilities. These languages are still evolving. In this section we identify two generations of textual languages and speculate about what a future generation might be like.
First Generation Languages
Typical features include the ability to define manipulator motions (using the statements to define the sequence of the motions and the teach pendant to define the point locations), straight line interpolation, branching, and elementary sensor commands involving binary (on-off) signals.
In other words, the first generation languages possess capabilities similar to the advanced teach pendant methods used to accomplish the robot programming instructions described in before.
They can be used to define the motion sequence of the manipulator (MOVE), they have input/output capabilities (WAIT, SIGNAL), and they can be used to write subroutines (BRANCH).
For writing a program of low-to-medium complexity, a shop person would likely find the teach pendant methods of programming easier to use, whereas people with computer programming experience would probably find the first generation languages easier to use.
The VAL language is an example of a first generation robot programming language.
Common limitations of first generation languages include inability to specify complex arithmetic computations for use during program execution, the inability to make use of complex sensors and sensor data, and a limited capacity to communicate with other computers. Also, these languages cannot be readily extended for future enhancements.
Second Generation Languages
The second generation languages overcome many of the limitations of the first generation languages and add to their capabilities by incorporating features that make the robot seem more intelligent.
This enables the robot to accomplish more complex tasks. These languages have been called ‘structured’ programming languages because they possess structured control constructs used in computer programming languages.
Commercially available second generation languages include AML, RAIL, MCL, and VAL II. Programming in these languages is very much like computer programming.
This might be considered a disadvantage since a computer programmer’s skills are required to accomplish the programming. The second generation languages commonly make use of a teach pendant to define locations in the work space.
The features and capabilities of these second generation languages can be listed as follows :
- Motion control – This feature is basically the same as for the first generation languages.
- Advanced sensor capabilities – The enhancements in the second generation languages typically include the capacity to deal with more than simple binary (on-off) signals, and the capability to control devices by means of the sensory data.
- Limited intelligence – This is the ability to utilize information received about the work environment to modify system behavior in a programmed manner.
- Communications and data processing – Second generation languages generally have provisions for interacting with computers and computer data bases for the purpose of keeping records, generating reports, and controlling activities in the workcell.
The motion control capability in some of the second generation languages goes beyond the previous generation by including more complex geometry problems than straight line interpolation.
The MCL language, for instance, is based on APT. Accordingly, MCL includes many of the geometry definition features contained in APT.
For example, lines, circles, planes, cylinders, and other geometric elements can be defined in APT and MCL.
The advanced sensor capabilities include the use of analog signals in addition to binary signals, and the ability to communicate with devices that are controlled by these signals.
Control of the gripper is an example of the enhanced sensor capabilities of the second generation languages. Typical control of the gripper using a first generation language involves commands to open or close the gripper.
Second generation languages permit the control of sensored grippers which can measure forces.
The sensor monitors the forces or pressures during closure against an object, and the robot controller is able to regulate the amount of gripping force that is applied to the object.
The third feature provided by the second generation languages is limited intelligence. Instead of merely repeating the same motion pattern over and over, with slight differences for different product configurations, the robot has the capacity to deal with irregular events that occur during the work cycle in a way that seems intelligent.
The intelligence is limited in the sense that it must be programmed into the robot controller. The robot cannot figure out what to do on its own beyond what it has been programmed to do.
The error recovery problem illustrates this intelligence feature that might be programmed into the robot controller. Suppose the holding fixture in a robotic machining cell malfunctions by failing to close properly against the work part.
The robot’s intelligent response might be to open the fixture, grasp the part and lift it out, reinsert the part back into the fixture, and signal for closure.
If this recovery procedure works, the activities in the cell resume under regular programmed control. If not, the procedure might be repeated once or twice or some other action might be taken.
The robot gives the appearance of behaving-in an intelligent way, but it is operating under algorithms that have been programmed into its controller.
By contrast with this error recovery procedure, an ‘unintelligent’ response of the robot would be to merely stop all work in the cell in the event of a malfunction.
First generation languages are quite limited in their ability to communicate with other computers. Typically, any communication with other controllers and similar external devices must be accomplished by means of the WAIT and SIGNAL commands through the input/output ports of the robot.
Second generation languages possess a greater capacity to interact with other computer-based systems. The communications capability would be used for maintaining production records on each product, generating performance reports, and similar data processing functions.
A related feature of some of the second generation languages is extensibility. This means that the language can be extended or enhanced by the user to handle the requirements of future applications, future sensing devices, and future robots, all of which may be more sophisticated than at the time the language is initially released.
It also means that the language can be expanded by developing commands, subroutines, and macro statements (with a mechanism for passing parameter values from the main program) that are not included in the initial instruction set.
Future Generation Languages
Future generation robot languages will involve a concept called ‘world modeling.’ Other terms sometimes used instead of world modeling include model-based languages and task-object languages.
In a programming scheme based on world modeling, the robot possesses knowledge of the three-dimensional world and is capable of developing its own step-by-step procedure to perform a task based on a stated objective of what is to be accomplished.
According to this definition, there are two basic ingredients of a programming language based on a world-modeling system. The first is that the robot system has in its control memory a three-dimensional model of its work environment.
This model includes the robot manipulator itself, the worktable, fixtures, tools, parts, and so on.
The model might be generated either by inputing three-dimensional geometric data into the control memory or by providing the robot with the capacity to see the work environment and properly interpret what it sees.
In this latter case, the robot develops its own three-dimensional model of the workspace.