universal six-joint robot controller

6
Universal Six-Joint Robot Controller Daniel G. Bihn and T. C. Steve Hsia ABSTRACT: A general-purpose six-axis ro- botic manipulator controller was designed and built to serve as a research tool for in- vestigation of practical and theoretical as- pects of various control strategies in robot- ics. The 80286-based Intel System 310 was used for running the XENIX operating servo software as well as for higher-level software that would implement kinematics and path planning. A Multibus-compatible interface board was designed and constructed to han- dle input/output signals from the joint mo- tors of the robot manipulator. The universal controller is capable of driving robot manip- ulators equipped with electric joint motors and position optical encoders. To test func- tionality, the controller was connected to the joint motor dc power amplifier of a Unimate PUMA 560 arm, bypassing completely the manufacturer-supplied Unimation control- ler; proportional-integral-derivative control laws were installed into the XENIX operat- ing system. Additional software drivers were implemented to allow application programs access to the interface board. All software was written in C language. Introduction Robotics are becoming increasingly prev- alent in the industrial workplace as well as creating an industry of their own. This new industry is both driving and being driven by new technologies. New materials, improved mechanical designs, and faster controller electronics are running into the limitations of traditional control techniques. A testing ground for new control techniques is needed to bridge the gap between theory and appli- cation. The Robotics Research Laboratory at the University of California, Davis, has a Uni- mate PUMA 560 arm, which is representa- tive of a large and popular class of modem industrial manipulators. The PUMA arm is controlled by using the sophisticated robot language VAL-11. The user has access to the arm only through high-level “move-type” commands. Therefore, the user has little control of the actual arm trajectory and no control over the low-level motor servo loops. Daniel G. Bihn is with Hewlett-Packad, Entry System Operation, Cupertino, C A 95014. T. C. Steve Hsia is with the Department of Electrical and Computer Engineering. University of Cali- fornia, Davis, C A 95616. Hence, the academic researcher is prevented from using the arm to test and demonstrate new control strategies as a supplement to computer simulation. The objective of this project was to design and implement a computer-based robotic controller that allows the researcher to write programs and implement algorithms that control the robot arm from the lowest level of the closed-loop servo system to the higher levels of kinematics, dynamics, path plan- ning, and robot language [l]. The use of a familiar software environment was chosen with the intent of making the user interface as clean and simple as possible. This paper presents the design and imple- mentation of the controller consisting of (1) the Joint Interface Board (JIB) electronics and (2) the opemting system interface to this hardware. A simple low-level six-joint PID (proportional-integral-derivative) controller is implemented and presented to serve as both a functional test of the system and as an ap- plication example. The advanced control laws themselves and the topics of joint ki- nematics and other high-level application software are not presented here. For a recent survey paper on implementation of digital controllers (with about 200 references), see [2]. Controller The controller presented herein was de- signed around an Intel 310, 80286-based, User interface microcomputer [3] running the UNIX-like operating system XENIX [4]. A signal in- terface board was designed and constructed to provide the interface between the micro- computer and the joint motors of the arm. The Unimation controller, supplied as part of the PUMA 560, was modified to serve two low-level functions: a convenient access point for the joint feedback signals from the arm and a multichannel power amplifier to drive the joint motors. All other electronics in the Unimation controller are bypassed; closed-loop control is done in the Intel-based controller described herein. The controller system is depicted by the block diagram shown in Fig. 1. A single 80286 CPU running at 6 MHz is used to execute both high-level (e.g., kine- matics) and low-level (e.g., joint servo loops) control software. At a typical sam- pling rate of 100 Hz, about 30 percent of the CPU time is required to execute the six PID controllers implemented in the design ex- ample. The remaining CPU time is available for application programs and the operating system. The interface board itself is useful in systems with sampling rates over 2 kHz. However, to utilize this speed, additional CPU power is required. System Design Requirements Two basic elements constitute the con- troller system implementation: (1) a digital computer and (2) a special-purpose interface High-current outputs I I ___L_ I U I I Voltage outputs rn I Sensor inputs I Joint Interface Board Multibus I Host computer Intel System 310 dc Servo motors with feedback Fig. 1. Universal six-joint robot controller. 0272-1708/88/0200-0031 $01 00 0 1988 IEEE February 1988 31

Upload: tcs

