Robot Control Techniques Editor: Paul Frenger, P O
Total Page:16
File Type:pdf, Size:1020Kb
Robot Control Techniques Editor: Paul Frenger, P O. Box 820506, Houston, TX 77282; [email protected] Part One: A Review of Robotics Languages Paul Frenger Abstract complished by polling of status information, or by inter- rupt servicing. Interaction with sensors may be achieved This two-part paper describes the author's recent expe- with device drivers, sensor variables, or object-oriented riences with robot control systems. First, three prin- techniques. Startup procedures involve self-testing, ini- cipal programming techniques are reviewed, including tializing data structures, powering up limb actuators and dedicated robotics languages; machine tool languages; putting the robot's appendages into a known configura- and general purpose computer programming languages. tion. Shutdown involves parking the robot's limbs, dis- Then, unconventional languages for robot control, such abling the actuators and powering all systems down. as PostScript and Java, are discussed. In the next install- World modelling may be added to the above, to de- ment, the use of Forth as an object-oriented language to scribe the properties of the objects in the robot's envi- develop the author's multiprocessor android control sys- ronment [2]. Programming support utilities, such as a tem is explored. command editor, debugger, system monitor and simula- tion facility, are generally required. 1 Introduction to Robot Control 2 Approaches to Robot Program- Reliable robot performance is an area of great theoreti- ming cal and commercial interest. Stable robot control systems are essential to achieving this goal, and a suitable robot To date, three primary techniques have been developed programming language is a crucial element in the control in the design of robot programming languages. The first equation. is to create the language de novo, specifically for robot Robot programming languages traditionally must sat- control. The second is to modify an existing computer isfy several requirements. They must facilitate the gen- language, such as C. The third is to modify an existing eral functions of any computer: perform numeric calcula- numerical control language (ie: one used for CNC ma- tions, process input-output, and so on. Additionally, they chining). Each approach has its strengths, weaknesses must control robot motion, operate with a degree of paral- and supporters. These methods are discussed below. lelism, communicate with other processors, synchronize external events, respond to stimuli in real-time, interact with sensors, and perform robot startup-shutdown proce- 2.1 Dedicated Robot Programming Lan- dures safely [1]. guages At a minimum, motion control requires a form of MOVE command. These movements may be modified In the first category is KAREL. It is a simple robot by force and position information from transducers via programming language many students have used since the SENSE command. Parallelism or concurrency may 1981 [3]. KAREL is a Pascal-like block structured lan- be achieved by multitasking and/or multiprocessing ar- guage which was originally intended more for teaching rangements. Interprocess communication may involve computer programming than for achieving robot control. shared memory, remote procedure calls, or message pass- KAREL provides position variables, speed control, mo- ing. Synchronization depends on detection and handling tion commands, input sensing, and output control. The of events: initiation or termination of an event, or detec- earlier Karel operated simulated robots on the user's CRT. tion of error conditions. Response to stimuli can be ac- Karel's most recent incarnation (1995) has the ability to 27 define new instructions, and has controlled actual robots it entered the robotics area it invested its resources in ex- in the lab. tending APT for general-purpose robot control. From this VAL-2 extends the KAREL format with special tool initial attempt grew other extended numerical control lan- handling capabilities and rich console I/O [4]. An inter- guages, which added the necessary robot programming esting feature of VAL-2 is its ability to produce smooth features. Nevertheless, this is not a highly popular ap- motion by not waiting for one MOVE command to com- proach outside the military community. plete before transferring to the next (this ability can be When I became seriously interested in medical disengaged with the BREAK command). VAL-2 also al- robotics, my only exposure to a robot programming lan- lows for sensor inputs to modify the motion of the con- guage was m the original version of KAREL. That ver- trolled component, which is particularly useful in gripper sion was not suitable for the kinds of complex systems I operations. hoped to create at a later date. Looking around for other The LM language supports programming by example approaches, I found the Logo language, a highly modi- [5]. In this case, a naive operator can generate a LM pro- fied Lisp [11]. Logo was used extensively by MIT's AI gram module by manually moving a robot through a sam- Lab, and by their Education Research Division. In the late ple operation using the TEACH statement. LM was a de- 1970's, Logo became available on the Apple II personal velopment of the earlier AL language, which attempted computer as well as others in due course. Many chil- to provide all of the necessary robot programming capa- dren have had pleasant experiences with the Lego plastic bilities in a high-level, structured language [6]. building blocks; there are Lego kits which can be inter- AML ("A Manufacturing Language") supports modu- faced to Logo on a PC for simple robotics experiments. lar programming and extensive error handling capabilities Nevertheless, I felt that I needed more control over the [7]. For example, if the GRASP command successfully programming environment than Logo offered. Around enables a robot gripper to grab an object, it will return an 1980, I became aware of the Forth language, which will "OK" string. Otherwise it will return "too big" or "too be discussed in the second part of this series. small" as appropriate. AML also supports supports pro- gramming by example via the XPROBE system [8]. 3 Postscript: A Non-Obvious Ap- 2.2 Modified Preexisting Computer Lan- proach guages A prime example of the second category is RCCL [9]. PostScript by Adobe Systems is a device-independent RCCL is a collection of robot control subroutines pro- page description language for laser printers. Most of the vided as a C library. Its author intended RCCL's robot PostScript language is devoted to graphics and typeset- programming system to be similar in flavor to UNIX I/O ting. Writing graphics display programs in PostScript is system calls (ie: an extension of the underlying computer commonplace [ 12]. But considering PostScript as merely operating system). RCCL has been very successful since a formatting utility for laser printers would be a mistake. it was originally offered in 1983: it has been used by PostScript can serve as an excellent general-purpose pro- Jet Propulsion Laboratories, RCA Advanced Technology gramming language [13]. It is a lot like its predecessor Labs and the NASA Goddard Space Flight Center. In Forth in many respects: it is based on a simple two-stack the latter case, NASA used RCCL and PUMA-760 robot virtual machine, it uses postfix ("reverse Polish") nota- arms to demonstrate tasks necessary for orbital space sta- tion for its operations, its syntax is easy to learn, and it tion maintenance. has powerful features like reentrancy, extensibility and an interpreter interface. Could PostScript serve as a suitable robot program- 2.3 Modified Preexisting Numerical Con- ming language? If one considers the electromechanical trol Languages complexity of a modern laser printer system, the answer should be "yes". Use of PostScript should be especially The third category is modifying an existing tool control attractive for schools and universities, since there are lit- language. The US Air Force settled on the APT language, erally thousands of unused "obsolete" or "broken" laser used for metal-cutting machines, for production of air- printers with still-functional motherboards available with craft parts [ 10]. The military evidently considered a robot PostScript in their ROMs. This kind of unexpected wind- to be just another machine process component, so when fall, if tapped, would make robotics education and ex- 8 .~. perimentation much less expensive. Furthermore, other embeddable interpreter with a familiar syntax (that of computer languages, such as SmallTalk or Prolog, can be PostScript). Next, Tps has some special features: for written in PostScript [14]. Indeed, Forth has been writ- example, a running Tps program can be interrupted and ten in PostScript [15], and PostScript has been written in saved in a format that can be restored on a different ma- Forth and in other languages like C. chine, then restarted safely from the point of interrup- tion. Also, like Java (discussed below), Tps provides controlled access to unsafe computer resources to deter 3.1 Ghostscript: A Postscript Workalike viruses and hackers. Tps is based on a three-stack VM (for operands, the dictionary and execution stacks). Tps This brings us to Ghostscript, a PostScript clone written programs can be single-stepped, which is a powerful aid in C, by L. Peter Deutsch [ 16]. Aladdin Enterprises owns to debugging. Multiple Tps interpreters can be run simul- the Ghostscript copyright; Ghostscript is distributed with taneously on a system, giving a form of