Professional Documents
Culture Documents
• Paper
VML (Virtual Machine Language) is an intermediate level programming language for manipulators which
allows structured programming, concurrency, built-in robot-specific data types and a certain degree of robot
independence. VML can be used both as an interactive command language and as a target language for advanced
high-level robotics software systems. Its definition involves a number of design choices which portray an abstract
view of the robot as one of several components in the automated factory.
Acknowledgements--This project has been supported and implementation of VML: R. Casslnis and G. Glni of
by CNR and by the MPI (Ministry of Public Education) Milan Polytechnic, M. Glnl of the University of Minnesota
through the "Progetto dl Ricerca sulle Metodologle and several students of the E.E. Dept. of Padua Univer-
Elettronlche, Informatlche e Sistemistiche in Robotica". sity, among whom we particularly remember G. Chemello,
The following people have also contributed to the design F. Ropelato, F. Rodlghiero and A. Tosetto.
11
12 Robotics & Computer-Integrated Manufacturing • Volume 5, Number 1, 1989
///<JOINT
• IL should be interpreted and provide on-line I.i
robot languages (like the IBM's A M L 27 and Unima- I R D A T A program is a sequence of records which
tion's VAL-II). 25 contains a certain number of arguments and which
Inspired by Stanford's A L project, 19 V M L has may be classified by distinguishing descriptive ele-
been designed as the target for a wider class of robot ments from action elements according to the special
languages. Its design therefore represents an effort requirements of robot programming. V M L has quite
to produce an intermediate structured target lan- the same set of capabilities with regard to the des-
guage, not only for robot industrial languages, but cription of robot features, motion specifications,
also for more advanced software systems capable of program flow control, I/O operations and data type
integrating several interactive tools and a word des- manipulation. VML, however, is a more structured
cription based on frame coordinate abstraction. 17 and readable language; it is likely that in the near
If we attempt to compare V M L with VAL, 25 future both I R D A T A and V M L will be enhanced
however, we may find some similarities. First, we and extended to include features of the next-
have a set of equivalent instructions in both lan- generation robot control language.
guages (i.e. some monitor instructions, some I/O
instructions and some low level program flow con- 5. MAIN LANGUAGE FEATURES
trol). Second, some V M L instructions may find a In the following, we shall describe the main
direct translation into a suitable set of V A L instruc- instruction subsets of VML. The formal description
tions and vice versa (such as relative and absolute of the language can be found in the V M L User
motion commands; robot, arm and joint position Manual. 3 A V M L statement is composed of an
queries; tooling operations; parking robot cali- optional label, a command keyword which may be
bration; and speed setting). followed by a type keyword, and a list of arguments:
The differences between VML and V A L include
(statement) ::= [(label)] : (op code) [(tag field)]
the synchronization primitives present in VML but
[ (operands)].
not in VAL, and the high level program flow control
in V A L which V M L lacks. In addition VML also A VML program comprises two main parts: a
lacks certain V A L instructions useful for inter- global data declaration and a concurrent process
actively defining and storing locations, for cali- declaration. The former allows the declaration of
brating and resetting various system devices, for constants, arrays of constants, global variables,
choosing arm configuration and making some parti- global arrays, semaphores, mailboxes and global
cular movements. However, none of these specific procedures. In contrast, each individually declared
instructions have been considered primitive opera- process may have its own declaration part formed by
tions for the virtual machine. Moreover, VML was a label declaration, local variable and array defini-
designed as a stack oriented language for the pur- tion and local procedure declaration.
poses of efficiency. Constants and variables can belong to the follow-
The comparison with A M L 27 is much less mean- ing data types: integer, scalar (real), Boolean, geo-
ingful. A M L is a new general-purpose language, metric vector, rotation, frame and character string.
extended with the functions needed to operate Arrays may be composed of scalars, vectors, rota-
robots; its design allows subroutines to be written tions and frames.
and used like built-in commands, while VML acts Two primary tools for process synchronization are
mainly as an intermediate language. We have available to the programmer: binary semaphores
developed a macroprocessor for VML which may be and messages. Binary semaphores are accessed by
used to predefine an instruction subset to be used three instructions: WAIT, S I G N A L and TEST-
later, but this facility is extraneous to the language WAIT. The first two primitives have the usual mean-
definition and belongs rather to the programming ing, while the third tests the semaphore's state and
environment tool set. issues a " W A I T sem" if the semaphore is free. In
From the point of extendibility, it is interesting to any case it returns a Boolean value which corre-
compare V M L with the language I R D A T A 23 which sponds to the state before the operation. Messages
has been designed by a committee of G e r m a n insti- are sent or received through a mailbox by two
tutes as the G e r m a n target language of the Explicit instructions: SEND and R E C E I V E .
Programming System, which will be developed by The control flow may be altered in two ways: by
the Esprit Research Project on Operational Control local or external procedure calls or by conditional or
for Robot System Integration into CIM (VML unconditional branches.
indeed is a suitable candidate as the Italian target I/O instructions allow communication between
language in the same Esprit project). An the V M L interpreter and a human operator. A set of
16 Robotics & Computer-Integrated Manufacturing • Volume 5, Number 1, 1989
PUSH VALUE up; PUSH VALUE leftarm; guages which may allow for better
MOVE ARM REL; operator-machine interaction.
{update the displacement subtracting the cube Among the criteria which guide a reasonable
size} approach to the design of a software environment
PUSH VALUE linc; PUSH VALUE edge; for robotics, we may select the following:
MINUS; POP VALUE linc; • the coexistence and interaction of different
"loosely connected" software modules, possibly
written in different languages
WAIT mutua; {beginning of critical and region}
• these modules must provide a simulator of robot
{compute where to put the cube and move
kinematics driven by robot language motion
there}
statements
PUSH VALUE arrind; PUSHARRAY
• the programmer needs a set of primitives for
VALUE pos;
manipulating robot programs, accessmg a robot
PUSH VALUE defrot; PACK FRAME;
assembly library and storing coded utilities.
PUSH VALUE leftarm; MOVE ARM ABS;
We believe that software environments for robot
{release the cube}
programming will continue to grow in the future.
PUSH VALUE down; PUSH VALUE
Task level robot programming will be achieved by
leftarm; MOVE ARM REL;
integrating different components within a sophisti-
PUSH VALUE open; PUSH VALUE
cated distributed system rather than by defining a
leftarm; TOOL;
single complex language satisfying all possible
PUSH VALUE up; PUSH VALUE leftarm;
requirements. Previous considerations lead us to
MOVE ARM REL;
consider the manipulator-operator interfacing soft-
{move over the left cube stack}
ware system as an open system 16 in which the robot
PUSH VALUE lpos; PUSH VALUE
language mterpreter acts as one of the modules.
leftarm; MOVE ARM ABS;
Therefore, as a first step, we developed a friendly
{test if all positions in the line have a cube}
interactive environment around the present version
PUSH VALUE arrind; INC; POP VALUE
of VML interpreter. The original VML interpreter
arrind;
was written in Pascal except for a small part written
PUSH VALUE ncubes; COMPARE GT;
in Assembly which interfaces to the particular hard-
SIGNAL mutua; {end of critical region}
ware. Our scheduler implements a round-robin algo-
rithm, while dynamic memory management is based
{jump to the end if the previous test was true}
on the allocation of fixed memory areas to avoid
BRANCH COND endpr;
garbage collection.
{if there's some cube in the stack, take it}
The system layout (see Fig. 5) is composed of a
PUSH VALUE count; INC; POP VALUE
small kernel, called monitor, which provides system
count;
facilities such as clock management, scheduling and
PUSH VALUE lcubes; BRANCH LE loop;
memory allocation, plus several virtual processors
endpr:
PUSH VALUE leftarm; PARK ARM;
FLUSH;
{park the arm and clear the stack}
END;
The code for the right-arm process is exactly
symmetric to this: it contains a RECEIVE statement
corresponding to the SEND in the above code, and
all "lefthand" variables (like linc, lpos, etc.) are
changed to rightarm variables (rinc, rpos etc.).
/
/,
/
A
i /
/
//
/
/
/
iF_rJ
VML I n t e r p r e t e r 2 . 0
MONITOR
~VML> PARK ROBOT. TEACH BOX
WM
READY
OPEN/CLOSE
LEFTY/RIGHTY
BELOW/ABOVE
SPEED
EXIT
Fig 6 A screen snapshot of the VML graphics envzronment under development at LADSEB
with their own private memories which communi- been implemented on a ICL-Perq graphics work-
cate through a c o m m o n data area. station 4 where it can execute V M L programs.
V M L was first implemented on an earlier multi- We also plan to implement a more advanced
microprocessor structure controlling a two-arm interactive environment for r o b o t - p r o g r a m m i n g
Olivetti manipulator at Milan Polytechnic. Simple based on message-passing semantics 2° in the context
synchronization primitives, like W A I T / S I G N A L of the Accent Operating System, z2 where the V M L
and S E N D / R E C E I V E , allowed concurrent pro- interpreter runs as an independent module and
gramming over a star-structured network formed by communicates with other tools via message
some Intel 8748 8-bit micros and an LSI-11. exchange. The University of Padua, in cooperation
A t L A D S E B , V M L presently runs on a distri- with an Italian industrial firm, has rewritten the
buted hardware structure based on the V M E bus, V M L into source codes C language to obtain a more
which is accessible through the graphic interactive efficient system and transport it into an industrial
environment of the Macintosh. environment.
As a second step towards the realization of an
open system, we undertook to develop a high-level REFERENCES
graphic environment. 10 Thus, at L A D S E B we began 1. Bison, P., Lorenzln, G., Pagello, E.: The formal defin-
Ition of VML and a proposed portable imple-
by designing a kinematic simulator for P U M A , cap- mentation. Proceedings of the llth 1S1R, Tokyo,
able of accepting V M L statements previously trans- October 1981. pp. 585-594.
lated into V A L instructions. O u r simulator (see 2. Bison, P, Pagello, E., Rodighiero, F., Tramlto, G..
Fig. 6), based on Paul's kinematic equations, 21 has The development of a portable programming lan-
VML in robot programming• P. BISONet al. 19
guage for manipulator control. Proceedmgs the Con- Evaluation of commercially available robot pro-
ference on the Automatton of Industrial Processes, grammlng languages, Proceedings of 13th ISIR.
Kempe, V., Menga, G. (Eds.). Tormo, Designers Chicago, April 1983, pp. 12/58-12/68.
Riuniti Editon 1983. pp. 221-227. 16. Hewltt, C.: The challenge of open systems. Byte 10:
3. Bison, P., Tosetto, A.: VML-Versione 2.0: Manuale 223-242, 1985.
d'uso e gulda all'implementazione. Techmcal Report 17. Laugier, C.: Robot programming using a high level
LADSEB-CNR 85-01 Padova, January 1985. language and CAD facilities. In Robot Technology
4. Bison, P., Pagello, E., Priolo, L., Zivlam, S.: Simu- Apphcattons, Rathmlll, K., MacConail, P.,
lation tools as a programming aid for robot pro- O'Leary, S., Browne, J. (Eds.). Berlin, Springer,
grammmg. In Languages for Sensor-Based Control in 1985, pp. 187-199.
Robottcs, Rembold, U., Hormann, K. (Eds.). NATO 18. Lozano-Perez, T.: Robot programming. Proc. 1EEE
ASI Series: Computer and System Sciences, Berlin, 71: 821-841, 1983
Springer, 1987. 19. Multaba , S., Goldman, R.: AI User's Manual. Report
5. Blume, C., Jakob, W.: Programmmg Languages for No. STAN-CS-81-889, Stanford University, Stanford,
Industrial Robots. Berlin, Springer, 1986. December 1981.
6 Blume, C., Jakob, W.: Design of the structured robot 20. Pagello, E., Bison, P., Mlrolo, C, Penm, G., Tramlto,
language (SRL). In Advanced Software m Robotics, G.: A message passing approach to robot pro-
Dauthine, A., Gerardln, N. (Eds), Amsterdam, grammlng. Comput. Ind. 7: 237-247, 1986.
North Holland, 1984. pp. 127-143. 21. Paul, R.L.: Robot Manipulators Mathematics, Prog-
7 Bonner, S. Shin, K.G.: A comparative study of robot ramming and Control. Cambridge, MIT Press, 1981.
languages. Computer 15: 82-96, 1982. 22. Rashld, R.F.: Experiences in the design, implementa-
8. Cassmls, R : An example of a distributed intelligence tion and use of network operating systems. Pro-
discrete process controller. Dtgttal Syst. Ind. Automat. ceedmgs o f the AICA-84 Conference. Roma, October
1: 45-77, 1981 1984, pp. 137-156.
9 Cassinis, R.: Hierarchical control of integrated man- 23 Rembold, U., Blume, C., Frommherz, B.J.: The pro-
ufacturing systems. Proceedmgs of the 13th IS1R. posed robot software Interfaces SRL and IRDATA.
Chicago, April 1983, pp 12/9-12/20. Robotics Comput-lntegr. Mfg 2: 219-225, 1985.
10. Dlllmann, R.: A graphical emulation system for robot 24. Salmon, M.: SIGLA: the Olivetti Sigma robot pro-
design and program testing. Proceedmgs of the 13th gramming language. Proceedings of the 8th ISIR.
IS1R. Chicago, April 1983, pp. 7/1-7/15. Stuttgart, May 1978, pp. 358-363.
11 Donato, G., Camera, A : A high level programming 25. Shlmano, B.E., Gesche, C.C., Spalding, C.H. III:
language for a new multiarm robot. Proceedings of the VAL-II: a robot programming language and control
1st lnternattonal Conference on Automated Assembly. system. In Robotics Research The First International
Brighton, 1980. Kempston, Bedford, IFS, 1980, Symposium. Brady, M., Paul, R. (Eds.). Cambridge,
pp. 67-76 MIT Press, 1984, pp. 917-940.
12. Fmkel, R A.: Constructing and debugging manipu- 26. Soroka, B.I.: What can't robot languages do? Pro-
lator programs. SAIL Memo AIM-284, Stanford ceedings of the 13th ISIR, Chicago, April 1983,
University, Stanford, 1976. pp. 12/1-12/8.
13. Gini, R., Gmse, D.: MAL: hnguaggio di program- 27. Taylor, R.H., Summers, P.D., Meyer, J.M.: AML: a
mazlone per robot; Descrizione generale. Technical manufacturing language. Int. J. Robottcs Res. 1:
Report No 78-20. Department of Electronics, Milan 19-41, 1982.
Polytechnic, Milan, January 1979 28. Operattonal Control for Robot System Integration mto
14. Gmi, G., Gini, M., Pagelio, E., Trainlto, G.: Distri- CIM: System Plannmg, Exphctt and Implicit Pro-
buted robot programming. Proceedmgs of the l Oth gramming. ESPRIT-CIM-5.4.2 Robot Systems Pro-
IS1R. Milan, March 1980, pp. 61-71. ject No. 623. Techmcal Annex. Spur, G. (Ed.). IPK,
15. Gruver, W A., Soroka, B I., Craig, J.J., Turner, T.L.: Berlin, January 1985.