Open Collections

UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Implementation of a force-reflecting telerobotic system with magnetically levitated master and wrist Wong, Ngai M. 1992

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-ubc_1993_spring_wong_ngai.pdf [ 4.01MB ]
Metadata
JSON: 831-1.0065072.json
JSON-LD: 831-1.0065072-ld.json
RDF/XML (Pretty): 831-1.0065072-rdf.xml
RDF/JSON: 831-1.0065072-rdf.json
Turtle: 831-1.0065072-turtle.txt
N-Triples: 831-1.0065072-rdf-ntriples.txt
Original Record: 831-1.0065072-source.json
Full Text
831-1.0065072-fulltext.txt
Citation
831-1.0065072.ris

Full Text

Implementation of a Force-Reflecting Telerobotic System with Magnetically Levitated Master and Wrist  By Ngai Mun Wong B.Sc.(EE), University of Manitoba, 1990  A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF  MASTER OF APPLIED SCIENCE  in THE FACULTY OF GRADUATE STUDIES DEPARTMENT OF ELECTRICAL ENGINEERING  We accept this thesis as conforming to the required standard  THE UNIVERSITY OF BRITISH COLUMBIA  December 1992 © Ngai Mun Wong, 1992  In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purposes may be granted by the head of my department or by his or her representatives. It is understood that copying or publication of this thesis for financial gain shall not be allowed without my written permission.  (Signature)  Department of Flpctri cal Engipeoripp The University of British Columbia Vancouver, Canada  Date Dec. 9, 92  DE-6 (2/88)  Abstract  Aspects of control and coordination of a new force-reflecting teleoperation system have been addressed in this thesis. A six-degree-of-freedom magnetically levitated fine-motion device is used as the teleoperation master. The slave system is a redundant coarse-fine manipulator system which consists of a conventional robot equipped with a magnetically levitated fine-motion wrist identical to the master. The environment and the human operator applied forces are measured by two six-axis force-torque sensors. Taking advantage of the Lorentz magnetic levitation technology, the system can eliminate mechanical problems such as friction and backlash, and is able to achieve high frequence response, precise positioning and excellent force-reflection quality. With using rate control for large motion and position control for small motion, the slave system can be controlled over a large workspace by the master without operator controlled indexing and without sacrificing position resolution. An overshoot problem due to time delay in the coarse manipulator position data has been solved by using decoupling coarse-fine control approach, in which the coarse manipulator is only responsible for rate control and the fine-motion wrist is responsible for position control. The system performance was quantified by performing general teleoperation tasks, such as free motion tracking, hard contact and exertion of forces. The teleoperation system has over 15Hz position bandwidth and several kHz force bandwidth. At present, the force bandwidth is limited by computation delays to a few hundred Hz (this number will increase with a faster computing system).  ii  Table of Contents  Abstract^  ii  List of Figures^  viii  List of Tables^  xii  Acknowledgement^  xiii  1^Introduction  1  1.1^Teleoperation Theory  1.2  1.3  ^  3  1.1.1  Ideal Teleoperator ^  3  1.1.2  Teleoperator Bandwidth Requirements ^  3  1.1.3  General Teleoperation System Design Principles  4  Motivation  ^  ^  5  1.2.1  Survey of Existing Teleoperation Systems ^  5  1.2.2  Motivation of the Project ^  7  Thesis Overview ^  iii  7  2  Implementation of the UBC Teleoperation System  9  2.1  The UBC Teleoperation System Overview ^  2.2  Maglev Fine Motion Wrist ^  12  2.2.1^Hardware Design ^  13  2.2.2^Dynamics and Control using Euler Quaternions ^  16  Force-Torque Sensor ^  18  2.3.1^Analog and Digital Options ^  18  2.3.2^Sensor/Wrist Dynamic Interaction ^  19  2.4  Coarse Motion Manipulator: The CRS460 Robot ^  20  2.5  Computing Systems ^  21  2.5.1^DSP System ^  21  2.5.2^PC System ^  23  2.5.3^CRS System ^  25  2.3  9  2.5.4^Communication Between Computing Subsystems ^ 27 2.6  3  The Bandwidths of the UBC Teleoperation System ^  29  Control Algorithms of the UBC Teleoperation System  31  3.1  31  Controlling a Large Slave with a Small Master: Hybrid Position/Rate Control . .  3.1.1^Problem of Poor Position Resolution in Position Control ^ 31  iv  3.1.2 Problems of Positioning and Force-Feedback in Rate Control ^ 32 3.1.3 Hybrid Position and Rate Control ^  33  3.2 Implementation of the Hybrid Position and Rate Control ^ 37 3.2.1 Overshoot Problem due to Time Delay ^  38  3.2.2 Decoupled Coarse-Fine Control Algorithm ^  44  3.2.3 Discussion and Further Improvement ^  45  3.3 Six Degree-of-Freedom Extension ^  46  3.4 Teleoperation Control at Wrist Level ^  51  3.4.1 Modelling a Teleoperator as Two Rigid Bodies ^  51  3.4.2 Force-Reflection by Coordinating Torque ^  52  3.4.3 Force-Reflection by using Force-Torque Sensors ^  53  4 System Testing and Analysis^  55  4.1 Free Motion Tracking ^  57  4.1.1 Position Tracking at Wrist Level ^  57  4.1.2 Back-Driveability at Wrist Level ^  57  4.1.3 Rate Tracking (no rate deadband) ^  57  4.1.4 Hybrid Position and Rate Control ^  60  4.2 Contact Stability ^  60  4.2.1 Hard Contact ^  60  4.2.2 Soft Contact and Active Environment ^  68  4.3 Exertion of Forces ^  68  4.4 Discussion and Evaluation ^  72  4.4.1 Slave Flotor Dynamic Effect during CRS Motion ^ 72 4.4.2 Pros and Cons of using Force-Torque Sensor(s) ^  75  4.4.3 Evaluation ^  76  5 Conclusions^  79  5.1 Contributions ^  79  5.2 Future Work ^  80  Bibliography^  81  Appendices^  84  A Operation Procedures of the UBC Teleoperation System ^  84  B Technical Manual of the UBC Teleoperation System^  87  B.1 Interconnection and Pin-Assignments ^  87  B.2 The Parallel Communication between PC and CRS Systems ^ 92 B.3 CRS System Programming Technique ^ vi  94  C Experimental Results for the Z-Axis Rotation ^  97  D Programming Flowcharts of the DSP, PC and CRS Systems ^108  vii  List of Figures  1.1  A Teleoperation System ^  1  1.2  A Teleoperation System with Universal Hand Controller ^  5  2.1  Main Components of the UBC Teleoperation System ^  10  2.2  Data-Flow of the UBC Teleoperation System ^  11  2.3  Maglev Wrist System ^  12  2.4  The Assembly Sketch of the Maglev Wrist ^  14  2.5  Maglev Wrist Optical Position Sensing System  15  2.6  One-Axis Model of the Force Sensor ^  19  2.7  The Real-Time Computing System ^  22  2.8  Computations Performed by the DSP System ^  24  2.9  The CRS REMOTE Operation ^  26  3.1  Hybrid Position and Rate Control  34  3.2  Problem of Switching from Rate to Position Control ^  36  3.3  Implementation of the Hybrid Position and Rate Control ^  38  ^  ^  viii  3.4 Dynamic Model of the Coarse-Fine Manipulator ^  39  3.5 Block Diagram of the Coarse-Fine System ^  41  3.6 Step Responses of G11 and  G21 ^  42  3.7 Step Response of the Coarse-Fine System ^  43  3.8 Overshoot Effect due to the Delay H 1  43  ^  3.9 Block Diagram of the Decoupling Coarse-Fine Control ^  45  3.10 Block Diagram of the Improved Decoupling Coarse-Fine Control ^ 46 3.11 Block Diagram of the Six DOF Implementation ^  47  3.12 Rate Control Deadband Shapes ^  49  3.13 Robot Velocity Profiles ^  50  3.14 Single-Axis Model for Teleoperation Control ^  51  4.1 Controller #1: Position Tracking of the Maglev Wrists ^  58  4.2 Controller #2: Position Tracking of the Maglev Wrists ^  58  4.3 Controller #1: Back-Driveability of the Maglev Wrists ^  59  4.4 Controller #2: Back-Driveability of the Maglev Wrists ^  59  4.5 Rate control ^  61  4.6 Hybrid Position and Rate Control ^  62  4.7 Controller #1: Hard Contact ^  64  ix  4.8 Controller #2: Unstable Contact ^  65  4.9 Controller #2: Stable Contact with Large Damping ^  66  4.10 Controller #2: Stable Contact with a Damping Function ^ 67 4.11 Controller #1: Soft Contact and Active Environment ^  69  4.12 Controller #2: Soft Contact and Active Environment ^  70  4.13 Controller #1: Exertion of Forces ^  71  4.14 Controller #2: Exertion of Forces ^  73  B.1 Interconnection of the UBC Teleoperation System ^  88  B.2 Orientation Relationships Among the Flotor, JR 3 sensor and CRS Robot . . . ^ 89 B.3 The Parallel Communication Handshaking Algorithm ^  93  C.1 Controller #1: Position Tracking of the Maglev Wrists ^  98  C.2 Controller #2: Position Tracking of the Maglev Wrists ^  98  C.3 Controller #1: Back-Driveability of the Maglev Wrists ^  99  C.4 Controller #2: Back-Driveability of the Maglev Wrists ^  99  C.5 Rate Control ^  100  C.6 Hybrid Position and Rate Control ^  101  C.7 Controller #1: Hard Contact ^  102  C.8 Controller #2: Stable Contact with Large Damping ^  103  x  C.9 Controller #1: Soft Contact and Active Environment ^  104  C.10 Controller #2: Soft Contact and Active Environment ^  105  C.11 Controller #1: Exertion of Forces ^  106  C.12 Controller #2: Exertion of Forces ^  107  xi  List of Tables  1.1  Human Operator Input/Output Capabilities ^  2.1  JR3 Sensor Load Rating ^  4.1  Controller Gains used in the Experiments Reported  4  18  ^  56  B.1 Pin-Assignments of the D/A card ^  87  B.2 Pin-Assignments of the A/D card #1 ^  90  B.3 Pin-Assignments of the Digital Port  ^  91  B.4 Pin-Assignments of the A/D card #2 ^  92  C.1 Controller Gains used in the Experiments ^  97  C.2 The Corresponding Figures (Results) in each Experiment  97  xi i  ^  Acknowledgement  I wish to thank my supervisor, Dr. Tim Salcudean, for his support, guidance and encouragement. Dr. Salcudean is the kind of supervisor who provides students a lot of opportunities to keep contact with the industry world, through field trips and frequent demonstrations to visitors. He also gave me an opportunity to attend a conference in France. Thanks are also due to C. Sheffield for the assistance in component purchases, to D. Fletcher for metal work, and to N. Ho, T. Vlaar and D. Goertz for developing the DSP debugger, robot kinematic codes and electronics work. I would like to thank my fellow graduate students C.T. Chen, N. Parker and A. Chahal for their valuable input, discussion and friendship. Thanks are also due to W. Johnson of the JR 3 Inc. and T. Jone of the CRS-Plus Company, who provided the expertise I needed to integrate JR3 sensors and CRS robot into the system. Finally, I would like to thank my parents. It would not have been the same without them, and it won't be. This thesis was supported in part by NSERC and the UBC Graduate Fellowship.  Chapter 1 Introduction  As illustrated in Figure 1.1, a teleoperation system consists of a human-operated master manipulator 1 and a remotely controlled slave manipulator, in which the slave robot tracks the motion of the master. On one hand, due to the immature development of artificial intelligence,  Figure 1.1: A Teleoperation System applications of fully automated robot systems can only exist in highly controlled environments and robots can only perform mostly predictable or repetitive tasks (e.g., automobile assembly line), while for performing general tasks, humans still offer the most versatility. On the other hand, many tasks (such as handling toxic material in a hazardous environment) cannot be carried out by human beings. Through teleoperation, human skills and robot capabilities can be augmented to perform the tasks which are not suitable for either humans or robots alone. 1 In this thesis, the term "master" is the same as "hand controller" or "joystick". "Robot" is the same as "manipulator", and "teleoperation system" is same as "teleoperator".  1  Chapter 1. Introduction ^  2  Starting from the handling of radioactive materials in early 40s, the applications of teleoperation have spread over a wide range of areas: from undersea to outer space explorations, from aids to the handicapped to aids for surgery[1, 2], from construction to military operations[3, 4]. Aside from the traditional meaning of teleoperation as an extension of a person's sensing and manipulation capacity to a remote location, the notion of teleoperation has started to encompass the extension of such capabilities through barriers of scale. Examples cover both ends of the spectrum - [5, 6] present work towards teleoperation systems concerned with micromanipulation at nano-meter level scales and below, while work reported in [7] attempts to build a force amplification exoskeleton "worn" by a human worker for heavy-duty tasks and [8] deals with resolved motion teleoperation of large forestry machines. Teleoperation may also emerge as a useful tool for robot programming for manufacturing through teaching and trajectory playback (including forces and torques). Such a method would be inherently safe, user friendly, and might allow assembly sequences to be programmed without complicated modelling of the dynamics of mating parts. To improve task performance, an ideal teleoperation system should be as "transparent" as possible so that the human operator could not detect that he was remotely located from the task. To achieve such feeling of telepresence, the teleoperator, in addition to the basic slave tracking master function, should be able to provide the human operator with kinesthetic feedback from environment forces. Experiments show that teleoperation task completion time is dramatically improved with environment force feedback [9, 10].  Chapter 1. Introduction  ^  3  1.1 Teleoperation Theory  1.1.1 Ideal Teleoperator  An ideal teleoperation system is a man-machine interface which provides the human operator a feeling of directly holding the tool to interact with the remote task environment. This direct manipulation concept can be achieved if the following criteria are met: xs = xm ; fh = — fe ,  where x m , x, are the master and slave positions;  fh  and f, are the human operator hand force  applied to the master and environment force applied to the slave, respectively. The tool carried by the slave is defined as part of the environment. The ideal teleoperator concept can also be represented by an infinitely stiff, massless, mechanical linkage which presents to the operator the identical inertial-viscous-spring reactions as are present at the task [10].  1.1.2 Teleoperator Bandwidth Requirements  An ideal teleoperation system should not have any force or position bandwidth limit. This is not achievable in practice. Fortunately, since the motion and sensory bandwidths of humans are also limited, it is adequate for a teleoperation system to have bandwidths which are higher than or close to the human operator bandwidth capacity. Since humans have asymmetrical input/output capabilities as shown in Table 1.1 [11], teleoperation systems could also have asymmetrical data flow. In the master to slave direction (human output perspective), a position and force bandwidth of 7-10Hz would be more than sufficient. However, in the slave to master (human input perspective), a position bandwidth of 20Hz and a force bandwidth of 320Hz may not be enough for a delicate teleoperation tasks.  Chapter 1. Introduction^  4  Table 1.1: Human Operator Input/Output Capabilities Output Arbitrary trajectory tracking Periodic (or known) trajectory tracking Reflexive responses Isometric responses (i.e., force responses without motion) Input Proprioceptive/kinesthetic sensing Tactile sensing (Low-amplitude vibrations)  1Hz 7Hz 10Hz 10Hz 20-30Hz 320Hz  1.1.3 General Teleoperation System Design Principles  Teleoperation system design principles are quite dependent on the application areas. However, in order to keep enough flexibility to perform many human functions, the following are desirable features:  • Spatial correspondence (e.g., position and velocity) between master and slave. • Sensory correspondence (e.g., force, vision). • Optimal joystick gains (e.g., position and force scaling) for human comfort. • Posture of the human operator (e.g., left/right hand motion, single handed control, avoid feeling fatigue for long working hours). • Modular design for faster and easier repair or replacement. • Safety.  Chapter 1. Introduction^  5  1.2 Motivation  1.2.1 Survey of Existing Teleoperation Systems  Hand Controllers  Most of the existing teleoperator designs are based on a geometric analogy between the master and slave systems. As described in the fascinating book by Vertut and Coiffet [3], teleoperators have evolved away from mechanically and electrically mirrored systems. With the advent of inexpensive computing power, it became possible to move away from kinematic equivalence and employ an universal teleoperation master for different slave manipulators. A teleoperation system using an universal hand controller is shown in Figure 1.2. The motion of the master is  Figure 1.2: A Teleoperation System with Universal Hand Controller "resolved" to that of the slave (through the joint motions of the slave manipulator by a computing system). The forces sensed at the slave are transformed to the hand controller frame for force feedback. The use of the universal hand controllers has a number of advantages, including  Chapter 1. Introduction^  6  manageable size, cost, no absolute limit on the number of axes of the slave being control [12], no restriction on control strategies (e.g., rate control), standardization of the human interface and optimization of the design with regard to safety, operator fatigue and human arm limitations. There are few such universal controllers available today:  • Force/Torque Ball Joysticks can accept input commands in cartesian frame without any displacement. However, it would not be possible to incorporate force feedback in these devices. A number of commercially available hand controllers are based on such designs [13, 14].  • The CAE hand controller has been found to be a very effective teleoperation master in the aerospace markets [15]. However, its main disadvantages are lack of force reflecting capacity and its high cost. • The University of Texas hand controller [16] is driven by nine wires and thus it provides a light and low cost design with capability of force reflection. However, it suffers from high friction level associated with the wire drives. • The JPL hand controller [17] is based on serial kinematic design which gives a good range of motion. Each degree-of-freedom can be backdriven by a motor. However, the maximum force and torque attainable in the current design are lON and 0.5Nm which may not be sufficient for some applications.  • It is believed that an input device based on Stewart Platform geometry is a promising alternative in hand controller design. It provides force feedback capacity, compact size and low cost. Siva [18] has described one such hand controller which is under development at Harwell Laboratory. However, performance of such device has not been quantified yet.  Chapter 1. Introduction  ^  7  Slave Manipulators  Most slave systems consist of a single conventional serial link manipulator. Low frequency response, high impedance and friction, the inability to exert accurate forces, backlash and poor positioning, etc., are typical drawbacks of conventional manipulators.  1.2.2 Motivation of the Project  This project was motivated by the inadequacy of existing teleoperator hardware, both at the master and at the slave level. The proposed system, named after the University of British Columbia (UBC), takes advantage of the Lorentz magnetic levitation technology introduced in [19, 20]. A six degree-of-freedom (DOF)  2  magnetically levitated (maglev) fine-motion wrist  is used as an universal teleoperation master. The maglev wrist has high frequency response, accurate positioning and force reflection capacity. The slave system is a redundant coarse-fine manipulator consisting of a 6 DOF conventional robot equipped with a second maglev wrist identical to the master, and thus, the advantages of the maglev wrist are also available in the slave system. Furthermore, it provides the system with an advantageous wrist-level kinematic equivalence. In this thesis project, the proposed system was implemented and tested. The details of system design and performance will be described later.  1.3 Thesis Overview  Chapter 1 introduces some background on teleoperator design principles and provides the motivation for the work presented in this thesis. 2 Six degrees of freedom consist of translation in X, Y, Z axes and rotation about X, Y , Z axes so that every position and orientation can be reached. A robot is considered to have full degrees of freedom if it has 6 DOF.  Chapter 1. Introduction^  8  Chapter 2 describes each of the hardware modules of the UBC teleoperation system. The modules include the maglev wrist, force-torque sensor, a conventional robot and the overall computing system. Communications among computing subsystems are also presented. Chapter 3 outlines a hybrid position and rate control method used in the system. A time delay problem is analyzed and a solution is proposed. It also examines the teleoperation controllers used at the maglev wrist level. Chapter 4 is dedicated to the testing conducted in the system. The testing includes free motion tracking, contact stability and exertion of forces to an environment. The experimental results are reported and analyzed. Then the system will be evaluated. Chapter 5 summarizes the contributions of the thesis and suggests topics for further research.  Chapter 2 Implementation of the UBC Teleoperation System  2.1 The UBC Teleoperation System Overview  The main components of the UBC teleoperation system are shown in Figure 2.1. A six degreeof-freedom (DOF) magnetically levitated (maglev) wrist is used as the teleoperation master. The maglev wrist is actuated by active magnetic forces to eliminate actuator friction and backlash. Therefore, the wrist has a better frequency response and precise positioning ability than conventional robots. It also has 6-axis force feedback capacity. These advantages make the wrist an ideal teleoperation master. The teleoperation slave system consists of an identical maglev wrist mounted on a 6 DOF conventional robot (CRS460). The CRS robot can be interpreted as a 6 DOF transporter to increase the workspace of the slave wrist 1 . Therefore, the advantages of the maglev wrist can be maintained in the slave side. The slave system is actually a coarse-fine manipulation system, as the CRS robot acts as a coarse manipulator and the wrist is as the fine motion device. Each maglev wrist is equipped with a 6 DOF force-torque sensor (from JR 3 Inc.). Therefore, we can measure the human operator hand force at the master side and environment force at the slave side. An IBM PC compatible using Intel 80386 microprocessor (pP) houses a Digital Signal Processing (DSP) board, as well as A/D and D/A boards. Most computations (master and slave wrist control, CRS robot set-point calculation etc.) are performed by the DSP board. Figure 2.2 illustrates the data flow of the system. The slave wrist's set-points are calculated 1 From now on, the term "master" refers to the master maglev wrist; "Slave wrist" refers to the slave maglev wrist. "Robot" refers to the CRS robot.  9  Chapter 2. Implementation of the UBC Teleoperation System ^  CRS Robot  Figure 2.1: Main Components of the UBC Teleoperation System  10  Chapter 2. Implementation of the UBC Teleoperation System ^  11  Slave Wrist Location (in World Coordinates)  Master  Master's Location ,.._  Master to Slave Wrist Coordinate Transformation  Slave Wrist Set—point  CRS Set—point ^ Calculation  Set—point  Slave Wrist  Slave Wrist Location (in Wrist Coordinates)  Slave Wrist to World Coordinate Transformation  •  CRS Location  CRS Robot  Figure 2.2: Data-Flow of the UBC Teleoperation System from the master and the robot location data  2.  The slave wrist location, by using the robot  data, can be expressed in world coordinates and can be used in the master controller. The CRS robot can be commanded by the master or the slave wrist. The teleoperation controller, as well as the method for controlling this large workspace slave system with the small workspace master, will be presented in the next chapter. This chapter will first describe each hardware module (namely the maglev wrist, force sensor and the CRS robot). Then, it will present each computing subsystem and how they interact with each other. Finally, we will discuss the overall bandwidths of the system. This chapter is intended for general readers. Technical details of implementation and use are given in the "Technical Manual" (in Appendix B).  2  From now on, the term "location" refers to position and orientation.  Chapter 2. Implementation of the UBC Teleoperation System ^  12  2.2 Maglev Fine Motion Wrist  This project inherited the two maglev wrists and their kinematic and dynamic transformations software. The two maglev wrist systems were designed by Salcudean and built at the UBC along the principles described in [20]. Each maglev wrist system consists of a current driver, two power supplies, a signal conditioning box and the maglev wrist, as shown in Figure 2.3. The maglev wrist consists of two rigid elements — a stationary part called stator and a moving Maglev Wrist System Inverse Dynamic Transformation  Coil Current Data  Actuation Force/Torque Data  Set-poH  Rotor  D/A  Current Driver  I  I  Coils I  Lorentz Forces  Controller  rd  Power Supply Power  Supply  LEDs I Flotor LED Beams  ■  Location (w.r.t. Stator)  Kinematic Transformation  PSD Data  Figure 2.3: Maglev Wrist System part called flotor. Six Lorentz forces are generated between the two elements and the flotor is actively levitated. Thus, except for a thin flexible ribbon cable for power, there is no mechanical connection between the two elements. The coil currents are computed from the inverse dynamic transformation and the force/torque information from the controller. The flotor location is computed by the kinematic transformation on the position data obtained from the wrist's internal optical position sensors which consist of light-emitting diodes (LEDs) and position sensitive diodes (PSDs).  Chapter 2. Implementation of the UBC Teleoperation System ^  13  2.2.1 Hardware Design  The assembly sketch of the maglev wrist is shown in Figure 2.4. ^The flotor carries three horizontal and three vertical coils (Fl in Figure 2.4), and also three LEDs (in F2) for optical position sensing. The horizontal plate of the flotor (F1) has holes to allow supporting posts (S3) holding the stator's magnets and PSDs (S4, S5). The holes in the flotor are large enough to avoid collision with the supporting posts when the flotor is moving within its workspace. The motion range (i.e., the workspace) of the flotor is constrained by the width of the magnetic gaps in the six identical actuation elements. There is a trade-off between the workspace and the achievable forces - the widther the magnetic gap, the larger the flotor workspace, but the weaker the magnetic field strength (i.e., weaker the actuation force). The workspace of the wrist is roughly ±4.5mm in translation and ±7° in rotation from the nominal center. Using the coils' geometry, magnetic field and current directions with respect to (w.r.t.) the coordinate frame attached to the flotor center (see the top view of F1), the direct dynamic transformation (i.e., finding the forces/torques acting on the flotor center from the six coil currents) can be devised. The details can be found in [20] and will not be repeated here. Due to the small motion range of the flotor, the transformation can be approximated by a constant matrix M [20]. Thus, the wrench vector acting on the flotor (at center position) is given by, M fx  0.0000  0.0000 -1.6801 0.0000 -1.6801  0.0000  II  fy  1.9402  0.0000 -0.9701 0.0000 -0.9701  0.0000  12  0.0000  1.9403  1.9403  /3  Tx  0.0747  0.0580 -0.0374 0.0000 -0.0374 -0.0580  /4  7Y  0.0000  -0.0335  0.0647 0.0670 -0.0647 -0.0335  15  rz  _ 0.0670  0.0000  0.0670 0.0000  /6  fz  =  0.0000 1.9403  0.0000  0.0670  0.0000  (2.1)  where [/1 /2 .../6 ]T is the vector of coil currents. The units for the first three rows of the above matrix are in N/A and the entries of the last  Chapter 2. Implementation of the UBC Teleoperation System  ^  Magnets  PSD mounted here  Bolted to F2 t  t  Fl S3^  (3 pairs)  rl  ri  (Support S4/S5) Magnets  S2  Figure 2.4: The Assembly Sketch of the Maglev Wrist  14  Chapter 2. Implementation of the UBC Teleoperation System ^  15  three rows are in N-m/A. By inspecting the above transformation matrix M, readers can get a feeling on the actuation forces of such a 6 DOF in-parallel actuated device. The current drivers can generate up to 10A at 40V in each coil, and is powered from a single 1000W (25V - 40A) power supply. Each coil has about 1SI resistance and heat is generated by coil dissipation during operation. Currents will be cut by the thermal fuses if the flotor temperature is exceed 95°C. Due to thermal constraints, the wrist cannot sustain indefinitely a load higher than 15 - 20N, although, from the transformation matrix M and the specifications of the current driver, it results that transient forces larger than 40N can be obtained. The torque capability exceeds 0.6N-m for indefinite loads, and more than 1.2N-m for transient loads. This is more than adequate for a hand controller. The inverse dynamics, i.e., finding the currents from a desired force/torque vector, can be easily achieved by finding the inverse of M. In fact, the matrix M -1 is precomputed and used in the real-time control software. The maglev wrist optical position sensor (see Figure 2.5) consists of three LEDs (carried by the flotor) that project narrow co-planar beam at 120° from each other, onto the surfaces  Figure 2.5: Maglev Wrist Optical Position Sensing System  Chapter 2. Implementation of the UBC Teleoperation System ^  16  of three two-dimensional duo-lateral position sensitive diodes (PSD) which are mounted on the stator. The PSDs (with the 12-bit A/D conversion in the DSP system) can detect flotor motion less than 5itm / 10/i-rad. Two coordinate systems will be defined: one attached to the flotor and one attached to the stator. The flotor frame is at the center of the flotor and coincides with the intersection of the LED light beams (see Figures 2.4 and 2.5). When the flotor is at its nominal location, the flotor frame coincides with the stator frame and the LED light beams projected on the centers of the PSD surfaces. Provided that the flotor is moving within the wrist workspace, the flotor position (represented by a vector r = [x, y, z ]T) and orientation (represented by a proper rotation matrix Q) with respect to the stator frame can always be computed from the PSD's readings. The method of calculating {r, Q} and the dynamic transformation M can be found in [20]. Calibration procedures of the current driver and position sensors are described in [21].  2.2.2 Dynamics and Control using Euler Quaternions  Euler Quaternions  To save computation, one can replace the rotation matrix, Q, by Euler quaternions (defined by P  A [do A T ] T = [cos(02) sin( /2) sT , where s is the normalized axis of rotation and (/) is  the angle of rotation) [20, 22]: Q = exp(0 sx) = I + 200 (13x) + 2(f3x) 2^(2.2)  where, for any vector a = [al a2 a 3 ] T 0^—a 3^a 2  ax =  a 3^0^—a l — a2^al^0  (2.3)  Chapter 2. Implementation of the UBC Teleoperation System ^  17  Note that p and —p represent the same rotation in (2.2). The orientation vector /3 that corresponds to 00 > 0 can be obtained from (2.2) and is given by  1  13 x =^1 (Q 2(1+ trQP  — Q),^  (2.4)  where trQ denotes the trace of Q. By using a small angle approximation, the components of  0 can be interpreted as the rotation angle (in the unit of 2 radius) about the stator axes.  Control  Since the flotor is just a rigid levitated mass, it can be modelled accurately by rigid body dynamics Therefore, the differential equations of describing the body motion can be transformed to decoupled double integrator form (see [20] for details). This makes the wrist flotor control very simple. For instance, a PID controller can be as follows: u 1 = kp(rd — r) + ky(rd — r) + ki u2 =  f (rd — r) + f ^(2.5)  rcp(Pd — 0) + iiv(4id — 41 ) + KJ I (Pd  9  —  0) + TS^(2.6)  where rd, fi d is the desired flotor position and orientation, the gains k p , k v (etc.) are diagonal matrices and [uiT u2 T ] T is the computed wrench vector in equation (2.1). The effect of fg and r9 is to compensate the gravitational force and the gravitational force induced torque  3  :  f9 = —m g T 99^9^9 = r x f  where m, g and r9 are the flotor mass, gravitational acceleration and the flotor's center of mass position, respectively. The f9 and r9 are always implemented in the maglev wrists and will not appear in the control laws (or the term "actuation force") in the later discussion. From now on, we can interpret the flotor as a weightless rigid body. 3 When [u1 T u2 T ] T (i.e., f9 ) is not acting on the flotor center of gravity, 7-, is needed to compensate the torque induced by f9.  Chapter 2. Implementation of the UBC Teleoperation System ^  18  2.3 Force-Torque Sensor  The JR 3 force-torque sensor load rating is shown in Table 2.1. Although the voltage range of Table 2.1: JR 3 Sensor Load Rating Axis .f  fy h Tx Ty Tz  Sensor Load rating (±10V) ±113N +113N ±226N ±8.6N-m ±8.6N-m +8.6N-m  i loading (±2.5V) ±28.25N +28.25N ±56.50N ±2.15N-m ±2.15N-m ±2.15N-m  the DSP A/D input is one-fourth of the JR 3 sensor's range, the external force/torque in our application is normally within 1/4 of the sensor loading (see Table 2.1). Therefore, scaling on the JR 3 analog signal is optional. Nevertheless, a circuit has been built for using the force sensor full range. With using 1/4 sensor loading and 12-bit A/D conversion, the sensor can detect force/torque less than 0.1N/0.01N-m.  2.3.1 Analog and Digital Options  Ideally, we should use the decoupled and conditioned digital data from the JR 3 supporting system  4.  However, it requires PC CPU time for digital data communication and also uses up  one PC expansion slot for digital I/O. In this project, all expansion slots of the PC have been fully occupied. Furthermore, the data rate provided by the JR 3 supporting system is too slow  5.  Therefore, the analog data is used. All the essential functions that were performed by the JR 3 A/D board and processor board were moved to the DSP system. Those functions include A/D 'The JR 3 supporting system (come with the JR 3 strain-gauge sensor) consists of an analog signal conditioning board, a D/A board and a processor board. Conditioned digital data are available from the processor board. 5 1f the JR 3 supporting system is used, the sampling rate should be kept under 250Hz as recommended in the JR 3 manual.  Chapter 2. Implementation of the UBC Teleoperation System ^  19  conversion, cross coupling removal, proper unit scaling and offset weight removal.  2.3.2 Sensor/Wrist Dynamic Interaction  The sensor is divided into an upper half and a lower half with strain-gauges mounted at both ends. The sensor measures forces and torques by the tiny elongation or contraction of its foil strain-gauges which change resistance accordingly. The one-axis model for sensing environment forces is illustrated in Figure 2.6, where m 1 is the total masses of the flotor, adapter plate  fi kj  w bj X2  Figure 2.6: One-Axis Model of the Force Sensor and the sensor lower half, m 2 is the masses of the sensor upper half and any load (e.g., tool) it carries, fs and f, are the slave flotor actuation force and environment force respectively, ki and bj are the JR 3 sensor stiffness and damping, and x 1 and x 2 are the position of m 1 and m 2 respectively. We also define ox = x 2 — x 1 and thus the sensor reading is fj = Ox. From Figure 2.6, assuming zero initial condition, 2^  m1 S Xi  =^k3^bj s  (2.7)  2m2 S X2  =^– k j – s bi  (2.8)  where hatted variables denote Laplace transforms. Combining (2.7) and (2.8), we have mz f m1^m1^m1  m2 m2 [m 2 3 2 + bi ( — )s ki (1 + — )1 =  —  —  (2.9)  Chapter 2. Implementation of the UBC Teleoperation System ^  20  At low frequencies, this leads to kj (1 -I-  17n ) bi = fe — m 2 ml^m1  fs •^  (2.10)  By putting fj = ki 8x equation (2.10) becomes ,  fe  = +^cri + 1  (2.11)  If the sensor is mounted on a conventional robot, m1 >> m 2 and the sensor can measure the force as expected. If m 1 m2 (e.g., the slave carrying a heavy tool), equation (2.11) should be taken into account. Let us consider two extreme cases for the maglev wrists. In the first case, when the wrist exerts a force to a hard surface (e.g., a solid steer), the exerted force will equal the environment reaction force, h = —f, and the sensor will measure the force correctly (i.e., fi = fe ). In the second case, the wrist moves freely and fe = 0. Equation (2.11) becomes  1 1+ mi/m2  fj = ^ fs •  (2.12)  In other words, the sensor reading is most inaccurate during free motion. For the maglev wrist, mi/m2 > 5 and h is very small during free motion (f3 just overcomes the small flotor inertia). For simplicity, this 17% measurement error will be neglected. Due to the stiffness ki and extremely small (5x of the sensor, we can treat the flotor and the sensor as a single rigid body (i.e., combining m 1 and m 2 as a rigid mass) in the later discussion.  2.4 Coarse Motion Manipulator: The CRS460 Robot  The coarse manipulator used in the project is a CRS460 robot. It is a 6 DOF serial-link manipulator with 3kg payload and the maximum speed of 4.57m/s. Besides the robot arm, the CRS system comes with a controller, current drivers and a teach pendant. Please refer to CRS manual [23] for details.  Chapter 2. Implementation of the UBC Teleoperation System ^  21  2.5 Computing Systems  The real-time computing system is shown in Figure 2.7. An IBM PC-AT compatible computer hosts a Spectrum Inc. Digital Signal Processing (DSP) board using a Texas Instruments Inc. TMS320C30 DSP chip, as well as D/A and A/D cards. In order to avoid PC-bus bottleneck, these are linked through a fast, private bus whose data transfer rate can be as high as 5 million 16-bit words per second. Dual-ported memory 6 is used for the communication between the PC and the DSP systems. The PC is connected through a digital parallel I/O port to the CRS robot controller. The CRS system uses an Intel 8086 pP and 8087 co-processor, with the clock rate 7.33MHz. During operation, set-points of the robot's six joint motors are delivered to six axis control cards every 4ms. Each axis card implements a PID controller running on Intel 8095 pP. The control update rate is lms.  2.5.1 DSP System  The TMS320C30 processor runs at 33MHz with 32-bit floating point arithmetic. It has eight 40-bit accumulators and 2 Kwords internal RAM. In the board level, the system has 172 Kwords local RAM (25ns) and a 64 Kwords dual-ported RAM (35ns) between the board and the PC bus. The 32-channel A/D card has 12-bit resolution. The sampling rate depends on the number of channels being used — from 7KHz 32-channel sampling to 230KHz 1-channel sampling, which is more than enough for our application. The 16-channel D/A card also has 12-bit resolution and allows 16-channel simultaneous analog updating. The D/A conversion settling time is 1psec. maximum. During operation, the DSP system does most of the control and coordinating work, by 6 Dual-ported  memory is the memory locations which can be read or written by both PC and DSP systems.  Chapter 2. Implementation of the UBC Teleoperation System ^  Figure 2.7: The Real-Time Computing System  22  Chapter 2. Implementation of the UBC Teleoperation System ^  23  performing the tasks shown in Figure 2.8. Through forward kinematic transformation on the CRS joint data, the robot position and orientation are first computed so that coordinate transformation on the slave flotor location and environment force data can be performed. The hand and environment forces/torques are calculated from the JR 3 sensors' strain-gauge readings and can be used in the wrist's controllers. Position and orientation of the maglev flotors are calculated from their internal PSD position sensors and the CRS robot end-effector position data. Currents required for actuation forces/torques are obtained via the inverse dynamic transformations. Then the CRS set-point is computed and expressed in joint space through the CRS inverse kinematics. In the program, the units of translation and rotation are in micron and 0 1 milli-radians, and force and torque are in Newton and Newton-decimeter, for better numeric range of display in the DSP monitoring program. To sum up, the DSP mainly performs three tasks: (1) the master and slave maglev wrist control, (2) the hand and environment forces/torques calculation, and (3) the CRS set-point and location computations. With the DSP board running at about 3.8 Mflops, the computations on the force/torque data and the maglev wrist control can be completed in 2ms, and the CRS set-point and kinematic computations will take about 5ms. The flowchart of the DSP program are given in Appendix D.  2.5.2 PC System  The functions of the PC are to:  1. Provide terminal functions for the DSP and CRS systems. A monitoring program has been developed for the DSP system through a Summer project [24]. This monitoring program is like a simple operating system, in which, by issuing some commands, one can load a program to the DSP system, or continually trace any global variable of the DSP program, or poke any global variable at run time (e.g., change the  Chapter 2. Implementation of the UBC Teleoperation System ^  Figure 2.8: Computations Performed by the DSP System  24  Chapter 2. Implementation of the UBC Teleoperation System ^  25  wrist controller gains). Please refer to [24] for details. For the CRS system, normal terminal function can be provided through the PC and CRS's serial port. 2. Provide a software development environment. The PC can provide various software development tools for the DSP and CRS programming. After being compiled in the PC, the DSP and the CRS programs can be loaded to their destinations for execution. 3. Collect data. Data of the wrists, force sensors or the CRS robot can be found in the DSP program. Since the DSP on-board memory is limited, the PC gets the required data from the dual-ported memory and temporarily stores them in its RAM. After the operation is terminated, the data is stored to a file. Thus, the operation will not be slowed down because of the PC is writing to its hard-drive. Also, PC RAM is not expensive these days. 4. Provide a communication channel between the DSP and CRS systems. It does dual-ported memory communication with the DSP and digital parallel communication with the CRS controller. Details will be described later. Since the PC performs more than one task, a multi-tasking operating system is preferable. However, only the communication function (item #4 in above list) is essential in the real-time operation. To avoid slowing down the operation, the monitoring features (item #1) can be inactivated during operation. The details can be found in Appendix A . Flowchart of the PC program are given in Appendix D.  2.5.3 CRS System  The program running in the CRS controller just performs the parallel communication with the PC and writes the robot set-point to an internal data buffer for real-time path control.  Chapter 2. Implementation of the UBC Teleoperation System ^  26  An undocumented 7 CRS state called REMOTE is used in this project for the real-time path control. REMOTE places the robot controller into a mode in which it expects position set-points to be delivered by an external computing system via serial or parallel I/O. Under this mode (Figure 2.9), the CRS computing system reads the new set-point value from an internal data buffer at a fixed REMOTE loop clock rate, say, 32ms which is the CRS default setting. That means the CRS's motion path is updated once every 32ms. In each cycle, the CRS will calculate the motion speed that is required for it to move to the new desired location. The robot changes  Figure 2.9: The CRS REMOTE Operation 7 There are quite a lot of undocumented and hidden features of the CRS system. Readers can refer to Appendix B and [25] as a supplement to the CRS manuals. Bug-fixing information and programming technique which are not given in the CRS manuals can be found in these references too.  Chapter 2. Implementation of the UBC Teleoperation System ^  its speed and motion in the next  REMOTE  cycle. New set-point should be arrived within 32ms  to avoid robot stepping motion (e.g., between points The  REMOTE  27  P2 to P3  in the figure).  set-point can be specified in either absolute or incremental value. Incremental  mode are used in this project because the speed of the robot can be easily limited by limiting its incremental set-point value at each  REMOTE  cycle. In addition, absolute mode may cause some  safety problems, such as the robot hitting its base when a move to the origin of the cartesian coordinate is executed due to accidental sending of zero as the cartesian set-point values (which can be caused by a loose connector). The  REMOTE  set-point value can be specified in either cartesian coordinates or joint coor-  dinates. In the early stage of the project, cartesian coordinates were used and the CRS system was used to do the kinematic calculations. Due to the relatively slow kcP in the CRS system, the fastest  REMOTE  clock rate achievable was only 55ms  8  . It is too slow even when it is compared  with other conventional robots. For instance, a PUMA 500 robot can perform a similar task in 28ms. To avoid this bottleneck, the kinematic calculations were moved from the CRS system to the much faster DSP board. Please refer to [26] for the CRS kinematic calculation. Now, using the set-point in joint coordinates, the fastest  REMOTE  clock rate achievable is improved  to 16ms.  2.5.4 Communication Between Computing Subsystems  Digital Parallel Communication between the PC and CRS Systems During operation, the CRS system must send the robot end-effector position and orientation  (i.e., six floating point numbers) and receives the incremental position and orientation setpoint (also six floating point numbers) from the PC. The CRS system can communicate with the outside world through its serial and parallel ports. 8 The 55ms includes the robot forward and inverse kinematics, passing CRS location to PC and receiving set-point from PC, and storing the set-point to the REMOTE data buffer.  Chapter 2. Implementation of the UBC Teleoperation System ^  28  The serial communication provided by the CRS system can be up to 19.2 Kbaud with a special protocol (see the ACI section in the CRS manual [23]). However, the protocol involves too much overhead. It requires at least 42ms to receive and send six floating point numbers, and is therefore too slow for our application. In this project, the digital parallel communication alternative was selected and used between the PC and CRS systems. The PC uses a 24-channel I/O card (Metrabyte PI012) which carries an Intel 8255 chip (see Appendix B and i8255 data book for usage). Since the CRS digital input and output channels are physically separated (i.e., it only allows one directional transmission for each channel), the Metrabyte card, among its 24 channels, have to be divided into input and output channels accordingly. The data resolution directly depends on the number of channels used. Fourteen channels (i.e., 14 bits) are dedicated for CRS location data and six channels are for the CRS incremental set-point, and the rest (2 inputs, 2 outputs) are for handshaking Fortunately, the CRS set-point is specified in incremental form and the magnitude should be very small (i.e., the amount the robot should move during the 16ms REMOTE set-point update period). In the implementation, the resolution of each robot joint set-point is set to be 0.02° while maintaining the maximum speed of each robot joint to be 40° per second. By using the 14 channels, the data resolution of the robot end-effector location (in joint angle form) is 0.025°. These data resolutions and robot maximum speed are enough for general teleoperation tasks. Since the PC and CRS systems have different execution speeds, a special handshaking algorithm (see Appendix B) was developed to insure that each uses the most recent data and that the transmission of data is correct. At present, the transmission of the robot end-effector location and set-point (with handshaking) takes less than 2.8ms.  Dual-ported Memory Communication between the DSP and PC Systems  Through the 64 Kwords dual-ported RAM, the DSP system can send the CRS set-point and get the CRS location from the PC. Since the DSP system is much faster than the PC and the  Chapter 2. Implementation of the UBC Teleoperation System ^  29  CRS systems, it is inefficient for the DSP to wait for the response of the PC. Therefore, the DSP software is running on its own (i.e., not running hand-in-hand with the PC program). The DSP program only passes the CRS set-point to the PC if it is required by the PC (by using a flag) and gets the CRS location from the PC if it is available. Using this method, the DSP program can bypass the CRS set-point and kinematic computations most of the time and increase the wrist control update rate.  2.6 The Bandwidths of the UBC Teleoperation System  The DSP system takes about 5ms to complete the CRS robot set-point, forward and inverse kinematics computations. However, these computations are only required for every 16ms (i.e., the maximum  REMOTE rate).  Without performing the CRS calculations, the DSP system can  complete force sensing and, master and slave wrist controls within 2ms, so the maglev wrist control update rate is roughly 500 Hz most of the time. Since the force bandwidth of the wrist mechanical system can be up to several kHz, the overall force bandwidth (at the wrist level) is limited by the computational delay. The bandwidth can be increased by a faster DSP system. Of course, the position bandwidth (at wrist level, both direction) is limited by the mechanical system. The position response of the maglev wrist exceeds 30Hz for translation and 15Hz for rotation, which is more than enough for general teleoperation tasks. One may not feel comfortable that the wrist control has different update rate (i.e., the DSP interrupt period changes from 2ms to 7ms) when the DSP needs to compute the CRS robot set-point and location. The DSP program can be easily modified to standardize the update rate. Since the wrist control is interrupt-driven, we can move the CRS computations from the interrupt routine to the "main program" and extend the interrupt cycle to (say) 2.5ms, so that the "main program" will have 0.5ms for the CRS computations in every 2.5ms. The robot setpoint will be ready before 16ms have lapsed. Although it will introduce computational delay in  Chapter 2. Implementation of the UBC Teleoperation System ^  30  the robot location data, this effect can be ignored by using the decoupling coarse-fine control which will be presented in next chapter. Due to time constraint and non-necessity at this point, the modification has not been implemented yet. For the CRS system, the position command update rate is about 60Hz which depends on the REMOTE clock rate (i.e., 1/16ms REMOTE rate = 62.5Hz). As with most conventional manipulators, the position response bandwidth of the CRS robot is about 2-3Hz (over a small motion range). Since the CRS robot is only responsible for coarse motion and is controlled in velocity mode (which will be described in next chapter), the 2-3Hz velocity bandwidth is enough for a human operator.  Chapter 3 Control Algorithms of the UBC Teleoperation System  This chapter will first examine the methods for controlling a large workspace slave system with a small workspace master. A method combining position and rate control is chosen for our system. In the implementation, a time delay problem in the coarse-fine system occurred. The problem will be analyzed and a solution will be described. Then, the proposed solution is extented to 6 DOF. Finally, the design of the wrist controller will be discussed.  3.1 Controlling a Large Slave with a Small Master: Hybrid Position/Rate Control  With the help of the CRS robot for large motion, the workspace in the slave side is much larger than that of the master. To have a more general analysis, we can temporarily forget our coarsefine manipulator slave system in this section and interpret the slave as a single manipulator having a larger workspace than its master. For simplicity, the analysis will be in 1 DOF, 6 DOF extension will be presented in section 3.3.  3.1.1 Problem of Poor Position Resolution in Position Control  Position Control with Scaling  The most straight forward way to control a large slave robot with a small master is the position control with scaling.  Xs= K Although this method can easily achieve spatial correspondence, it suffers from poor control resolution. Imagine, in our case, the 9mm maglev wrist motion range corresponds to lm robot 31  Chapter 3. Control Algorithms of the UBC Teleoperation System^  32  motion range; in other words, for 1mm robot resolution needs 9 pm resolution at the master. It also causes safety problems as the slave is too sensitive. This position scaling approach is not practical at all.  Indexed Position Control  An alternative to solve the position resolution problem is the indexed position control by using an indexing switch [27]. The master only controls a small portion of the slave workspace at a time. Large slave motion can be achieved by using an indexing trigger to move the control to another workspace portion. There are some disadvantages in this method. Since the slave workspace is divided into many small portions, the operator looses a sense of continuity during workspace switching. Furthermore, operators would prefer single-handed control without taking care of an additional trigger, which requires successive action and a lot of attention.  3.1.2 Problems of Positioning and Force Feedback in Rate Control -  A rate control approach, achieved by setting .k, =  x m , can solve both resolution and discon-  tinuity problems. However, as there is no direct position-to-position correspondence between master and slave, fine dexterous tasks are difficult to execute. Furthermore, Parker [28] pointed out that force feedback in rate control creates an unnatural feeling of the environment. When the slave contacts a mass-dashpot-spring environment "feedback = (me 3 2  +b s+k e  e  )  .  t  7  the force felt at the master becomes f f eedback = (me S 2  1  k e ) - im + b s + ke) s e  (3.1)  In other words, pushing a mass in the environment is like pushing a dashpot at the master, and a dashpot of the environment is felt like a spring at the master. Even we differentiate the  Chapter 3. Control Algorithms of the UBC Teleoperation System^  33  feedback signal (right hand side of equation (3.1)), some important characteristics such as a constant environment force will be lost. In addition, force feedback in rate control easily creates instability problems [28].  3.1.3 Hybrid Position and Rate Control  As discussed above, rate control can solve the resolution problem in position control; while position control can solve the spatial correspondence and feedback force problems in rate control. By controlling large motion by rate control and fine motion by position control as suggested by Salcudean and Lawrence [29], we can avoid the problems described above. For the hybrid position and rate control used in this project, position control is always active, while rate control is only active when the master is near its workspace edge, as illustrated in Figure 3.1. The region (enclosed by the dashed line in the master workspace) is the rate control deadband for pure position control. Position control is active in the entire master workspace,  i.e., within the slave local workspace, the local slave position (x s ) always tracks the master position (x,i ) with respect to a local frame (XL). When the master is outside the rate control deadband, the velocity of the local frame (XL) tracks the master position with respect to the world frame. Therefore, the overall motion of the slave manipulator (Xs ) will be in rate control when the master is outside the deadband and pure position control (w.r.t. the local frame) when the master is inside the rate deadband, Xsd  =X  x s, -kz,  sd  + XL  k x, =  1 f(xm)  ixm I > deadband  to  otherwise  where s m , x sd and Xsd are the master position, desired slave local and absolute position, respectively, k and f(x m ) are some position scaling factor and velocity function.  Chapter 3. Control Algorithms of the UBC Teleoperation System^  Part of Slave Workspace  Slave Position  Master Workspace  Slave Local Workspace  Master Position  Rate Deadband  World Frame  Figure 3.1: Hybrid Position and Rate Control  34  Chapter 3. Control Algorithms of the UBC Teleoperation System^  35  Problem concerning switching from Rate to Position control  When the slave manipulator reaches its workpiece by rate control (see Figure 3.2a for 1D representation), the master has to be pulled back to the deadband zone to stop the rate control. However, this pulling back motion in the master will take the slave manipulator away from its workpiece due to position control as shown in Figure 3.2b. Thus, the slave never reaches the workpiece. There are two alternatives for this problem. The first solution is to stop the overall slave motion whenever the master is moved from rate control zone to the rate deadband, and then resume the position control when the master is close to its nominal position. In order to maintain the position correspondence between the master and the slave local position (otherwise a sudden jump will occur in the slave when the position control is resumed), the local frame, XL, tracks the master reverse motion before the position control is reactivated. However, there are couple of disadvantages in this method. During the slave stationary period, motion correspondence is lost as the operator moves the master will not produces any motion in the slave. Even worst, when the slave accidentally crashs to a hard-surface in rate control, the large feedback force is supposed to create an opposite master motion to take the slave away from the crash right away. However, the "slave stationary period" will significantly delay the slave motion and may cause damage. In the second solution, the local frame slowly tracks the slave position when the master is inside the rate deadband. Since position control between the master, x r„, and the local slave position, x s , is always active, this local frame motion is actually a very slow rate motion as the local frame never catches the slave when the master is not at its zero position. As in Figure 3.2, when the slave reaches its workpiece, the operator moves the master to the deadband zone to stop the rate control and the slave will move a bit away from the workpiece due to position control. Then, the local frame motion is on and brings the slave to its workpiece again. After reaching the workpiece, the local frame still tracks the slave position and creates a small feedback  Chapter 3. Control Algorithms of the UBC Teleoperation System^  Figure 3.2: Problem of Switching from Rate to Position Control  36  Chapter 3. Control Algorithms of the UBC Teleoperation System^  37  force to drive the master to its zero position (i.e., the local frame has caught the slave center). We can set this local frame motion to be very small so that the small rate motion (as well as the feedback force) is compensatable or even not noticeable by the human operator. The notion of bringing the master back to its zero position is important for solving the following position-to-rate control problem.  Problem concerning switching from Position to Rate control  Some bilateral position controllers require a position error between master and slave to generate a feedback force. If the master (inside the deadband zone) is too close to the rate deadband edge, a problem of deadband crossing may occur during exerting forces to an environment. Therefore, bringing the master back to its zero position (or away from the deadband edge) is important for such position-error bilateral controllers. Experimental results of using these kind of controllers and the deadband crossing problem will be presented in Chapter 4. To sum up, the hybrid position and rate control (with small local frame centering motion) is most suitable when controlling a large workspace slave manipulator with a small workspace master as in our case. It solves the resolution problem without requiring the human operator to perform additional triggering. It also follows human instinct as the slave begins to move in velocity mode when the operator's hand moves the master towards the edge of the workspace. A continuous beep sound can be implemented to indicate the system in rate mode.  3.2 Implementation of the Hybrid Position and Rate Control  The hybrid position and rate control described in the previous section was implemented. In the first attempt, the slave flotor was controlled as a rigid body in space, with the CRS robot tracking it. For simplicity, one DOF representation is used. Six DOF extension will be presented in next section.  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  38  As illustrated in Figure 3.3, the CRS robot (XR) was programmed to track the slave flotor absolute position (XF) which is calculated from the robot position (XR) and the wrist internal PSD data. The slave Rotor set-point, expressed in absolute position (XFd ), can be computed  Figure 3.3: Implementation of the Hybrid Position and Rate Control from the local frame (XL) and the master position (x m ). Unfortunately, an overshoot problem occurred in the coarse-fine manipulator.  3.2.1 Overshoot Problem due to Time Delay  As described in Chapter 2, the control of both wrists are performed by the DSP system and updated in about every 2ms. The 2ms is actually the computational cycle of the DSP chip. The communication time between the wrists and the DSP system is negligible by using the A/D and D/A channels. However, due to the slow CPU and lack of analog channels in the CRS system, information such as the robot joint angles and set-point have to be transmitted through parallel digital port (CRS i- PC) and then dual memory port (PC 4- DSP). Robot  Chapter 3. Control Algorithms of the UBC Teleoperation System^  39  set-point and location can only be updated in 16ms in joint angle form and 55ms in cartesian location form. This introduces a time delay in the system. The time delay problem can be understood by a more detailed model of the coarse-fine slave system in Figure 3.4.  M: the robot mass (including the slave stator) m: flotor mass (including force sensor etc.) f: flotor actuation force F: robot actuation force XR: robot end-effector (i.e., stator) absolute position: calculated from CRS joint angle xF: flotor position from stator: from wrist PSD data XF: flotor absolute position: XF = xF + XR XL: local frame absolute position XFd : flotor desired absolute position set-point: XFd = XL + scaled master position Figure 3.4: Dynamic Model of the Coarse-Fine Manipulator  ^f  Chapter 3. Control Algorithms of the UBC Teleoperation System^  Flotor dynamics  1  40  :  f = m-kF  ^  (3.2)  The maglev wrist control law performed by the DSP system: =  k  (XFd  —  XF)  —  b XF^  (3.3)  where k, b are the PD controller gains, and XFd = XL + scaled master position^  (3.4)  XF = XF XR .^  ( 3.5)  However, there is a time delay for reporting the XR from the CRS to the DSP. If we model the delay by H i (s), equation (3.5) becomes (3.6)  XF = iF H1( 8 ) XR •  Putting (3.6) into (3.3) and combining it with (3.2) leads to ^ms 2 fCF = k XFd — k (iF^XR) — bs (iF + H 1 XR) ^=  k  ±Fd — k (.2tF — .5( R-1- Hi f(R) — bs ( -kF  —^  111 XR)  and therefore fCF = ^ MS 2 + bs-Fk  XFd  d  k bs ms2+bs+k  (1 —H1)  XR  (3.7)  k^ k+bs Let G11 = ms -1-bs+k and G12 = m3 24.b s +k •  Robot dynamics:  Assume a simple robot dynamics  F  = M.X R + -  ,  (3.8)  with the control done in CRS system, ^F  = 1 The  K  (XR d — XR) — B XR^  coarse-fine dynamics coupling is neglected here.  (3.9)  Chapter 3. Control Algorithms of the UBC Teleoperation System^  41  (3.8) becomes m s 2^ms2  F  =  XR =  K (±R d — ±R)— Bs XR MS 2  ms2 (3.10) -kR ^ F + Bs+K d MS2 + Bs+K^  where we use f = ms 2 X'F. Let G21 = ms 2 +B.9+K and G22 =  ms  27/28+K . If the CRS is  commanded to track the flotor center, XR d =^ kR -  = H2X- F + (1 HaR^  (3.11)  where H2 (s) is the time delay to send the robot incremental set-point from the DSP to the CRS. The overall transfer function of the systems (3.7), (3.10) and (3.11) becomes: Gil  XF =^ ICF^(3.12) — H1021/12 — G22 ^d 1 G12 (1 1— G21 (1—H2) )  The block diagram is shown in Figure 3.5.  Figure 3.5: Block Diagram of the Coarse-Fine System In Figure 3.6, values are chosen to approximate the flotor (G 11 ) and the robot (G 21 ) response characteristics. The step response of the whole coarse-fine system (3.12) is shown in Figure 3.7. Overshoot is caused by the time delay, H i (s), in the robot location data, XR (see Figure 3.8).  Chapter 3. Control Algorithms of the UBC Teleoperation System^  Robot Parameters M  coR  Value 20 2r 1 wii 2M  Oi K B  Flotor Parameters m CF  M Value 0.5 27r5 1  2(RoiR  2  k b  40 F  m  2(Fc0F 772  Time Figure 3.6: Step Responses of G11 and  G21  42  Chapter 3. Control Algorithms of the UBC Teleoperation System^  1.2 55ms delay in both H1 and H2 •  • •  No delay in H1, 55nts delay in H2 0.8  0.6  0.4  0.2  0.2^0.4^0.6^0.8^1^1.2^1.4^1.6^1.8^2 Time  Figure 3.8: Overshoot Effect due to the Delay H1  43  Chapter 3. Control Algorithms of the UBC Teleoperation System^  44  Of course, this problem can be avoided by purchasing additional hardware to increase the CRS position update rate. However, not only do we spend more money for the hardware, but we also need to bypass the whole CRS computing system and control the robot in joint motor level. All those safety checks come with the robot will be lost. A much simpler solution is proposed in next section.  3.2.2 Decoupled Coarse-Fine Control Algorithm  As mentioned in the previous section, the overshoot is mainly due to the delay in robot position H1 XR. This problem no longer exists if H1XR R is not required in the control of the flotor. The  trick is to separate the fine motion control from the coarse motion robot control. To achieve such decoupled coarse-fine control, the robot is only responsible for the rate control and does nothing for position control. In other words, the local frame XL, is attached to the robot position. Position control is carried out between the two maglev wrists (from their stator centers) and is updated in every 2ms. The only trade-off is the position scaling cannot be greater than one if the master and slave maglev wrist are identical. Scaling down (i.e., increasing the position resolution) is perfectly all right. When the master is outside the rate deadband region, the slave flotor always has an offset from its stator center (i.e., from the robot end-effector) due to the position control. The CRS robot tracking the flotor center means that the robot is in rate control. When the master is inside the deadband region, the robot simply stops. Now, the block diagram of the coarse-fine system is shown in Figure 3.9. The delay H2 does not cause any problem. It only means that when the human operator wants to change the robot velocity vector, the robot has an extra 16ms response delay which is not noticeable to an operator.  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  45  Figure 3.9: Block Diagram of the Decoupling Coarse-Fine Control 3.2.3 Discussion and Further Improvement  The implementation of the hybrid position and rate control is much simplified by using the decoupled coarse-fine approach. By combining the robot frame with the local frame, we eliminate one coordinate frame which means a lot of computation savings in the 6 DOF implementation, and we do not need to implement the safety checks required to make sure that the local frame is not too far away from the actual robot location (e.g., the local frame velocity may be faster than the robot velocity). Before using decoupled coarse-fine control, it is logical that the robot always tracks the slave flotor to increase the wrist virtual workspace. However, in decoupled coarse-fine control, the robot is responsible for rate motion which should be controlled directly by the master instead of the slave flotor. Therefore, the robot should track the slave flotor set-point, x Fd (i.e., the scaled master position), instead of the actual slave flotor center, xF. This improves the response time and safety of the robot tracking, as the robot now tracks the human-directly-controlled master  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  46  flotor instead of the computer-controlled slave Rotor. For instance, if the (current or thermal) fuses cut the current supply to the slave wrist, the flotor will be pulled down by gravity and the robot tracks the flotor center and drops with the wrist until they crashes to the ground. However, if the robot tracks the master, the operator can still control the robot even there is no master actuation forces. Figure 3.10 shows the improved hybrid position and rate control for the decoupled coarse-fine system. It also includes the small centering motion for solving  Figure 3.10: Block Diagram of the Improved Decoupling Coarse-Fine Control the deadband crossing problems as discussed in section 3.1.3.  3.3 Six Degree-of-Freedom  Extension  First of all, a world coordinate frame has to be defined as a fixed reference frame. It is convenient to choose the CRS base frame as this world coordinate frame. In order to have spatial correspondence between master and slave systems, the master's stator should be oriented in the same way as the CRS robot base frame.  Chapter 3. Control Algorithms of the UBC Teleoperation System^  47  The 6 DOF hybrid position and rate control with the decoupled coarse-fine approach is illustrated in Figure 3.11. Translation is represented by position vector (r), while the flotor  Figure 3.11: Block Diagram of the Six DOF Implementation rotation (about stator frame) is represented by quaternion vector (0).  Position Control As described before, position control is always active at the wrist-to-wrist level. The translation and rotation of the master flotor (r ni , O m ) can be expressed in the slave stator frame (which is  Chapter 3. Control Algorithms of the UBC Teleoperation System^  48  equal to the robot end-effector frame, {R}) as the slave wrist set-point: R rm R  where the rotation matrix  2 QR  =  (  QR) T rm  Om = (CIR) T Pm  represents the orientation of the robot end-effector frame and  is obtained from the robot joint data. Note that (r m , O m ) and (Rr ni , R i3,,,) represent the same translation and rotation (i.e., same magnitude), but they are expressed in different coordinate frame (see [30] for more detail description on coordinate transformation). The controls of the slave wrist and the robot are still decoupled from each other. Therefore, the effect of the delay H1 in QR only means that the calculated and the actual robot orientations have 16ms delay from one another, and they are almost the same even the robot is controlled in rate mode and therefore, it is negligible. Similarly, the slave flotor translation  RI-,  and rotation RO, (both from the slave stator  frame, obtained by the PSD data) can be expressed in the master stator frame for the master controller (which will be discussed in next section) and the small CRS centering motion, r s = QR R rs Os = QR ROs •  Rate Control rR =  1 f(lirmii) rm kdead  eli  rs  = 1 f(liOniii) Om kdead Os  if lir n, II > deadband  (3.13)  otherwise if 1113,, II > deadband  (3.14)  otherwise  where rR is the robot end-effector position and 9R is the robot "roll, pitch, yaw" angle vector. The above equations mean that the velocity of the robot tracks the master flotor position and 2 For  any rotation matrix Q, the determinate of Q is 1 and Q T is same as Q-1.  Chapter 3. Control Algorithms of the UBC Teleoperation System^  orientation with some scaling functions,  49  f(11'11), when master is outside the deadband, and the  robot tracks the slave fiotor with some small scaling factor,  kdead,  (for the small CRS centering  motion) when master is inside the deadband.  The Deadband Shape and The Robot Velocity Scaling Function The shape of the rate control deadband is determined by the norm of r,, and O m . Figure 3.12 shows two deadband shapes. Although the quadratic norm provides a more consistent deadband length in all directions, it is inconsistent with the master workspace shape. The master workspace shape is more like a cube than a sphere. As the operator often pushs the master to its workspace edge during rate control, he will experience the robot velocity is faster in some directions than the others (e.g., Ir i l > 1r 2 1 in Figure 3.12). The infinity norm is used in this project because it is more consistent with the master workspace shape comparing to the quadratic norm.  Figure 3.12: Rate Control Deadband Shapes  The scaling function f (11r,„, II) determines the robot velocity profile. Figure 3.13 shows three different velocity profiles. This project uses profile #2 which avoids the sudden velocity jump in #1 and apparently "slower" response and high sensitivity of (rate) workspace volume in #3  (e.g., in Figure 3.12, the maximum velocity of rate control in r 1 direction will be much higher  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  f 11 rm II )= II rm II  f dl r m II )  if II rmII > deadband  #1 deadband  f (11 r m II ) A  #2  f (II rm II )= II rm II — deadband  /  deadband  f (11 r In II )  #3  if II rmII > deadband 1.-  I I rm I I  f (II r m II ) = (II r mll — deadband) 2 if II r m il > deadband  r...,  deadband  ^  II rmII  Figure 3.13: Robot Velocity Profiles  50  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  51  than that of r 2 for profile #3). Same rule is applied to rotations.  3.4 Teleoperation Control at Wrist Level  Since the main function of the CRS robot is to carry the maglev wrist to its workpiece, task manipulation is mainly dependent on the teleoperation (using position control) at the wrist-towrist level. The maglev wrist controllers are easily modified in the DSP program and can even be changed at run-time.  3.4.1 Modelling a Teleoperator as Two Rigid Bodies  As described in Chapter 2, the maglev wrist flotor can be accurately modelled as a single rigid body and the differential equations of describing the body motion can be transformed to decoupled  double integrator form [201. Therefore, the control of the teleoperation system flotors  can be analyzed by the single axis rigid masses model illustrated in Figure 3.14, where m m ,  Master  ^  Slave  Xs  Figure 3.14: Single-Axis Model for Teleoperation Control m 3 , x,-„, x 3 are the master and slave flotor masses and positions, respectively, f n and  f3  are  the master and slave actuation forces, and fh and f, are the hand and environment forces.  52  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  Gravitational forces are automatically fed forward by each individual wrist controller to make the flotors nearly weightless. Thus, the equations of motion are simply ^mmim  = sxs  ^m  ^  =^fe + fs •  (3.15)  ^  (3.16)  From a human factors point of view, it is awkward to allow the master and slave flotors to drift about when the operator does not hold the master. Therefore, a very small centering force/torque is implemented in each wrist controller. fm_centering =  —  k0 xm — b0  th m  h _centerin g = —k0 x s — b0 is The gains, /c o and bo , are very small so that they do not have significant influence to the wrist controllers. The actuation forces, fm and  fs ,  are computed by the wrist controllers which will be dis-  cussed in the following sections.  3.4.2 Force-Reflection by Coordinating Torque  A coordinating torque, fc , (e.g., used in [31]) can be implemented by using a PID controller: ^fc = kp(xm — is) + kv(im^— is) +  ki (xm — x3)  ^  (3.17)  For the slave to track the master, the slave controller is simply ^fs  =^  (3.18)  Bilateral teleoperation can be achieved by making the master to track the slave: fm = —L •^  (3.19)  Chapter 3. Control Algorithms of the UBC Teleoperation System ^  53  If the proportional gain k p tends to infinity, an infinitely stiff rigid-link ideal condition is achieved and force feedback is also achieved at the same time. Of course, due to stability problems, k p cannot be infinity, but a very rigid feeling between the master and the slave can be obtained for a large proportional gain. By using the same proportional gain, k p , in both master and slave controllers, the feedback force should be equal to the force applied to the slave. In order to maintain stability while increasing k p , we can increase the differential term, kv , which however also increases the viscous feeling at the master. To have a better understanding and control of the viscous term, we can separate k, into two terms as suggested in [11]: velocity feed forward, kf t„, and feedback term, kfb. fm kp(x — xm) + kiw i s — k fbth m ki (x s — x m )  dt  (3.20)  fs = kp(xm — xs) + kf.thm — kfbth s ki f (x m — x s )  dt  (3.21)  This coordinating torque controller is the same as the one in (3.17) if k f„ = k fb. The function of  k fo,„ is to increase the system response by forcing the opposite system to track its velocity, while kfb provides damping to maintain system stability. The viscosity produced by the damping can be reduced by decreasing kfb or increasing kf tv . For finite kp (i.e., finite stiffness in the linkage), a position error "x s — x m " is required to generate forces. This is the major drawback of the coordinating torque controller. Experimental data of using this controller will be presented in next chapter.  3.4.3 Force Reflection by using Force Torque Sensors -  -  Analog to the force measuring method in the coordinating torque controller, the force sensor can be interpreted as a device with very high proportional gain as it measures force by the tiny elongation or contraction of its strain-gauges. To achieve the infinitely stiff rigid-link ideal  Chapter 3. Control Algorithms of the UBC Teleoperation System^  54  condition described in Chapter 1, we set fm = fe , fs = fh  where fe and fh are measured by the force-torque sensors. However, the position correspondence between master and slave will be lost even with small measurement errors, so a coordinating force should be added to the controllers. fm  fs  = kp(x.,— x,,,)+^k fbim ki (x, — xm) dt fe^(3.22)  = k p (x n, — x 5 ) + k f w i ni — k fb±s  ki  (xm — x.^) dt fh  ^  (3.23)  This simple controller, as well as the coordinating torque controller without force sensor, will be used in the experiments in next chapter.  ▪  Chapter 4 System Testing and Analysis  Telemanipulation can be generally divided into three situations:  1. Free motion tracking in an unconstrained environment 2. Moment of contact with a constrained environment 3. Exertion of forces to a constrained environment.  In this chapter, the UBC teleoperation system will be tested under these three situations. The following two wrist level controllers 1 will be used in the experiments:  • Controller #1: Bilateral coordinated torque: kp (x s — x m ) + k f w th s — kfbi m + ki(x s — x m ) dt  fm  —[koi m + kind fs = kp (x m — x s ) + kf t,4 m, — kfbi s + ki (x m — x s ) dt  —[koi s + bois]  ^  (4.1)  • Controller #2: Bilateral coordinate torque with force sensing: fm  ^  kp(xs — im) k fw — kfb im ki I (is — int) dt fe —[k o x m + bo im]  fs  ^  k p (x m — x s ) + kf w i m — kfb +^(im — i s ) dt + fh —[k o x s bo is]  ^  (4.2)  'The controllers have been described in the previous chapter. As mentioned before, the differential equation of describing the flotor motion can be transformed to decoupled double integrator form and therefore, the control of the six axes is decoupled from each other.  55  Chapter 4. System Testing and Analysis ^  56  where fe and fh are obtained from the JR 3 sensors (note: each JR 3 sensor has built-in ananlog low pass filters with cut-off frequency at 163Hz). As mentioned before, there is always a small centering force/torque (the terms inside the brackets [...]) and a gravity compensation force (which is not shown in above controllers, see Section 2.2.2 for details) acting on the flotors. The gains of the above controllers were chosen, without making the system unstable, to achieve the fastest response time and rigid link feeling between the master and slave wrists. The values of the gains used in the DSP program are shown in Table 4.1. In the experiments, Table 4.1: Controller Gains used in the Experiments Reported Gains Proportional Velocity feedforward Velocity feedback Integral Centering spring Damping  Symbol kp k f„ kfb  ki ko bo  Value 5 0.024 0.02 25* 0.5 0.005  unit N / mm N / (mm/s) N / (mm/s) N / (mm•s) N / mm N / (mm/s)  *There is a limit (6 x 10 -3 mm • s) posed to the integrator so that the effect of the integrator will not be greater than 0.15N.  the above controllers are addressed as controller #1 and controller #2 for convenience. Unless specified otherwise, the gains are fixed and both wrists are equipped with the force/torque sensors (even when fe and  fh  are not used as in controller #1).  The results presented in this chapter are for the translational Z-axis. The results for rotation about Z-axis can be found in Appendix C. The characteristics of the other four axes are similar and will not be repeated here.  Chapter 4. System Testing and Analysis ^  57  4.1 Free Motion Tracking  4.1.1 Position Tracking at Wrist Level  The first experiment is to test the wrist level position tracking at different frequencies. Figure 4.1 and Figure 4.2 show the tracking results of controller #1 and controller #2 respectively. The solid line is the master position, x,,, and the dashed line is the slave flotor position, x, (from the stator)  2  .  In the first five seconds, a human operator moved the master at normal frequencies.  Then, the operator tryed to move at the highest frequency he can produce (.'-... 7Hz in the figures) and suddenly took his hand away from the joystick. The results show that the position tracking is very accurate in both controllers except a very slight overshoot in the slave flotor due to momentum.  4.1.2 Back-Driveability at Wrist Level  Same procedures were performed as in the first experiment except the operator was moving the slave this time. The results are shown in Figure 4.3 and Figure 4.4 for the two controllers. The back-driveability is about as good as the forward position tracking.  4.1.3 Rate Tracking (no rate deadband)  Since the rate motion is only produced by the CRS robot which receives set-points from the joystick, only the master and the CRS motions are of interest in this experiment. In order to show the tracking more clearly, the entire master workspace is used for rate control (i.e., no rate control deadband here). Figure 4.5a shows the master position and the CRS velocity which is obtained by differentiating the CRS position data, and Figure 4.5b shows the CRS 2 In this chapter, when two signals are plotted in a same graph, the solid line always represents the signal in the master side (i.e., x m or fn) and the dashed line is for slave side (i.e., x, or fe).  Chapter 4. System Testing and Analysis ^  Figure 4.1: Controller #1: Position Tracking of the Maglev Wrists, x m, and x3.  Figure 4.2: Controller #2: Position Tracking of the Maglev Wrists, x n, and x 3 .  58  Chapter 4. System Testing and Analysis ^  Figure 4.3: Controller #1: Back-Driveability of the Maglev Wrists, x,, and x 3 .  Figure 4.4: Controller #2: Back-Driveability of the Maglev Wrists, x m, and x3.  59  Chapter 4. System Testing and Analysis^  position motion  3  .  60  In order to plot the velocity in the same scale of the master position, the  CRS velocity data are scaled down by the factor of 20. The results show that the robot velocity roughly tracks the master position up to 2-3Hz. The smoothness of the velocity is limited by the robot motion.  4.1.4 Hybrid Position and Rate Control  Figure 4.6 shows the hybrid position and rate control. The rate control deadband is from -3mm to +3mm in the master. The operator first moved the master within the rate deadband for the first two seconds. Only the slave flotor (x s ) which was mounted on the robot followed the master motion  4  and the robot was stationary. Then, the operator pushed the master outside  the deadband (2-4sec.) and took off his hand at 4th second. During this period, the slave flotor tracked the master in position and the robot tracked in velocity. The small centering force (the terms inside the brackets in the controllers) brought the master to its nominal position when the human operator released the master. Then the operator pulled the slave flotor down and thus the master tracked the slave flotor's position and the robot tracked the master in rate control. Therefore, the back-driveability is valid in both position and rate controls.  4.2 Contact Stability  4.2.1 Hard Contact  This experiment shows the stability of the system during hard contact. To simplify the experiment, no rate motion is involved here. Indeed, hard contact during rate control will be included 3 In this chapter, graphs under the same figure number belong to a same experiment (e.g., Figure 4.5a and 4.5b are from the same experiment). 4 The slave flotor position data, x,, is measured from the stator center and is expressed in world coordinates.  Chapter 4. System Testing and Analysis ^  61  6  •••••  8 b p tV  Time (sec.)  Time (sec.)  Figure 4.5: Rate Control: a.) Master Position (x„,) and CRS Velocity (X„,); b.) CRS Robot Motion: Xcrs.  62  Chapter 4. System Testing and Analysis^  I  2  3  5  4  6  7  b.)  X.  4- x..  -  9  I  10  Time (sec.)  ^I  c.) Xvra^cr..  Time  Figure 4.6: Hybrid Position and Rate Control: a.) Wrist Position Tracking: x,, and x 3 ; b.) Slave System Motion: X„ 3 x s ; c.) Rate Control: Master Position (x,i ) and CRS Velocity (Xcrs).  Chapter 4. System Testing and Analysis^  63  in the experiment next section. Figure 4.7 shows the hard contact by using controller #1. In this experiment, the slave collided with a fixed solid steer and exerted a constant force and finally the operator released the master. No instability problem occurred. Figure 4.8 shows two contacts for the controller #2. For the first contact (at t a' 3), the slave collided with the solid steer fixed on a hard table. Instability occurred in this case. In the second contact (at t a 5.5), the slave collided with the solid steer which was held by a human hand 5 and no instability occurred. It is because human hand has damping effect to stabilize the hard contact. It is also helpful to have a stronger grip on the master by the human operator. The damping term, b 0 , in the controller #2 can be increased to mimic the damping effect of the human hand. The hard contact instability disappears if the damping term is increased from 0.005 to 0.1 N/(mm/s) in Figure 4.9. The trade-off is that the operator feels viscosity for high velocity motion (compare the hand force data in Figure 4.8 and Figure 4.9 in the first few seconds of free motion). To minimize this unwanted viscous feeling, the operator may adjust the damping factor for different tasks. The UBC teleoperation system allows users to change all the parameters at run-time through the DSP monitor software. Another simple way to aviod the viscous feeling during free motion is continuously adjusting the damping term according to the magnitude of the measured environment force. For instance, using  bo = kb ILI + bmin with the scaling, kb = 0.01 (mm/s) -1 and the minimum damping b m i n = 0.0025 N/(mm/s), the result for the hard contact experiment of controller #2 is shown in Figure 4.10 (contact at t 3, then apply a larger force at t 5.5). Contact stability can be maintained without increasing the viscous effect during free motion. As the human impedance (e.g., damping, stronger grip) also contributes to the system 5 In the experiment, it was very hard for a human hand to hold the steer in absolute stationary. Therefore, some flotor motion results in Figure 4.8a.  64  Chapter 4. System Testing and Analysis^  1.5  -0.5  0.5^1^1.5^2^2.5^3^3.5^4  ^  4.5^5  Time (sec.)  F g  Time (sec.)  Figure 4.7: Controller #1: Hard Contact. a.) Master and Slave Wrist Positions: x n, and x,; b.) Hand and Environment Forces: fh and —f,.  Chapter 4. System Testing and Analysis ^  65  Z C.) 1.  o  Time (sec.)  Figure 4.8: Controller #2: Unstable Contact. a.) Master and Slave Wrist Position: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe.  Chapter 4. System Testing and Analysis ^  66  z 0 s. 0  Time (sec.)  Figure 4.9: Controller #2: Stable Contact with Large Damping a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe.  Chapter 4. System Testing and Analysis^  67  Time (sec.) 0.12  0.1  I  1  -  0.08  0.06  0.04  0.02  0^1^2^3^4^5^6^7^8^9^10 Time (sec.)  Figure 4.10: Controller #2: Stable Contact with a Damping Function: a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe ; c.) Damping Factor, bo.  Chapter 4. System Testing and Analysis^  68  stability, Hannaford [32] suggested an alternative that the system stability and damping effect may be optimized through continuous changing the damping factor as a function of the human impedance (which can be estimated from the measured hand force and master position data). This remains a further research topic.  4.2.2 Soft Contact and Active Environment  In this experiment, the teleoperation system was operated by two people — one pushing on the master in high frequencies, another one pushing on the slave, and they took of their hands at 4th second (see Figure 4.11 and Figure 4.12). Without increasing the damping term, the system is stable in both controllers.  4.3 Exertion of Forces  The result of controller #1 is shown in Figure 4.13. The slave first moved in rate control and suddenly it contacted a solid steer. The collision force pushed the master to its rate control deadband zone and the robot rate motion was stopped (except for the small centering motion tracking the slave flotor). After the contact, the operator exerted constant forces of 5N, lON and 15N. (Since the operator did not know precisely how much force he was applying to the master, the environment force data was displayed on the PC monitor). From Figure 4.13b, we can see that the force exerted to the environment (—f,) is almost the same as the force exerted by the human operator (fh ) even though no force sensor is used in the controller. This is the reason to choose a same proportional term, kp , in both the master and slave controllers (see controller #1). However, for such coordinated torque controller, the forces are generated by the position error between the master and slave: — the more force the operator exerts, the larger the master/slave position error will result (see Figure 4.13a and Figure 4.13b). As the operator wanted to exert a higher force at t = 12 second, the master crossed the rate deadband (±3mm)  69  Chapter 4. System Testing and Analysis ^  4 .•• E  E  0  I 1^2^3^4  a.) xm— , Xs  ^  —I  5^6  Time (sec.)  -10  -15  l 2  b.)  fit^fe  ^ ^ ^ ^ 6 4 5 3  Time (sec.)  Figure 4.11: Controller #1: Soft Contact and Active Environment. a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe.  70  Chapter 4. System Testing and Analysis^  2  ^ ^ ^ 4 3  6  Time (sec.)  i  '  c.9^-10 ^ O fa., -15 ^  -20 ^  -25  0  I 1  2  3  4  13.) fh  ^  •  fe  —  — --- I 6  Time (sec.)  Figure 4.12: Controller #2: Soft Contact and Active Environment. a.) Master and Slave Wrist Positions: x,r, and x 3 ; b.) Hand and Environment Forces: fh and — fe.  Chapter 4. System Testing and Analysis ^  I ^. SI-)  Xs^  --- ---------- --  71  I  ,^--------  Asa,"  I;  ------^ -  -------  ----------  Control Doactband  4^6^8^10^12^14^16 Time (sec.)  Times (sec.)  -2000  c.) X crs  -  I  -4000 -6000  H -8000 -10000  a. -12000 - 14000 - 16000 -18000  o  2^4^6^8  10^12^14^16  Time (sec.)  Figure 4.13: Controller #1: Exertion of Forces. a.) Master and Slave Wrist Position: x, and x 3 ; b.) Hand and Environment Forces: fh and —fe ; c.) CRS Motion: Xcrs.  Chapter 4. System Testing and Analysis ^  72  and the CRS robot moved toward the solid steer, which created a feedback force to push the master back to the deadband zone. Finally, the operator took the robot away from the contact. Although this algorithm prevents the robot from moving further to the environment and causing damage, these sudden motion and increase in feedback force are undesirable. Nevertheless, due to thermal constraint, the maglev wrists are normally operated within the 15N range. We can increase the deadband or the proportional gain to achieve higher exerted force. The beep sound indicating the rate control can also help the operator to stop exerting a higher force when the master is crossing the deadband. Figure 4.14 shows the results for controller #2. Of course, the damping term should be increased to 0.1 N/(mm/s) to maintain contact stability for this controller. Since the force sensor data are used in the controller, we do not need the position error to generate forces. The above problem of deadband crossing does not exist. The operator also has a better sense of the stiffness of the environment.  4.4 Discussion and Evaluation  4.4.1 Slave Flotor Dynamic Effect during CRS Motion  During rate control, the dynamics of the flotors become ^mm  im  ^ms  =  (is  fh  +  fm  4 krs) = -  fe + fs  ^  ^  (4.3) (4.4)  where -kCTS is the CRS robot acceleration. To simplify the analysis, we set fe = 0 (i.e., free motion) and fm = — f, (i.e., as controller #1). We have the following relationship: fh = mm im + ms is + ms -kcrs To simplify the discussion further, the operator is assumed to control the robot in a constant velocity. That is to say i m = i m = 0 and i s = 0 (assuming that x s tracks x m ) and also  Chapter 4. System Testing and Analysis ^  73  2^4^6^8^10^12^14^16^18^20 Time (sec.)  Time (sec.)  Figure 4.14: Controller #2: Exertion of Forces. a.) Master and Slave Wrist Position: x,, and x 3 ; b.) Hand and Environment Forces: fh and —fe ; c.) CRS motion: Xcrs.  Chapter 4. System Testing and Analysis^  74  .k„, = 0 for constant robot velocity. As the ideal condition, it should not have any feedback force during this constant velocity free motion. However, due to the coarse motion of the robot, strictly constant robot velocity can not be maintained (see Figure 4.5) and forces are reflected at the master. If these unwanted forces push the master back into the rate deadband zone (while the operator wants to maintain a constant master position in the rate control zone), a "move-stop-move" robot motion will even amplify the feedback force (i.e., the slave flotor inertial effect). The rate motion, as well as the force feedback, will not be good. To avoid this unwanted deadband crossing problem, the operator should have a stronger grip on the master and should not rest the master near the deadband edge during the CRS motion. Further research, such as flotor inertial cancellation and experiments of task manipulation during rate control, is recommended to minimize this unwanted flotor dynamic effect. This unwanted effect is reduced to half for controller #2. As .f. = — f c- I- fe Is = fc+ fh  where fc is the coordinating force, and fe = 0, we have fm = —fs + fh . Equations (4.3) and (4.4) become ,^1 fh =  (mn, i n, + in s i s + ms -kcrs)•  Furthermore, the coordinated torque in controller #2 is not essential for force feedback. We can reduce its effect (by lowering its gains) so that fm -, fe = 0 and the slave flotor dynamic effect in the feedback force can be eliminated. Now, (4.3) becomes fh =  Mm m •  Unilateral controller does not have this problem.  Chapter 4. System Testing and Analysis ^  75  4.4.2 Pros and Cons of using Force-Torque Sensor(s)  Pros and Cons of not using force sensor  As discussed in chapter 1, force reflection is very important in teleoperation. However, force sensor are still expensive these days. For instance, a JR3 sensor system costs over $8,000. Furthermore, for the UBC teleoperation system, the force sensor and its adaptive plate impose a relatively heavy weight to the fine motion wrist (about 70% of the flotor weight). Together with the masses of camera (if bird-eye view is wanted) and the tool, the total mass may exceed the payload of the maglev wrist. It is tempting to achieve force reflection without force sensor. Bilateral teleoperation can be achieved by using coordinated forces as in controller #1. However, these coordinated torque controllers need position error to generate forces. There exist some problems such as rate deadband crossing during force exertion and the unwanted inertial effect in feedback force during robot motion. Furthermore, some high frequency components of the environment force may be lost as flotor motion is required to establish the position error.  Use of one force sensor  Many teleoperation systems [10, 17] use one force-torque sensor to measure the environment force for force feedback. Hence, the master is force-controlled and the slave is positioncontrolled, for instance, fin = fe kheis  — k fbim, ki (x s — x m,) dt^  (4.5)  Is = k p (x,, — x s ) k f„th, — k fbi + ki^— x s ) dt .^(4.6)  As only the feedback force bandwidth needs to be high (see the human asymmetrical input/output capabilities in Table 1.1, page 4), the force bandwidth problem mentioned in the coordinated torque controller is solved. However, a position error is still required for the above  Chapter 4. System Testing and Analysis ^  76  controller to generate force and the problem of deadband crossing still exists.  Use of two force sensors  If the operator hand force data is available, the position error is no longer required to generate force and the problem of deadband crossing is solved. Using controller #2, it is easy to derive — fh = fe — 2 (mm im + ms is) •  ^  (4.7)  In other words, the inertial effect of the master and slave flotors can be reduced to half when both measured operator hand force and environment force are used. Furthermore, teleoperation controller design is more flexible with the availability of the operator hand force information.  4.4.3 Evaluation  The UBC teleoperation system is evaluated against general specifications [33]. The system's advantages and disadvantages are outline below:  Advantages  • Excellent position tracking (see experimental results).  • Ability to exert accurate forces. • Back-driveability in both position and rate control modes. • Nearly zero force threshold  6.  6 Force threshold is defined as the minimum force required at the master (slave) to produce motion at the slave (master) [33, 34].  Chapter 4. System Testing and Analysis^  77  • No backlash and friction at master and slave wrist. • Programmable compliance at master and slave wrist. • The inertial effect of the slave arm (i.e., the CRS robot) will not be felt by the operator. The inertial effect is reduced to those of the load and wrist flotors. • Gravitational balance is easily achieved by using gravity feedforward to make the master and slave flotors nearly weightless. • Software selectable force, velocity and position gain ratios. • Single handed control. • Safe to operate (emergency power shutoff will simply cause the flotor to fall against its stator, while the CRS robot will be just locked in position or controlled by the operator held master).  Potential Disadvantages  • Small master operation volume. Although the author do not perceive this to be a big problem, the master volume, if necessary, can be increased by mounting the maglev handcontroller on a position-controlled coarse-motion platform, e.g., an inexpensive Stewart platform. In fact, small master operational volume is an advantage when space is limited such as in undersea and aerospace applications. Also, it reduces the operator fatigue and safety risks. • Limited force/load capability. The 20N/0.6N-m indefinite loads and 40N/1.2N-m transient loads capacities of the maglev wrist is more than adequate for a hand controller  Chapter 4. System Testing and Analysis ^  78  (indeed, the numbers exceed those of the JPL master arm). However, it may be inadequate for the slave flotor for a number of applications that require substantially larger loads. The coarse-fine slave system is not suitable for such applications.  Chapter 5 Conclusions  A new force-reflecting teleoperation system has been developed. The system employs the Lorentz magnetic actuation force technology to avoid the actuator friction and backlash, and thus is able to provide a high fidelity telemanipulation environment. The coarse-fine manipulator implementation provides the slave system with a large workspace while maintaining the advantages of the magnetic levitation technology. Aspects of system, computational and controller design have been discussed. Experimental results show that the UBC teleoperation system has an excellent motion and force tracking capacity.  5.1 Contributions  The main contributions of this thesis are as follows: 1. A teleoperation system with maglev master and coarse-fine slave manipulators was implemented. The project inherited the two maglev wrists and their kinematic and dynamic transformations software. The computing systems, JR 3 force-torque sensors and the CRS robot are commercially available. A DSP system monitoring software was also available through a Summer project [24]. In this thesis project, the hardware modules were modified and integrated together to form a force-reflecting teleoperation system. The system has performance advantages that make it a unique experimental research environment. 2. A method for combining position and rate controls, which was proposed by Salcudean and Lawrence was modified and implemented into the UBC teleoperation system. This method allows controlling a large workspace slave system with a small workspace master without external switching or sacrificing position resolution. Six DOF extension of the 79  Chapter 5. Conclusions^  80  method was also presented. 3. On controlling coarse-fine slave manipulator, an overshoot problem due to time delay was exposed. A solution using decoupling coarse-fine controls was implemented. 4. System performance was quantified by performing general teleoperation tasks, such as free motion tracking, hard contact, active environment and exertion of forces.  5.2 Future Work  • Using a better computing environment. Indeed, work has been undertaken to migrate the computing system to the VME base SPARC system which provides a better development environment. • Improving the maglev wrist design to increase (or optimize) the wrist payload and workspace. • Parameter identification of the maglev wrist, so that more precise analysis and control techniques can be performed. • Since the CRS manipulator is only responsible for rate control, the inverse kinematic computation can be replaced by the inverse Jacobian approach which will save some computation. • Experiments on robot assembly teaching and more complicated teleoperation tasks. • More advanced teleoperation controller design such as using H' optimization theory [34].  With force and position scaling, the UBC teleoperation system has unique advantages in those applications requiring high position and force resolutions. Further research of applying the system in such areas is recommended.  Bibliography  [1] L. Leifer. Interactive robotic manipulation for the disabled. In Proceedings of the 26th IEEE Computer Society International Conference, pages 46-49, San Francisco, 1983. [2] H.A. Paul, B. Mittlestadt, and W.L. Bargar. A Surgical Robot for Total Hip Replacement Surgery. In Proceedings of the IEEE International Conference on Robotics and Automation, Nice, France, May 10-15 1992.  [3] J. Vertut and P. Coiffet. Robot Technology, Vol. 3A: Teleoperations and Robotics: Evolution and Development. Prentice-Hall Series on Robot Technology. Prentice-Hall, 1986. [4] T.B. Sheridan. Telerobotics. Automatica, 25(4):487-507, 1989. [5] I.W. Hunter, S. Lafontaine, P.M.F. Nielsen, P.J. Hunter, and J.M. Hollerbach. A microrobot for manipulation and dynamical testing of single living cells. In Proc. IEEE Micro Electro Mechanical Systems, pages 102-106, Salt Lake City, February 1989. [6] R.L. Hollis, S. Salcudean, and D.W. Abraham. Towards a tele-nanorobotic manipulation system with atomic scale force feedback and motion resolution. In Proc. 3rd IEEE Micro Electro Mechanical Systems, pages 115-119, Napa Valley, CA, February 1990. [7] R. Mosher. Handyman to hardiman. In Automotive Engineers, SAE Report 680088, 1967. [8] P.D. Lawrence, B. Sauder, U. Wallersteiner, and J. Wilson. Teleoperation of Forest Harvesting Machines. In Robotics in Forestry, pages 36-39, Vaudreuil, Quebec, September 1990. [9] J. Hill. Study to design and develop remote manipulator system. In SRI Quarterly Report, 1977. [10] M. Handlykken and T. Turner. Control System Analysis and Synthesis for a Six Degreeof-Freedom Universal Force Reflecting Hand Controller. In Proc. 19th IEEE Conference of Decision and Control, December 1980.  81  82  Bibliography^  [11] T. L. Brooks. Telerobot response requirements. Technical report, STX Robotics, 4400 Forbes Blvd., Lanham, MD 20706, March 1990. [12] T. L. Brooks. Hand controllers for teleoperation. Technical report, STX Robotics, 4400 Forbes Blvd., Lanham, MD 20706, March 1985. [13] Romote Manipulator Control with Six Degrees-of-Freedom Force-Torque Joystick, Product Catalogue, JR 3 Inc, Woodland, California, USA. [14] Force-Torque Spacestick, Product Catalogue, Basys System Software mbH, Nurnberg, West Germany. [15] M. McKinnon and M. King. Manual control of telemanipulators. In International Symposium on Teleoperation and Control, 1988. [16] A. Fancello, J. Porter, and E. Reinbart. Froce reflection effects on operator perfomance of remote maintenance and inspection systems. In Utility/Manufacturer Robot User Group, 1988. [17] A.K. Bejczy and M. Handlykken. Generalization of bilateral force-reflecting control of manipulators. In Proc. of the 4th RO.MAN.SY, 1981. [18] K. Siva, A. Dumbreck, and P. Fischer. Development of a general purpose hand controller for advanced teleoperation. In Proceedings of the International Symposium on Teleoperation and Control, 1988. [19] R.L. Hollis. Magnetically levitated fine motion robot wrist with programmable compliance, October 1989. U.S. Patent number 4,874,998. [20] R.L. Hollis, S. Salcudean, and P.A. Allan. A Six Degree-of-Freedom Magnetically Levitated Variable Compliance Fine Motion Wrist: Design, Modelling and Control. IEEE Transactions on Robotics and Automation, 7(3):320 332, June 1991. -  [21] D. Goertz. Report on the 6 DOF Wrist Hardware, August 1991. Available from T. Salcudean, University of British Columbia, 2356 Main Mall, Vancouver, B.C., Canada V6T 1W5. [22] J.L. Junkins and J.D. Turner. Optimal Spacecraft Rotational Maneuvers. Elsevier, 1986. [23] CRS Plus Inc. A460 Series: Small Indutrial Robot System (Technical Manual).  Bibliography^  83  [24] N. Ho. TMS DSP, D/A, A/D cards and the TMS Trace Debugger, August 1991. ELEC 474 Report. Available from T. Salcudean, University of British Columbia, 2356 Main Mall, Vancouver, B.C., Canada V6T 1W5. [25] N.M. Wong. The CRS-Wrist Coarse-Fine Manipulator Setup. Master Progress Report #4. Available from T. Salcudean, University of British Columbia, 2356 Main Mall, Vancouver, B.C., Canada V6T 1W5. [26] T. Vlaar. Kinematics for the CRS460 Robot, July 1992. Available from T. Salcudean, University of British Columbia, 2356 Main Mall, Vancouver, B.C., Canada V6T 1W5. [27] E.G. Johnsen and W.R. Corliss. Human Factors Application in Teleoperator Design and Operation. New York: Wiley-Interscience, 1971. [28] N. Parker. Application of force feedback to heavy duty hydraulic machines. Master's thesis, University of British Columbia, October 1992. [29] S. Lem. Summer Report: A graphics simulation of the log grappler between April 30 and August 18,1990. Available from T. Salcudean, University of British Columbia, 2356 Main Mall, Vancouver, B.C., Canada V6T 1W5. [30] M.W. Spong and M. Vidyasagar. Robot Dynamics and Control. John Wiley and Sons, 1989. [31] R.J. Anderson and M.W. Spong. Bilateral control of operators with time delay. IEEE Trans. Automat. Cont., AC-34(5):494-501, May 1989. [32] B. Hannaford. A Design Framework for Teleoperators with Kinesthetic Feedback. IEEE Transactions on Robotics and Automation, RA-5(4):426-434, August 1989. [33] P. Fischer, R. Daniel, and K.V.Siva. Specification and Design of Input Devices for Teleoperation. In Proc. IEEE Conference on Robotics and Automation, pages 540-545, May 1990. [34] S. Salcudean, N.M. Wong, and R.L. Hollis. A Force-Reflecting Teleoperation System with Magnetically Levitated Master and Wrist. In Proceedings of the IEEE International Conference on Robotics and Automation, Nice, France, May 10-15 1992.  Appendix A Operation Procedures of the UBC Teleoperation System  In this appendix, the characters input from keyboard are represented by bold letters and the <return> key is assumed at the end of each input line. The operation procedures are as follows: 1. Make sure all the parts are connected properly. Please refer to Appendix B for description. 2. CRS power up and homing sequence. Refer to CRS manual [23] for procedures. 3. Turn on the power for the force-torque sensors. (Since the DSP program will automatically reset the sensors' offsets whenever the program is executed, this step should be done before executing the DSP program.) 4. In DOS prompt, execute the DSP control program by typing: (a) in^  to run the DSP monitor program.  (b) exec tele^to  load and execute the DSP program "TELE.C".  5. Activate the master by pressing the relay button comming out from the current driver. 6. To execute the CRS program, type the following commands in another DOS window (or first typing shel back to DOS prompt from the DSP monitoring program): (a) rob  ^  which is a batch file running "setcom.exe" and "robcomm.exe" (see [23] for using the "robcomm" program) to initialize the PC communication channels and enter the CRS terminal mode.  (b)  EXECUTE PCPADR  to execute the pre-loaded CRS program. 84  Appendix A. Operation Procedures of the UBC Teleoperation System ^  85  (c) Press the function key < F10 > to leave the terminal mode, and then quit the robcomm program. 7. At DOS prompt, run the PC communication program by typing pc2crs. 8. A message, "First CRS location has been received...." will be printed in the screen and it indicates that the DSP program has got the orientation of the robot mounted slave wrist for correct gravity compensation. Activate the slave wrist by pressing the relay button of the slave current driver. Then, press any key to start the operation. 9. During operation, user can change any global variables in the DSP program via the DSP monitoring program, for instance, (a) poke ctr i 1^to  change value of the integer valuable ctr to 1 which means  using controller #1. (b) poke tool i 1^to  control the slave system in tool coordinates.  (c) tload x.lst^to trace any variable specified in the file x.lst. However, continuous printing in the screen will slow down the PC communication program and may cause stepping motion in the CRS robot (i.e., the set-point cannot be delivered to the CRS system before next REMOTE cycle begins) It is recommended not to use the tracing function during CRS motion. Please refer to the manual of the DSP monitor program [24] for usage. Details of the DSP program parameters are given in the "parameters declaration" section of the program. 10. To stop the CRS operation, user can press the "abort" button on the CRS teach pendant to terminate the CRS program. The PC program will then be terminated automatically by its time-out sequence. The DSP program is still running and the maglev wrist controls  Appendix A. Operation Procedures of the UBC Teleoperation System ^ 86  are still active. 11. We can turn off the power (by pressing the relay buttons) to deactivate the wrists or go to step 6 to restart the CRS operation.  Appendix B Technical Manual of the UBC Teleoperation System  B.1 Interconnection and Pin-Assignments  The interconnection for the system is illustrated in Figure B.1 and the pin-assignments are given in Tables B.1, B.2, B.3 and B.4. Figure B.2 shows the correct mounting orientations of the slave wrist and JR 3 sensor when the CRS robot is in the "READY" position [23]. The coordinate relationship between the sensor and flotor in the master side is the same as the slave side. Table B.1: Pin-Assignments of the D/A card Signal* Coil A Coil B Coil C Coil D Coil E Coil F Ground Signal* Coil D Coil A Coil E Coil C Coil F Coil B Ground  Current Driver#2 (DB25) 1 2 3 4 5 6 25 Current Driver#1 (DB25) 1 2 3 4 5 6 25  D/A (DB37) 2 7 4 3 6 1 21 D/A (DB37) 9 14 12 11 13 8 31  Channel 1 5 3 2 4 0 AGND1 Channel 7 11 9 8 10 6 AGND3  Lout.slv[]t 1 5 3 2 4 0 N/A Lout_mtr[]t 1 2 3 4 5 6 N/A  *Coil labels are according to the maglev wrist hardware report [21]. Since wrist #1 (i.e., master) was modified recently, the current driver and coil connections in the two wrists are not symmetrical. The connections will be standardized when the second wrist (i.e., the slave wrist) is modified. t Variable name in the DSP program.  87  Appendix B. Technical Manual of the UBC Teleoperation System^  Figure B.1: Interconnection of the UBC Teleoperation System  88  Appendix B. Technical Manual of the UBC Teleoperation System ^  Figure B.2: Orientation Relationships Among the Flotor, JR 3 sensor and CRS Robot  89  Appendix B. Technical Manual of the UBC Teleoperation System^  90  Table B.2: Pin-Assignments of the A/D card #1 Signal* PSDAB PSDAT PSDAL PSDAR PSDBB PSD B T PSDBL PSD B R PSD C B PSDCT PSDCL PSDCR Ground Signal* PSDAB PSDAT PSDAL PSDAR PSDBB PSD B T PSDBL PSD B R PSD C B PSDCT PSDCL PSDCR Ground Signal Fex  Fey Fez Fex Fey Fez  Ground  Signal Box #1 (DB25) 14 15 1 2 18 19 5 6 16 17 3 4 7 Signal Box #2 (DB25) 14 15 1 2 18 19 5 6 16 17 3 4 7 JR3 #1 (DE9) Adaptor (DB15) 1 1 2 2 3 3 4 4 5 5 6 6 7 9  A/D #1 (DB37) 5 28 14 37 23 9 32 18 4 27 13 36 1,10,24,33 A/D #1 (DB37) 22 8 31 17 3 26 12 35 21 7 30 16 1,10,24,33 A/D #1 (DB37) 2 25 11 34 20 6 1,10,24,33  Channel 0 1 2 3 4 5 6 7 8 9 10 11 N/A Channel 12 13 14 15 16 17 18 19 20 21 22 23 N/A Channel 24 25 26 27 28 29 N/A  *The letters {B, T, L, R} stand for bottom, top, left and right respectively. The position definitions of the PSDs are given in [21].  Appendix B. Technical Manual of the UBC Teleoperation System^  91  Table B.3: Pin-Assignments of the Digital Port Signal Ground DAva_CRS* DRec_CRS* Setpt bitl Setpt bit2 Setpt bit3 Setpt bit4 Setpt bit5 Setpt bit6 DAva_PC* DRec_PC* Loc. bitl Loc. bit2 Loc. bit3 Loc. bit4 Loc. bit5 Loc. bit6 Signal Loc. bit7 Loc. bit8 Loc. bit9 Loc. bit10 Loc. bitll Loc. bit12 Loc. bit13 Loc. bit14  PC Port Channel N/A PBO PB1 PB2 PB3 PB4 PB5 PB6 PB7 PAO PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC Port Channel PCO PC1 PC2 PC3 PC4 PC5 PC6 PC7  PC Port CRS Port (DB37) (Ansley #1) 11 50 10 47 9 45 8 43 7 41 6 39 5 37 4 35 3 33 37 31 29 36 35 27 34 25 33 23 21 32 31 19 17 30 PC Port CRS Port (DB37) (Ansley #2) 29 31 29 28 27 27 26 25 23 25 24 21 23 19 22 17  CRS Channel (1-8) N/A Inl In2 In3 In4 In5 In6 In7 In8 outl out2 out3 out4 out5 out6 out7 out8 CRS Channel (9-16) out9 out10 outll out12 out13 out14 out15 out16  *The handshaking signals DAva_CRS, DRec_CRS, DAva_PC and DRec_PC stand for data-available-from-CRS, data-received-by-CRS, data-available-from-PC and data-received-by-PC respectively.  Appendix B. Technical Manual of the UBC Teleoperation System^  92  Table B.4: Pin-Assignments of the A/D card #2 Signal  JR3 #2 (DE9)  Fits  1  Fh y  2 3 4 5 6 9  Fhz Fhs  Fh y Fhz  Ground  Adaptor (DB15) 1 2 3 4 5 6 7  A/D #2 (DB37) 5 28 14 37 23 9 1,10,24,33  Channel 0 1 2 3 4 5 N/A  B.2 The Parallel Communication between PC and CRS Systems  CRS Digital Ports  The addresses of the digital ports are as follows: Port Address  Digital Input Port 70 Hex (word) Digital Output Port 500 Hex (word)  Memory Physical Address  Digital Input Image Buffer  17EC Hex  Digital Output Image Buffer  17FA Hex  Since the digital output image buffer will update the output port every 4ms. In order to keep a value staying at the output port, programmer has to write the value to the image buffer as well (i.e., first write to the image buffer and then to the output port). There is no need to use the digital input image buffer in this project.  PC Digital Port  The PC uses a 24-channel I/O card (Metrabyte PI012) which carries an Intel 8255A chip for  Appendix B. Technical Manual of the UBC Teleoperation System^  PC side P1: Wait DAva_CRS (wait C2 done) P2: P3: P4: P5: P6: P7:  Get location data Flip DAva_CRS Put DRec_PC Flip DRec_PC If not the 6th data, back to P1 Wait "sending complete" PC side --  93  <— CRS side  Cl: Put location data C2: Put DAva_CRS to handshaking port C3: Flip (l's complement) DAva_CRS C4: Wait DRec_PC (P4 done) C5: Flip DRec_PC C6: If not the 6th data, back to Cl C7: "sending complete" --* CRS side  P8: Put set-point data P9: Put DAva_PC P10: Flip DAva_PC P11: Wait DRec_CRS (C11 done) P12: Flip DRec_CRS P13: If not the 6th data, back to P8 P14: "sending complete"  C8: Wait DAva_PC (P9 done) C9: Read set-point data C10: Flip DAva_PC C11: DRec_CRS C12: Flip DRec_CRS C13: if not the 6th data, back to C8 C14: Wait "sending complete"  Figure B.3: The Parallel Communication Handshaking Algorithm parallel digital communication. The current base address of the card is 308Hex. In this project, the registers are configured as follows: Register (8 bits)  Address (Hex)  Usage (See 18255 data book for details)  PA port  308  Input port  PB port  309  Output port  PC port  30A  Input port  Control  30B  Control word of above setting: 99Hex  Handshaking Algorithm  The handshaking algorithms for PC <— CRS and PC —f CRS are mirror image to each other. Here, the algorithm assumes 6 data transfers in each location and set-point specification. The algorithm is shown in Figure B.3.  Appendix B. Technical Manual of the UBC Teleoperation System ^  94  When we turn on the PC, all channels in the Metrabyte card are automatically configured as high-impedance input channels. After we reconfigure 1 the channels by writing a control byte to the control register, all output channels are set to be zeros. The PC handshaking channels should be configured correctly and set to zeros 2 before we execute the CRS program. When the CRS system is turned on, all its output channels are automatically set to l's. We should keep the CRS handshaking output channels to be l's before executing the PC program. It will be handled by the CRS program if we execute the CRS program first (see Appendix A for procedures).  Time-out Sequence  A handshaking time-out sequence was implemented in the PC side. Implementing the time-out sequence only in the PC side allows the CRS program to wait for the execution of the PC program (i.e., CRS program is executed first) and we can terminate both program by pressing the abort button on the CRS teach pendant.  B.3 CRS System Programming Technique  There are two kinds of programming for controlling the CRS robot: Robotic-AutomationProgramming-Language (RAPL) and Process Control Programming (PCP). In RAPL programming, for programmer uses about 150 RAPL commands (e.g., MOVE) to specify the robot task. The advantages are (1) the high-level RAPL commands are simple and secure in the CRS environment, and (2) RAPL is interpreted and therefore memory is saved by avoiding storage of machine code. The drawback is that, since the interpreter performs translation at run-time, the execution speed is slower. 'Do not configure the channels in such a way that both ends are output channels. It may damage the Metrabyte card or the CRS ports. 2 The program "setcom.exe" will do the job. Refer to Appendix A for procedure.  Appendix B. Technical Manual of the UBC Teleoperation System ^  95  In PCP, a programmer can use 8086 assembly or any (8086 compiled) high level languages and load the 8086 machine code to the CRS system. In this project, PCP is used and the program is written in C. The advantages of PCP are obvious — it provides a much more flexible programming environment and no need for run-time interpreting. The only drawback is that the programmer needs to understand very well the CRS operating system. CRS company also provides a C function library for PCP programming. For instance, a function called "stringout()" can initiate serial communication and print characters in an external terminal. The normal C function "printf()" will write to some illegal memory location and collapse the CRS operation system. The library also includes an interesting function called "rapl_command()" which allows programmer to use RAPL high-level commands (e.g., MOVE) inside  a PCP program to provide a highly efficient robot control software. Of course, run-time  RAPL command interpreting is required in this case. To be more concrete 3 the main function of the PCP program should be called "entrypoint()" ,  and a header file "PCP.H" should be included (see the CRS program for detail). After the program is complied (by Turbo C in this project) and linked with the CRS library in an IBM PC compatible, the executable code is loaded to the CRS controller by using a manual-drive software package called Robcomm. Robcomm is a serial communication package running on IBM PC to provide a programming environment and terminal emulator for the CRS robot system. After the program is successfully loaded to the CRS controller, a variable called "PCP_ADR" which carries the program base address is automatically created in the CRS memory. The PCP program can be executed by typing "EXECUTE PCP_ADR". Since the CRS system only has 8K user memory, the programmer should limit the PCP program size to avoid over-writing memory. To increase execution speed in PCP mode, the programmer should avoid functions that do the serial communication with the terminal (e.g., 3 The information in this paragraph cannot be found in the CRS manual. Therefore, more details are included here.  Appendix B. Technical Manual of the UBC Teleoperation System ^  96  printing characters) or run-time RAPL command interpreting in the real-time looping. A more detail description of the PCP programming and bug-fixing information of the CRS library can be found in [25].  Appendix C Experimental Results for the Z-Axis Rotation  This appendix presents the experimental results for the Z-axis rotation. The experimental procedures are the same as described in Chapter 4. Same control laws (4.1) and (4.2) were used and the controller gain values are shown in Table C.1. Table C.2 shows the corresponding experimental results between the Z-axis rotation and the Z-axis translation. Table C.1: Controller Gains used in the Experiments Gains Proportional Velocity feedforward Velocity feedback Integral Centering spring Damping  Symbol kp k f t„ k fb  ki ko bo  Value 10 0.06 0.06 600* 1 0.04 t  unit N-m/rad N-m / (rad/s) N-m / (rad/s) N-m/ (rad•s) N-m / rad N-m / (rad/s)  *There is a limit (1 x 10 -4 rad • a) posed to the integrator so that the effect of the integrator will not be greater than 0.06N-m. tDamping term was set to be 0.06 N-m/(rad/s) to maintain stability for experiments which required contact with a hard environment.  Table C.2: The Corresponding Figures (Results) in each Experiment Experiments Wrist Position Tracking Wrist Back-driveability Rate Control Hybrid Position & Rate Ctr. Hard Contact Soft Contact & Active Env. Exertion of Forces  Z-axis Rotation C.1, C.2 C.3, C.4 C.5 C.6 C.7, C.8 C.9, C.10 C.11, C.12  97  Z-axis Translation 4.1, 4.2 4.3, 4.4 4.5 4.6 4.7, 4.9 4.11, 4.12 4.13, 4.14  20 •  0  •  _20  1:4  -40  -80 ^ 0  2^3^4^5^6^7^8^9^10 Time (sec.)  Figure C.1: Controller #1: Position Tracking of the Maglev Wrists, X m and x 8 .  j  I  Xm^, Xs  —  I  2^3^4^5^6^7^8^9^10 Time (sec.)  Figure C.2: Controller #2: Position Tracking of the Maglev Wrists, x n, and x,.  Appendix C. Experimental Results for the Z-Axis Rotation ^  ^_, . f f^ , I^  Figure C.3: Controller #1: Back-driveability of the Maglev Wrists, 60 ^ 40 ^  1  N  -  0 e4  -20 -  I  :  xm_  xs  ^f  20 ^ 0  x n, and x s .  111.1 \II l i^1^r  i ^ ^I it \., I^  J  ^  -40 -60 -80  if^iL1 4 1^ 1  0^1^2^3^4^5^6^7^8^9^10 Time  (sec.)  Figure C.4: Controller #2: Back-driveability of the Maglev Wrists,  x,r, and x,.  99  Appendix C. Experimental Results for the Z-Axis Rotation ^  100  Time (sec.)  Figure C.5: Rate Control: a.) Master Position (x,n ) and CRS velocity Motion: ,Ccrs•  (Xcr3);  b.) CRS Robot  Appendix C. Experimental Results for the Z-Axis Rotation ^  101  Figure C.6: Hybrid Position and Rate Control: a.) Wrist Position Tracking: x n, and x 3 ; b.) Slave System Motion: X, + x3; c.) Rate Control: Master Position (x,i ) and CRS Velocity (i(crs)•  Appendix C. Experimental Results for the Z-Axis Rotation ^  102  Figure C.7: Controller #1: Hard Contact. a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Torques: rh and —re.  Appendix C. Experimental Results for the Z-Axis Rotation^  103  Figure C.8: Controller #2: Stable Contact with Large Damping a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Torques: rh and —re.  ^  Appendix C. Experimental Results for the Z-Axis Rotation ^  ^30 ^  a.)^. Xs  20 ^ 10 ^  104  —I  tl  0^  s  -10 ^ -20 ^ -30 ^ -40 ^  I 3 I 3  -50 ^ -60 ^ 0  ry  0.5^1^1.5^2^2.5^3  l^  3.5^4^4.5^5  Time (sec.) 0.4 0.3 0.2  E 8  0.1 -  -0.1 -0.2 -0.3 ^ -0.4 ^ 0  0.5^1^1.5^2^2.5^3  3.5^4  4.5^5  Time (sec.)  Figure C.9: Controller #1: Soft Contact and Active Environment. a.) Master and Slave Wrist Positions: x 7, and x 3 ; b.) Hand and Environment Torques: rh and —re.  Appendix C. Experimental Results for the Z-Axis Rotation^  105  Figure C.10: Controller #2: Soft contact and Active Environment. a.) Master and Slave Wrist Positions: x n, and x 3 ; b.) Hand and Environment Torques: rh and —re.  Appendix C. Experimental Results for the Z-Axis Rotation^  106  Figure C.11: Controller #1: Exertion of Forces. a.) Master and Slave Wrist Position: x n, and x 3 ; b.) Hand and Environment Torques: Th and --re ; c.) CRS Motion: Xcrs.  Appendix C. Experimental Results for the Z-Axis Rotation ^  107  Figure C.12: Controller #2: Exertion of Forces. a.) Master and Slave Wrist Position: x n, and Th and —re ; c.) CRS Motion: Xcrs.  x 3 ; b.) Hand and Environment Torques:  Appendix D Programming Flowcharts of the DSP, PC and CRS Systems DSP (=LI C)  (Start Interrupt Routine  CRS's new location available?  Get data from memory port and perform forward kinematic calculation  PC  (PC2CRS . C) Start  Receive CRS location through parallel communication with CRS conntroller and pass it to DSP  Continuous? (From keyboard)  Forces sensing  Master and Slave wrist controls: - Read PSD data - Kinematic Transformation - Teleoperation Controllers - Inverse Dynamic transformation - Output Current info. to D/A  Computation of the CRS incremental set-point, inverse kinematics and put set-point to memory port  CRS  (CRS2PC.C)  Put CRS system under REMOTE state  Send CRS location to PC through parallel communication  Receive CRS set-point from PC through parallel communication  •^ Collect data from DSP (optional)  Pass CRS location to DSP  Parallel communication time-out ( End of Interrupt End  108  Write set-point to REMOTE data buffer  REMOTE operation in every 16ms  

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0065072/manifest

Comment

Related Items