4.3 KiB
16. Omówić specjalizowane języki programowania robotów. Uwypuklić ich klasyfikację. ERPM
Źródło - slajdy z ERPM:
Properties of AL, RAPT and TORBOL languages - features:
- AL: objects represented by coordinate frames – shape is missing (difficult simulation)
- AL: separate commands change the state of environment and its model
- RAPT: objects modeled by elementary shapes, poses implied by desired situations – a lot left to presumption
- TORBOL: objects modeled by attributes (coordinate frames, shapes etc.)
- TORBOL: single operation acts on the environment and its model
- AL – an object oriented robot programming language
Language description
Data types (d.t.): basic data type: SCALAR with units
Complex d.t.: VECTOR, ROTATION, FRAME, TRANSFORM
Program flow: IF THEN ELSE, FOR, WHILE, UNTIL, CASE
Process synchronization: EVENT, SIGNAL, WAIT
Motion instruction:
MOVE movable_frame TO destination_frame modifier
modifier: WITH DEPARTURE, WITH APPROACH, VIA,
WITH DURATION, WITH SPEEDFACTOR, WITH WOBBLE,
WITH FORCE, WITH TORQUE
Gripper commands: OPEN, CLOSE, CENTER
World modeling: AFFIX frame TO frame BY expression modifier
UNFIX frame FROM frame
modifier: RIGID, NONRIGID
- RAPT – an object oriented robot programming language
Language description
body definition statements which use:
construction features (e.g. POINT, LINE, CIRCLE) to define:
external features of bodies (e.g. FACE, SHAFT, HOLE, EDGE,
VERTEX, SPHFACE, i.e. spherical face),
relational statements describing the relationships between
external features of the body (e.g. AGAINST, COPLANAR, FITS,
ALIGNED, TIED, UNTIED, ISSUB, i.e. is a subassembly,
NOTSUB),
motion statements (e.g. MOVE, TURN) causing the motion of
AGENTs (e.g. robot),
situation description statements which use the same keywords
and syntax as the relational statements.
Example:
REMARK shift the bottle to a new location on the table
REMARK lift the bottle off the table
MOVE/bottle,PERPTO,table;
REMARK describe the situation: the bottle is above the table
AGAINST/VERTEX of bottle, virtual_plane;
REMARK transfer the bottle to the new location
MOVE/bottle,PARLEL,table
MOVE/bottle,PERPTO,table
REMARK describe the goal situation
AGAINST/VERTEX of bottle, new_vertex
- TORBOL ((Transformation of Relations Between Objects Language) – an object oriented robot prog. language
Language description
Data types:
INTEGER, REAL, LOGICAL, FRAME, OBJECT, RELATION
Attributes of objects: BASE, TOP, BOTTOM, INSIDE, HANDLE,
PATH, GRASPED, SHAPE (CUBOID, PRISM, PYRAMID)
Relations: binary (between objects),
unary (properties of objects) – defined in terms of attribute values
Interaction with the environment:
IN_SIGNAL – EVENT (e.g., TIME) ) WAIT, CREATE, DELETE
Program flow:
IF THEN ELSE ENDIF, WHILE PERFORM ENDWHILE, REPEAT
UNTIL ENDREPEAT, FOR ENDFOR
Motion instruction: DO (relation object [object]) [modifier];
modifier: CAUTIOUSLY, MODERATELY, QUICKLY
Klasyfikacja:
https://ocw.snu.ac.kr/sites/default/files/NOTE/Chap12_Robot%20programming%20languages.pdf
Robot programming languages have likewise taken on many forms. We will split them into three categories:
1. Specialized manipulation languages. These robot programming languages have been built by developing a completely new language that, although addressing robot-specific areas, might well be considered a general computer programming language. -> AL, RAPT, TORBOL
2. Robot library for an existing computer language. These robot programming languages have been developed by starting with a popular computer language (e.g., Pascal) and adding a library of robot-specific subroutines. The user then writes a Pascal program making use of frequent calls to the predefined subroutine package for robot-specific needs.
3. Robot library for a new general-purpose language. These robot programming languages have been developed by first creating a new general-purpose language as a programming base and then supplying a library of predefined robot-specific subroutines. Examples of such robot programming languages
are RAPID developed by ABB Robotics [6], AML developed by IBM [7], and KAREL developed by GMF Robotics [8].