Post on 23-Sep-2016

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Universal six-joint robot controller

Universal Six-Joint Robot Controller Daniel G. Bihn and T. C. Steve Hsia

ABSTRACT: A general-purpose six-axis ro- botic manipulator controller was designed and built to serve as a research tool for in- vestigation of practical and theoretical as- pects of various control strategies in robot- ics. The 80286-based Intel System 310 was used for running the XENIX operating servo software as well as for higher-level software that would implement kinematics and path planning. A Multibus-compatible interface board was designed and constructed to han- dle input/output signals from the joint mo- tors of the robot manipulator. The universal controller is capable of driving robot manip- ulators equipped with electric joint motors and position optical encoders. To test func- tionality, the controller was connected to the joint motor dc power amplifier of a Unimate PUMA 560 arm, bypassing completely the manufacturer-supplied Unimation control- ler; proportional-integral-derivative control laws were installed into the XENIX operat- ing system. Additional software drivers were implemented to allow application programs access to the interface board. All software was written in C language.

Introduction Robotics are becoming increasingly prev-

alent in the industrial workplace as well as creating an industry of their own. This new industry is both driving and being driven by new technologies. New materials, improved mechanical designs, and faster controller electronics are running into the limitations of traditional control techniques. A testing ground for new control techniques is needed to bridge the gap between theory and appli- cation.

The Robotics Research Laboratory at the University of California, Davis, has a Uni- mate PUMA 560 arm, which is representa- tive of a large and popular class of modem industrial manipulators. The PUMA arm is controlled by using the sophisticated robot language VAL-11. The user has access to the arm only through high-level “move-type” commands. Therefore, the user has little control of the actual arm trajectory and no control over the low-level motor servo loops.

Daniel G. Bihn i s with Hewlett-Packad, Entry System Operation, Cupertino, C A 95014. T. C. Steve Hsia i s with the Department of Electrical and Computer Engineering. University of Cali- fornia, Davis, C A 95616.

Hence, the academic researcher is prevented from using the arm to test and demonstrate new control strategies as a supplement to computer simulation.

The objective of this project was to design and implement a computer-based robotic controller that allows the researcher to write programs and implement algorithms that control the robot arm from the lowest level of the closed-loop servo system to the higher levels of kinematics, dynamics, path plan- ning, and robot language [l]. The use of a familiar software environment was chosen with the intent of making the user interface as clean and simple as possible.

This paper presents the design and imple- mentation of the controller consisting of (1) the Joint Interface Board (JIB) electronics and (2) the opemting system interface to this hardware. A simple low-level six-joint PID (proportional-integral-derivative) controller is implemented and presented to serve as both a functional test of the system and as an ap- plication example. The advanced control laws themselves and the topics of joint ki- nematics and other high-level application software are not presented here. For a recent survey paper on implementation of digital controllers (with about 200 references), see [2].

Controller The controller presented herein was de-

signed around an Intel 310, 80286-based,

User interface

microcomputer [3] running the UNIX-like operating system XENIX [4]. A signal in- terface board was designed and constructed to provide the interface between the micro- computer and the joint motors of the arm. The Unimation controller, supplied as part of the PUMA 560, was modified to serve two low-level functions: a convenient access point for the joint feedback signals from the arm and a multichannel power amplifier to drive the joint motors. All other electronics in the Unimation controller are bypassed; closed-loop control is done in the Intel-based controller described herein. The controller system is depicted by the block diagram shown in Fig. 1.

A single 80286 CPU running at 6 MHz is used to execute both high-level (e.g., kine- matics) and low-level (e.g., joint servo loops) control software. At a typical sam- pling rate of 100 Hz, about 30 percent of the CPU time is required to execute the six PID controllers implemented in the design ex- ample. The remaining CPU time is available for application programs and the operating system. The interface board itself is useful in systems with sampling rates over 2 kHz. However, to utilize this speed, additional CPU power is required.

System Design Requirements Two basic elements constitute the con-

troller system implementation: (1) a digital computer and (2) a special-purpose interface

High-current outputs I I

___L_ I

U I I

Voltage outputs rn I Sensor inputs

I Joint

Interface Board

Multibus I Host computer Intel System 310

dc Servo motors with feedback

Fig. 1. Universal six-joint robot controller.

