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


831-ubc_1993_spring_wong_ngai.pdf [ 4.01MB ]
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

Full Text

We accept this thesis as conformingto the required standardImplementation of a Force-Reflecting Telerobotic Systemwith Magnetically Levitated Master and WristByNgai Mun WongB.Sc.(EE), University of Manitoba, 1990A THESIS SUBMITTED IN PARTIAL FULFILLMENT OFTHE REQUIREMENTS FOR THE DEGREE OFMASTER OF APPLIED SCIENCEinTHE FACULTY OF GRADUATE STUDIESDEPARTMENT OF ELECTRICAL ENGINEERINGTHE UNIVERSITY OF BRITISH COLUMBIADecember 1992© Ngai Mun Wong, 1992In presenting this thesis in partial fulfilment of the requirements for an advanceddegree at the University of British Columbia, I agree that the Library shall make itfreely available for reference and study. I further agree that permission for extensivecopying of this thesis for scholarly purposes may be granted by the head of mydepartment or by his or her representatives. It is understood that copying orpublication of this thesis for financial gain shall not be allowed without my writtenpermission.(Signature) Department of  Flpctri cal EngipeorippThe University of British ColumbiaVancouver, CanadaDate Dec. 9, 92DE-6 (2/88)AbstractAspects of control and coordination of a new force-reflecting teleoperation system have beenaddressed in this thesis. A six-degree-of-freedom magnetically levitated fine-motion device isused as the teleoperation master. The slave system is a redundant coarse-fine manipulator sys-tem which consists of a conventional robot equipped with a magnetically levitated fine-motionwrist identical to the master. The environment and the human operator applied forces aremeasured by two six-axis force-torque sensors. Taking advantage of the Lorentz magnetic levi-tation 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-reflectionquality. With using rate control for large motion and position control for small motion, theslave system can be controlled over a large workspace by the master without operator con-trolled indexing and without sacrificing position resolution. An overshoot problem due to timedelay in the coarse manipulator position data has been solved by using decoupling coarse-finecontrol approach, in which the coarse manipulator is only responsible for rate control and thefine-motion wrist is responsible for position control. The system performance was quantified byperforming general teleoperation tasks, such as free motion tracking, hard contact and exertionof forces. The teleoperation system has over 15Hz position bandwidth and several kHz forcebandwidth. At present, the force bandwidth is limited by computation delays to a few hundredHz (this number will increase with a faster computing system).iiTable of ContentsAbstract^ iiList of Figures^ viiiList of Tables^ xiiAcknowledgement^ xiii1^Introduction1.1^Teleoperation Theory ^131.1.1 Ideal Teleoperator 31.1.2 Teleoperator Bandwidth Requirements ^ 31.1.3 General Teleoperation System Design Principles ^ 41.2 Motivation ^ 51.2.1 Survey of Existing Teleoperation Systems ^ 51.2.2 Motivation of the Project ^ 71.3 Thesis Overview ^ 7iii2 Implementation of the UBC Teleoperation System 92.1 The UBC Teleoperation System Overview ^ 92.2 Maglev Fine Motion Wrist ^ 122.2.1^Hardware Design 132.2.2^Dynamics and Control using Euler Quaternions ^ 162.3 Force-Torque Sensor ^ 182.3.1^Analog and Digital Options ^ 182.3.2^Sensor/Wrist Dynamic Interaction 192.4 Coarse Motion Manipulator: The CRS460 Robot ^ 202.5 Computing Systems ^ 212.5.1^DSP System 212.5.2^PC System ^ 232.5.3^CRS System 252.5.4^Communication Between Computing Subsystems ^ 272.6 The Bandwidths of the UBC Teleoperation System 293 Control Algorithms of the UBC Teleoperation System 313.1 Controlling a Large Slave with a Small Master: Hybrid Position/Rate Control . . 313.1.1^Problem of Poor Position Resolution in Position Control ^ 31iv3.1.2 Problems of Positioning and Force-Feedback in Rate Control ^ 323.1.3 Hybrid Position and Rate Control ^  333.2 Implementation of the Hybrid Position and Rate Control ^  373.2.1 Overshoot Problem due to Time Delay^  383.2.2 Decoupled Coarse-Fine Control Algorithm  443.2.3 Discussion and Further Improvement ^  453.3 Six Degree-of-Freedom Extension ^  463.4 Teleoperation Control at Wrist Level  513.4.1 Modelling a Teleoperator as Two Rigid Bodies ^  513.4.2 Force-Reflection by Coordinating Torque  523.4.3 Force-Reflection by using Force-Torque Sensors ^  534 System Testing and Analysis^ 554.1 Free Motion Tracking  574.1.1 Position Tracking at Wrist Level ^  574.1.2 Back-Driveability at Wrist Level  574.1.3 Rate Tracking (no rate deadband) ^  574.1.4 Hybrid Position and Rate Control  604.2 Contact Stability ^  604.2.1 Hard Contact ^  604.2.2 Soft Contact and Active Environment ^  684.3 Exertion of Forces ^  684.4 Discussion and Evaluation  724.4.1 Slave Flotor Dynamic Effect during CRS Motion ^ 724.4.2 Pros and Cons of using Force-Torque Sensor(s)  754.4.3 Evaluation ^  765 Conclusions^ 795.1 Contributions  795.2 Future Work ^  80Bibliography^ 81Appendices^ 84A Operation Procedures of the UBC Teleoperation System^ 84B Technical Manual of the UBC Teleoperation System^ 87B.1 Interconnection and Pin-Assignments ^  87B.2 The Parallel Communication between PC and CRS Systems ^ 92B.3 CRS System Programming Technique ^  94viC Experimental Results for the Z-Axis Rotation^ 97D Programming Flowcharts of the DSP, PC and CRS Systems^108viiList of Figures1.1 A Teleoperation System ^ 11.2 A Teleoperation System with Universal Hand Controller ^ 52.1 Main Components of the UBC Teleoperation System ^ 102.2 Data-Flow of the UBC Teleoperation System ^ 112.3 Maglev Wrist System^ 122.4 The Assembly Sketch of the Maglev Wrist ^ 142.5 Maglev Wrist Optical Position Sensing System 152.6 One-Axis Model of the Force Sensor ^ 192.7 The Real-Time Computing System 222.8 Computations Performed by the DSP System ^ 242.9 The CRS REMOTE Operation ^ 263.1 Hybrid Position and Rate Control ^ 343.2 Problem of Switching from Rate to Position Control ^ 363.3 Implementation of the Hybrid Position and Rate Control 38viii3.4 Dynamic Model of the Coarse-Fine Manipulator ^  393.5 Block Diagram of the Coarse-Fine System ^  413.6 Step Responses of G11 and G21 ^  423.7 Step Response of the Coarse-Fine System ^  433.8 Overshoot Effect due to the Delay H1 ^  433.9 Block Diagram of the Decoupling Coarse-Fine Control ^  453.10 Block Diagram of the Improved Decoupling Coarse-Fine Control ^ 463.11 Block Diagram of the Six DOF Implementation ^  473.12 Rate Control Deadband Shapes ^  493.13 Robot Velocity Profiles ^  503.14 Single-Axis Model for Teleoperation Control ^  514.1 Controller #1: Position Tracking of the Maglev Wrists ^  584.2 Controller #2: Position Tracking of the Maglev Wrists  584.3 Controller #1: Back-Driveability of the Maglev Wrists ^  594.4 Controller #2: Back-Driveability of the Maglev Wrists  594.5 Rate control ^  614.6 Hybrid Position and Rate Control ^  624.7 Controller #1: Hard Contact  64ix4.8 Controller #2: Unstable Contact ^  654.9 Controller #2: Stable Contact with Large Damping ^  664.10 Controller #2: Stable Contact with a Damping Function  674.11 Controller #1: Soft Contact and Active Environment ^  694.12 Controller #2: Soft Contact and Active Environment  704.13 Controller #1: Exertion of Forces ^  714.14 Controller #2: Exertion of Forces  73B.1 Interconnection of the UBC Teleoperation System ^  88B.2 Orientation Relationships Among the Flotor, JR3 sensor and CRS Robot . . . ^ 89B.3 The Parallel Communication Handshaking Algorithm ^  93C.1 Controller #1: Position Tracking of the Maglev Wrists ^  98C.2 Controller #2: Position Tracking of the Maglev Wrists  98C.3 Controller #1: Back-Driveability of the Maglev Wrists ^  99C.4 Controller #2: Back-Driveability of the Maglev Wrists  99C.5 Rate Control ^  100C.6 Hybrid Position and Rate Control ^  101C.7 Controller #1: Hard Contact  102C.8 Controller #2: Stable Contact with Large Damping ^  103xC.9 Controller #1: Soft Contact and Active Environment ^  104C.10 Controller #2: Soft Contact and Active Environment  105C.11 Controller #1: Exertion of Forces ^  106C.12 Controller #2: Exertion of Forces  107xiList of Tables1.1 Human Operator Input/Output Capabilities ^ 42.1 JR3 Sensor Load Rating ^ 184.1 Controller Gains used in the Experiments Reported ^ 56B.1 Pin-Assignments of the D/A card ^ 87B.2 Pin-Assignments of the A/D card #1 90B.3 Pin-Assignments of the Digital Port ^ 91B.4 Pin-Assignments of the A/D card #2 92C.1 Controller Gains used in the Experiments ^ 97C.2 The Corresponding Figures (Results) in each Experiment ^ 97xiiAcknowledgementI 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 keepcontact 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. Fletcherfor metal work, and to N. Ho, T. Vlaar and D. Goertz for developing the DSP debugger, robotkinematic codes and electronics work.I would like to thank my fellow graduate students C.T. Chen, N. Parker and A. Chahal fortheir valuable input, discussion and friendship. Thanks are also due to W. Johnson of the JR 3Inc. and T. Jone of the CRS-Plus Company, who provided the expertise I needed to integrateJR3 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 1IntroductionAs illustrated in Figure 1.1, a teleoperation system consists of a human-operated master ma-nipulator 1 and a remotely controlled slave manipulator, in which the slave robot tracks themotion of the master. On one hand, due to the immature development of artificial intelligence,Figure 1.1: A Teleoperation Systemapplications of fully automated robot systems can only exist in highly controlled environmentsand robots can only perform mostly predictable or repetitive tasks (e.g., automobile assemblyline), while for performing general tasks, humans still offer the most versatility. On the otherhand, many tasks (such as handling toxic material in a hazardous environment) cannot be car-ried out by human beings. Through teleoperation, human skills and robot capabilities can beaugmented 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".1Chapter 1. Introduction^ 2Starting from the handling of radioactive materials in early 40s, the applications of teleop-eration have spread over a wide range of areas: from undersea to outer space explorations, fromaids 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 andmanipulation capacity to a remote location, the notion of teleoperation has started to encom-pass the extension of such capabilities through barriers of scale. Examples cover both endsof the spectrum - [5, 6] present work towards teleoperation systems concerned with micro-manipulation at nano-meter level scales and below, while work reported in [7] attempts tobuild 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 manufacturingthrough teaching and trajectory playback (including forces and torques). Such a method wouldbe inherently safe, user friendly, and might allow assembly sequences to be programmed withoutcomplicated 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 fromthe task. To achieve such feeling of telepresence, the teleoperator, in addition to the basicslave tracking master function, should be able to provide the human operator with kinestheticfeedback from environment forces. Experiments show that teleoperation task completion timeis dramatically improved with environment force feedback [9, 10].Chapter 1. Introduction^ 31.1 Teleoperation Theory1.1.1 Ideal TeleoperatorAn ideal teleoperation system is a man-machine interface which provides the human operatora feeling of directly holding the tool to interact with the remote task environment. This directmanipulation concept can be achieved if the following criteria are met:xs = xm ; fh = — fe ,where xm , x, are the master and slave positions; fh and f, are the human operator hand forceapplied to the master and environment force applied to the slave, respectively. The tool carriedby the slave is defined as part of the environment.The ideal teleoperator concept can also be represented by an infinitely stiff, massless, me-chanical linkage which presents to the operator the identical inertial-viscous-spring reactions asare present at the task [10].1.1.2 Teleoperator Bandwidth RequirementsAn ideal teleoperation system should not have any force or position bandwidth limit. This isnot achievable in practice. Fortunately, since the motion and sensory bandwidths of humansare also limited, it is adequate for a teleoperation system to have bandwidths which are higherthan or close to the human operator bandwidth capacity. Since humans have asymmetricalinput/output capabilities as shown in Table 1.1 [11], teleoperation systems could also haveasymmetrical data flow. In the master to slave direction (human output perspective), a positionand 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 maynot be enough for a delicate teleoperation tasks.Chapter 1. Introduction^ 4Table 1.1: Human Operator Input/Output CapabilitiesOutputArbitrary trajectory tracking 1HzPeriodic (or known) trajectory tracking 7HzReflexive responses 10HzIsometric responses (i.e., force responses without motion) 10HzInputProprioceptive/kinesthetic sensing 20-30HzTactile sensing (Low-amplitude vibrations) 320Hz1.1.3 General Teleoperation System Design PrinciplesTeleoperation 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 desirablefeatures:• 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, avoidfeeling fatigue for long working hours).• Modular design for faster and easier repair or replacement.• Safety.Chapter 1. Introduction^ 51.2 Motivation1.2.1 Survey of Existing Teleoperation SystemsHand ControllersMost of the existing teleoperator designs are based on a geometric analogy between the masterand slave systems. As described in the fascinating book by Vertut and Coiffet [3], teleoperatorshave evolved away from mechanically and electrically mirrored systems. With the advent ofinexpensive computing power, it became possible to move away from kinematic equivalenceand employ an universal teleoperation master for different slave manipulators. A teleoperationsystem using an universal hand controller is shown in Figure 1.2. The motion of the master isFigure 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 com-puting system). The forces sensed at the slave are transformed to the hand controller frame forforce feedback. The use of the universal hand controllers has a number of advantages, includingChapter 1. Introduction^ 6manageable size, cost, no absolute limit on the number of axes of the slave being control [12], norestriction on control strategies (e.g., rate control), standardization of the human interface andoptimization 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 anydisplacement. However, it would not be possible to incorporate force feedback in thesedevices. 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 inthe aerospace markets [15]. However, its main disadvantages are lack of force reflectingcapacity and its high cost.• The University of Texas hand controller [16] is driven by nine wires and thus it providesa light and low cost design with capability of force reflection. However, it suffers fromhigh friction level associated with the wire drives.• The JPL hand controller [17] is based on serial kinematic design which gives a good rangeof motion. Each degree-of-freedom can be backdriven by a motor. However, the maximumforce and torque attainable in the current design are lON and 0.5Nm which may not besufficient for some applications.• It is believed that an input device based on Stewart Platform geometry is a promisingalternative in hand controller design. It provides force feedback capacity, compact sizeand low cost. Siva [18] has described one such hand controller which is under developmentat Harwell Laboratory. However, performance of such device has not been quantified yet.Chapter 1. Introduction^ 7Slave ManipulatorsMost slave systems consist of a single conventional serial link manipulator. Low frequencyresponse, high impedance and friction, the inability to exert accurate forces, backlash and poorpositioning, etc., are typical drawbacks of conventional manipulators.1.2.2 Motivation of the ProjectThis project was motivated by the inadequacy of existing teleoperator hardware, both at themaster and at the slave level. The proposed system, named after the University of BritishColumbia (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 wristis 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-finemanipulator consisting of a 6 DOF conventional robot equipped with a second maglev wristidentical to the master, and thus, the advantages of the maglev wrist are also available in theslave system. Furthermore, it provides the system with an advantageous wrist-level kinematicequivalence.In this thesis project, the proposed system was implemented and tested. The details ofsystem design and performance will be described later.1.3 Thesis OverviewChapter 1 introduces some background on teleoperator design principles and provides the mo-tivation 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 everyposition and orientation can be reached. A robot is considered to have full degrees of freedom if it has 6 DOF.Chapter 1. Introduction^ 8Chapter 2 describes each of the hardware modules of the UBC teleoperation system. Themodules include the maglev wrist, force-torque sensor, a conventional robot and the overallcomputing system. Communications among computing subsystems are also presented.Chapter 3 outlines a hybrid position and rate control method used in the system. A timedelay problem is analyzed and a solution is proposed. It also examines the teleoperation con-trollers used at the maglev wrist level.Chapter 4 is dedicated to the testing conducted in the system. The testing includes freemotion tracking, contact stability and exertion of forces to an environment. The experimentalresults 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 2Implementation of the UBC Teleoperation System2.1 The UBC Teleoperation System OverviewThe main components of the UBC teleoperation system are shown in Figure 2.1. A six degree-of-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 andbacklash. Therefore, the wrist has a better frequency response and precise positioning abilitythan conventional robots. It also has 6-axis force feedback capacity. These advantages makethe wrist an ideal teleoperation master.The teleoperation slave system consists of an identical maglev wrist mounted on a 6 DOFconventional robot (CRS460). The CRS robot can be interpreted as a 6 DOF transporter toincrease the workspace of the slave wrist 1 . Therefore, the advantages of the maglev wrist canbe 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 atthe slave side.An IBM PC compatible using Intel 80386 microprocessor (pP) houses a Digital SignalProcessing (DSP) board, as well as A/D and D/A boards. Most computations (master andslave 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 calculated1 From now on, the term "master" refers to the master maglev wrist; "Slave wrist" refers to the slave maglevwrist. "Robot" refers to the CRS robot.9Chapter 2. Implementation of the UBC Teleoperation System^ 10CRS RobotFigure 2.1: Main Components of the UBC Teleoperation SystemSlave WristSet—pointMaster'sLocation,.._Slave WristLocation(in WristCoordinates)SlaveWristSlave Wrist toWorld CoordinateTransformationMaster to SlaveWrist CoordinateTransformation•CRS Set—point^ Calculation CRS RobotSet—point CRS LocationMasterChapter 2. Implementation of the UBC Teleoperation System^ 11Slave Wrist Location (in World Coordinates)Figure 2.2: Data-Flow of the UBC Teleoperation Systemfrom the master and the robot location data 2 . The slave wrist location, by using the robotdata, can be expressed in world coordinates and can be used in the master controller. The CRSrobot can be commanded by the master or the slave wrist. The teleoperation controller, aswell as the method for controlling this large workspace slave system with the small workspacemaster, will be presented in the next chapter.This chapter will first describe each hardware module (namely the maglev wrist, force sensorand the CRS robot). Then, it will present each computing subsystem and how they interactwith each other. Finally, we will discuss the overall bandwidths of the system.This chapter is intended for general readers. Technical details of implementation and useare given in the "Technical Manual" (in Appendix B).2 From now on, the term "location" refers to position and orientation.Coil CurrentDataD/AInverse DynamicTransformationActuationForce/TorqueDatardPowerSupplyCurrentDriverI Coils I LEDs I FlotorSet-poH LorentzForces LEDBeamsKinematicTransformationPSD DataIControllerRotor ■ Location(w.r.t. Stator)PowerSupplyChapter 2. Implementation of the UBC Teleoperation System^ 122.2 Maglev Fine Motion WristThis project inherited the two maglev wrists and their kinematic and dynamic transformationssoftware. The two maglev wrist systems were designed by Salcudean and built at the UBCalong 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 movingMaglev Wrist SystemFigure 2.3: Maglev Wrist Systempart called flotor. Six Lorentz forces are generated between the two elements and the flotor isactively levitated. Thus, except for a thin flexible ribbon cable for power, there is no mechanicalconnection between the two elements. The coil currents are computed from the inverse dynamictransformation and the force/torque information from the controller. The flotor location iscomputed by the kinematic transformation on the position data obtained from the wrist'sinternal optical position sensors which consist of light-emitting diodes (LEDs) and positionsensitive diodes (PSDs).Chapter 2. Implementation of the UBC Teleoperation System^ 132.2.1 Hardware DesignThe assembly sketch of the maglev wrist is shown in Figure 2.4.^The flotor carries threehorizontal and three vertical coils (Fl in Figure 2.4), and also three LEDs (in F2) for opticalposition 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 enoughto 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 magneticgaps in the six identical actuation elements. There is a trade-off between the workspace andthe achievable forces - the widther the magnetic gap, the larger the flotor workspace, but theweaker the magnetic field strength (i.e., weaker the actuation force). The workspace of thewrist 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.) thecoordinate frame attached to the flotor center (see the top view of F1), the direct dynamictransformation (i.e., finding the forces/torques acting on the flotor center from the six coilcurrents) can be devised. The details can be found in [20] and will not be repeated here. Dueto the small motion range of the flotor, the transformation can be approximated by a constantmatrix M [20]. Thus, the wrench vector acting on the flotor (at center position) is given by,Mfx 0.0000 0.0000 -1.6801 0.0000 -1.6801 0.0000 IIfy 1.9402 0.0000 -0.9701 0.0000 -0.9701 0.0000 12fz 0.0000 1.9403 0.0000 1.9403 0.0000 1.9403 /3= (2.1)Tx 0.0747 0.0580 -0.0374 0.0000 -0.0374 -0.0580 /47Y 0.0000 -0.0335 0.0647 0.0670 -0.0647 -0.0335 15rz _ 0.0670 0.0000 0.0670 0.0000 0.0670 0.0000 /6where [/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 lastFlS3^rl(3 pairs)S2Bolted to F2t tri (Support S4/S5)MagnetsPSD mounted here MagnetsChapter 2. Implementation of the UBC Teleoperation System^ 14Figure 2.4: The Assembly Sketch of the Maglev WristChapter 2. Implementation of the UBC Teleoperation System^ 15three rows are in N-m/A. By inspecting the above transformation matrix M, readers can get afeeling on the actuation forces of such a 6 DOF in-parallel actuated device. The current driverscan 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 duringoperation. 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, itresults that transient forces larger than 40N can be obtained. The torque capability exceeds0.6N-m for indefinite loads, and more than 1.2N-m for transient loads. This is more thanadequate for a hand controller.The inverse dynamics, i.e., finding the currents from a desired force/torque vector, can beeasily achieved by finding the inverse of M. In fact, the matrix M -1 is precomputed and usedin the real-time control software.The maglev wrist optical position sensor (see Figure 2.5) consists of three LEDs (carriedby the flotor) that project narrow co-planar beam at 120° from each other, onto the surfacesFigure 2.5: Maglev Wrist Optical Position Sensing SystemChapter 2. Implementation of the UBC Teleoperation System^ 16of three two-dimensional duo-lateral position sensitive diodes (PSD) which are mounted on thestator. The PSDs (with the 12-bit A/D conversion in the DSP system) can detect flotor motionless than 5itm / 10/i-rad.Two coordinate systems will be defined: one attached to the flotor and one attached to thestator. The flotor frame is at the center of the flotor and coincides with the intersection ofthe LED light beams (see Figures 2.4 and 2.5). When the flotor is at its nominal location, theflotor frame coincides with the stator frame and the LED light beams projected on the centersof the PSD surfaces. Provided that the flotor is moving within the wrist workspace, the flotorposition (represented by a vector r = [x, y, z ]T) and orientation (represented by a properrotation matrix Q) with respect to the stator frame can always be computed from the PSD'sreadings. The method of calculating {r, Q} and the dynamic transformation M can be foundin [20]. Calibration procedures of the current driver and position sensors are described in [21].2.2.2 Dynamics and Control using Euler QuaternionsEuler QuaternionsTo save computation, one can replace the rotation matrix, Q, by Euler quaternions (defined byP A [do AT ]T = [cos(02) sin( /2) sT , where s is the normalized axis of rotation and (/) isthe angle of rotation) [20, 22]:Q = exp(0 sx)where, for any vector a = [al a2 a3]Tax == I + 200 (13x)0^—a3^a 2a3^0^—al— a2^al^0+ 2(f3x) 2^(2.2)(2.3)Chapter 2. Implementation of the UBC Teleoperation System^ 17Note that p and —p represent the same rotation in (2.2). The orientation vector /3 thatcorresponds to 00 > 0 can be obtained from (2.2) and is given by1 13 x =^1 (Q — Q),^ (2.4)2(1+ trQPwhere trQ denotes the trace of Q. By using a small angle approximation, the components of0 can be interpreted as the rotation angle (in the unit of 2 radius) about the stator axes.ControlSince the flotor is just a rigid levitated mass, it can be modelled accurately by rigid body dy-namics Therefore, the differential equations of describing the body motion can be transformedto decoupled double integrator form (see [20] for details). This makes the wrist flotor controlvery simple. For instance, a PID controller can be as follows:u1 = kp(rd — r) + ky(rd — r) + ki f (rd — r) + f9^(2.5)u2 = rcp(Pd — 0) + iiv(4id — 41 ) + KJ I (Pd — 0) + TS^(2.6)where rd, fid is the desired flotor position and orientation, the gains kp , kv (etc.) are diagonalmatrices and [uiT u2T ]T is the computed wrench vector in equation (2.1). The effect of fgand r9 is to compensate the gravitational force and the gravitational force induced torque 3 :f9 = —m gT9 = r x f9^9^9where m, g and r9 are the flotor mass, gravitational acceleration and the flotor's center of massposition, respectively. The f9 and r9 are always implemented in the maglev wrists and will notappear in the control laws (or the term "actuation force") in the later discussion. From nowon, 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 thetorque induced by f9.Chapter 2. Implementation of the UBC Teleoperation System^ 182.3 Force-Torque SensorThe JR3 force-torque sensor load rating is shown in Table 2.1. Although the voltage range ofTable 2.1: JR3 Sensor Load RatingAxis Sensor Load rating (±10V) i loading (±2.5V).f ±113N ±28.25Nfy +113N +28.25Nh ±226N ±56.50NTx ±8.6N-m ±2.15N-mTy ±8.6N-m ±2.15N-mTz +8.6N-m ±2.15N-mthe DSP A/D input is one-fourth of the JR3 sensor's range, the external force/torque in ourapplication is normally within 1/4 of the sensor loading (see Table 2.1). Therefore, scaling onthe JR3 analog signal is optional. Nevertheless, a circuit has been built for using the forcesensor full range. With using 1/4 sensor loading and 12-bit A/D conversion, the sensor candetect force/torque less than 0.1N/0.01N-m.2.3.1 Analog and Digital OptionsIdeally, we should use the decoupled and conditioned digital data from the JR3 supportingsystem 4 . However, it requires PC CPU time for digital data communication and also uses upone PC expansion slot for digital I/O. In this project, all expansion slots of the PC have beenfully occupied. Furthermore, the data rate provided by the JR3 supporting system is too slow 5 .Therefore, the analog data is used. All the essential functions that were performed by the JR 3A/D board and processor board were moved to the DSP system. Those functions include A/D'The JR3 supporting system (come with the JR 3 strain-gauge sensor) consists of an analog signal conditioningboard, a D/A board and a processor board. Conditioned digital data are available from the processor board.5 1f the JR3 supporting system is used, the sampling rate should be kept under 250Hz as recommended in theJR3 manual.Chapter 2. Implementation of the UBC Teleoperation System^ 19conversion, cross coupling removal, proper unit scaling and offset weight removal.2.3.2 Sensor/Wrist Dynamic InteractionThe sensor is divided into an upper half and a lower half with strain-gauges mounted at bothends. The sensor measures forces and torques by the tiny elongation or contraction of its foilstrain-gauges which change resistance accordingly. The one-axis model for sensing environmentforces is illustrated in Figure 2.6, where m 1 is the total masses of the flotor, adapter platefik jwbjX2Figure 2.6: One-Axis Model of the Force Sensorand the sensor lower half, m2 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, kiand bj are the JR3 sensor stiffness and damping, and x 1 and x 2 are the position of m 1 and m2respectively. We also define ox = x 2 — x 1 and thus the sensor reading is fj = Ox.From Figure 2.6, assuming zero initial condition,m1 2 ^S Xi2 -m2 S X2=^k3^bj s=^– kj – s bi(2.7)(2.8)where hatted variables denote Laplace transforms. Combining (2.7) and (2.8), we havemz[m 2 32 + bi ( —m2 )s ki (1 + —m2 )1 = — — fm1^m1^m1(2.9)Chapter 2. Implementation of the UBC Teleoperation System^ 20At low frequencies, this leads tokj (1 -I- 17n ) bi = fe — m2 fs •^ (2.10)ml^m1By putting fj = ki 8x , equation (2.10) becomesfe = +^cri +1(2.11)If the sensor is mounted on a conventional robot, m1 >> m 2 and the sensor can measure theforce as expected. If m 1 m2 (e.g., the slave carrying a heavy tool), equation (2.11) should betaken 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 equalthe 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) becomes1fj = ^ fs •1+ mi/m2(2.12)In other words, the sensor reading is most inaccurate during free motion. For the maglevwrist, mi/m2 > 5 and h is very small during free motion (f3 just overcomes the small flotorinertia). 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 thesensor as a single rigid body (i.e., combining m 1 and m2 as a rigid mass) in the later discussion.2.4 Coarse Motion Manipulator: The CRS460 RobotThe coarse manipulator used in the project is a CRS460 robot. It is a 6 DOF serial-linkmanipulator with 3kg payload and the maximum speed of 4.57m/s. Besides the robot arm, theCRS system comes with a controller, current drivers and a teach pendant. Please refer to CRSmanual [23] for details.Chapter 2. Implementation of the UBC Teleoperation System^ 212.5 Computing SystemsThe real-time computing system is shown in Figure 2.7. An IBM PC-AT compatible computerhosts 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 million16-bit words per second. Dual-ported memory 6 is used for the communication between thePC and the DSP systems. The PC is connected through a digital parallel I/O port to the CRSrobot 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 controlcards every 4ms. Each axis card implements a PID controller running on Intel 8095 pP. Thecontrol update rate is lms.2.5.1 DSP SystemThe TMS320C30 processor runs at 33MHz with 32-bit floating point arithmetic. It has eight40-bit accumulators and 2 Kwords internal RAM. In the board level, the system has 172 Kwordslocal 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 ofchannels being used — from 7KHz 32-channel sampling to 230KHz 1-channel sampling, which ismore than enough for our application. The 16-channel D/A card also has 12-bit resolution andallows 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, by6 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^ 22Figure 2.7: The Real-Time Computing SystemChapter 2. Implementation of the UBC Teleoperation System^ 23performing the tasks shown in Figure 2.8. Through forward kinematic transformation onthe CRS joint data, the robot position and orientation are first computed so that coordinatetransformation on the slave flotor location and environment force data can be performed. Thehand and environment forces/torques are calculated from the JR 3 sensors' strain-gauge readingsand can be used in the wrist's controllers. Position and orientation of the maglev flotors arecalculated from their internal PSD position sensors and the CRS robot end-effector positiondata. Currents required for actuation forces/torques are obtained via the inverse dynamictransformations. Then the CRS set-point is computed and expressed in joint space through theCRS inverse kinematics. In the program, the units of translation and rotation are in micronand 0 1 milli-radians, and force and torque are in Newton and Newton-decimeter, for betternumeric range of display in the DSP monitoring program.To sum up, the DSP mainly performs three tasks: (1) the master and slave maglev wristcontrol, (2) the hand and environment forces/torques calculation, and (3) the CRS set-point andlocation computations. With the DSP board running at about 3.8 Mflops, the computationson the force/torque data and the maglev wrist control can be completed in 2ms, and the CRSset-point and kinematic computations will take about 5ms. The flowchart of the DSP programare given in Appendix D.2.5.2 PC SystemThe 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 somecommands, one can load a program to the DSP system, or continually trace any globalvariable of the DSP program, or poke any global variable at run time (e.g., change theChapter 2. Implementation of the UBC Teleoperation System^ 24Figure 2.8: Computations Performed by the DSP SystemChapter 2. Implementation of the UBC Teleoperation System^ 25wrist controller gains). Please refer to [24] for details. For the CRS system, normalterminal 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 program-ming. After being compiled in the PC, the DSP and the CRS programs can be loaded totheir destinations for execution.3. Collect data.Data of the wrists, force sensors or the CRS robot can be found in the DSP program. Sincethe DSP on-board memory is limited, the PC gets the required data from the dual-portedmemory and temporarily stores them in its RAM. After the operation is terminated, thedata is stored to a file. Thus, the operation will not be slowed down because of the PC iswriting 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 communi-cation 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-timeoperation. To avoid slowing down the operation, the monitoring features (item #1) can beinactivated during operation. The details can be found in Appendix A . Flowchart of the PCprogram are given in Appendix D.2.5.3 CRS SystemThe program running in the CRS controller just performs the parallel communication with thePC and writes the robot set-point to an internal data buffer for real-time path control.Chapter 2. Implementation of the UBC Teleoperation System^ 26An undocumented 7 CRS state called REMOTE is used in this project for the real-time pathcontrol. REMOTE places the robot controller into a mode in which it expects position set-pointsto 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 databuffer at a fixed REMOTE loop clock rate, say, 32ms which is the CRS default setting. Thatmeans the CRS's motion path is updated once every 32ms. In each cycle, the CRS will calculatethe motion speed that is required for it to move to the new desired location. The robot changesFigure 2.9: The CRS REMOTE Operation7There are quite a lot of undocumented and hidden features of the CRS system. Readers can refer toAppendix B and [25] as a supplement to the CRS manuals. Bug-fixing information and programming techniquewhich are not given in the CRS manuals can be found in these references too.Chapter 2. Implementation of the UBC Teleoperation System^ 27its speed and motion in the next REMOTE cycle. New set-point should be arrived within 32msto avoid robot stepping motion (e.g., between points P2 to P3 in the figure).The REMOTE set-point can be specified in either absolute or incremental value. Incrementalmode are used in this project because the speed of the robot can be easily limited by limiting itsincremental set-point value at each REMOTE cycle. In addition, absolute mode may cause somesafety problems, such as the robot hitting its base when a move to the origin of the cartesiancoordinate is executed due to accidental sending of zero as the cartesian set-point values (whichcan 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 systemwas used to do the kinematic calculations. Due to the relatively slow kcP in the CRS system, thefastest REMOTE clock rate achievable was only 55ms 8 . It is too slow even when it is comparedwith other conventional robots. For instance, a PUMA 500 robot can perform a similar task in28ms. To avoid this bottleneck, the kinematic calculations were moved from the CRS systemto 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 improvedto 16ms.2.5.4 Communication Between Computing SubsystemsDigital Parallel Communication between the PC and CRS SystemsDuring 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 set-point (also six floating point numbers) from the PC. The CRS system can communicate withthe outside world through its serial and parallel ports.8 The 55ms includes the robot forward and inverse kinematics, passing CRS location to PC and receivingset-point from PC, and storing the set-point to the REMOTE data buffer.Chapter 2. Implementation of the UBC Teleoperation System^ 28The serial communication provided by the CRS system can be up to 19.2 Kbaud with aspecial protocol (see the ACI section in the CRS manual [23]). However, the protocol involvestoo 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 betweenthe PC and CRS systems. The PC uses a 24-channel I/O card (Metrabyte PI012) which carriesan Intel 8255 chip (see Appendix B and i8255 data book for usage). Since the CRS digital inputand output channels are physically separated (i.e., it only allows one directional transmissionfor each channel), the Metrabyte card, among its 24 channels, have to be divided into input andoutput channels accordingly. The data resolution directly depends on the number of channelsused. Fourteen channels (i.e., 14 bits) are dedicated for CRS location data and six channelsare for the CRS incremental set-point, and the rest (2 inputs, 2 outputs) are for handshakingFortunately, the CRS set-point is specified in incremental form and the magnitude should bevery small (i.e., the amount the robot should move during the 16ms REMOTE set-point updateperiod). 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 the14 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 al-gorithm (see Appendix B) was developed to insure that each uses the most recent data andthat the transmission of data is correct. At present, the transmission of the robot end-effectorlocation and set-point (with handshaking) takes less than 2.8ms.Dual-ported Memory Communication between the DSP and PC SystemsThrough the 64 Kwords dual-ported RAM, the DSP system can send the CRS set-point andget the CRS location from the PC. Since the DSP system is much faster than the PC and theChapter 2. Implementation of the UBC Teleoperation System^ 29CRS systems, it is inefficient for the DSP to wait for the response of the PC. Therefore, theDSP 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 (byusing a flag) and gets the CRS location from the PC if it is available. Using this method, theDSP program can bypass the CRS set-point and kinematic computations most of the time andincrease the wrist control update rate.2.6 The Bandwidths of the UBC Teleoperation SystemThe DSP system takes about 5ms to complete the CRS robot set-point, forward and inversekinematics computations. However, these computations are only required for every 16ms (i.e.,the maximum REMOTE rate). Without performing the CRS calculations, the DSP system cancomplete force sensing and, master and slave wrist controls within 2ms, so the maglev wristcontrol update rate is roughly 500 Hz most of the time. Since the force bandwidth of the wristmechanical system can be up to several kHz, the overall force bandwidth (at the wrist level) islimited 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 mechanicalsystem. The position response of the maglev wrist exceeds 30Hz for translation and 15Hz forrotation, 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 DSPinterrupt period changes from 2ms to 7ms) when the DSP needs to compute the CRS robotset-point and location. The DSP program can be easily modified to standardize the updaterate. Since the wrist control is interrupt-driven, we can move the CRS computations from theinterrupt routine to the "main program" and extend the interrupt cycle to (say) 2.5ms, so thatthe "main program" will have 0.5ms for the CRS computations in every 2.5ms. The robot set-point will be ready before 16ms have lapsed. Although it will introduce computational delay inChapter 2. Implementation of the UBC Teleoperation System^ 30the robot location data, this effect can be ignored by using the decoupling coarse-fine controlwhich 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 onthe REMOTE clock rate (i.e., 1/16ms REMOTE rate = 62.5Hz). As with most conventionalmanipulators, the position response bandwidth of the CRS robot is about 2-3Hz (over a smallmotion range). Since the CRS robot is only responsible for coarse motion and is controlledin velocity mode (which will be described in next chapter), the 2-3Hz velocity bandwidth isenough for a human operator.Chapter 3Control Algorithms of the UBC Teleoperation SystemThis chapter will first examine the methods for controlling a large workspace slave system witha small workspace master. A method combining position and rate control is chosen for oursystem. In the implementation, a time delay problem in the coarse-fine system occurred. Theproblem will be analyzed and a solution will be described. Then, the proposed solution isextented 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 ControlWith the help of the CRS robot for large motion, the workspace in the slave side is much largerthan that of the master. To have a more general analysis, we can temporarily forget our coarse-fine manipulator slave system in this section and interpret the slave as a single manipulatorhaving a larger workspace than its master. For simplicity, the analysis will be in 1 DOF, 6 DOFextension will be presented in section Problem of Poor Position Resolution in Position ControlPosition Control with ScalingThe most straight forward way to control a large slave robot with a small master is the positioncontrol with scaling.Xs= KAlthough this method can easily achieve spatial correspondence, it suffers from poor controlresolution. Imagine, in our case, the 9mm maglev wrist motion range corresponds to lm robot31Chapter 3. Control Algorithms of the UBC Teleoperation System^ 32motion 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 isnot practical at all.Indexed Position ControlAn alternative to solve the position resolution problem is the indexed position control by usingan indexing switch [27]. The master only controls a small portion of the slave workspace ata time. Large slave motion can be achieved by using an indexing trigger to move the controlto another workspace portion. There are some disadvantages in this method. Since the slaveworkspace is divided into many small portions, the operator looses a sense of continuity duringworkspace switching. Furthermore, operators would prefer single-handed control without takingcare of an additional trigger, which requires successive action and a lot of attention.3.1.2 Problems of Positioning and Force -Feedback in Rate ControlA rate control approach, achieved by setting .k, = xm , can solve both resolution and discon-tinuity problems. However, as there is no direct position-to-position correspondence betweenmaster and slave, fine dexterous tasks are difficult to execute.Furthermore, Parker [28] pointed out that force feedback in rate control creates an unnaturalfeeling of the environment. When the slave contacts a mass-dashpot-spring environment"feedback = (me 32 + be s + ke ) .t 7the force felt at the master becomes1f f eedback = (me S 2 + be s + ke ) -s im) (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 theChapter 3. Control Algorithms of the UBC Teleoperation System^ 33feedback signal (right hand side of equation (3.1)), some important characteristics such as aconstant environment force will be lost. In addition, force feedback in rate control easily createsinstability problems [28].3.1.3 Hybrid Position and Rate ControlAs discussed above, rate control can solve the resolution problem in position control; whileposition 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 bySalcudean 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 inFigure 3.1. The region (enclosed by the dashed line in the master workspace) is the rate controldeadband 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 masterposition (x,i ) with respect to a local frame (XL). When the master is outside the rate controldeadband, the velocity of the local frame (XL) tracks the master position with respect to theworld frame. Therefore, the overall motion of the slave manipulator (Xs ) will be in rate controlwhen the master is outside the deadband and pure position control (w.r.t. the local frame)when the master is inside the rate deadband,Xsdx s,-kz,= X sd + XLk x,1 f(xm)=toixm I > deadbandotherwisewhere sm , x sd and Xsd are the master position, desired slave local and absolute position,respectively, k and f(xm ) are some position scaling factor and velocity function.Slave LocalWorkspaceRateDeadbandMaster PositionSlave PositionWorld FrameMaster WorkspaceChapter 3. Control Algorithms of the UBC Teleoperation System^ 34Part of Slave WorkspaceFigure 3.1: Hybrid Position and Rate ControlChapter 3. Control Algorithms of the UBC Teleoperation System^ 35Problem concerning switching from Rate to Position controlWhen the slave manipulator reaches its workpiece by rate control (see Figure 3.2a for 1Drepresentation), 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 itsworkpiece due to position control as shown in Figure 3.2b. Thus, the slave never reaches theworkpiece. There are two alternatives for this problem.The first solution is to stop the overall slave motion whenever the master is moved from ratecontrol zone to the rate deadband, and then resume the position control when the master is closeto its nominal position. In order to maintain the position correspondence between the masterand the slave local position (otherwise a sudden jump will occur in the slave when the positioncontrol is resumed), the local frame, XL, tracks the master reverse motion before the positioncontrol is reactivated. However, there are couple of disadvantages in this method. During theslave stationary period, motion correspondence is lost as the operator moves the master willnot produces any motion in the slave. Even worst, when the slave accidentally crashs to ahard-surface in rate control, the large feedback force is supposed to create an opposite mastermotion 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 isinside the rate deadband. Since position control between the master, x r„, and the local slaveposition, x s , is always active, this local frame motion is actually a very slow rate motion as thelocal 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 tostop the rate control and the slave will move a bit away from the workpiece due to positioncontrol. Then, the local frame motion is on and brings the slave to its workpiece again. Afterreaching the workpiece, the local frame still tracks the slave position and creates a small feedbackChapter 3. Control Algorithms of the UBC Teleoperation System^ 36Figure 3.2: Problem of Switching from Rate to Position ControlChapter 3. Control Algorithms of the UBC Teleoperation System^ 37force 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 wellas the feedback force) is compensatable or even not noticeable by the human operator. Thenotion of bringing the master back to its zero position is important for solving the followingposition-to-rate control problem.Problem concerning switching from Position to Rate controlSome bilateral position controllers require a position error between master and slave to generatea feedback force. If the master (inside the deadband zone) is too close to the rate deadbandedge, 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) isimportant for such position-error bilateral controllers. Experimental results of using these kindof 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 workspacemaster as in our case. It solves the resolution problem without requiring the human operatorto perform additional triggering. It also follows human instinct as the slave begins to move invelocity 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 ControlThe hybrid position and rate control described in the previous section was implemented. Inthe first attempt, the slave flotor was controlled as a rigid body in space, with the CRS robottracking it. For simplicity, one DOF representation is used. Six DOF extension will be presentedin next section.Chapter 3. Control Algorithms of the UBC Teleoperation System^ 38As illustrated in Figure 3.3, the CRS robot (XR) was programmed to track the slave flotorabsolute position (XF) which is calculated from the robot position (XR) and the wrist internalPSD data. The slave Rotor set-point, expressed in absolute position (XFd ), can be computedFigure 3.3: Implementation of the Hybrid Position and Rate Controlfrom the local frame (XL) and the master position (xm ). Unfortunately, an overshoot problemoccurred in the coarse-fine manipulator.3.2.1 Overshoot Problem due to Time DelayAs described in Chapter 2, the control of both wrists are performed by the DSP system andupdated 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 theA/D and D/A channels. However, due to the slow CPU and lack of analog channels in theCRS system, information such as the robot joint angles and set-point have to be transmittedthrough parallel digital port (CRS i- PC) and then dual memory port (PC 4- DSP). RobotChapter 3. Control Algorithms of the UBC Teleoperation System^ 39set-point and location can only be updated in 16ms in joint angle form and 55ms in cartesianlocation 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 slavesystem in Figure 3.4.M: the robot mass (including the slave stator)m: flotor mass (including force sensor etc.)f: flotor actuation forceF: robot actuation forceXR: robot end-effector (i.e., stator) absolute position: calculated from CRS joint anglexF: flotor position from stator: from wrist PSD dataXF: flotor absolute position: XF = xF + XRXL: local frame absolute positionXFd: flotor desired absolute position set-point: XFd = XL + scaled master positionFigure 3.4: Dynamic Model of the Coarse-Fine ManipulatorChapter 3. Control Algorithms of the UBC Teleoperation System^ 40Flotor dynamics 1 :f = m-kF^ (3.2)The maglev wrist control law performed by the DSP system:^f = k (XFd — XF) — b XF^ (3.3)where k, b are the PD controller gains, andXFd = 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 thedelay by Hi (s), equation (3.5) becomesXF = 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 + H1 XR)^= k ±Fd — k (.2tF — .5( R-1- Hi f(R) — bs ( -kF —^ 111 XR)and thereforek bs fCF = M^S 2 + bs-Fk XFd dms2+bs+k (1 —H1) XRk^ k+bs Let G11 = ms -1-bs+k and G12 = •Robot dynamics:Assume a simple robot dynamicsF = M.X-R + ,with the control done in CRS system,^F = K (XRd — XR) — B XR^ (3.9)1 The coarse-fine dynamics coupling is neglected here.(3.6)(3.7)(3.8)Chapter 3. Control Algorithms of the UBC Teleoperation System^ 41(3.8) becomesm s2^ms2 F =XR =K (±Rd — ±R)— Bs XRms2^ FMS 2 + Bs+K -kRd MS2 + Bs+K^(3.10)where we use f = ms 2X'F. Let G21 = ms2 +B.9+K and G22 = ms27/28+K . If the CRS iscommanded to track the flotor center,XRd =^-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 theCRS. The overall transfer function of the systems (3.7), (3.10) and (3.11) becomes:GilXF =^ ICF^(3.12)1 G12 (1 —H1021/12 — G22 )^d1— G21 (1—H2)The block diagram is shown in Figure 3.5.Figure 3.5: Block Diagram of the Coarse-Fine SystemIn Figure 3.6, values are chosen to approximate the flotor (G 11 ) and the robot (G 21 ) responsecharacteristics. The step response of the whole coarse-fine system (3.12) is shown in Figure 3.7.Overshoot is caused by the time delay, Hi (s), in the robot location data, XR (see Figure 3.8).Chapter 3. Control Algorithms of the UBC Teleoperation System^ 42Robot Parameters ValueMcoROiKB202r1wii2 M2(RoiR MFlotor Parameters ValuemCFkb0.527r51240F m2(Fc0F 772TimeFigure 3.6: Step Responses of G11 and G2155ms delay in both H1 and H2• ••No delay in H1, 55nts delay in H2Chapter 3. Control Algorithms of the UBC Teleoperation System^ 431.^0.4^0.6^0.8^1^1.2^1.4^1.6^1.8^2TimeFigure 3.8: Overshoot Effect due to the Delay H1Chapter 3. Control Algorithms of the UBC Teleoperation System^ 44Of course, this problem can be avoided by purchasing additional hardware to increase theCRS position update rate. However, not only do we spend more money for the hardware, butwe also need to bypass the whole CRS computing system and control the robot in joint motorlevel. All those safety checks come with the robot will be lost. A much simpler solution isproposed in next section.3.2.2 Decoupled Coarse-Fine Control AlgorithmAs mentioned in the previous section, the overshoot is mainly due to the delay in robot positionH1 XR. This problem no longer exists if H1XR is not required in the control of the flotor. Thetrick is to separate the fine motion control from the coarse motion robot control. To achievesuch decoupled coarse-fine control, the robot is only responsible for the rate control and doesnothing for position control. In other words, the local frame XL, is attached to the robotposition.Position control is carried out between the two maglev wrists (from their stator centers) andis updated in every 2ms. The only trade-off is the position scaling cannot be greater than oneif the master and slave maglev wrist are identical. Scaling down (i.e., increasing the positionresolution) is perfectly all right.When the master is outside the rate deadband region, the slave flotor always has an offsetfrom its stator center (i.e., from the robot end-effector) due to the position control. The CRSrobot tracking the flotor center means that the robot is in rate control. When the master isinside the deadband region, the robot simply stops.Now, the block diagram of the coarse-fine system is shown in Figure 3.9. The delay H2does not cause any problem. It only means that when the human operator wants to change therobot velocity vector, the robot has an extra 16ms response delay which is not noticeable to anoperator.Chapter 3. Control Algorithms of the UBC Teleoperation System^ 45Figure 3.9: Block Diagram of the Decoupling Coarse-Fine Control3.2.3 Discussion and Further ImprovementThe implementation of the hybrid position and rate control is much simplified by using the de-coupled coarse-fine approach. By combining the robot frame with the local frame, we eliminateone 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 frameis not too far away from the actual robot location (e.g., the local frame velocity may be fasterthan the robot velocity).Before using decoupled coarse-fine control, it is logical that the robot always tracks the slaveflotor to increase the wrist virtual workspace. However, in decoupled coarse-fine control, therobot is responsible for rate motion which should be controlled directly by the master instead ofthe slave flotor. Therefore, the robot should track the slave flotor set-point, x Fd (i.e., the scaledmaster position), instead of the actual slave flotor center, xF. This improves the response timeand safety of the robot tracking, as the robot now tracks the human-directly-controlled masterChapter 3. Control Algorithms of the UBC Teleoperation System^ 46flotor 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 andthe 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 isno master actuation forces. Figure 3.10 shows the improved hybrid position and rate controlfor the decoupled coarse-fine system. It also includes the small centering motion for solvingFigure 3.10: Block Diagram of the Improved Decoupling Coarse-Fine Controlthe deadband crossing problems as discussed in section Six Degree-of-Freedom ExtensionFirst of all, a world coordinate frame has to be defined as a fixed reference frame. It is conve-nient to choose the CRS base frame as this world coordinate frame. In order to have spatialcorrespondence between master and slave systems, the master's stator should be oriented inthe same way as the CRS robot base frame.Chapter 3. Control Algorithms of the UBC Teleoperation System^ 47The 6 DOF hybrid position and rate control with the decoupled coarse-fine approach isillustrated in Figure 3.11. Translation is represented by position vector (r), while the flotorFigure 3.11: Block Diagram of the Six DOF Implementationrotation (about stator frame) is represented by quaternion vector (0).Position ControlAs described before, position control is always active at the wrist-to-wrist level. The translationand rotation of the master flotor (rni , Om ) can be expressed in the slave stator frame (which isChapter 3. Control Algorithms of the UBC Teleoperation System^ 48equal to the robot end-effector frame, {R}) as the slave wrist set-point:Rrm = (QR)T rmR Om = (CIR)T Pmwhere the rotation matrix 2 QR represents the orientation of the robot end-effector frame andis obtained from the robot joint data. Note that (rm , Om ) and (Rrni , Ri3,,,) represent the sametranslation and rotation (i.e., same magnitude), but they are expressed in different coordinateframe (see [30] for more detail description on coordinate transformation). The controls of theslave wrist and the robot are still decoupled from each other. Therefore, the effect of the delayH1 in QR only means that the calculated and the actual robot orientations have 16ms delayfrom one another, and they are almost the same even the robot is controlled in rate mode andtherefore, it is negligible.Similarly, the slave flotor translation RI-, and rotation RO, (both from the slave statorframe, obtained by the PSD data) can be expressed in the master stator frame for the mastercontroller (which will be discussed in next section) and the small CRS centering motion,rs = QR RrsOs = QR ROs •Rate Control1 f(lirmii) rmrR =kdead rseli = 1 f(liOniii) Omkdead Osif lirn, II > deadbandotherwiseif 1113,, II > deadbandotherwise(3.13)(3.14)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 and2 For any rotation matrix Q, the determinate of Q is 1 and QT is same as Q-1.Chapter 3. Control Algorithms of the UBC Teleoperation System^ 49orientation with some scaling functions, f(11'11), when master is outside the deadband, and therobot tracks the slave fiotor with some small scaling factor, kdead, (for the small CRS centeringmotion) when master is inside the deadband.The Deadband Shape and The Robot Velocity Scaling FunctionThe shape of the rate control deadband is determined by the norm of r,, and Om . Figure 3.12shows two deadband shapes. Although the quadratic norm provides a more consistent dead-band length in all directions, it is inconsistent with the master workspace shape. The masterworkspace shape is more like a cube than a sphere. As the operator often pushs the masterto its workspace edge during rate control, he will experience the robot velocity is faster insome directions than the others (e.g., Iri l > 1r2 1 in Figure 3.12). The infinity norm is used inthis project because it is more consistent with the master workspace shape comparing to thequadratic norm.Figure 3.12: Rate Control Deadband ShapesThe scaling function f (11r,„, II) determines the robot velocity profile. Figure 3.13 shows threedifferent velocity profiles. This project uses profile #2 which avoids the sudden velocity jumpin #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 r1 direction will be much higherChapter 3. Control Algorithms of the UBC Teleoperation System^ 50f dl r m II )#1f 11 rm II )= II rm IIif II rmII > deadbanddeadbandf (11 r m II )f (II rm II )= II rm II — deadband/deadbandif II rmII > deadband1.- I I rm I IA#2f (11 r In II )#3f (II r m II ) = (II r mll — deadband) 2if II r m il > deadbandr...,deadband ^ II rmIIFigure 3.13: Robot Velocity ProfilesChapter 3. Control Algorithms of the UBC Teleoperation System^ 51than that of r 2 for profile #3).Same rule is applied to rotations.3.4 Teleoperation Control at Wrist LevelSince the main function of the CRS robot is to carry the maglev wrist to its workpiece, taskmanipulation is mainly dependent on the teleoperation (using position control) at the wrist-to-wrist level. The maglev wrist controllers are easily modified in the DSP program and can evenbe changed at run-time.3.4.1 Modelling a Teleoperator as Two Rigid BodiesAs described in Chapter 2, the maglev wrist flotor can be accurately modelled as a singlerigid body and the differential equations of describing the body motion can be transformed todecoupled double integrator form [201. Therefore, the control of the teleoperation system flotorscan be analyzed by the single axis rigid masses model illustrated in Figure 3.14, where mm ,Master^SlaveX sFigure 3.14: Single-Axis Model for Teleoperation Controlm3 , x,-„, x 3 are the master and slave flotor masses and positions, respectively, f n and f3 arethe master and slave actuation forces, and fh and f, are the hand and environment forces.Chapter 3. Control Algorithms of the UBC Teleoperation System^ 52Gravitational forces are automatically fed forward by each individual wrist controller to makethe flotors nearly weightless. Thus, the equations of motion are simply^mmim =^ (3.15)sx s =^fe + fs •^ (3.16)From a human factors point of view, it is awkward to allow the master and slave flotorsto drift about when the operator does not hold the master. Therefore, a very small centeringforce/torque is implemented in each wrist controller.fm_centering = — k0 xm — b0 th mh_centering = —k0 x s — b0 isThe gains, /co and bo , are very small so that they do not have significant influence to the wristcontrollers.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 TorqueA 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^ 53If the proportional gain kp tends to infinity, an infinitely stiff rigid-link ideal condition is achievedand force feedback is also achieved at the same time. Of course, due to stability problems, kpcannot be infinity, but a very rigid feeling between the master and the slave can be obtained fora large proportional gain. By using the same proportional gain, k p , in both master and slavecontrollers, the feedback force should be equal to the force applied to the slave.In order to maintain stability while increasing kp , we can increase the differential term, kv ,which however also increases the viscous feeling at the master. To have a better understandingand control of the viscous term, we can separate k, into two terms as suggested in [11]: velocityfeed forward, kft„, and feedback term, kp(x — xm) + kiwi s — k fbthm ki (x s — xm) dt (3.20)fs = kp(xm — xs) + kf.thm — kfbth s ki f (xm — 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 ofk fo,„ is to increase the system response by forcing the opposite system to track its velocity, whilekfb provides damping to maintain system stability. The viscosity produced by the damping canbe reduced by decreasing kfb or increasing kftv .For finite kp (i.e., finite stiffness in the linkage), a position error "x s — xm " is required togenerate forces. This is the major drawback of the coordinating torque controller. Experimentaldata of using this controller will be presented in next chapter.3.4.3 Force-Reflection by using Force -Torque SensorsAnalog to the force measuring method in the coordinating torque controller, the force sensorcan be interpreted as a device with very high proportional gain as it measures force by thetiny elongation or contraction of its strain-gauges. To achieve the infinitely stiff rigid-link idealChapter 3. Control Algorithms of the UBC Teleoperation System^ 54condition described in Chapter 1, we setfm = fe , fs = fhwhere fe and fh are measured by the force-torque sensors. However, the position correspondencebetween master and slave will be lost even with small measurement errors, so a coordinatingforce should be added to the = kp(x.,— x,,,)+^k fbim ki (x, — xm) dt fe^(3.22)fs = kp (xn, — x 5 ) + k fwini — 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 4System Testing and AnalysisTelemanipulation can be generally divided into three situations:1. Free motion tracking in an unconstrained environment2. Moment of contact with a constrained environment3. 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:fm ▪ kp (x s — xm ) + k fw th s — kfbim + ki(x s — xm ) dt—[koim + kindfs = kp (xm — x s ) + kf t,4m, — kfbi s + ki (xm — 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—[ko xm + bo im]fs^kp (xm — x s ) + kfw im — kfb +^(im — i s ) dt + fh—[ko x s bo is]^(4.2)'The controllers have been described in the previous chapter. As mentioned before, the differential equationof describing the flotor motion can be transformed to decoupled double integrator form and therefore, the controlof the six axes is decoupled from each other.55Chapter 4. System Testing and Analysis^ 56where fe and fh are obtained from the JR3 sensors (note: each JR3 sensor has built-in ananloglow pass filters with cut-off frequency at 163Hz). As mentioned before, there is always a smallcentering 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, toachieve 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 ReportedGains Symbol Value unitProportional kp 5 N / mmVelocity feedforward k f„ 0.024 N / (mm/s)Velocity feedback kfb 0.02 N / (mm/s)Integral ki 25* N / (mm•s)Centering spring ko 0.5 N / mmDamping bo 0.005 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 greaterthan 0.15N.the above controllers are addressed as controller #1 and controller #2 for convenience. Unlessspecified otherwise, the gains are fixed and both wrists are equipped with the force/torquesensors (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 rotationabout Z-axis can be found in Appendix C. The characteristics of the other four axes are similarand will not be repeated here.Chapter 4. System Testing and Analysis^ 574.1 Free Motion Tracking4.1.1 Position Tracking at Wrist LevelThe first experiment is to test the wrist level position tracking at different frequencies. Figure 4.1and Figure 4.2 show the tracking results of controller #1 and controller #2 respectively. Thesolid line is the master position, x,,, and the dashed line is the slave flotor position, x, (from thestator) 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 thefigures) and suddenly took his hand away from the joystick. The results show that the positiontracking is very accurate in both controllers except a very slight overshoot in the slave flotordue to momentum.4.1.2 Back-Driveability at Wrist LevelSame procedures were performed as in the first experiment except the operator was moving theslave this time. The results are shown in Figure 4.3 and Figure 4.4 for the two controllers. Theback-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 thejoystick, only the master and the CRS motions are of interest in this experiment. In orderto 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 velocitywhich is obtained by differentiating the CRS position data, and Figure 4.5b shows the CRS2 In this chapter, when two signals are plotted in a same graph, the solid line always represents the signal inthe 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^ 58Figure 4.1: Controller #1: Position Tracking of the Maglev Wrists, xm, and x3.Figure 4.2: Controller #2: Position Tracking of the Maglev Wrists, xn, and x 3 .Chapter 4. System Testing and Analysis^ 59Figure 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.Chapter 4. System Testing and Analysis^ 60position motion 3. In order to plot the velocity in the same scale of the master position, theCRS velocity data are scaled down by the factor of 20. The results show that the robot velocityroughly tracks the master position up to 2-3Hz. The smoothness of the velocity is limited bythe robot motion.4.1.4 Hybrid Position and Rate ControlFigure 4.6 shows the hybrid position and rate control. The rate control deadband is from -3mmto +3mm in the master. The operator first moved the master within the rate deadband forthe first two seconds. Only the slave flotor (xs ) which was mounted on the robot followed themaster motion 4 and the robot was stationary. Then, the operator pushed the master outsidethe deadband (2-4sec.) and took off his hand at 4th second. During this period, the slave flotortracked the master in position and the robot tracked in velocity. The small centering force (theterms inside the brackets in the controllers) brought the master to its nominal position whenthe human operator released the master.Then the operator pulled the slave flotor down and thus the master tracked the slave flotor'sposition and the robot tracked the master in rate control. Therefore, the back-driveability isvalid in both position and rate controls.4.2 Contact Stability4.2.1 Hard ContactThis experiment shows the stability of the system during hard contact. To simplify the experi-ment, no rate motion is involved here. Indeed, hard contact during rate control will be included3 In this chapter, graphs under the same figure number belong to a same experiment (e.g., Figure 4.5a and4.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.6Time (sec.)•••••8bptVChapter 4. System Testing and Analysis^ 61Time (sec.)Figure 4.5: Rate Control: a.) Master Position (x„,) and CRS Velocity (X„,); b.) CRS RobotMotion: Xcrs.I b.) X.  4- x.. - I10964 7532^I c.) Xvra^cr..Chapter 4. System Testing and Analysis^ 62Time (sec.)TimeFigure 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^ 63in the experiment next section. Figure 4.7 shows the hard contact by using controller #1. Inthis experiment, the slave collided with a fixed solid steer and exerted a constant force andfinally 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), theslave collided with the solid steer fixed on a hard table. Instability occurred in this case. In thesecond contact (at t a 5.5), the slave collided with the solid steer which was held by a humanhand 5 and no instability occurred. It is because human hand has damping effect to stabilizethe hard contact. It is also helpful to have a stronger grip on the master by the human operator.The damping term, b0 , in the controller #2 can be increased to mimic the damping effect ofthe human hand. The hard contact instability disappears if the damping term is increasedfrom 0.005 to 0.1 N/(mm/s) in Figure 4.9. The trade-off is that the operator feels viscosity forhigh velocity motion (compare the hand force data in Figure 4.8 and Figure 4.9 in the first fewseconds of free motion). To minimize this unwanted viscous feeling, the operator may adjustthe damping factor for different tasks. The UBC teleoperation system allows users to changeall the parameters at run-time through the DSP monitor software.Another simple way to aviod the viscous feeling during free motion is continuously adjustingthe damping term according to the magnitude of the measured environment force. For instance,usingbo = kb ILI + bminwith the scaling, kb = 0.01 (mm/s) -1 and the minimum damping bm in = 0.0025 N/(mm/s),the result for the hard contact experiment of controller #2 is shown in Figure 4.10 (contactat t 3, then apply a larger force at t 5.5). Contact stability can be maintained withoutincreasing the viscous effect during free motion.As the human impedance (e.g., damping, stronger grip) also contributes to the system5 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.-0.51.5Chapter 4. System Testing and Analysis^ 640.5^1^1.5^2^2.5^3^3.5^4^4.5^5Time (sec.)FgTime (sec.)Figure 4.7: Controller #1: Hard Contact. a.) Master and Slave Wrist Positions: xn, and x,;b.) Hand and Environment Forces: fh and —f,.Chapter 4. System Testing and Analysis^ 65ZC.)1.oTime (sec.)Figure 4.8: Controller #2: Unstable Contact. a.) Master and Slave Wrist Position: x n, andx 3 ; b.) Hand and Environment Forces: fh and —fe.Chapter 4. System Testing and Analysis^ 66z0s.0Time (sec.)Figure 4.9: Controller #2: Stable Contact with Large Damping a.) Master and Slave WristPositions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe.0.120.1I- 0.0610.020.080.04Chapter 4. System Testing and Analysis^ 67Time (sec.)0^1^2^3^4^5^6^7^8^9^10Time (sec.)Figure 4.10: Controller #2: Stable Contact with a Damping Function: a.) Master and SlaveWrist Positions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe ; c.) DampingFactor, bo.Chapter 4. System Testing and Analysis^ 68stability, Hannaford [32] suggested an alternative that the system stability and damping effectmay be optimized through continuous changing the damping factor as a function of the humanimpedance (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 EnvironmentIn this experiment, the teleoperation system was operated by two people — one pushing onthe master in high frequencies, another one pushing on the slave, and they took of their handsat 4th second (see Figure 4.11 and Figure 4.12). Without increasing the damping term, thesystem is stable in both controllers.4.3 Exertion of ForcesThe result of controller #1 is shown in Figure 4.13. The slave first moved in rate control andsuddenly it contacted a solid steer. The collision force pushed the master to its rate controldeadband zone and the robot rate motion was stopped (except for the small centering motiontracking the slave flotor). After the contact, the operator exerted constant forces of 5N, lONand 15N. (Since the operator did not know precisely how much force he was applying to themaster, the environment force data was displayed on the PC monitor). From Figure 4.13b, wecan see that the force exerted to the environment (—f,) is almost the same as the force exertedby the human operator (fh ) even though no force sensor is used in the controller. This is thereason to choose a same proportional term, kp , in both the master and slave controllers (seecontroller #1). However, for such coordinated torque controller, the forces are generated by theposition error between the master and slave: — the more force the operator exerts, the largerthe master/slave position error will result (see Figure 4.13a and Figure 4.13b). As the operatorwanted to exert a higher force at t = 12 second, the master crossed the rate deadband (±3mm)4.••I a.) xm— , Xs —Il b.) fit^fe Chapter 4. System Testing and Analysis^ 69EE0-10-151^2^3^4^5^6Time (sec.)2^3^4^5^6Time (sec.)Figure 4.11: Controller #1: Soft Contact and Active Environment. a.) Master and Slave WristPositions: x n, and x 3 ; b.) Hand and Environment Forces: fh and —fe.64321i'c.9^-10 ^Ofa.,-15 ^-20 ^-250I 13.) fh ^• —fe — --- IChapter 4. System Testing and Analysis^ 702^3^4^6Time (sec.)Time (sec.)Figure 4.12: Controller #2: Soft Contact and Active Environment. a.) Master and Slave WristPositions: x,r, and x 3 ; b.) Hand and Environment Forces: fh and — fe.I SI-)^. Xs^IAsa,"--- ---------- --,^-------- ------^ I ;- ------- ----------ControlDoactband4^6^8^10^12^14^16Time (sec.)Times (sec.)-2000-4000-6000H -8000-10000a.-12000- 14000- 16000-18000oc.) X crs - I2^4^6^8 10^12^14^16Time (sec.)Chapter 4. System Testing and Analysis^ 71Figure 4.13: Controller #1: Exertion of Forces. a.) Master and Slave Wrist Position: x, andx 3 ; b.) Hand and Environment Forces: fh and —fe ; c.) CRS Motion: Xcrs.Chapter 4. System Testing and Analysis^ 72and the CRS robot moved toward the solid steer, which created a feedback force to push themaster 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 causingdamage, these sudden motion and increase in feedback force are undesirable. Nevertheless, dueto thermal constraint, the maglev wrists are normally operated within the 15N range. We canincrease the deadband or the proportional gain to achieve higher exerted force. The beep soundindicating the rate control can also help the operator to stop exerting a higher force when themaster is crossing the deadband.Figure 4.14 shows the results for controller #2. Of course, the damping term should beincreased to 0.1 N/(mm/s) to maintain contact stability for this controller. Since the forcesensor data are used in the controller, we do not need the position error to generate forces. Theabove problem of deadband crossing does not exist. The operator also has a better sense of thestiffness of the environment.4.4 Discussion and Evaluation4.4.1 Slave Flotor Dynamic Effect during CRS MotionDuring rate control, the dynamics of the flotors become^mm im = fh + fm^ (4.3)^ms (is 4- krs) = fe + fs (4.4)where -kCTS is the CRS robot acceleration. To simplify the analysis, we set fe = 0 (i.e., freemotion) and fm = — f, (i.e., as controller #1). We have the following relationship:fh = mm im + ms is + ms -kcrsTo simplify the discussion further, the operator is assumed to control the robot in a constantvelocity. That is to say i m = im = 0 and i s = 0 (assuming that xs tracks x m ) and alsoChapter 4. System Testing and Analysis^ 732^4^6^8^10^12^14^16^18^20Time (sec.)Time (sec.)Figure 4.14: Controller #2: Exertion of Forces. a.) Master and Slave Wrist Position: x,, andx 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 feedbackforce 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 reflectedat 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 flotorinertial effect). The rate motion, as well as the force feedback, will not be good. To avoid thisunwanted deadband crossing problem, the operator should have a stronger grip on the masterand should not rest the master near the deadband edge during the CRS motion. Furtherresearch, such as flotor inertial cancellation and experiments of task manipulation during ratecontrol, is recommended to minimize this unwanted flotor dynamic effect.This unwanted effect is reduced to half for controller #2. As.f. = — f c- I- feIs = fc+ fhwhere fc is the coordinating force, and fe = 0, we have fm = —fs + fh . Equations (4.3) and(4.4) become,^1fh = (mn, in, + ins i s + ms -kcrs)•Furthermore, the coordinated torque in controller #2 is not essential for force feedback. Wecan reduce its effect (by lowering its gains) so that fm -, fe = 0 and the slave flotor dynamiceffect in the feedback force can be eliminated. Now, (4.3) becomesfh = Mm m •Unilateral controller does not have this problem.Chapter 4. System Testing and Analysis^ 754.4.2 Pros and Cons of using Force-Torque Sensor(s)Pros and Cons of not using force sensorAs discussed in chapter 1, force reflection is very important in teleoperation. However, forcesensor are still expensive these days. For instance, a JR3 sensor system costs over $8,000. Fur-thermore, for the UBC teleoperation system, the force sensor and its adaptive plate impose arelatively heavy weight to the fine motion wrist (about 70% of the flotor weight). Togetherwith the masses of camera (if bird-eye view is wanted) and the tool, the total mass may exceedthe 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. How-ever, these coordinated torque controllers need position error to generate forces. There existsome problems such as rate deadband crossing during force exertion and the unwanted inertialeffect in feedback force during robot motion. Furthermore, some high frequency components ofthe environment force may be lost as flotor motion is required to establish the position error.Use of one force sensorMany teleoperation systems [10, 17] use one force-torque sensor to measure the environmentforce for force feedback. Hence, the master is force-controlled and the slave is position-controlled, for instance,fin = fe kheis — k fbim, ki (x s — xm,) dt^ (4.5)Is = kp (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 in-put/output capabilities in Table 1.1, page 4), the force bandwidth problem mentioned in thecoordinated torque controller is solved. However, a position error is still required for the aboveChapter 4. System Testing and Analysis^ 76controller to generate force and the problem of deadband crossing still exists.Use of two force sensorsIf the operator hand force data is available, the position error is no longer required to gen-erate force and the problem of deadband crossing is solved. Using controller #2, it is easy toderive— 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 whenboth measured operator hand force and environment force are used. Furthermore, teleoperationcontroller design is more flexible with the availability of the operator hand force information.4.4.3 EvaluationThe UBC teleoperation system is evaluated against general specifications [33]. The system'sadvantages 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 theslave (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 masterand 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 itsstator, while the CRS robot will be just locked in position or controlled by the operatorheld master).Potential Disadvantages• Small master operation volume. Although the author do not perceive this to be a bigproblem, the master volume, if necessary, can be increased by mounting the maglev hand-controller on a position-controlled coarse-motion platform, e.g., an inexpensive Stewartplatform. In fact, small master operational volume is an advantage when space is limitedsuch as in undersea and aerospace applications. Also, it reduces the operator fatigue andsafety risks.• Limited force/load capability. The 20N/0.6N-m indefinite loads and 40N/1.2N-m tran-sient loads capacities of the maglev wrist is more than adequate for a hand controllerChapter 4. System Testing and Analysis^ 78(indeed, the numbers exceed those of the JPL master arm). However, it may be inad-equate for the slave flotor for a number of applications that require substantially largerloads. The coarse-fine slave system is not suitable for such applications.Chapter 5ConclusionsA new force-reflecting teleoperation system has been developed. The system employs theLorentz magnetic actuation force technology to avoid the actuator friction and backlash, andthus is able to provide a high fidelity telemanipulation environment. The coarse-fine manip-ulator implementation provides the slave system with a large workspace while maintainingthe advantages of the magnetic levitation technology. Aspects of system, computational andcontroller design have been discussed. Experimental results show that the UBC teleoperationsystem has an excellent motion and force tracking capacity.5.1 ContributionsThe main contributions of this thesis are as follows:1. A teleoperation system with maglev master and coarse-fine slave manipulators was imple-mented. The project inherited the two maglev wrists and their kinematic and dynamictransformations software. The computing systems, JR3 force-torque sensors and the CRSrobot are commercially available. A DSP system monitoring software was also availablethrough a Summer project [24]. In this thesis project, the hardware modules were modi-fied and integrated together to form a force-reflecting teleoperation system. The systemhas performance advantages that make it a unique experimental research environment.2. A method for combining position and rate controls, which was proposed by Salcudeanand Lawrence was modified and implemented into the UBC teleoperation system. Thismethod allows controlling a large workspace slave system with a small workspace masterwithout external switching or sacrificing position resolution. Six DOF extension of the79Chapter 5. Conclusions^ 80method was also presented.3. On controlling coarse-fine slave manipulator, an overshoot problem due to time delay wasexposed. A solution using decoupling coarse-fine controls was implemented.4. System performance was quantified by performing general teleoperation tasks, such asfree 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 thecomputing system to the VME base SPARC system which provides a better developmentenvironment.• 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 controltechniques can be performed.• Since the CRS manipulator is only responsible for rate control, the inverse kinematiccomputation can be replaced by the inverse Jacobian approach which will save somecomputation.• 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 inthose applications requiring high position and force resolutions. Further research of applyingthe system in such areas is recommended.Bibliography[1] L. Leifer. Interactive robotic manipulation for the disabled. In Proceedings of the 26thIEEE 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 ReplacementSurgery. In Proceedings of the IEEE International Conference on Robotics and Automa-tion, Nice, France, May 10-15 1992.[3] J. Vertut and P. Coiffet. Robot Technology, Vol. 3A: Teleoperations and Robotics: Evolu-tion 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 micro-robot for manipulation and dynamical testing of single living cells. In Proc. IEEE MicroElectro Mechanical Systems, pages 102-106, Salt Lake City, February 1989.[6] R.L. Hollis, S. Salcudean, and D.W. Abraham. Towards a tele-nanorobotic manipulationsystem with atomic scale force feedback and motion resolution. In Proc. 3rd IEEE MicroElectro 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 Har-vesting Machines. In Robotics in Forestry, pages 36-39, Vaudreuil, Quebec, September1990.[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 Degree-of-Freedom Universal Force Reflecting Hand Controller. In Proc. 19th IEEE Conferenceof Decision and Control, December 1980.81Bibliography^ 82[11] T. L. Brooks. Telerobot response requirements. Technical report, STX Robotics, 4400Forbes Blvd., Lanham, MD 20706, March 1990.[12] T. L. Brooks. Hand controllers for teleoperation. Technical report, STX Robotics, 4400Forbes Blvd., Lanham, MD 20706, March 1985.[13] Romote Manipulator Control with Six Degrees-of-Freedom Force-Torque Joystick, ProductCatalogue, JR3 Inc, Woodland, California, USA.[14] Force-Torque Spacestick, Product Catalogue, Basys System Software mbH, Nurnberg, WestGermany.[15] M. McKinnon and M. King. Manual control of telemanipulators. In International Sympo-sium on Teleoperation and Control, 1988.[16] A. Fancello, J. Porter, and E. Reinbart. Froce reflection effects on operator perfomance ofremote maintenance and inspection systems. In Utility/Manufacturer Robot User Group,1988.[17] A.K. Bejczy and M. Handlykken. Generalization of bilateral force-reflecting control ofmanipulators. In Proc. of the 4th RO.MAN.SY, 1981.[18] K. Siva, A. Dumbreck, and P. Fischer. Development of a general purpose hand controller foradvanced teleoperation. In Proceedings of the International Symposium on Teleoperationand 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 Lev-itated Variable Compliance Fine Motion Wrist: Design, Modelling and Control. IEEETransactions 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. Salcud-ean, 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 474Report. 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 andOperation. New York: Wiley-Interscience, 1971.[28] N. Parker. Application of force feedback to heavy duty hydraulic machines. Master'sthesis, University of British Columbia, October 1992.[29] S. Lem. Summer Report: A graphics simulation of the log grappler between April 30 andAugust 18,1990. Available from T. Salcudean, University of British Columbia, 2356 MainMall, 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. IEEETrans. Automat. Cont., AC-34(5):494-501, May 1989.[32] B. Hannaford. A Design Framework for Teleoperators with Kinesthetic Feedback. IEEETransactions 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 Tele-operation. In Proc. IEEE Conference on Robotics and Automation, pages 540-545, May1990.[34] S. Salcudean, N.M. Wong, and R.L. Hollis. A Force-Reflecting Teleoperation System withMagnetically Levitated Master and Wrist. In Proceedings of the IEEE International Con-ference on Robotics and Automation, Nice, France, May 10-15 1992.Appendix AOperation Procedures of the UBC Teleoperation SystemIn 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 automaticallyreset the sensors' offsets whenever the program is executed, this step should be done beforeexecuting 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 (orfirst typing shel back to DOS prompt from the DSP monitoring program):(a) rob^ which is a batch file running "setcom.exe" and "rob-comm.exe" (see [23] for using the "robcomm" program)to initialize the PC communication channels and enter theCRS terminal mode.(b) EXECUTE PCPADR to execute the pre-loaded CRS program.84Appendix A. Operation Procedures of the UBC Teleoperation System^ 85(c) Press the function key < F10 > to leave the terminal mode, and then quit therobcomm 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 itindicates that the DSP program has got the orientation of the robot mounted slave wristfor correct gravity compensation. Activate the slave wrist by pressing the relay button ofthe 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 DSPmonitoring program, for instance,(a) poke ctr i 1^to change value of the integer valuable ctr to 1 which meansusing 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 PCcommunication program and may cause stepping motion inthe CRS robot (i.e., the set-point cannot be delivered tothe CRS system before next REMOTE cycle begins) It isrecommended not to use the tracing function during CRSmotion.Please refer to the manual of the DSP monitor program [24] for usage. Details of the DSPprogram 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 pendantto terminate the CRS program. The PC program will then be terminated automaticallyby its time-out sequence. The DSP program is still running and the maglev wrist controlsAppendix A. Operation Procedures of the UBC Teleoperation System^ 86are still active.11. We can turn off the power (by pressing the relay buttons) to deactivate the wrists or goto step 6 to restart the CRS operation.Appendix BTechnical Manual of the UBC Teleoperation SystemB.1 Interconnection and Pin-AssignmentsThe interconnection for the system is illustrated in Figure B.1 and the pin-assignments aregiven 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 whenthe CRS robot is in the "READY" position [23]. The coordinate relationship between thesensor and flotor in the master side is the same as the slave side.Table B.1: Pin-Assignments of the D/A cardSignal* Current Driver#2 (DB25) D/A (DB37) Channel Lout.slv[]tCoil A 1 2 1 1Coil B 2 7 5 5Coil C 3 4 3 3Coil D 4 3 2 2Coil E 5 6 4 4Coil F 6 1 0 0Ground 25 21 AGND1 N/ASignal* Current Driver#1 (DB25) D/A (DB37) Channel Lout_mtr[]tCoil D 1 9 7 1Coil A 2 14 11 2Coil E 3 12 9 3Coil C 4 11 8 4Coil F 5 13 10 5Coil B 6 8 6 6Ground 25 31 AGND3 N/A*Coil labels are according to the maglev wrist hardware report [21]. Since wrist #1 (i.e., master) was modifiedrecently, the current driver and coil connections in the two wrists are not symmetrical. The connections will bestandardized when the second wrist (i.e., the slave wrist) is modified.t Variable name in the DSP program.87Appendix B. Technical Manual of the UBC Teleoperation System^ 88Figure B.1: Interconnection of the UBC Teleoperation SystemAppendix B. Technical Manual of the UBC Teleoperation System^ 89Figure B.2: Orientation Relationships Among the Flotor, JR 3 sensor and CRS RobotAppendix B. Technical Manual of the UBC Teleoperation System^ 90Table B.2: Pin-Assignments of the A/D card #1Signal* Signal Box #1 (DB25) A/D #1 (DB37) ChannelPSDAB 14 5 0PSDAT 15 28 1PSDAL 1 14 2PSDAR 2 37 3PSDBB 18 23 4PSD B T 19 9 5PSDBL 5 32 6PSD B R 6 18 7PSD C B 16 4 8PSDCT 17 27 9PSDCL 3 13 10PSDCR 4 36 11Ground 7 1,10,24,33 N/ASignal* Signal Box #2 (DB25) A/D #1 (DB37) ChannelPSDAB 14 22 12PSDAT 15 8 13PSDAL 1 31 14PSDAR 2 17 15PSDBB 18 3 16PSD B T 19 26 17PSDBL 5 12 18PSD B R 6 35 19PSD C B 16 21 20PSDCT 17 7 21PSDCL 3 30 22PSDCR 4 16 23Ground 7 1,10,24,33 N/ASignal JR3 #1 (DE9) Adaptor (DB15) A/D #1 (DB37) ChannelFex 1 1 2 24Fey 2 2 25 25Fez 3 3 11 26Fex 4 4 34 27Fey 5 5 20 28Fez 6 6 6 29Ground 9 7 1,10,24,33 N/A*The letters {B, T, L, R} stand for bottom, top, left and right respectively. The position definitions of the PSDsare given in [21].Appendix B. Technical Manual of the UBC Teleoperation System^ 91Table B.3: Pin-Assignments of the Digital PortSignalPC PortChannelPC Port(DB37)CRS Port(Ansley #1)CRS Channel(1-8)Ground N/A 11 50 N/ADAva_CRS* PBO 10 47 InlDRec_CRS* PB1 9 45 In2Setpt bitl PB2 8 43 In3Setpt bit2 PB3 7 41 In4Setpt bit3 PB4 6 39 In5Setpt bit4 PB5 5 37 In6Setpt bit5 PB6 4 35 In7Setpt bit6 PB7 3 33 In8DAva_PC* PAO 37 31 outlDRec_PC* PA1 36 29 out2Loc. bitl PA2 35 27 out3Loc. bit2 PA3 34 25 out4Loc. bit3 PA4 33 23 out5Loc. bit4 PA5 32 21 out6Loc. bit5 PA6 31 19 out7Loc. bit6 PA7 30 17 out8PC Port PC Port CRS Port CRS ChannelSignal Channel (DB37) (Ansley #2) (9-16)Loc. bit7 PCO 29 31 out9Loc. bit8 PC1 28 29 out10Loc. bit9 PC2 27 27 outllLoc. bit10 PC3 26 25 out12Loc. bitll PC4 25 23 out13Loc. bit12 PC5 24 21 out14Loc. bit13 PC6 23 19 out15Loc. bit14 PC7 22 17 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^ 92Table B.4: Pin-Assignments of the A/D card #2Signal JR3 #2 (DE9) Adaptor (DB15) A/D #2 (DB37) ChannelFits 1 1 5 0Fhy 2 2 28 1Fhz 3 3 14 2Fhs 4 4 37 3Fhy 5 5 23 4Fhz 6 6 9 5Ground 9 7 1,10,24,33 N/AB.2 The Parallel Communication between PC and CRS SystemsCRS Digital PortsThe addresses of the digital ports are as follows:Port AddressDigital Input Port 70 Hex (word)Digital Output Port 500 Hex (word)Digital Input Image BufferDigital Output Image BufferMemory Physical Address17EC Hex17FA HexSince the digital output image buffer will update the output port every 4ms. In order to keepa value staying at the output port, programmer has to write the value to the image buffer aswell (i.e., first write to the image buffer and then to the output port). There is no need to usethe digital input image buffer in this project.PC Digital PortThe PC uses a 24-channel I/O card (Metrabyte PI012) which carries an Intel 8255A chip forPC sideP1: Wait DAva_CRS (wait C2 done)P2: Get location dataP3: Flip DAva_CRSP4: Put DRec_PCP5: Flip DRec_PCP6: If not the 6th data, back to P1P7: Wait "sending complete"PC side --P8: Put set-point dataP9: Put DAva_PCP10: Flip DAva_PCP11: Wait DRec_CRS (C11 done)P12: Flip DRec_CRSP13: If not the 6th data, back to P8P14: "sending complete"<— CRS sideCl: Put location dataC2: Put DAva_CRS to handshaking portC3: Flip (l's complement) DAva_CRSC4: Wait DRec_PC (P4 done)C5: Flip DRec_PCC6: If not the 6th data, back to ClC7: "sending complete"--* CRS sideC8: Wait DAva_PC (P9 done)C9: Read set-point dataC10: Flip DAva_PCC11: DRec_CRSC12: Flip DRec_CRSC13: if not the 6th data, back to C8C14: Wait "sending complete"Appendix B. Technical Manual of the UBC Teleoperation System^ 93Figure B.3: The Parallel Communication Handshaking Algorithmparallel 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 portPB port 309 Output portPC port 30A Input portControl 30B Control word of above setting: 99HexHandshaking AlgorithmThe 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. Thealgorithm is shown in Figure B.3.Appendix B. Technical Manual of the UBC Teleoperation System^ 94When we turn on the PC, all channels in the Metrabyte card are automatically configuredas high-impedance input channels. After we reconfigure 1 the channels by writing a control byteto the control register, all output channels are set to be zeros. The PC handshaking channelsshould 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. Weshould 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 Afor procedures).Time-out SequenceA handshaking time-out sequence was implemented in the PC side. Implementing the time-outsequence only in the PC side allows the CRS program to wait for the execution of the PCprogram (i.e., CRS program is executed first) and we can terminate both program by pressingthe abort button on the CRS teach pendant.B.3 CRS System Programming TechniqueThere are two kinds of programming for controlling the CRS robot: Robotic-Automation-Programming-Language (RAPL) and Process Control Programming (PCP). In RAPL pro-gramming, for programmer uses about 150 RAPL commands (e.g., MOVE) to specify therobot task. The advantages are (1) the high-level RAPL commands are simple and secure inthe CRS environment, and (2) RAPL is interpreted and therefore memory is saved by avoidingstorage of machine code. The drawback is that, since the interpreter performs translation atrun-time, the execution speed is slower.'Do not configure the channels in such a way that both ends are output channels. It may damage theMetrabyte 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^ 95In PCP, a programmer can use 8086 assembly or any (8086 compiled) high level languagesand load the 8086 machine code to the CRS system. In this project, PCP is used and theprogram is written in C. The advantages of PCP are obvious — it provides a much more flexibleprogramming environment and no need for run-time interpreting. The only drawback is thatthe 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 anexternal terminal. The normal C function "printf()" will write to some illegal memory locationand 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-timeRAPL 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 pro-gram is complied (by Turbo C in this project) and linked with the CRS library in an IBM PCcompatible, the executable code is loaded to the CRS controller by using a manual-drive soft-ware package called Robcomm. Robcomm is a serial communication package running on IBMPC 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 PCPprogram can be executed by typing "EXECUTE PCP_ADR".Since the CRS system only has 8K user memory, the programmer should limit the PCPprogram size to avoid over-writing memory. To increase execution speed in PCP mode, theprogrammer 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 includedhere.Appendix B. Technical Manual of the UBC Teleoperation System^ 96printing 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 CRSlibrary can be found in [25].Appendix CExperimental Results for the Z-Axis RotationThis appendix presents the experimental results for the Z-axis rotation. The experimentalprocedures are the same as described in Chapter 4. Same control laws (4.1) and (4.2) wereused and the controller gain values are shown in Table C.1. Table C.2 shows the correspondingexperimental results between the Z-axis rotation and the Z-axis translation.Table C.1: Controller Gains used in the ExperimentsGains Symbol Value unitProportional kp 10 N-m/radVelocity feedforward k ft„ 0.06 N-m / (rad/s)Velocity feedback k fb 0.06 N-m / (rad/s)Integral ki 600* N-m/ (rad•s)Centering spring ko 1 N-m / radDamping bo 0.04 t 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 greaterthan 0.06N-m.tDamping term was set to be 0.06 N-m/(rad/s) to maintain stability for experiments which required contactwith a hard environment.Table C.2: The Corresponding Figures (Results) in each ExperimentExperiments Z-axis Rotation Z-axis TranslationWrist Position Tracking C.1, C.2 4.1, 4.2Wrist Back-driveability C.3, C.4 4.3, 4.4Rate Control C.5 4.5Hybrid Position & Rate Ctr. C.6 4.6Hard Contact C.7, C.8 4.7, 4.9Soft Contact & Active Env. C.9, C.10 4.11, 4.12Exertion of Forces C.11, C.12 4.13, 4.1497jFigure C.1: Controller #1: Position Tracking of the Maglev Wrists, X m and x 8 .I Xm^, Xs — I2^3^4^5^6^7^8^9^10Time (sec.)Figure C.2: Controller #2: Position Tracking of the Maglev Wrists, x n, and x,.20• 0• _201:4-40-80 ^0 2^3^4^5^6^7^8^9^10Time (sec.)Appendix C. Experimental Results for the Z-Axis Rotation^ 990e4Figure C.3: Controller #1: Back-driveability of the Maglev Wrists, xn, and x s .60^:xm_ . xs20^I^f  f^1^ , , ^f 40^-0-N20 I111.1 \II l i^1^r -40 J^  i ^I\.,^I it if^iL1 4 1^1-60-800^1^2^3^4^5^6^7^8^9^10Time (sec.)Figure C.4: Controller #2: Back-driveability of the Maglev Wrists, x,r, and x,.Appendix C. Experimental Results for the Z-Axis Rotation^ 100Time (sec.)Figure C.5: Rate Control: a.) Master Position (x,n ) and CRS velocity (Xcr3); b.) CRS RobotMotion: ,Ccrs•Appendix C. Experimental Results for the Z-Axis Rotation^ 101Figure 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^ 102Figure 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^ 103Figure C.8: Controller #2: Stable Contact with Large Damping a.) Master and Slave WristPositions: xn, and x 3 ; b.) Hand and Environment Torques: rh and —re.I 3I 3ry l ^stl0.5^1^1.5^2^2.5^3 3.5^4^4.5^5^30^^20 ^10 ^0 ^-10 ^-20 ^-30 ^-40 ^-50 ^-60 ^0E8-0.1-0.2-0.3 ^-0.4 ^00.4 -0.5^1^1.5^2^2.5^3 3.5^4 4.5^5Appendix C. Experimental Results for the Z-Axis Rotation^ 104Time (sec.)Time (sec.)a.)^. Xs — IFigure C.9: Controller #1: Soft Contact and Active Environment. a.) Master and Slave WristPositions: x 7, and x 3 ; b.) Hand and Environment Torques: rh and —re.Appendix C. Experimental Results for the Z-Axis Rotation^ 105Figure C.10: Controller #2: Soft contact and Active Environment. a.) Master and Slave WristPositions: xn, and x 3 ; b.) Hand and Environment Torques: rh and —re.Appendix C. Experimental Results for the Z-Axis Rotation^ 106Figure C.11: Controller #1: Exertion of Forces. a.) Master and Slave Wrist Position: x n, andx3 ; b.) Hand and Environment Torques: Th and --re ; c.) CRS Motion: Xcrs.Appendix C. Experimental Results for the Z-Axis Rotation^ 107Figure C.12: Controller #2: Exertion of Forces. a.) Master and Slave Wrist Position: x n, andx 3 ; b.) Hand and Environment Torques: Th and —re ; c.) CRS Motion: Xcrs.Appendix DProgramming Flowcharts of the DSP, PC and CRS SystemsDSP(=LI C)(Start Interrupt RoutineCRS'snew locationavailable?Get data frommemory port andperform forwardkinematic calcu-lationForces sensingPC(PC2CRS . C)StartReceive CRSlocation throughparallel communica-tion with CRSconntroller and passit to DSPContinuous?(From keyboard)CRS(CRS2PC.C)Put CRSsystem underREMOTE stateSend CRSlocation to PCthrough parallelcommunicationMaster and Slavewrist controls:- Read PSD data- KinematicTransformation- TeleoperationControllers- Inverse Dy-namic trans-formation- Output Currentinfo. to D/AReceive CRSset-point fromPC through parallelcommunicationWrite set-pointto REMOTE databufferComputation of theCRS incrementalset-point, inversekinematics and putset-point tomemory portPass CRS locationto DSPREMOTE operationin every 16msParallel communicationtime-outEnd•^Collect datafrom DSP (optional)( End of Interrupt108


Citation Scheme:


Citations by CSL (citeproc-js)

Usage Statistics



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"
                            async >
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:


Related Items