1. VAL language and characteristics
VAL language is a robot programming language launched by the American Unimation Company in 1979. It is mainly configured on PUMA and UNIMATION robots. It is a A dedicated action description language. The VAL language was developed on the basis of the BASIC language, so its structure is very similar to the BASIC language. Based on VAL, Unimation launched the VALⅡ language.
VAL language can be applied to upper and lower computer-controlled robot systems. The upper computer is LSI-11/23, programming is carried out in the upper computer, and the upper computer manages the system; the lower computer is a 6503 microprocessor, which mainly controls the real-time movement of each joint. When programming, VAL language and 6503 assembly language can be mixed for programming.
VAL language commands are simple, clear and easy to understand. It is convenient to describe the robot's operation actions and communicate with the host computer. It has strong real-time functions; it can be programmed in both online and offline states, and is suitable for a variety of computers. Controlled robot; can quickly calculate the continuous trajectories of complex movements in different coordinate systems, can continuously generate control signals for the robot, and can modify and generate programs online interactively with the operator; VAL language contains some subroutine libraries, through Calling various subroutines can quickly be combined into complex operation control; it can quickly transfer data to external memory to save programs and data.
The VAL language system includes three parts: text editing, system commands and programming language.
You can enter a text program through the keyboard in the text editing state, or you can enter the program in the teaching mode through the teaching box. During the input process, the program can be modified, edited, generated, and finally saved to the memory. Existing programs can also be called in this state.
System commands include location definition, program and data list, program and data storage, system status setting and control, system switch control, system diagnosis and modification.
Programming language converts and executes program statements one by one.
2. Instructions of VAL language
VAL language includes monitoring instructions and program instructions. There are six types of monitoring instructions, namely position and attitude definition instructions, program editing instructions, list instructions, storage instructions, control program execution instructions and system status control instructions. The specific forms and functions of various instructions are as follows:
1. Monitoring instructions
1) Position and attitude definition instructions
POINT instruction: perform homogeneous transformation of terminal position and attitude or precise point assignment represented by joint positions.
There are two formats:
POINT
or POINT
For example:
POINT PICK1=PICK2
The function of the instruction is to set the value of variable PICK1 equal to the value of PICK2.
Another example:
POINT #PARK
It is to prepare to define or modify the precise point PARK.
DPOINT command: delete any number of position variables including precise points or variables.
HERE instruction: This instruction makes the value of a variable or precise point equal to the current robot position.
For example:
HERE PLACK
It is defined that the variable PLACK is equal to the current position of the robot.
WHERE instruction: This instruction is used to display the current position and joint variable values ??of the robot in Cartesian coordinate space.
BASE command: used to set the reference coordinate system. The system stipulates that the origin of the reference system is at the intersection of the joint 1 and 2 axes, and the direction is along the direction of the fixed axis.
Format:
BASE [
For example:
BASE 300, –50, 30
is to redefine the position of the base coordinate system. It moves 300 from the initial position to the X direction and 50 along the negative Z direction. Then rotated 30° around the Z axis.
TOOLI command: The function of this command is to assign the position and attitude of the tool terminal relative to the tool support surface.
2) Program editing command
EDIT command: This command allows the user to create or modify a program with a specified name, and can specify the starting line number of the edited program. The format is
EDIT [
If no line number is specified, editing starts from the first line of the program; program name, the last edited program will be responded to.
After using the EDIT command to enter the editing state, you can use C, D, E, I, L, P, R, S, T and other commands for further editing.
For example:
C command: Change the editing program and replace it with a new program.
D command: delete n lines of program starting from the current line. By default, n deletes the current line.
E command: Exit editing and return to monitoring mode.
I command: Move the current instruction down one line to insert an instruction.
P command: Display the program text content n lines down from the current line.
T command: Initialize the joint interpolation program teaching mode. In this mode, press the "RECODE" button on the teaching box once to insert the MOVE instruction into the program.
3) List command
DIRECTORY command: The function of this command is to display the names of all user programs in the memory.
LISTL instruction: The function is to display any number of position variable values.
LISTP command: The function is to display all programs of any user.
4) Storage command
FORMAT command: perform disk formatting.
STOREP instruction: The function is to store the specified program in the specified disk file.
STOREL instruction: This instruction stores all position variable names and variable values ??noted in the user program.
LISTF command: The function of the command is to display the currently input file directory in the floppy disk.
LOADP instruction: Its function is to send the program in the file into memory.
LOADL instruction: Its function is to send the location variable specified in the file into the system memory.
DELETE command: This command deletes the specified file on the disk.
COMPRESS command: only used to compress disk space.
ERASE command: Erase magnetic content and initialize.
5) Control program execution command
ABORT command: Emergency stop (emergency stop) after executing this command.
DO instruction: execute single-step instruction.
EXECUTE instruction: This instruction executes the user-specified program n times. n can range from –32 768 to 32 767. When n is omitted, the program is executed once.
NEXT command: This command controls the execution of the program in single-step mode.
PROCEED instruction: This instruction allows the program to continue executing from the next step after a pause, emergency stop or operation error at a certain step.
RETRY instruction: The function of the instruction is to rerun the program from that step after an operation error occurs at a certain step.
SPEED instruction: The function of the instruction is to specify the movement speed of the robot under program control. Its value ranges from 0.01 to 327.67. Generally, the normal speed is 100.
6) System status control command
CALIB command: This command calibrates the joint position sensor.
STATUS command: used to display the status of the user program.
FREE command: used to display the currently unused storage capacity.
ENABL instruction: used to turn on and off system hardware.
ZERO instruction: The function of this instruction is to clear all user programs and defined locations and reinitialize them.
DONE: This command stops the monitoring program and enters the hardware debugging state.
2. Program instructions
1) Motion instructions
Instructions include GO, MOVE, MOVEI, MOVES, DRAW, APPRO, APPROS, DEPART, DRIVE, READY, OPEN, OPENI, CLOSE, CLOSEI, RELAX, GRASP and DELAY, etc.
Most of these instructions have the function of making the robot move from one posture to another in a specific way, and some instructions represent the opening and closing of the robot's claws. For example:
MOVE #PICK!
Indicates that the robot moves by joint interpolation to the position defined by the precise PICK. "!" indicates that the position variable already has its own value.
MOVET
The function is to generate joint interpolation motion to make the robot reach the pose given by the position variable. If the hand is controlled by servo during the motion, then The hand changes from closed to the value given by the hand open variable.
Another example:
OPEN [
It means to open the robot's claw to the specified opening.
2) Robot posture control instructions
These instructions include RIGHTY, LEFTY, ABOVE, BELOW, FLIP and NOFLIP, etc.
3) Assignment instructions
Assignment instructions include SETI, TYPEI, HERE, SET, SHIFT, TOOL, INVERSE and FRAME.
4) Control instructions
Control instructions include GOTO, GOSUB, RETURN, IF, IFSIG, REACT, REACTI, IGNORE, SIGNAL, WAIT, PAUSE and STOP.
Among them, GOTO and GOSUB implement unconditional transfer of the program, while the IF instruction executes conditional transfer. The format of the IF instruction is
IF
This instruction compares two The value of the integer variable. If the relationship status is true, the program goes to the line specified by the identifier for execution, otherwise it continues to the next line. Relational expressions include EQ (equal to), NE (not equal to), LT (less than), GT (greater than), LE (less than or equal to), and GE (greater than or equal to).
5) Switch value assignment instructions
Instructions include SPEED, COARSE, FINE, NONULL, NULL, INTOFF and INTON.
6) Other commands
Other commands include REMARK and TYPE.
SIGLA language
SIGLA is a programming language only used for motion control of Cartesian coordinate SIGMA assembly robots. It was developed by the Italian Olivetti company in the late 1970s. A simple non-textual language.
This language is mainly used for the control of assembly tasks. It can divide the assembly tasks into some assembly subtasks, such as taking the screwdriver, taking screw A from the screw loader, transporting screw A, and positioning. Screw A, loading screw A, fastening screw, etc. When programming, pre-program the subroutine and then use the subroutine call to complete it.
IML language
IML is also an action-level language focusing on end effectors, developed by Kyushu University in Japan. The characteristics of IML language are simple programming, human-machine dialogue, and suitable for on-site operations. Many complex actions can be realized by simple instructions and are easy to be mastered by operators.
IML uses a rectangular coordinate system to describe the position and attitude of the robot and the target object. There are two types of coordinate systems, one is the base coordinate system, and the other is the work coordinate system fixed on the robot's work space. The language is programmed in the form of instructions, which can express information such as the robot's working point, movement trajectory, target position and attitude, etc., so that it can be programmed directly. The round-trip operation does not need to be described by a loop statement. The teaching trajectory can be defined as instructions inserted into the statement, and the application of certain forces can also be completed.
The main commands of the IML language are: motion command MOVE, speed command SPEED, stop command STOP, finger opening and closing commands OPEN and CLOSE, coordinate system definition command COORD, trajectory definition command TRAJ, position definition command HERE, Program control instructions IF...THEN, FOR EACH statement, CASE statement and DEFINE, etc.
AL language
1. Overview of AL language
AL language is a robot language developed by the Institute of Artificial Intelligence of Stanford University in the United States in the mid-1970s. , it was developed on the basis of WAVE. It is also an action-level programming language, but it has some characteristics of object-level programming languages ??and is used for assembly operations. Its structure and characteristics are similar to the PASCAL language. It can be compiled into machine language and run on a real-time control machine. It has the structure and characteristics of a real-time compiled language, such as synchronous operations, conditional operations, etc. The original purpose of AL language design is for parallel or coordinated control programming of multiple robots or manipulators with sensor information feedback.
The system hardware environment running AL language includes master and slave levels of computer control, as shown in the figure. The host is PDP-10. The manager in the host is responsible for managing and coordinating the work of each part. The compiler is responsible for compiling the instructions of the AL language and checking the program. The real-time interface is responsible for the interface connection between the master and the slave, and the loader is responsible for distribution. program. The slave machine is PDP-11/45.
The function of the host is to compile the AL language and plan the robot's actions; the slave accepts the action planning commands issued by the host, performs real-time calculations of trajectories and joint parameters, and finally issues specific actions to the robot. instruction.
2. Programming format of AL language
(1) The program starts with BEGIN and ends with END.
(2) Separate statements with semicolons.
(3) Variables must be defined first and then used. The variable name starts with an English letter and consists of letters, numbers and underscores. The letters are uppercase and lowercase.
Figure hardware environment for AL language running
(4) Program comments are enclosed in curly brackets.
(5) If the assigned content in the variable assignment statement is an expression, the value of the expression is calculated first, and then the value is assigned to the variable on the left side of the equation.
3. Types of data in AL language
(1) Scalar - can be time, distance, angle, force, etc., and can be added, subtracted, multiplied, etc. Division and exponential operations can also be performed, as well as trigonometric functions, natural logarithms, and exponential conversions.
(2) Vector - Similar to vectors in mathematics, a vector can be constructed from several scalars with the same dimensions.
(3) Rotation (rot) - used to describe rotation of an axis or rotation around an axis to express posture. The ROT variable represents the rotation variable with two parameters, one representing a simple vector of the rotation axis and the other representing the rotation angle.
(4) Coordinate system (frame) - used to establish a coordinate system. The value of the variable represents the relative position and attitude between the fixed coordinate system of the object and the reference coordinate system of the space operation.
(5) Transformation (trans) - used for coordinate transformation, with two parameters: rotation and vector. When executing, it rotates first and then translates.
4. Introduction to AL language statements
1. The MOVE statement
is used to describe the movement of the robot's gripper, such as the movement of the gripper from one position to another. The format of the MOVE statement is
MOVE
2. Paw control statement
OPEN: Paw open statement.
CLOSE: Claw closing statement.
The format of the statement is
OPEN
CLOSE
where SVAL It is the opening distance value, which has been pre-specified in the program.
3. Control statements
Similar to the PASCAL language, there are the following types of control statements:
IF
WHILE
CASE
DO
FOR…STEP…UNTIL…
4. AFFIX and UNFIX statements
In the assembly process, the operation of sticking one object to another or peeling one object from another often occurs. The statement AFFIX is an operation for combining two objects, and the statement AFFIX is an operation for separating two objects.
For example: BEAM_BORE and BEAM are two coordinate systems respectively. After executing the statement
AFFIX BEAM_BORE TO BEAM
, the two coordinate systems are attached together. That is, the movement of one coordinate system will also cause the same movement of another coordinate system. Then execute the following statement
UNFIX BEAM_BORE FROM BEAM
The attachment relationship between the two coordinate systems is released.
5. Processing of force sense
Using conditional monitoring sub-statements in the MOVE statement can use sensor information to complete certain actions.
Monitoring sub-statements such as:
ON
For example:
MOVE BARM TO ⊕-0.1* INCHES ON FORCE(Z)>10*OUNCES DO STOP
Indicates moving down 0.1 inches along the Z-axis at the current position. If the force in the Z-axis direction exceeds 10 ounces, the manipulator will be commanded to stop immediately.