0272-1708/88/0200-0031 $01 00 0 1988 IEEE February 1988 31

Page 2: Universal six-joint robot controller

hardware. The digital computer performs all the control functions, from the joint motor servo control law to the higher levels of co- ordinated joint motion. The interface hard- ware provides the basic link between the computer and the physical signals required to control the robot arm. Several key require- ments for controller design are discussed subsequently.

DC Servo Motor Position Measurement

The control of the robot arm is equivalent to the control of the joint motors. This con- troller assumes that the dc servo motors are equipped with potentiometer and/or incre- mental encoder position feedback devices. It is also assumed that the dc motor can be driven by an analog (voltage) signal buffered by an appropriate external power amplifier (servo motor amplifier). The Unimate PUMA 560 arm has six geared dc servo mo- tors with both encoder and potentiometer po- sition feedback elements and is consic ered to be prototypical of the class of manipula- tors considered in the design.

Each manipulator joint is typically con-

nected through a gear train requiring a mul- tiple number of motor revolutions to drive the joint through its operating range, as shown in Fig. 2 . Feedback elements are at- tached directly to the motor, not the actual joint member. Joint position is inferred from the motor position and requires that absolute motor position be measured over multiple motor revolutions. A geared potentiometer is used to measure the approximate absolute motor angle over the several revolutions needed to drive the joint through its range.

Once the absolute motor position has been determined from the potentiometer and en- coder index pulse, it is continuously updated (incremented or decremented) by the data from the incremental shaft encoders. As long as the electronics are not interrupted (e.g., power-down), the data from both the geared pot and the encoder's index pulse are not used.

Typical dc Servo Motor

The PUMA 560 servo motors are integral packages that contain four basic compo- nents: (1) a dc motor, (2) an electric brake,

Potentiometer Incremental Servo Motor 10 joint encoder motor gear train

18 1

+ 5 0 i

m m /

j . Y i o g $ g g o O O O O O O O O O O 1 1 I -7-

E : P 'D m E M XJ R % z Joint angle, deg

I l l i l l I o g $ g g o O O O O O O O O O O

E : P 'D m E M XJ R % z Joint angle, deg

Motor shaft angle, deg

Fig. 2. Typical joint motor configuration.

(3) an optical incremental encoder, and (4) a geared-down potentiometer. The currents activating the motor and the electric brake are the inputs, while the encoder and the potentiometer signals are the outputs. The basic functions needed to operate the motor system are described subsequently.

Reading the Incremental Encoder The in- cremental encoder has three output signals: channels A and B and the index pulse. Chan- nels A and B are used to determine both the amount and direction of rotation in discrete steps. The index pulse produces a single short pulse each motor revolution that can be used by the system to determine the absolute an- gle of the motor and, with the addition of the potentiometer data, to determine absolute position.

Reading the Potentiometers The poten- tiometers incorporated into the PUMA 560 joint motors are connected between +5 V and ground. Rotating the pot through 360 produces a proportional voltage output of from 0 to 5 V. An analog-to-digital converter (ADC) is used to measure the potentiometer voltages. Since the potentiometers are not part of the dynamic control scheme pre- sented here, there is no constraint on the conversion speed. However, to make the system more flexible, other possible appli- cations should be considered. Thus fast (30 psec) 12-bit ADCs with an input range of 5 V were chosen.

Driving the Motor The drive current and voltage needed by a dc motor depend on the size and type of motor used; no one solution is appropriate for all motors. Therefore, it is considered impractical to include the power amplifier as part of the design. The impor- tant requirement becomes how to drive these power amplifiers.

In general, two standard techniques for supplying the current needed for driving dc servo motors are commonly used: linear am- plifiers and pulse-width-modulated (PWM) amplifiers. Each have advantages, but both are controlled by a simple analog voltage. In the particular case of the PUMA 560 ami, the Unimate PUMA controller's power am- plifiers have been conveniently used because they are designed explicitly to drive thc PUMA 560 joint motors.

Power amplifiers are controlled by analog voltages; to generate these voltage outputs from a digital controller, a digital-to-analog converter (DAC) must be used. A IO-bit DAC was chosen as a reasonable compro- mise between price and performance.

32 I E t E Coritroi Systems Mnqoirnc

Page 3: Universal six-joint robot controller

Host Computer Requirements

The selection of a suitable host computer is very important. The machine must not only be capable of meeting basic execution speed and inputloutput (I/O) requirements, but it should also be able to support the software tools needed to implement a controller. In this section, both the host computer hard- ware and software will be discussed.

The Computer: Intel System 31 0 The Intel System 310 microcomputer was used be- cause it satisfies the preceding criteria. It is based on the Intel 80286 16-bit micropro- cessor [5] ; the system also comes equipped with an 80287 floating-point math coproces- sor [6]. It is a Multibus-based system [7]- a bus standard popular in the area of indus- trial automation. A wide variety of interface board products-including memory, I/O, and blank prototype boards-are available from Intel and third-party vendors. Because a standard Multibus board is comparatively large, complex circuits fit onto a single board and all the hardware for the Joint Interface Board fits on a single board.

The Operating System Choice: XENZX 286 The Intel 3 10 can run several operating systems: the ubiquitous IBM PC’s MS-DOS, the UNIX-like XENIX system, and the real- time multitasking systems RMX-86 and RMX-286.

XENIX was chosen to be the operating system of this project’s implementation. The XENIX operating system is Microsoft’s li- censed version of UNIX 111 with some of the Berkeley Software Distribution enhance- ments (e.g., “vi” and the C-shell) and sev- eral of their own enhancements. It is a mul- tiuser system. UNIX is a very powerful environment for developing software and is widely used in the academic and research communities. The disadvantage is that it was not designed for real-time applications. De- tails of the techniques used to construct a real-time controller are given subsequently.

Design

This section details the design and imple- mentation of the preceding specifications. The discussion is divided into three parts: (1) the hardware design of the Joint Interface Board, (2) the connection between the JIB and the Unimate PUMA 560 controller, and (3) the software used to control the JIB.

Joint Interface Board Design

A block diagram outlining the JIB hard- ware is shown in Fig. 3. As seen from the computer side of the bus interface, the JIB is a small collection of I/O devices: six 16- bit encoder counters, an encoder reset cir- cuit, two PI0 (parallel inputloutput) de-

n -

vices, timer, and the interrupt reset logic. One of the PIOs is used exclusively to in- terface the ADC and DAC subsystem and the other is used for off-board digital expan- sion.

Analog Z/O Six analog voltage outputs are necessary to drive the basic joint servo mo- tors. An additional analog voltage output was included to permit future expansion, possi- bly the control of a more sophisticated grip- per. To produce these outputs, seven inde- pendent DACs were used. The independent DAC’s approach offers the advantage of a very straightforward interface, improved ac- curacy, and simpler circuit design. The an- alog outputs must be capable of delivering a voltage from - 10 to + 10 V at a resolution of 10 bits (a part in 1024) to properly drive the inputs of the servo motor power ampli- fier.

The PUMA 560 joint motor has a poten- tiometer that produces an output from 0 to 5 V and, to be useful in absolute position de- termination, these signals must be resolved to an 8-bit accuracy. Fast, high-resolution ADCs can give the Joint Interface Board more power. The type of ADC chosen has a 12-bit resolution, a conversion speed of less than 30 psec. At this speed of conver- sion, one device is fast enough to convert all six joints’ pot data in less than 0.2 msec, a speed fast enough to allow the pots alone to

n *NMOC-DICITM 12-817 BUS A/D

12-BIT .

I DlGlTM

INTERFACE

__ .-\

UM/M>S

I ’ I I I I I ’ I I I L

LOCAL 16-811 81-DIRECTIONAL DATA BUS

F,

4 DIGITAL I/O INTERRUPT *

-(I n w s 24-UNES CONTROL

-

J11

Fig. 3. Joint Interface Board block diagram.

Februorv I988 33

Page 4: Universal six-joint robot controller

be used as the primary feedback element in situations where it may be useful.

terface Board is accomplished by inserting a prototyping card (hereafter called the Uni-

taking the new character and putting it into the terminal handler’$ buffer. This software

Encoder Subsystem The JIB accepts six sets of incremental encoder signals. Each in- put set is used to control its own 16-bit counter, instructing it to count UP, count DOWN, do nothing, or RESET to zero. The encoder subsystem can be divided into three parts: (1) the basic up-down counter, (2) the dccode logic, and (3) the reset logic.

The 16-bit up-down counter is a straight- forward cascading of four 4-bit up-down synchronous counters with three control in- puts: clock enable (CE), up-down select (UD), and reset (R). The system clock runs continuously at 1 MHz.

An index pulse signal is generated every incremental encoder (servo motor) rotation. This signal is used to supply quasiabsolute position information about the motor so that the motor revolutions (e.g., 0, 360, 720, etc.) can be distinguished from one another. Typically, these index signals are used only during initialization of the hardware and software after system power up. Once the system has been initialized, incremental in- formation alone is sufficient to determine ab- solute position (provided no encoder state changes are missed).

The basic scheme of the reset/calibrate routine is to rotate each motor until the en- coder index pulse is found, and then this position is defined to be the position zero. This could be done in software by reading the index signal continuously until it is de- tected. However, a faster hardware scheme was devised that allows calibration of the system with the motor to be running at any speed within its operating limits.

Unimation Integace

This section describes how the Joint In- terface Board and the XENIX software in- terface running on the Intel 310 were con- nected to the Unimate PUMA 560 arm.

The Unimate PUMA controller consists of an LSI-11/73, six 6503-based joint control- ler boards, several low-level interface boards, and a six-channel/high-current power amplifier. The controller presented herein makes use of only the power amplifiers and one of the feedback signal conditioning cir- cuits. The LSI-11 and the six microprocessor joint controllers are completely bypassed.

It was considered desirable to make the necessary modification to the Unimate con- troller in such a way that switching between the Intel controller and the internal Unimate controller systems is as simple and as safe as possible. Connecting the feedback signals from the Unimate controller to the Joint In-

mate Interface Board) into one of the several available empty unwired slots of the joint controller portion of the Unimate card cage [8]. Some basic signal conditioning is per- formed, power is supplied to the joint pots and encoders, and the encoder outputs are then buffered to produce clean logic levels. When the Unimate Interface Board is re- moved from its slot, the system is electri- cally and logically in its original condition. The card that is inserted into this slot also contains an inverting line driver to buffer the encoder signal to drive the wires connecting it to the Intel/JIB system.

XENIX to the Joint Interface Board

The Joint Interface Board is installed in the I/O space of the Intel 310 (distinct from the memory space) and, like all other system hardware in XENIX, the user can access it only through system device drivers. Drivers for all the JIB devices have been written and installed into XENIX (see software listing in Appendix H of [I]). The device driver con- trols the details of the data format and of physically addressing the hardware transpar- ent to the application program [9].

Properly written drivers protect the system from the application programs and make the user interface clean and simple. A motor controller can be implemented entirely at the application level, individually accessing the incremental encoders, DACs, and ADCs through their respective device drivers. While this will work, much of the CPU time is consumed in operating system overhead. An alternative to implementing the controller at the application level i s to place it in the XENIX kernel as a single logical device. Code written at the kernel level has direct access to the I/O space and may read and write to the JIB without going through the operating system. This reduction of over- head can reduce execution time on the order of 50 percent.

Real-Time Issues

XENIX is not a real-time operating sys- tem; it does not guarantee when a particular application program will get executed. It i s often said that XENIX ( v i s - h i s UNIX) does not guarantee when an interrupt i s serviced. This refers only to the application level, not the lowest level of interrupt handling. In the common application of a terminal handler, an interrupt is issued from the serial interface hardware (a universal asynchronous receiver transmitter) each time a new character is re- ceived from the terminal. The interrupt han- dling software then services the hardware,

only competes with other interrupt routines (e.g., other terminals) for CPU time. Non- interrupt-level operating system software that processes the characters in the terminal han- dler’s buffer must compete with the entire system (including other application pro- grams) for CPU time, and it is here where XENIX cannot guarantee response time. This issue is important in designing a real-time controller.

The entire control system software is in- stalled at the kernel level of XENIX and is executed as part of the interrupt service rou- tine of the driver itself. Since the interrupt service routine does not have to compete with the nonintempt portion of XENIX (includ- ing all application programs), this technique is guaranteed to be executed on each time interrupt, producing a reliable sampling in- terval.

This is an effective method of implement- ing a real-time controller in XENIX. There are disadvantages to having the controller at the device driver level, however. First i s software development time. Drivers must be physically linked to the XENIX kernel. This takes about 15 minutes and substantially in- creases the development time for the con- troller code. Second, since device drivers have full access to the system, programming errors may destroy the software system (re- quiring XENIX to be reloaded from the disk- ette). In spite of these problems, this still seems to be the most practical way of build- ing a controller in XENIX.

Application Once the Joint Interface Board was con-

structed and debugged, the basic I/O drivers were installed into the XENIX system and tested. After the basic system became op- erational, a simple but complete example of a controller was designed and tested. The objective of this project was to design and construct the hardware and interface soft- ware to implement a robot controller. To perform a functional test on the entire sys- tem, a simple six-axis PID digital controller was implemented. In addition to testing the integrated system, it also served as a docu- mented application guide for use of the JIB and the XENIX interface.

Figure 4 shows the logical diagram for the basic controller system. The controller i s di- vided into five distinct subsystems: ( I ) ap- plication software, which issues high-level joint motion commands (kinematics, path planning, etc.) and runs in the normal ap- plication environment of XENIX; (2) kernel-

34 / € € E Control Systems Mogorrne

Page 5: Universal six-joint robot controller

Kernel software I Joint I Robot arm software I Interface I hardware

Application

I 1 Board I

I

level driver software, which interprets the read and write commands from the applica- tion programs; (3) intempt-level driver soft- ware, which “services” the timer intempt by executing the control structure software, reading and writing directly to the JIB hard- ware; (4) the Joint Interface Board, which interfaces the computer joint motor signals; and (5) the robot arm itself, including power amplifiers, joint motors, and feedback ele- ments.

The simple PID controller implemented was able to control satisfactorily all six PUMA 560joint motors simultaneously. The PID gain coefficients were determined ex- perimentally by trial and error (all integral gains were set to zero). This was done one joint at a time while the other joints were locked. When all joints were operated to- gether, the strong coupling between joints 2 and 3 (shoulder and elbow) caused strong oscillations. The gains of these joints were reduced to produce a more stable system. Coupling is an area where sophisticated con- trol techniques should produce improved re- sults.

Conclusion The objective of designing and construct-

ing a general-purpose robotic controller using a microprocessor and a standard operating system was completed successfully. The system has controlled both the Rhino (not described here) and the PUMA 560 robot arms, demonstrating the flexibility of the de- sign.

The Intel 310 and the IBM AT both use the same 80286 processor and, therefore,

Interrupt software

Fig. 4. Controller logical diagram

have equivalent processing power. At the commencement of this project, two 3 10 units were available and we decided to use them. If we were to start the project over and had to purchase all the hardware, it would have been very difficult to justify not using the AT or a clone. The basic processor unit for the AT is cheaper; no external terminal is required. Moreover, there is a plethora of inexpensive, high-quality hardware and soft- ware to choose from.

The XENIX operating system was used with mixed results: high-level software was easily developed (at least for UNIX users). The method of low-level servo-loop soft- ware programming was somewhat less than desirable. Routines on this level must be di- rectly linked (using the “lk” linker) to the XENIX kernel. Therefore, the system must be shut down and then brought up again. We believe that in a single-computer controller system, the advantages far outweigh the in- conveniences. In a multicomputer system where one computer is used exclusively for servo level control and another is used for higher-level functions, the use of a simpler operating system (e.g., MS-DOS) at the low level would be a preferred choice.

The Joint Interface Board (JIB) served its overall design objectives. The general-pur- pose nature of the board allows it to be used in numerous control- and noncontrol-related experiments. If an IBM PC-type machine were to be used, the functionality of the JIB would have to be distributed over two or three PC input/output boards. Some of these capabilities, especially the analog-digital functions, could come from an off-the-shelf product.

References D. G . Bihn, “A Universal Six Joint Robot Controller,” M.S. thesis, Department of Electrical and Computer Engineering, Uni- versity of California, Davis, CA, 1986. H. Hanselmann, “Implementation of Digital Controllers-A Survey,’’ Automatica, vol. 23, no. 1, pp. 7-32, Jan. 1987. Intel Corporation, System 310 Installation and Operation Guide, O.N. 17321 1-002, Oct. 1983. Intel Corporation, XENIX, 286 Reference Manual, O.N. 174390-008, 1984. Intel Corporation, Introduction to the iAPX

Intel Corporation, Introduction to the iAPX 287, 1985. Intel Corporation, Intel Multibus Specifca- tion, O.N. 9800683, 1978. Unimation. “500 Series Electrical Drawing Set for VAL I1 and VAL Plus Operating Sys- tems,” Unimate PUMA Mark II Robot, 394AC1, July 1985. Intel Corporation, XENIX Device Driver Guide, O.N. 174393-001, 1985.

286, O.N. 210308-001, 1985.

Daniel G. Bihn is a Fac- tory Automation Engineer at the Sunnyvale Personal Computer Operations of Hewlett-Packard. He re- ceived the M.S.E.C. E. degree at the University of California, Davis, in 1986 and the B.S.E.C.E. degree at the University of California, Santa Bar- bara, in 1981 He spent one year as an engineer

February I988 35

Page 6: Universal six-joint robot controller

trainee at TOKO K . K . in Saitama, Japan, after completing a year of postgraduate studies at the College of Information Engineering of the Uni- versity of Kumamoto, Japan. He was also a De- sign Engineer for Intermedics, Inc., Freeport, Texas.

T . C. Steve Hsia re- ceived the B.S.E.E. de- gree from National Tai- wan University and the Ph.D. degree in electrical engineering from Purdue University. He is a Pro- fessor in the Department of Electrical and Com- puter Engineering and the Director of the Robotics Research Laboratory at the University of Califor-

nia, Davis, where he joined the faculty in 1965. Dr. Hsia has been engaged in research in system identification and control, adaptive systems, and robotics. He is the author of the book Sysrem Iden- rijcariori published by Lexington Books and is the Editor-in-Chief of the Internariotial Journal of Ro- horics und Autornation published by ACTA Press. During his sabbatical leaves, Dr. Hsia has visited Siemens Research Laboratories in Karlsruhe, Fed- eral Republic of Germany, and Vienna, Austria; the Imperial College, London, England: and Pur- due University. He is an active consultant for in- dustry. Currently, Dr. Hsia is Chairman of the Sensor and Control Working Group of the IEEE Control Systems Society Technical Committee on Automation and Robotics.

4988 ACC The seventh American Control Confer-

ence (ACC) will be held Wednesday through Friday, June 15-17, 1988, at the Hilton Towers Hotel, Atlanta, Georgia. The pro- gram will contain both regular and short pa- pers in all areas of control and automation. Information about conference preregistration and hotel accommodations is presented else- where in this issue of the Magazine. For ad-

ditional information, contact: General Chair- man: Dr. Wayne Book, Dept. of Mechanical Engineering, Georgia Institute of Technol- ogy, Atlanta, GA 30332; phone: (404) 894- 3241.

The photo to the left, taken by Michael Masten, shows Prof. Wayne Book, Chair- man of the 1988 American Control Confer- ence, proposing a toast to the success of the 1988 ACC. Many interesting activities will be associated with the 1988 ACC, and one opportunity for family entertainment in Atlanta is Six Flags Over Georgia (shown above), a 331-acre family entertainment park with more than 100 rides, shows, and attractions.

1988 CDC Arrangements are proceeding for the 1988

IEEE Conference on Decision and Control (CDC) to be held Wednesday through Fri- day, December 7-9, 1988, at the Hyatt Re- gency Austin on Town Lake, Austin, Texas. Michael Polis from Wayne State University is General Chairman. William Schmitendorf from Northwestern University, Chairman of the Program Committee, will shortly be con- sidering contributed papers and invited ses- sions, as explained in the Call for Papers in this issue of the Magazine. Other members of the Operating Committee include: Fi- nance, Frank Lewis, Georgia Institute of Technology; Local Arrangements, Klaus Dannenberg, Lockheed Missiles and Space Company; Publications, Marija Ilic-Spong, Massachusetts Institute of Technology; Pub- licity, Robert Lobbia, Boeing Aerospace Company; Registration, Kenneth Sobel, City College of New York; and Exhibits, James Beggs, Robertshaw Fulton Controls.

The Lyndon B. Johnson (LBJ) Library and Museum on the University of Texas campus in Austin features colorful highlights of political campaigns relating to LBJ and the office of the presidency. Exhibits include gifts from foreign heads of state, Western art, a moon rock, and a replica of the Oval Office.

36 I € € € Control Systems Magazine