# Patent

## Title
Data correction subsystem and method for color image processing system

## Abstract

The present invention is a double-jointed, tendon-driven revolute joint, a decoupled tendon-driven wrist, an antibacklash mechanism, a robot control system, and a robot manipulator incorporating the double-jointed, tendon-driven revolute joint, decoupled tendon-driven wrist, and antibacklash mechanism. The robot manipulator is a microsurgical teleoperated robot with actuators located at an actuator base. The overall system architecture includes a slave robot manipulator coupled to an amplifier chassis which is coupled to a control chassis. The control chassis is coupled to a workstation with a graphical user interface. Components of the robot manipulator are categorized into a mechanical sub-system, an electronics sub-system, a servo-control sub-system, and a high-level software control sub-system.

## Background
The invention described herein was made in the performance of work under a NASA contract, and is subject to the provisions of Public Law 96-517 (35 USC 202) in which the contractor has elected to retain title.

A portion of the disclosure of this patent document, including, but not limited to the Appendix, contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

The present invention relates in general to robot manipulators and in particular to double-jointed, tendon-driven revolute joints, a decoupled tendon-driven wrist, an antibacklash mechanism, a robot control system, and a microsurgical teleoperated robot having high dexterity and incorporating the double-jointed, tendon-driven revolute joints, decoupled tendon-driven wrist, and antibacklash mechanism.

Robotic devices are commonly used in factory based environments to complete tasks such as placing parts, welding, spray painting, etc. Examples of robotic systems include U.S. Pat. No. 4,911,033, issued to Rosheim et al., and U.S. Pat. Nos. 4,729,253, 4,723,460, and 4,686,866, issued to Rosheim.

Although these systems are used for a variety of tasks, the Rosheim et al. and Rosheim robotic systems lack important features. For instance, they do not have completely mechanically decoupled axes with passed actuation for transferring actuation through one joint in order to actuate another joint, without affecting the motion of any other joints. In addition, the Rosheim et al. and Rosheim robotic systems are large and bulky and cannot effectively perform small scale tasks, such as microsurgical operations. Also, the Rosheim et al. and Rosheim robotic systems are not tendon-driven systems, and thus, do not have low or zero backlash, which is desirable for microsurgical operations.

Recently, other robotic devices have been used in medical environments to perform surgical operations. Some of these devices include micro-robots having miniaturized end effectors with tendon-driven joints. However, current tendon-driven robot manipulators for small scale microsurgical manipulation suffer from inefficient coupling between joints, inadequate stiffness, packaging problems associated with achieving constant cable path lengths, and activation of multiple joints.

Also, in many robotic geartrain applications, such as high precision microsurgical operations, zero backlash is desired. Conventional approaches use various antibacklash components, such as high precision connectors and antibacklash gears, to eliminate backlash in each stage of the geartrain independently. These antibacklash gears are used in each stage and are stacked until the desired gear ratio is achieved. Nevertheless, these conventional approaches are difficult to implement since each stage of the geartrain ideally requires a unique preload (initial loading of the geartrain to snugly `set` the gears within each other) value. Moreover, preloading is typically tedious and difficult to readjust, if required.

Therefore, what is needed is a robot with passed actuation capabilities, zero backlash, high dexterity, and at least six degrees of freedom with all six axes being completely mechanically decoupled.

Whatever the merits of the above mentioned systems and methods, they do not achieve the benefits of the present invention.

To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention is a double-jointed, tendon-driven revolute joint, a decoupled tendon-driven wrist, an antibacklash mechanism, a robot control system, and a robot manipulator incorporating the double-jointed, tendon-driven revolute joint, decoupled tendon-driven wrist, and antibacklash mechanism.

The robot manipulator of the present invention is a microsurgical teleoperated robot with actuators located at an actuator base. The overall system architecture includes a slave robot manipulator coupled to an amplifier chassis which is coupled to a control chassis. The control chassis is coupled to a workstation with a graphical user interface. Components of the robot manipulator are categorized into a mechanical sub-system, an electronics sub-system, a servo-control sub-system, and a high-level software control sub-system.

The robot manipulator has six degrees of freedom and includes a torso connected to the actuator base (which rotates about a housing canister). The torso is also rotatably coupled to an arm. The arm comprises two double-jointed robot joints decoupled from each other and a three-axis wrist joint connected to an end effector. The double-jointed robot joints include an input link having a first keying drive component and an output link coupled to the input link and having a second keying drive component. The first keying drive component is constrained to rotate with respect to the second keying drive component, thereby defining an instantaneous center of rotation.

In addition, each double-jointed decoupled joint has a first passing drive component rotatable on the input link and coupled to the actuator of the actuator base. A second passing drive component rotatable on the output link is coupled to the first passing drive component. The first passing drive component rotates with respect to the second passing drive component about the instantaneous center of rotation. The pair of passing drive components are kinematically linked to the keying drive component through the instantaneous center of rotation so that each passing drive component of each joint is completely mechanically decoupled from the particular joint's motion. Further, any number of pairs of passing drive components can be used with each decoupled joint as long respective pairs of passing drive components rotate with respect to each other about the instantaneous center of rotation. Moreover, each joint can have an actuation drive component for actuating the particular joint.

The three axis wrist is connected to the end effector and has a tendon-driven system with three decoupled axes and zero backlash in two of the three axes. The wrist utilizes a dual universal drive component system to provide a three degree-of-freedom, singularity free, mechanically decoupled joint that operates in a full hemisphere of motion (up to 90 degrees in any direction).

The antibacklash geartrain is incorporated in the robot manipulator between the actuators at the actuator base and the device to be actuated, such as the output link of a particular joint. The antibacklash mechanism is a multiple stage device, not limited to any particular number of stages, utilizing a drivetrain system with drive components such as gears, belts, and/or cables. The antibacklash mechanism has two independent parallel transmission paths for each drivetrain. The drivetrains are mechanically coupled only at an input, such as the motor, and an output, such as an actuation pulley located on a particular joint. This system allows convenient preloading of all the stages simultaneously.

The advantages of the teleoperated microsurgical robot of the present invention is that it is extremely sensitive and small, has high dexterity, has double-jointed robot joints, has at least six degrees of freedom with all six axes completely mechanically decoupled, decoupled passed actuation and has zero backlash with convenient preload adjustment of all stages simultaneously.

The foregoing and still further features and advantages of the present invention as well as a more complete understanding thereof will be made apparent from a study of the following detailed description of the invention in connection with the accompanying drawings and appended claims .

Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

FIG. 1 illustrates an overall view of the robot manipulator of the present invention;

FIG. 2 illustrates a side view of the general decoupled robot joints of the present invention;

FIG. 3 illustrates a top view of FIG. 2;

FIG. 4 illustrates a top view of one embodiment of the decoupled joints with cable driven actuation;

FIG. 5 illustrates a side view of FIG. 4;

FIG. 6 illustrates a cut-away side view of FIG. 5;

FIG. 7 illustrates a cross sectional side view of the input link of FIG. 4;

FIG. 8 illustrates a cross sectional side view of the output link of FIG. 4;

FIG. 9 illustrates a 90 degree deflection of the robot arm connected to the decoupled joint of the present invention;

FIG. 10 illustrates a 180 degree deflection of the robot arm connected to the decoupled joint of the present invention;

FIG. 11 illustrates the robot wrist of the present invention;

FIG. 12A illustrates a side view of the antibacklash mechanism of the present invention;

FIG. 12B illustrates a front view of the antibacklash mechanism of the present invention;

FIG. 13 illustrates an overview of the interaction between the sub-systems of the robot manipulator of the present invention;

FIG. 14A illustrates a left side view of the mechanical sub-system of the robot manipulator of the present invention;

FIG. 14B illustrates a right side view of the mechanical sub-system of the robot manipulator of the present invention;

FIG. 15 is a block diagram illustrating the interaction of the high-level control software and servo-control sub-systems with the mechanical and electronic sub-systems of the present invention.

FIG. 16 is a block diagram illustrating an overview of the high-level software architecture;

FIG. 17 is a block diagram illustrating the details of the graphics user interface (GUI) software of the high-level software architecture;

FIG. 18 is a block diagram illustrating the states and their possible transitions in the real-time high-level software architecture;

FIG. 19 is the total set of computational modules used for the slave robot and their data flow paths;

FIG. 20 is the only active module in the idle state is the servo controller;

FIG. 21 is a block diagram illustrating the modules used in the manual joint space control state of the high-level software architecture;

FIG. 22 shows the active modules for autonomous joint control;

FIG. 23 is a block diagram illustrating manual Cartesian space control of the slave robot;

FIG. 24 shows the modules used in the autonomous Cartesian control state;

FIG. 25 illustrates the range of motion of the robot manipulator of the present invention.

In the following description of the preferred embodiment, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

FIG. 1 illustrates an overall view of a robot manipulator 8 of the present invention. In the preferred embodiment, the robot manipulator 8 has six degrees of freedom and includes an arm 10 with an end effector 12 coupled to a three-axis wrist joint 14, which is coupled to a forearm 16. The forearm 16 is coupled to a doubled-jointed elbow joint 18 for connecting an upper arm 20 to the forearm 16. The upper arm 20 is coupled to a double-jointed shoulder joint 22 for connecting a shoulder 24 to the upper arm 20. The shoulder 24 is coupled to a torso joint 26 which is coupled to an actuator base 28. The actuator base 28 contains electrical and mechanical components for controlling the movements of the robot 8. The forearm 16, upper arm 20, and shoulder 24 all preferably have housings in the form of cylindrical casings 30. The torso joint 26 rotates the arm 10 relative to the actuator base 28. The wrist joint 14 has three degrees of freedom and each joint (elbow 18, shoulder 22, and torso 26) has one degree of freedom.

The double-jointed robot joints 18 and 22 and the wrist joint 14 can be used in large automated environments, as well as micro automated environments, including microsurgical environments. The double-jointed robot joints 18 and 22 will be discussed in detail below in FIGS. 2-10 and the wrist joint will be discussed in detail below in FIG. 11. The robot manipulator is described in detail in FIGS. 12-26 below. Although the robot manipulator can be used in numerous environments, the preferred embodiment involves the use of the robot manipulator in a microsurgical environment.

FIG. 2 is a side view and general overview of a double-jointed, decoupled robot joint of the present invention. FIG. 3 illustrates a top view of FIG. 2. The double-jointed robot joint couples sections of the robot 8 of FIG. 1 together. Each double-jointed robot joint can have internal actuators, such as an internal actuation pulley/cable system (described in detail in FIGS. 4-8) coupled to external motors located at the actuator base 28 of FIG. 1 or internal motors in each joint (not shown) for actuating the particular joint or other joints of the robot.

The double-jointed robot joint of FIGS. 2 and 3 includes an input link 32 and an output link 34. The input link 32 is on the near side of the actuator base 28 while the output link 34 is on the far side of the actuator base 28 and is moveable relative to the input link 32. The input and output links 32, 34 are attached to each other via a pair of hinged side struts 36. The links 32, 34 pivot about pivot points 38 and 40 at the input link 32 and output link 34, respectively. These pivot points 38 and 40 define an input axis 42 and output axis 44, respectively.

An input keying drive component 46 and an output keying drive component 48 are centered on each respective hinged axis or pivot point 38 and 40 and are attached to each respective link 32 and 34 so that they are constrained to rotate with respect to each other. This constrained rotation between the input keying drive component 46 and the output keying drive component 48 defines an instantaneous center 49 of rotation between the two keying drive components 46 and 48. The keying drive components 46 and 48 can be fixed spur gears which mesh together or they can be fixed pulleys with wound cables as described in detail below.

In addition, each joint has an input passing drive component 50 rotatable about the pivot point 38 of the input link 32. The input passing drive component 50 is coupled to an actuator (not shown) at the actuator base 28 of FIG. 1 and to an output passing drive component 52. The output passing drive component 52 is rotatable about the pivot point 40 of the output link 34. The passing drive components 50 and 52 can be a spur gear system or a pulley system. In a pulley system, respective passing cables passing through each respective passing drive component would be included.

For example, a first passing cable 54, originating from another passing drive component in another joint or from the actuator base 28 of FIG. 1, travels from the input link 32, around the top of the input passing pulley 50, through the instantaneous center 49 of rotation, and then around the bottom of the output passing pulley 52. A second passing cable 56, originating from the same location as the first passing cable 54, travels from the input link 32, around the bottom of the input passing pulley 50, through the instantaneous center 49 of rotation, and then around the top of the output passing pulley 52. The passing cables 54, 56 can be actuated in a forward or reverse direction to actuate a particular joint in a desired direction.

This arrangement allows the input passing drive component 50 to rotate with respect to the output passing drive component 52 about the same instantaneous center 49 of rotation defined by the input and output keying drive components 46 and 48. Since the pair of passing drive components rotate about the same instantaneous center 49 of rotation as the keying drive components 46 and 48, the passing drive components 50 and 52 are kinematically decoupled from the joint's motion. This decoupling configuration allows the passing drive components 50 and 52 to actuate movement in other joints without affecting the motion of the particular joint.

Further, any number of pairs of passing drive components can be used with each joint as long as coupled pairs of passing drive components (input and output) rotate with respect to each other about the same instantaneous center of rotation defined by the keying drive components.

FIGS. 4-10 show a tendon-driven system of one embodiment of the double-jointed decoupled robot joints. FIG. 4 is a top view and FIG. 5 is side view of tendon-driven double-jointed decoupled robot joints. The joint of FIG. 4 is structurally similar to the joint of FIGS. 2 and 3 and includes an input link 60, an output link 62, hinged side struts 64, an input keying drive component 66, an output keying drive component 68, an instantaneous center 70 of rotation (shown in FIG. 6), input passing drive components 72, output passing drive components 74, and corresponding passing cables 76 and 78, respectively.

The functions of each element above has the same or similar functions as the related elements of FIGS. 2 and 3. However, the embodiment of FIGS. 4-10 is different in that it is a cable or tendon-driven system and further includes an actuation mechanism. Since the embodiment of FIGS. 4-10 is a cable or tendon-driven robot, the keying drive components 66 and 68 are pulleys with corresponding cables 80 and 82, respectively, which can be stainless steel cables. Also, FIGS. 4-10 further include actuation pulleys and cables within the particular joint for actuating the joint.

The input keying pulley 66 is fixed to the input link 60 and the output keying pulley 68 is fixed to the output link 62 on respective input and output axes 84 and 86. The input axis 84 is defined by a pivot point of the input keying pulley 66 on the input link 60. An output axis 86 is the counterpart to the input axis 84 and is defined by a pivot point of the output keying pulley 68 on the output link 62.

Referring to FIG. 6, two keying cables 88 and 90 are connected to the input link 60 and the output link 62, respectively. The keying cables 88 and 90 can also be connected directly to the keying pulleys 66 and 68, respectively. The first keying cable 88 is attached to a bottom portion of the input link 60 and winds around a top side of the input keying pulley 66, crosses to the output keying pulley 68, winds around a bottom side of the output keying pulley 68, and terminates on a top portion of the output link 62.

The second keying cable 90 is attached to a top portion of the input link 60 and winds around a bottom side of the input keying pulley 66, crosses to the output keying pulley 68, winds around a top side of the output keying pulley 68, and terminates on a bottom portion of the output link 62. The second keying cable 90 traverses a mirrored path of the first keying cable 88. If the cables are stainless steel, the cables 88 and 90 can be terminated with solder joints or crimp terminations. However, soldered terminations are preferred because they are easy to install, take up very little space, and do not inflict an initial stress concentration in the cable, assuming the solder joint is not flexed.

The keying pulleys are constrained to respective links similar to the keying drive component arrangement of FIGS. 2 and 3. Also, the keying pulleys 66 and 68 preferably have the same diameter, but this is not necessary. One feature of the present invention is that the keying cables 88 and 90 cross one another between the keying pulleys 66 and 68 as shown in FIG. 6 to define the instantaneous center 70 of rotation. The identical effect of having an instantaneous center of rotation can be achieved with spur gears which mesh together, in a similar manner as the keying drive components 46 and 48 of FIGS. 2 and 3. Although, keying spur gears would introduce backlash into the robot manipulator, backlash can be prevented in the tendon-driven system in accordance with the antibacklash system described in detail in FIG. 12. Thus, the present invention is preferably a tendon-driven system consisting of keying cables 88 and 90 and keying pulleys 66 and 68 instead of spur gears.

The passing or actuation cables can be actuated in a forward or reverse direction to actuate a particular joint in a desired direction. Each double-jointed robot joint has one degree of freedom. Each joint's rotation is dependant on the ratio of the keying pulleys' 66 and 68 diameters. For example, if both keying pulleys 66 and 68 have the same diameter, the angle that the output link 62 is moved relative to the input link 60 will be exactly twice the angle between the side struts 64 and each link 60 and 62. In other words, if the output link 62 is rotated 90.degree. to the input link 60, the side struts 64 will rotate 45.degree. to each link 60 and 62, as shown in FIG. 9. Likewise, the output link 62 can rotate up to 180.degree. at which point the side struts 64 will be at 90.degree. to each link 60 and 62, as shown in FIG. 10.

In order to achieve the maximum 180.degree. rotation, the distance between the input and output axes must be at least equal or greater than an effective diameter 92 of each links 60 and 62, as shown in FIG. 10. It is important to note that the 180.degree. range of motion is bidirectional, thus the full range of joint motion is 360.degree.. Alternatively, if the keying pulleys 66 and 68 have different diameters, other kinematic relationships can be achieved between the input link 60, output link 62, and side struts 64 without affecting other features of the robot.

FIGS. 7 and 8 are cross-sectional views through the input and output axes, respectively. The joint can be actuated by two input dual actuation pulleys 94 and 96. Each input dual actuation pulley 94 and 96 includes transmission pulleys 98 and 100 and connecting pulleys 102 and 104, respectively. The two input dual actuation pulleys 94 and 96 sandwich the input keying pulley 66 on the input axis 84 as shown in FIG. 7. The actuation pulleys 94 and 96 rotate independently of the input keying pulley 66.

Also, two output actuation pulleys 106 and 108 sandwich the output keying pulley 68 on the output axis 86 as shown in FIG. 8. Referring to both FIGS. 7 and 8, each of the connecting pulleys 102 and 104 have corresponding actuation cables 110 and 112 terminated to it. Also, the transmission pulleys 98 and 100 have transmission cables 114 and 116 coupled to the actuator base for actuating the pulleys 94 and 96.

Referring to FIGS. 6-8, the first actuation cable 110 can be terminated to a top side of the connecting pulley 102 of the first input actuation pulley 94 and the second actuation cable 112 can be terminated to a bottom side of the connecting pulley 104 of the second input actuation pulley 96. The first actuation cable 110 travels from the first input actuation pulley 94, winds around a top side of the first output actuation pulley 106, and terminates to a bottom side of the output link 62. The second actuation cable 112 travels from the second input actuation pulley 96, winds around a bottom side of the second output actuation pulley 108, and terminates to a top side of the output link 62. Connecting pulleys 102 and 104 can have the same diameters of actuation pulleys 106 and 108, but this is not necessary. The transmission cables 114 and 116 are coupled to the transmission pulleys 98 and 100 of the input actuation pulleys 94 and 96, respectively, to actuate the output actuation pulleys 106 and 108 through the connecting pulleys 102 and 104 via the actuation cables 110 and 112.

Motors typically operate at high speeds with low torque. However, actuation of the robot joints by motors located at the actuator base typically requires the motor to have low speed with high torque. Gear reduction at the joints resolves this problem by reducing a motor's high speed with low torque to low speed with high torque. The actuation pulleys 106 and 108 can incorporate gear reduction at the joints. For example, if the connecting pulleys 102 and 104 of the input actuation pulleys 94 and 96 have the same diameters, and the output actuation pulleys 106 and 108 have the same diameters, and the connecting pulleys 102 and 104 have different diameters from the output actuation pulleys 106 and 108, a resultant gear reduction ratio for the particular joint will be created.

The resultant gear reduction ratio between the input actuation pulleys 94 and 96 and the output actuation pulleys 106 and 108 is given by:

where d.sub.o is the diameter of the output actuation pulleys 106 and 108 and d.sub.i is the diameter of the connecting pulleys 102 and 104 of the input actuation pulleys 94 and 96. This relationship also assumes that both keying pulleys 66 and 68 have the same diameter. Therefore, if the ratio of the diameters of the output actuation pulleys 106 and 108 to the diameters of the connecting pulleys 102 and 104 of the input actuation pulley is 3:1, the resultant gear ratio for the joint will be 2:1 (the output actuation pulley revolves once for every two revolutions of the input actuation pulley).

Also, gear reduction in close proximity to the joint increases stiffness. Typically, stiffness of a tendon-driven mechanism is directly related to the spring constant of the cable or tendon. Thus, high stiffness is achieved by a high spring constant. In addition, the spring constant is inversely proportional to the cable or tendon length. Hence, short cable paths will yield a high spring constant which in turn produces high stiffness. Relatively high stiffness can be achieved with relatively larger diameter cables or tendons.

A resultant gear reduction ratio of 2:1 will produce a short actuation cable length and relatively high stiffness in the transmission cables 114 and 116. The stiffness is related to the resultant gear ratio by a factor of the resultant gear ratio squared. Thus, the diameter of the transmission cables 114 and 116 can be small, thereby enabling small bend radii and more compact packaging.

Similar to the keying drive components of FIGS. 2 and 3, the actuation pulleys/cables can be a spur gear arrangement which would further increase stiffness. However, unlike the keying drive components 48 and 50 of FIGS. 2 and 3, the use of spur gears with dual transmission path cables 114 and 116 (two transmission paths from the actuator) for the actuation pulleys/cables would not induce backlash into the robot manipulator system. This is because the dual transmission paths are tied together at the actuator of the actuator base of FIG. 1 and the output link only. For example, as a result of the actuation pulley arrangement, the tension in the transmission paths defined by the transmission cables 114 and 116 will automatically preload the actuation cables 110 and 112. Further, if the actuation cables 110 and 112 were replaced with a spur gear train, preloading would likewise occur due to this dual transmission path arrangement.

Referring to FIGS. 4, 7, and 8, the joint of the robot manipulator of the present invention also includes an idler pulley/passing cable system. Passing cables 76 and 78 of passing pulleys 72 and 74 pass through a particular joint to actuate other joints of the robot manipulator, thereby mechanically decoupling the particular joint's motion from the other joints' motion. The passing cables 76 and 78 pass through the joint over input idler pulleys 120 and output 126 idler pulleys. The input idler pulleys 72 and 120 and output idler pulleys 74 and 126 rotate freely about the input axis 84 and output axis 86, respectively. The robot can have an unlimited number of idler pulleys and corresponding passing cables.

In order effectuate complete decoupling from the particular joint's motion to other joints' motion, two constraints must be met. First, for a given passing cable 78, corresponding input 72 and output 74 idler pulleys must have the same diameter ratio as that of the input 66 and output 68 keying pulleys, respectively. For example, if the keying pulleys 66 and 68 have equal diameters (1:1 ratio), the idler pulleys 72 and 74 for a corresponding passing cable 78 must have equal diameters (1:1 ratio), or coupling will occur. The absolute size of the idler pulleys 72 and 74 have no consequence.

The second constraint is that the passing cables 78 must follow the same path as the keying cables 88 and 90 and define the same instantaneous center 70 of rotation as the keying cables 88 and 90. Namely, the passing cables 78 must cross from the idler pulleys 72 on input axis 84 to the idler pulleys 74 on the output axis 86 at the same location the keying cables 88 and 90 cross. As a result, as the joint rotates, the amount of passing cable 78 that is wound onto one idler pulley 72 on the input axis 84 equals the amount of passing cable 78 that is unwound off the idler pulley 74 on the output axis 86.

Also, since the keying pulleys 66 and 68 do not rotate relative to their corresponding links 60 and 62, and the passing cables 78 are cabled via the same scheme as the keying cables 88 and 90, the idler pulleys 72 and 74 are stationary relative to the links 60 and 62. This produces complete decoupling of the joint and the passing cables 78. Further, there is no restriction (other than physical packaging) to the amount of passing cables 78 that can be passed through a particular joint.

In addition, the passing cables 78 path lengths are constant throughout the entire range of travel. Depending on the idler pulley 72 and 74 diameters, it may be necessary to confine the passing cables 78 to prevent lifting off their corresponding idler pulleys 72 and 74. Confinement can be accomplished by wrapping the passing cables 78 completely around the corresponding idler pulleys 72 and 74, or by adding idler pulleys (not shown) inside the links 60 and 62.

If adjacent joints are to be moved perpendicular to one another (the output link of one joint attaches to the input link of another joint such that the resulting output and input axes are perpendicular), two additional constraints on the passing cables 78 are necessary. The first constraint is that two sets of independent idler pulleys, each consisting of an input idler pulley and an output idler pulley, are needed for each path of cable. The second constraint is that the passing cables 78 must be arranged in such a way that they will align to idler pulleys on the next perpendicular joint. In other words, all the passing cables 78 on their respective idler pulleys of a particular joint must align smoothly onto the idler pulleys of a connecting joint.

For example, FIGS. 7 and 8 illustrate one embodiment to achieve smooth alignment. A first set of passing cables 78 are arranged on incrementally smaller idler pulleys to form a 45.degree. imaginary line 132 on one side of the keying pulley. Likewise, a second set of passing cables 76 are symmetrically arranged on incrementally smaller idler pulleys about the joint's center to form a 45.degree. imaginary line 130 on an opposite side of the keying pulley. As a result, the joint can be rotated at 90.degree. increments and still align with the previous joint. Other angular increments can be achieved by positioning the passing cables in other configurations as long as all the passing cables on their respective idler pulleys of a particular joint are aligned smoothly onto the idler pulleys of a connecting joint.

FIG. 11 illustrates the robot wrist of the present invention. The robot wrist 134 includes an input assembly 135A, an output assembly 135B, an inner housing 138, an outer housing 139, a middle housing 140, an input shaft 141, an output shaft 142, and a linkage assembly 143. The input and output assemblies 135A, 135B define a dual universal joint system that provides a three degree of freedom, singularity free, mechanically decoupled joint that operates in a full hemisphere of motion (up to 90 degrees in any direction).

The input assembly 135A includes an input outer universal 136A and an input inner universal 137A. Likewise, the output assembly 135B includes output outer and inner universals 136B, 137B which are counterparts of the input universals 136A, 137A. Each input universal 136A, 137A is symmetrical to its output universal 136B, 137B counterpart, respectively. The corresponding counterparts, defined by the symmetrical arrangement, are rotatably coupled to each other. The input and output universals are preferably coupled to each other by a tendon or cable arrangement (not shown) along a longitudinal axis parallel to an x axis.

Specifically, the universals are U-shaped and have arcuate faces on opposing input and output sides. The U-shaped configuration of the outer universals 136A, 136B define a respective slot 136A', 136B' for slidably receiving the input and output shafts 141, 142, respectively. The outer universals 136A, 136B terminate in a pair of the arcuate faces 136A", 136B". The arcuate faces 136A", 136B" have holes (not shown) for mounting the cables (not shown) between respective input and output outer universals 136A, 136B. Also, each inner universal 137A, 137B terminates in a pair of the arcuate faces (not shown) in a similar manner. The arcuate faces of the inner universals also have holes (not shown) for mounting the cables (not shown) between respective input and output inner universals 137A, 137B. The arcuate faces of the input universals 136A, 137A rotate on corresponding arcuate faces of the output universals 136B, 137B to define an instantaneous center C of rotation.

The tendon or cable coupling arrangement of each set of universals is functionally similar to the keying pulley/cable arrangement of FIGS. 4-8. For example, the input universals 136A, 137A are fixed to an input origin A and the output universals 136B, 137B are fixed to an output origin B. Each input and output origin, A, B, consists of two orthogonal axes parallel to the y and z axes. A set of outer universal cables (not shown) couples the input outer universal 136A to the output outer universal 136B. Likewise, a set of inner universal cables (not shown) couples the input inner universal 137A to the output inner universal 137B. The outer universal set of cables is aligned perpendicularly to the inner universal set of cables. The outer and inner universal cables are preloaded (in accordance with the discussion below in FIG. 12) in order to eliminate backlash in the y and z axes. The outer and inner universal cables are preferably steel cables.

Also, each pair of coupled universals rotate with respect to one another about the defined instantaneous center C of rotation, similar to the input and output keying pulley arrangement of FIGS. 4-8. However, the instantaneous center C of FIG. 11 has two axes of rotation, namely the y and z axes, unlike the instantaneous center 70 of FIGS. 4-8 which has only one axis or rotation. The rotational movements of the universals about their respective axes will be discussed below in detail.

The inner housing 138 has two halves, each being defined by two pairs of symmetrical crowns 138', 138". Each crown 138', 138" has four holes (not shown) centered on respective input and output origins A, B. The input universals 136A, 137A are rotatably mounted in the holes in each crown 138', 138" on the input origin A via bearings (not shown). The output universals 136B, 137B are rotatably mounted in the holes in each crown 138', 138" on the output origin B via bearings. When mounted in the inner housing 138, the input universals 136A, 137A rotate while constrained to the input origin A, and the output universals 136B, 137B rotate while constrained to the output origin B.

The output shaft 142 is rotatably coupled to the output inner universal 137B at the origin point B at the inner housing 138. The input shaft 141 is rotatably coupled to the input inner universal 136A at the input origin point A at the inner housing 138. This arrangement enables rotation of the input and output shafts 141, 142 about the y axis. The input and output shafts 141, 142 are coupled to the input and output inner universals 137A, 137B, respectively, with bearings (not shown). The inner universals 137A, 137B are rotatably coupled to the inner housing 138 at the z axis.

The output shaft 142 slides within the slot defined by the U-shaped configuration of the output outer universal 136B along the y axis. The input shaft 141 slides within the slot defined by the U-shaped configuration of the input outer universal 136A along y axis. This arrangement enables the input shaft 141 to rotate around the z axis and move the output inner universal 137B. Rotation of output shaft 142 around the y axis results in no movement of the output inner universal 137B. However, rotation of output shaft 142 around the y axis results in movement around the y axis of the output outer universal 136B.

The outer housing 139 is rotatably coupled to the middle housing 140 via a bearing assembly (not shown). The middle housing 140 is rotatably coupled to the inner housing 138 via a second bearing assembly (not shown). This enables rotation about the x axis between both the inner housing 138 and the middle housing 140 and the outer housing 139 and the middle housing 140. Thus, middle housing 140 rotates relative to inner housing 138 and outer housing 139.

The bearing assemblies are concentric and are nested inside one another. This concentric configuration allows both bearings to be assembled simultaneously, for easy assembly at any scale. Thus, the rotation of the input shaft 141 is transmitted through the housings and the universals to the output shaft 142 so that bidirectional rotation of the input shaft 141 results in bidirectional rotation of the output shaft 142. An actuator (not shown), which can be located in the forearm 16, rotates the input shaft 141 about the x axis (roll axis).

The linkage assembly 143 provides movement about the y and z axes of the output shaft 142 simultaneously. The linkage assembly 143 includes four links 144a, 144b, 147a, 147b, each having hooked ends (not shown). The links 144a, 144b are pivotally coupled about the y and z axes by a ball socket (not shown) at corresponding link attachments 145a, 145b, via the hooked ends. The link attachments 145a and 145b are rigidly attached to the middle housing 140. The links 147a and 147b are attached in a similar manner to the outer housing 139. Movement of the links 144a, 144b in the general direction of arrows 146 causes rotational movement of the inner housing 138 about the z axis of the wrist 134.

Movement of the links 147a, 147b in the general direction of arrows 146 results in rotational movement of the inner housing 138 about the y axis of the wrist 134. Any displacement of inner housing 138 relative to input shaft 141 is mirrored on output shaft 142 relative to inner housing 138. Hence, there is a 2:1 amplification of movement of output shaft 142 over inner housing 138. This enables a full hemisphere of motion.

The links 144a, 144b, 147a, and 147b are confined to move in the x-y plane. Each link 144a, 144b, 147a, 147b is connected to a corresponding linear carriage (not shown). The linear carriages are located within the forearm 16 and are fully symmetrical. Each linear carriage moves the corresponding link attached to it in a back and forth direction as indicated by arrow 146. The linear carriages are coupled and actuated by actuators (not shown) located in the forearm 16 or base. The linear carriages include a 2:1 force multiplier that counteracts a 2:1 force divider inherent to the kinematics of the system. Inclusion of the 2:1 force multiplier increases the stiffness of the wrist 134 by a factor of four. Corresponding linear carriages actuate links 144a and 147a in opposition to links 144b and 147b in order to actuate the z and y axes, respectively. Also, the linkages inherently preload one another, thereby eliminating their source of backlash.

The wrist 134 of the present invention provides movement about the x, y, and z axes simultaneously. The wrist 134 provides up to 180 degrees of motion about the y and z axes for the output shaft 142. The input shaft 141 is bidirectionally rotatable 360 degrees simultaneous with movement about the y and z axes. Thus, the work envelope of the wrist is a full hemisphere of motion.

An end cap 148 guides and positions the input shaft 141 and links 144a, 144b, 147a, 147b within the forearm 16. The input shaft 141 can be rotated inside the forearm within a ring bearing (not shown). The input shaft 141 can be coupled to a pulley assembly (not shown) within the forearm 16. This pulley assembly can be coupled to an actuator (not shown) located either within the forearm 16 or in the actuator base of FIG. 1. The actuator would transmit movement to the pulley assembly in order to move the input shaft 141.

The output shaft 142 has an end effector 149 for holding all types of tools (not shown). Circuitry can be routed through the arm to provide power to tools coupled to the end effector 149 that require electrical or pneumatic power. Also, the tendon or cable-driven arrangement (in accordance with the antibacklash scheme described below in detail) negates backlash in two of the three axes. In addition, the wrist 134 of the present invention has low stiction, high stiffness, and high strength-to-weight ratio.

For microsurgical applications, the wrist 134 can be approximately one inch in diameter, weigh approximately three ounces, and have a payload of about three inch-pounds. This allows the wrist 134 of the present invention to sustain a high work volume, while being lightweight, compact, and miniature in size.

FIG. 12 illustrates the antibacklash mechanism of the present invention incorporated in the actuator base 28 of FIG. 1. The antibacklash mechanism 154 can be used with the joints of FIGS. 2-11 to overcome the problems of conventional antibacklash schemes. The antibacklash mechanism of the present invention is incorporated in the robot manipulator between the actuators, such as motors 156 at the actuator base, and an output 157 or the device to be actuated, such as the output link 62 of FIG. 5 of a particular joint.

The antibacklash mechanism 154 is a multiple stage device not limited to any particular number of stages. The antibacklash mechanism 154 utilizes a drivetrain system 158 with drive components such as gears, belts, and/or cables. FIG. 12 illustrates the antibacklash mechanism 154 having three stages 160, 162, and 164 with a pair of gears 166 and 168 and 170 and 172 at the first 160 and second stages 162, respectively.

Two independent transmission paths, defined by the gears 166, 182, 170, and 168, 184, 172, are formed as two identical geartrains in parallel for each drive. For example, a given joint's motor 156 would have one spur pinion 178 on its shaft 180 which would engage with two independent gears 166 and 168 of the first stage 160. The two independent transmission paths are mechanically coupled only at an input, such as the motor 156, and an output, such as an actuation pulley located on a particular joint.

The first and second stage gears 166 and 168 are free to rotate independent of each other, respectively. The pinion 178 on the motor 156 at the input drives both of the independent first stage gears 166 and 168 to complete a first stage 160 reduction. Two second stage 162 pinions 182 and 184 are rigidly attached to each of the first stage gears 166 and 168, for example on a gear shaft. The two second stage 162 pinions 182 and 184 drive the two independent second stage gears 170 and 172, thus completing the second stage 162 reduction (additional gear stages can be used).

Each of the second stage gears 170 and 172 drives an independent actuation drum or tendon spool 186 and 188 on a common shaft. Two cables 190 and 192, each attached to one of the spools 188 and 186, terminate on the output, which can be for example the actuation pulleys 106 and 108 of FIGS. 4-11. The cables 190 and 192 actuate the particular joint, thereby completing the third stage 164 and completing a dual drive system 174 and 176. Thus, with this arrangement, the only common points between the dual drive system 174 and 176 are at an origination at the input 156 (i.e. the motor 156) and the termination at the output 157 (i.e. the actuation pulleys 106 and 108 at the joint).

This dual drive arrangement allows for cable tensioning, eliminates backlash, and maximizes mechanical efficiency. Hence, from this feature, one of the advantages of the antibacklash mechanism of the present invention is convenient preloading of the gear stages 160, 162, and 164 to eliminate backlash. The dual drivetrain system is preloaded by first disengaging the motor 156 from the first stage 160 gears 166 and 168 so that the two gears 166 and 168 can be counter-rotated relative to one another. This counter-relation preloads the cables 190 and 192 to the desired tension. This rotation passes from stage to stage until all the cables become tensioned. When the desired preload tension is achieved, the motor 156 is simply re-engaged and the preload is locked.

Also, by disengaging the motor 156, the two drivetrains 174 and 176 can be reloaded relative to one another if necessary. In addition, since the preload is passed from one stage to the next stage, the value of the preload is proportional to any gear ratios between the stages 160, 162, and 164. Moreover, an optimum preload is achieved automatically in all the stages 160, 162, and 164 simultaneously because the preloading is passed via the gearing from the input motor 156 to the output 157. This preload is transmitted throughout the entire dual drivetrains 174 and 176, thereby eliminating backlash in all drivetrains. Further, the preload is transmitted proportionately to the gear ratio for each stage, to optimize the preload for maximum mechanical efficiency, unlike the prior art where each stage is independently preloaded.

Thus, the antibacklash mechanism 154 of the present invention provides geartrains with zero backlash, convenient preload adjustment, preload adjustment of all stages simultaneously, and stage preload proportional to stage ratio to achieve maximum mechanical efficiency. Also, since the required gear ratio for the microsurgical robot manipulator described above is between the actuator and each joint, the antibacklash mechanism of FIG. 12 is global for all the joints and encompasses a wide range of ratios. In addition, for the cable-driven robot manipulator, the cable preload is adjustable to accommodate stretching over time.

FIG. 13 is the preferred embodiment illustrating an overview of the sub-systems of the present invention. The system architecture of the preferred embodiment of the present invention includes a slave robot manipulator 8 coupled to an amplifier chassis 202 which is coupled to a control chassis 204, such as a VME chassis. The VME chassis 204 is coupled to a workstation 206, such as a UNIX workstation via standard twisted pair Ethernet 208. The UNIX workstation 206 has a user interface 210 which can have a keyboard or other six degrees of freedom input device 212 for ease of control by a user.

Components of the robot manipulator are categorized into four sub-systems. The subsystems include the mechanical sub-system, the electronics sub-system, the servo-control sub-system, and the high-level software control sub-system. These sub-systems are described in detail in sections that follow.

Mechanical Sub-system:

FIG. 14 is the preferred mechanical sub-system of the microsurgical robot manipulator 8 of the present invention. The mechanical sub-system consists of motors 220 with shafts 222, encoders (not shown), gears 224, pinions 226, bearings (not shown), cable spools (not shown) and other conventional components. The arm 10 of the robot 8 has tendons or cables, pulleys, and linkages located in the arm 10 and joints 14, 18, and 22 of the robot 8. These components mechanically operate the end effector 12 of the robot manipulator under computer control.

The robot manipulator 8 is preferably a compact six degree of freedom tendon-driven robot having very precise relative positioning capability (down to 10 microns) as well as a very high work volume. Physically, the arm 10 measures 2.5 cm. in diameter and is 24.6 cm long from the actuator base 28 to a tip of the end effector 12. The arm 10 is mounted to the actuator base 28 which can be a cylindrical base housing measuring 12.0 cm in diameter by 18.0 cm long. Also, the double-jointed decoupled cable or tendon-driven joints described in FIGS. 4-10 are used in the microsurgical robot manipulator 8. As shown in FIGS. 4-10, the joints 18 and 22 have very high ranges of motion, are double-jointed, and can pass any number of tendons through which are completely mechanically decoupled from the particular joint's motion.

Each degree of freedom of the robot is actuated by its own motor, such as a D.C. brushless motor encapsulated inside a sterile housing. Thus, there are six motors 220 (six degrees of freedom), three for the wrist joint 14, one for elbow joint 18, one for the shoulder joint 22, and one for the torso joint 26, which rotates the shoulder 24 about the actuator 28 or torso. The motors 220 are coupled to the gears 224 directly or via the pinions 226 for operating the gears 224. Preferably, the gears 224 and pinions are spur gears to define spur drivetrains. Although the number of gears 224 and pinions 226 to be used can vary with different design considerations, motor 220, pinion 226, and gear 224 configurations of the present invention are preferably in accordance with the novel antibacklash system described in detail in FIG. 12 above.

Each motor 220 is equipped with an optical encoder (not shown) on its shaft 222 for position sensing. The optical encoders preferably have 512 lines per revolution and produce outputs of 2048 counts per revolution. Since the smallest incremental movement during microsurgery is approximately 10 microns, 10 encoder counts is the minimum desirable incremental movement. As a result, one encoder count corresponds to one micron movement at the tip of the end effector 12. Based on the above dimensions and geometry of the preferred robot arm 10, the minimum required gear ratio for the wrist joint 14 is approximately 60:1, 300:1 for the elbow joint 18, and approximately 550:1 for both the torso 26 and shoulder 22 joints.

The gear reduction based on the tendons for each joint can be accomplished as described above in FIGS. 4-8. Preferably, the gear reduction is approximately 2.5:1 in the torso joint 26, wrist pitch, and wrist yaw axes (see FIG. 11), and approximately 1.5:1 in the shoulder 22 and elbow 18 joints, and the wrist roll axes (see FIG. 11). In addition, the robot has multi-stage spur drivetrain gear reductions based on the multi-stage gearing arrangement in the antibacklash scheme of FIG. 12 described above in detail.

The wrist pitch, yaw, and roll axes all have two-stage spur reductions of approximately 37:1, making the total reduction ratios approximately 92:1 (2.5 tendon gear reduction multiplied by 37 multi-stage gear reduction) for the wrist pitch and wrist yaw axes and approximately 60:1 (1.5 tendon gear reduction multiplied by 37 multi-stage gear reduction) for the roll axis. Also, the torso 26 and elbow 18 joints all have three-stage spur reductions of about 269:1, whereas the shoulder joint 22 has a three-stage reduction of about 411:1. The resulting total reduction ratios are approximately 667:1, 614:1, and 370:1 for the torso 26, shoulder 22, and elbow joints 18, respectively.

The microsurgical robot 8 of the present invention can be autoclaved for sterilization. Since the motors 220 and optical encoders are not capable of surviving such an environment, these components are removably attached within the actuator base 28. The motors 220 and optical encoders can be removed prior to sterilization and reinstalled afterwards. The motors 220 are removably attached on two mounting blocks 230 within the actuator base 28 on alignment pins (not shown). Each mounting block 230 contains three motors. The motors 220 are coupled to an electrical power source (not shown) via an electrical connector (not shown). The housing of the actuator base 28 tightly encloses the base 28 with screw mounts (not shown) or quick-release latches (not shown).

The joints 14, 18, and 22 of the microsurgical robot require high stiffness. Thus, relatively larger diameter tendon cables with short path lengths are used as described in FIGS. 4-8 above. Also, low stiction (stick/slip characteristic) is needed to achieve precise motions, especially since the optical encoder position sensors are in the robot's 8 base 28. Low stiction is accomplished by using precision ball bearings (not shown) in every rotating location, such as in all of the pulleys, joint axes, and drive shafts, to eliminate metal-to-metal sliding contact.

Servo-control and High-level Software Sub-systems:

FIG. 15 is a block diagram illustrating the interaction of the servo-control sub-system 300 and the high-level software sub-system 302 with the mechanical and electronic sub-systems 304, 306 of the present invention. The servo-control sub-system 300 is partly hardware and partly software. Referring to FIG. 15 with FIG. 13, the relevant hardware components of the servo-control sub-system are amplifier cards (not shown) within the amplifier box 202, and controller boards (not shown), which can be Delta Tau Data Systems, Inc.'s PMAC board and two MVMEP167 boards, Proc0 and Proc1, on the VME chassis 204.

Software runs under an operating environment, such as VxWorks operating environment, on the MVME167 boards of the VME chassis 204 to perform certain functions. These functions include setting-up control parameters and running a servo-loop on the PMAC board to control the six motors 220, implementing communication between the MVME167 and PMAC boards, initializing the servo-control system and communicating with the electronics sub-system, and communicating with a high-level software sub-system. The high-level software sub-system resides on the UNIX workstation 206 and on the Proc0 board on the VME chassis 204. The high-level software sub-system 302 is connected to the user interface 210 and controls initialization of the software and hardware. Also, a communication system 310, which can be based on the UNIX socket protocol or Real-time Innovation, Inc.'s Network Data Delivery System (NDDS), connects the UNIX host to Proc0. This high-level software sub-system 302 implements a number of demonstration modes 312 of robot control and computes forward and inverse kinematics and desired joint positions.

A first servo-control software module 314 is implemented on Proc1, is coupled to the high-level software through the backplane of the VME chassis with the use of shared memory between Proc0 and Proc1. The first module 314 configures and downloads PMAC software, accepts the desired joint positions from the high-level software and communicates these positions to the PMAC board, and reads the actual joint positions and sends these positions to the high-level software. Also, a second module 316 of the servo-control sub-system performs joint servo-control for all the joints based on the reading of the actual joint positions.

The electronics sub-system 306 is coupled to the servo-control sub-system 300 and will be discussed below. The mechanical sub-system 304 is coupled to the electronics sub-system 306 and has a mode 320 which moves robot joints according to voltage commands from the electronics sub-system and returns encoder readings to the electronics subsystem.

Robot Kinematic Algorithms

The present invention uses kinematic algorithms for computation of the forward and inverse kinematics of the robot. Kinematic algorithms are described in U.S. Pat. No. 5,303,384, the disclosure of which is incorporated by reference in its entirety. The forward kinematics computation refers to the determination of the tip position and orientation given known joint angle positions of the robot. The inverse kinematics is the determination of the joint angle positions given a desired tip position and orientation.

Specifically, the robot is modeled as a 10-joint serial linkage due to the unique shoulder and elbow joint design that has two points of rotation and the wrist design that also has a double rotation transformation similar to a universal joint for both the y and z axes degrees of freedom. There are a total of 10 transformation matrices, each mapping a coordinate frame from a base coordinate to the first joint, from each succeeding joint to the next, and finally to the tip of the robot. Since the robot has three degrees of freedom in the decoupled joints (torso, shoulder and elbow joints) and three degrees of freedom in the wrist joint, there are a total of 10 transformations.

The forward kinematic algorithm computes an attitude matrix of a coordinate system attached to the tip of the manipulator, as well as the location of the tip. The tip is defined as a distance 1(-1) away from the base of the output shaft 142 of FIG. 11, measured along the direction of the output shaft 142. The algorithm starts with pre-defined equations that are functions of joint angles of the robot for all elements of the 10 matrices. The forward kinematics starts with computing values of the elements of the matrices given current positions of the joint angles of the robot. Next, a loop is executed that determines the position and orientation of each succeeding joint coordinate frame. Quantitatively, the steps taken in the computation of the forward kinematics are:

Step 1:

Compute A(k) matrix elements given robot joint angles

Step 2:

Initialize the matrix S and the vector r, where: S=U; and r=0

Step 3:

Perform the following computation ##EQU1## where S is a 3 by 3 matrix that accumulates the new orientation of the joint coordinate frame, r is a 3 by 1 vector that accumulates the position of the joint coordinate frame in a base referenced coordinate frame, U is a 3 by 3 unit matrix, z is the 3 by 1 vector with elements {0, 0, 1}, l(k) is the link length between joint k and joint k-1, and A*(k) is the coordinate transformation matrix of the k-th joint. The derivation of the A*(k) matrices for the torso, shoulder, elbow and wrist roll joints is trivial. The pitch and yaw joints, however, require a non-linear transformation from the actuator position to the modeled joint angle. A closed form method is derived for this transformation based on the measured pitch and yaw actuator positions.

The inverse kinematics is computed by solving the following equation:

where w is the modeled joint displacement vector, v is the tip displacement vector and J is the Jacobian matrix. The vector v is known and it is desired to determine the vector w. The computation of the of the vector w is performed with the following algorithm.

Step 1:

Compute P(k) matrix elements given the robot joint angles

Step 2:

Set-up H(k) vectors

Step 3:

Transform v to a tip based coordinate frame

Step 4:

Perform the following computation ##EQU2## Step 5:

Perform the LU decomposition of the matrix J and then perform back substitution with the vector v to determine the vector w. In the computation above, P(k) are 6 by 6 transition matrices for each joint, H(k) are 6 by 1 vectors indicating the axis of rotation of the respective joint, V is a 6 by 1 temporary accumulation vector, T is a temporary 6 by 6 matrix and J is the 6 by 6 Jacobian matrix of the robot. The pitch and yaw axes joint displacements then need to be transformed to actuator joint displacements through a non-linear transformation. The conversion of the remaining joints to actuator velocities involve a linear transformation.

High-level Software Sub-system:

FIG. 16 is a block diagram illustrating an overview of the high-level software architecture. The high-level software has two components, graphics user interface software 322 and real-time kinematic and control software 324. The graphics user interface software 322 produces a graphics user interface (GUI) residing on the Unix host machine 206. The GUI interacts with the user and communicates user input to the MVME167 Proc0 board 312 through the socket interface. The UNIX workstation 206 is coupled to the MVME167 Proc0 board in the VME chassis through, for example, an Ethernet connection, as described above in FIG. 15. The real-time kinematic and control software 324 is implemented on the MVME167 Proc0 board 312.

Specifically, the GUI displays buttons and sliders that the user controls using an input device, such as a mouse. The two components 322, 324 have input and ouput communication channels implemented for message passing between the two components 322, 324. The software could be, for example, using the UNIX socket utility or Real-time Innovation, Inc.'s NDDS.

The real-time kinematic control software 324 of the high-level control software runs on the MVME167 Proc0 board 312 in the VME chassis and receives user commands input to the GUI software module 322 in real-time. Also, the real-time kinematic control software 324 switches control of the robot through a number of modes of operation. These modes of operation include manual joint control, automatic joint control, manual Cartesian control, and automatic Cartesian control. In all of these modes, servo control functions are called from the real-time software to control the robot.

A servo-control software module 326 runs on the MVME167 Proc1 board 314 in the VME chassis. The servo-control software module 326 processes functions called by the high-level software, performs initialization of servo-control boards, sends desired joint positions to the PMAC servo-controller, reads encoder positions from PMAC servo-controlled board, and sends the information back to the high-level software. A servo-controller 328 resident on the PMAC boards 316 performs servo-control of individual joints of the robot according to parameters set by the servo-control software module. It should be noted that the servo-control software module and the servo-controller on the PMAC boards can have shared memory through the VME backplane.

FIG. 17 is a block diagram illustrating the details of the GUI software 322 of the high-level software architecture. The GUI software 322 can be implemented, for example, using X Windows/Motif and Tcl/Tk or the Widget creation libraries (Wcl).

In an initialization procedure 330, the program first establishes the communication channel to the software running on the MVME167 Proc0 board for sending user commands to the control system. Next, the parameters within the program are initialized and a main display window 332 is displayed on the screen of the UNIX workstation. The display window 332 can have a graphics menu with user selections. The user's selection is then read 334 by the GUI software. The selections include a manual joint control command 336, a autonomous joint control command 338, a manual Cartesian control command 340, a autonomous Cartesian control command 342, and an exit or stop command 344 to terminate the session. Each selection for robot control results in a procedure being executed.

The manual joint control command 336 allows joint space control of the robot manually with the mouse input device on the UNIX workstation. The software reads 346 user input for the manual joint control command 336. The user is able to move 348 each joint in steps either incrementing or decrementing the joint position by clicking on appropriate buttons of the new display. The step size is scalable using the sliders on the display. The joint space control can have its own window on the display.

The autonomous joint control command 338 implements a demonstration mode to show the robot exercising its joints. Upon selection of the autonomous joint control command from the main display window, a new window appears on the display. User input is then read 350 by the software. The user can select 352 one or more joints to be exercised. Also, each of the selected joints can be moved in a sinusoidal motion. The frequency of the motion is different for each of the joints. In addition, the user can stop the motion at any time. The user can also return to the main menu window at any time.

The manual Cartesian control command 340 allows the user to control the robot in Cartesian space. Upon selection of the manual Cartesian control command from the main display window, a new window appears on the display. User input is then read 354 by the software. The user selects Cartesian coordinates 356 to incrementally or decrementally move the robot tip linearly along X, Y, and Z axes and to rotate the robot tip about the X, Y, and Z axes. The input is communicated to the software through an input device, such a mouse or a 6 degrees-of-freedom joystick or a spaceball (6 degrees-of-freedom spaceball). A slider on the display is used to change the motion scaling of the robot.

The autonomous Cartesian control command 342 is a demonstration mode for showing robot movement autonomously in Cartesian space. Upon selection of the autonomous Cartesian control command from the main display window, a new window appears on the display. User input is then read 358 by the software. The user selects Cartesian coordinates 360 in one or more degrees-of-freedom for motion along the x, y, and z axes, and to rotate the robot tip about the x, y, and z axes. The robot can be set into sinusoidal motion for the selected degrees-of-freedom. The user can stop 344 the motion at any time. The user can also return to the main menu window 332 at any time.

There are two components to the real-time software. The components include a state transition controller (described in FIG. 18 below) and computation executions (described in FIGS. 19-24 below). These components may be implemented in a programming language, for example, C or C++ or more easily with a real-time software development environment, such as, Real-time Innovation Inc.'s Control Shell.

FIG. 18 is a block diagram illustrating states and their possible transitions of the state transition controller component of the real-time high-level software. The states implemented in the control of the slave robot are: an idle state 362, a manual joint control state 364, an autonomous joint control state 366, a manual Cartesian control state 368, and an autonomous Cartesian control state 370. When the system is initialized 363, the system returns to the idle state 362. Within each state, changes 372 can be made to accommodate a user's particular input. Transitions from one state to another are performed in response to messages from the GUI 322 of FIG. 16. For example, transitions may cause the system to change state or return to the same state. A state corresponds to a subset of software computational modules used to perform the computations for the state.

FIG. 19 is a block diagram illustrating a total set of computational modules of the computation execution component used for the slave robot and their data flow paths. State transitions between states cause a change in the data flow paths and the use of a different set of computational modules to be executed. State transitions back to the start state cause a change in the parameters of modules used in the state.

The real-time software 324 running on the MVME167 Proc0 board 312 of FIGS. 15 and 16 cycles continuously through the set of active modules that are connected by data paths. The robot has five states of control of the robot. Two of the states are Cartesian space control states that require computation of the forward and inverse kinematics of the robot arm. These computations were discussed in detail above. The architecture of the other three states is presented in the following sections. Messages sent from the GUI software 322 through the Ethernet communication channel (see FIG. 16) to the real time software 324 cause transitions or switching of the real-time software 324 between the five different states. Also, these messages cause the real-time software 324 to change parameters of the control states and return.

The computational modules include a manual joint module 380, an auto joint module 382, a manual cart (i.e., Cartesian) module 384, an auto cart module 386, a forward kinemat module 388, an inverse kinemat module 390, a cart error module 392, a sum joints module 394, a control joints module 396, and a servo-controller module 398.

The manual joint module 380 receives commands from the GUI software 322 of FIG. 16 through the state transition routine of FIG. 18 for joint angle changes. When active, the manual joint module 380 sends commands to the sum joints module 394 to change the position of each of the robot joints for this computation cycle and then returns to a zero joint change output.

The auto joint module 382 receives commands from the GUI software 322 of FIG. 16 through the state transition routine of FIG. 18 transition routine on starting, stopping and selecting combinations of joints for motion. When active, the auto joint module 382 sends commands to the sum joints module 394 to change the position of each of the robot joints for each cycle so that the selected robot joints start and continue or stop moving in a sinusoidal motion.

The control joints module 396 receives the desired set of joint angle positions from the sum joints module 394 to limit the joint angles sent to the servo-controller so that they are within a safe set of joint angle ranges. The servo-controller module 398 receives the set of joint angles from the control joints module 396 to control the robot. The servo-controller module 398 converts the joint angle positions from units of radians to units of encoder counts, then sends this set to the PMAC board so that the control loop in the PMAC will move the joints to this set of measurements. Also, the servo-controller module 398 reads the actual angle positions from the PMAC and converts them from units of encoder counts to units of radians. The set of actual joint positions determined by the servo-controller module 398 are sent to the forward kinemat module 388.

The forward kinemat module 388 receives the input from the control joints module 396 and the servo controller module 398 on the robot joint angles the robot link lengths. The forward kinemat module 388 computes the forward kinematics of the robot based on these inputs. The robot tip position vector, the robot tip orientation matrix, the robot joint angle sines, the robot joint angle cosines, the transformation matrix from robot wrist to tip, and the gear bail angles are determined from the computations of the forward kinemat module 388.

The robot joint angle sines, robot joint angle cosines, gear bail angles, and transformation matrix from robot wrist to tip are sent to the inverse kinemat module 390. The robot tip position vector is sent to the cart error module 392, manual cart module 384, and auto cart module 386. The robot tip orientation matrix is sent to the inverse kinemat module 390, cart error module 392, manual cart module 384, and auto cart module 386.

The inverse kinemat module 390 also receives the desired tip position and the desired tip orientation from the cart error module 392. The inverse kinemat module 390 computes the inverse kinematics of the robot based on these inputs. The change in the robot joint angles that result in the desired change in tip position and orientation are determined from the computations of the inverse kinemat module 390.

The sum joints module 394 receives the desired change in joint angle positions from either the inverse kinemat module 390, the manual joint module 380, or the auto joint module 382, depending which is active. Current control joint positions are received from the control joints module 396. The sum joints module 394 computes the sum of the desired change in joint angle positions and the current joint angle positions. The output of the sum joints module 394 is reset to the actual joint angle positions upon a change in transition. The sum joints module 394 then sends a new set of joint angle positions to the control joints module 396 to control the robot.

When active, the manual cart module 384 receives commands from the GUI software 322 of FIG. 16 through the state transition routine of FIG. 18 transition routine. The manual cart module 384 computes the change in the Cartesian position of the robot tip so that the commanded coordinate will move by the commanded step size. The manual cart module 384 changes the position of each of the Cartesian position and orientation of the robot tip for this computation cycle and then returns to zero the tip position and orientation change.

When active, the auto cart module 386 receives commands from the GUI software 322 of FIG. 16 through the state transition routine of FIG. 18 transition routine on starting, stopping and selecting combinations of tip coordinates for motion. The auto cart module 386 computes the change in the robot tip position and orientation so that the selected tip coordinates will move continuously in a sinusoidal fashion at different frequencies. The auto cart module 386 changes the position of each of the robot tip coordinates for each cycle so that the selected robot tip coordinates start and continue or stop moving in a sinusoidal motion.

In addition to receiving the actual tip position vector and the actual tip orientation vector, the cart error module 392 also receives the desired tip position vector and the desired tip orientation matrix from the either the manual or auto cart modules 384, 386, depending which is active. The cart error module 392 computes the difference between the desired tip position and the actual tip position and the difference between desired tip orientation and actual tip orientation based on these inputs. The cart error module 392 then sends the difference between desired and actual tip position and the difference between desired and actual tip orientation to the inverse kinemat module 390.

FIG. 20 is a block diagram illustrating the idle state computational module. The active module is shaded and in the idle state is the servo controller module 398. The robot is controlled at its current position in the idle state. From the idle state, the system may transition to any other state or in an initialization transition, back to itself. The initialization transition resets the parameters of the servo-controller module 398.

FIG. 21 is a block diagram illustrating the modules used in the manual joint space control state of the high-level software architecture. The active modules are the manual joint module 380, the sum joints module 394, the control joints module 396, the forward kinemat module 388, and the servo-controller module 398. Transitions from this state either return the system to the idle state or change the parameters of the manual joint module 380 and return back to the manual joint control state. The parameters changed cause the module to momentarily signal its succeeding module for a change in a specified joint angle by a specified step size. The manual joint module 380 then continues to signal a zero step size for all joints. The result is that the robot will move one of its joints by the specified change then stop.

FIG. 22 is a block diagram illustrating the autonomous joint control module. The active modules are the auto joint module 382, the sum joints module 394, the control joints module 396, the forward kinemat module 388, and the servo-controller module 398. In the autonomous joint control state, the robot moves selected joints in a sinusoidal motion at different frequencies. Referring to FIGS. 18 and 22, the state transitions for this state is a return to the idle state or a return to its current state with a change in parameters of the auto joint module. When a message for change of parameters of the autonomous joint control is received, the motion can be stopped, or started with a different set of joints set in motion.

FIG. 23 is a block diagram illustrating the manual Cartesian space control module of the slave robot. The active modules are the manual cart module 384, the cart error module 392, the sum joints module 394, the control joints module 396, the forward kinemat module 388, the inverse kinemat module 390, and the servo-controller module 398. Referring to FIGS. 18 and 23, for manual Cartesian space control, a message from the user interface can switch the state to back to the idle state or back to the manual Cartesian space control state. In a switch back to the manual Cartesian control state, the user also specifies the Cartesian space coordinate to be moved and its step size. For manual Cartesian motion, the manual cart module 384 computes Cartesian positions by adding specific Cartesian position increments to the current position of the robot. The computed change in joint angles from the inverse kinematics module are summed with the current joint angles then sent to the joint servo controller for robot movement. Increments in the respective coordinates are computed so that the end effector moves along the selected coordinate.

FIG. 24 is a block diagram illustrating the autonomous Cartesian control state module. The active modules are the auto cart module 386, the cart error module 392, the sum joints module 394, the control joints module 396, the forward kinemat module 388, the inverse kinemat module 390, and the servo-controller module 398. In this state, the robot moves its tip in a sinusoidal motion along specified Cartesian coordinates. Referring to FIG. 18 and FIG. 24, the transitions available from this state are a return to the idle state or back to this state with some change in parameters in the auto cart module 386. A change in parameters of the auto cart module 386 cause either the motion of the robot to stop or to start with a new set of Cartesian coordinates set in motion. The corresponding joint positions are computed using inverse kinematics. The computed joint angles are sent to the joint servo controller for robot movement.

Robot Operation:

The robot is started by powering the VME chassis, thereby initiating the down-loading and running of software on the MVME167 boards and PMAC boards. The GUI program is then run on the UNIX host machine to start-up the graphics user interface and establish communication between the UNIX host and the MVME167 board using the NDDS facility. A procedure of phasing the motors is performed after the boot-up sequence and powering up the amplifier chassis. The system is then ready for demonstrating the various control modes available. During the demonstration modes of control, the high-level software computes the desired joint positions for the robot. These are fed to the PMAC board by the servo-control software. The control loop within the PMAC board reads the actual joint positions and applies the appropriate voltages to the motors to drive the joints to the desired positions. The motors, in turn, drive gears that rotate the spools of cables on the robot so that the joints move in the desired motion.

Electronics sub-subsystem:

The electronics sub-subsystem amplifies 2-phase voltage signals from the servo-control system into 3-phase current signals using linear brushless motor servo amplifiers such as the BLH-S1-4/8 from Western Servo Design, Inc. The electronics sub-system also transmits motor shaft position digital signals from the optical encoders to the servo-control sub-system.

Robot Range of Motion:

FIG. 25 illustrates the range of motion of the robot manipulator 8 of the present invention. The arm 10 has a large work volume so that the actuator base 28 will not have to be repositioned frequently during tasks. For example, the torso joint 26 is capable of rotating the shoulder 24 360 degrees of full rotary motion about the y axis. The elbow joint 18 and the shoulder joint 22 are capable of 360 degree limited rotary motion about the z axis. The wrist joint 14 is capable of motion about the x, y, and z axes (as described in FIG. 11 above). Since each axis is completely decoupled from the joint's motion, the wrist joint 14 is capable of 180 degrees motion about the y and z axes (pitch-and-yaw motion) and 540 degrees of continuous motion about the x axis (roll motion) and thus, operates in a full hemisphere of motion.

The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. ##SPC1##

## Claims

1. A robot manipulator, comprising: base; and coupling respective ones of said actuators to respective ones of said joints through intermediate ones of said joints, and wherein said means for mechanically coupling is decoupled from said intermediate joints.

2. The invention as set forth in claim 1, wherein said means for mechanically coupling comprises: actuators for receiving rotational motion; and component for receiving said rotational motion from said first passing drive component and for transmitting said received rotational motion to one of said plural joints; rotate about one another to define an instantaneous center of rotation; second passing drive component about said instantaneous center of rotation.

3. The invention as set forth in claim 2, wherein said first keying drive component is a first keying pulley and said second keying drive component is a second keying pulley.

4. The invention as set forth in claim 3, further comprising plural keying cables for rotatably coupling said first keying pulley to said second keying pulley and for rotationally constraining said first keying pulley to said second keying pulley so that said first and second keying pulleys rotate with respect to one another about said instantaneous center of rotation.

5. The invention as set forth in claim 2, wherein said first and second keying drive components are keying spur gears.

6. The invention as set forth in claim 2, wherein said first and second passing drive components are passing spur gears.

7. The invention as set forth in claim 2, wherein said first passing drive component is a first passing pulley and said second passing drive component is a second passing pulley.

8. The invention as set forth in claim 7, further comprising plural passing cables for rotatably coupling said first passing pulley to said second passing pulley and for rotationally constraining said first passing pulley to said second passing pulley so that said first and second passing pulleys rotate with respect to one another about said instantaneous center of rotation.

9. The invention as set forth in claim 1, wherein all actuators drives of said manipulator are located within said actuator base.

10. The invention as set forth in claim 1, wherein each of said joints comprises dual independent antibacklash drive transmission preloaded with respect to one another.

11. The invention as set forth in claim 1, wherein said plural joints further comprises an antibacklash mechanism for transmitting motion without backlash from respective ones of said plural actuator drives to respective ones of said joints, said antibacklash mechanism comprising: wherein both of said first dual drive components are rotatably coupled to said respective ones of said plural actuator drives and are independently rotatable with respect to one another; and means, wherein each one of said second dual drive reduction means is rigidly attached to one of said first dual drive components and is rotatably coupled to said respective ones of said joints, whereby rotational motion of said respective ones of said plural actuator drives is transmitted through said first and second stages, to said respective ones of said joints without backlash.

12. A robot manipulator having an actuator and a plurality of decoupled joints, wherein each one of said decoupled joints comprises: an input axis; keying drive component rotatable on an output axis; rotate about one another to define an instantaneous center of rotation; coupled to said actuator for receiving rotational motion; and and coupled to said input passing drive component for receiving said rotational motion decoupled from said one joint.

13. The invention as set forth in claim 12, wherein said input passing drive component rotates with respect to said output passing drive component about said instantaneous center of rotation.

14. The invention as set forth in claim 12, wherein said input keying drive component is an input keying pulley and said output keying drive component is an output keying pulley.

15. The invention as set forth in claim 14, further comprising plural keying cables for rotatably coupling said input keying pulley to said output keying pulley and for rotationally constraining said input keying pulley to said output keying pulley so that said input and output keying pulleys rotate with respect to one another about said instantaneous center of rotation.

16. The invention as set forth in claim 12, wherein said input and output keying drive components are keying spur gears.

17. The invention as set forth in claim 12, wherein said input and output passing drive components are passing spur gears.

18. The invention as set forth in claim 12, wherein said input passing drive component is an input passing pulley and said output passing drive component is an output passing pulley.

19. The invention as set forth in claim 18, further comprising plural passing cables for rotatably coupling said input passing pulley to said output passing pulley and for rotationally constraining said input passing pulley to said output passing pulley so that said input and output passing pulleys rotate with respect to one another about said instantaneous center of rotation.

20. The invention as set forth in claim 12, wherein said input and output links are coupled to each other by hinged side struts.

21. The invention as set forth in claim 12, wherein said input link further comprises plural input idler pulleys and said output link further comprises corresponding plural output idler pulleys, wherein each corresponding pair of said input and output idler pulleys drives one of said joints.

22. A robot manipulator having an actuator and a plurality of decoupled joints, wherein each one of said decoupled joints comprises: pulley; output keying pulley, wherein said input and output keying pulleys are constrained to rotate about one another thereby defining an instantaneous center of rotation; said actuator for receiving rotational motion; for transmitting rotational motion of said input idler pulley and said output idler pulley decoupled from said one joint.

23. The invention as set forth in claim 22, wherein said input idler puller rotates with respect to said output idler pulley about said instantaneous center of rotation.

24. The invention as set forth in claim 22, wherein said input and output links are coupled to each other by hinged side struts.

25. The invention as set forth in claim 22, wherein said input and output links are displaced by at least a diameter of each of said input and output links to facilitate 180 degree rotation.

26. The invention as set forth in claim 22, wherein each of said joint's rotation is dependant upon a ratio between said input and output keying pulleys' diameters.

27. The invention as set forth in claim 22, wherein all of said keying pulleys have the same diameter.

28. The invention as set forth in claim 22, wherein said input link further comprises plural input keying pulleys and said output link further comprises plural output keying pulleys.

29. An antibacklash mechanism for transmitting motion without backlash from an input rotating device to an output rotating device, said antibacklash mechanism comprising: wherein both of said first dual drive components are rotatably coupled to said input rotating device and are independently rotatable with respect to one another; and means, wherein each one of said second dual drive reduction means is rigidly attached to one of said first dual drive components and is rotatably coupled to said output device, whereby rotational motion of said input rotating device is transmitted from said input device, through said first and second stages, to said output device without backlash.

30. The invention set forth in claim 29, wherein each of said first dual drive components is a spur gear.

31. The invention set forth in claim 29, wherein each of said second dual drive reduction means is a pinion gear.

32. The invention set forth in claim 29, wherein each of said second dual drive reduction means is rotatably coupled to said output device with a dual drive pulley.

33. The invention set forth in claim 29, further comprising means for preloading said first transmission stage relative to said second transmission stage in order to eliminate backlash.

34. The invention set forth in claim 33, further comprising means for locking said first and second transmission stages after said first and second transmission stages are preloaded.

35. A multiple degree of freedom robot having a plurality of arm joints, a wrist joint coupled to one of said arm joints and having a tip, and a computer control system, said computer control system comprising: positions of said arm and wrist joints; and servo controller for receiving said user commands and said actual positions of said arm and wrist joints for computing forward and inverse kinematic relationships for controlling said arm and wrist joints in accordance with said user commands and said computed relationships; to a unit motion at a current joint, transition matrix of a succeeding joint to produce a result, current joint, transition from a last joint to said tip, matrix, and said jacobian matrix to compute corresponding joint angle displacements;

36. The invention as set forth in claim 35, wherein said means for setting said vector as a respective column of a jacobian matrix corresponds to an independent degree of freedom of each of said joints for each independent degree of freedom of said robot.

37. The invention as set forth in claim 35, wherein said robot further comprises means coupled between said servo controller and each of said joints for moving said joints robot in accordance with said joint angle displacements.

38. The invention as set forth in claim 35, wherein said real-time kinematic processor further comprises means for determining a set of joint coordinate displacements corresponding to a desired set of tip coordinate displacements, means for computing a jacobian matrix, and means for adding said jacobian matrix to said tip coordinate displacements to produce a corresponding joint coordinate displacement.

39. The invention as set forth in claim 35, wherein said real-time kinematic processor further comprises means for setting up and computing a transition matrix defining a position and rotation transition between successive joints of said robot, means for setting up vectors defining axes of rotation of each of said joint, and means for transforming each of said joint to a desired position and an orientation change of said tip from a world reference frame to a tip reference frame.

40. The invention as set forth in claim 39, wherein said means for multiplying a user defined vector of tip displacements by said jacobian matrix is constrained by said tip reference frame.

41. A robot manipulator, comprising: coupling respective ones of said actuators to respective ones of said joints through intermediate ones of said joints, and wherein said means for mechanically coupling is decoupled from said intermediate joints; positions of said arm and wrist joints; and servo controller for receiving said user commands and said actual positions of said arm and wrist joints for computing forward and inverse kinematic relationships for controlling said arm and wrist joints in accordance with said user commands and said computed relationships; to a unit motion at a current joint, transition matrix of a succeeding joint to produce a result, current joint, transition from a last joint to said tip, matrix, and said jacobian matrix to compute corresponding joint angle displacements;

42. The invention as set forth in claim 41, wherein said robot further comprises an antibacklash mechanism for transmitting motion without backlash from respective ones of said plural actuator drives to respective ones of said joints, said antibacklash mechanism comprising: wherein both of said first dual drive components are rotatably coupled to said respective ones of said plural actuator drives and are independently rotatable with respect to one another; and means, wherein each one of said second dual drive reduction means is rigidly attached to one of said first dual drive components and is rotatably coupled to said respective ones of said joints, whereby rotational motion of said respective ones of said plural actuator drives is transmitted through said first and second stages, to said respective ones of said joints without backlash.

43. A method for manipulating a multiple degree of freedom robot having a plurality of arm joints, a wrist joint coupled to one of said arm joints and having a tip, a user interface for receiving user commands, a servo controller coupled to said arm and wrist joints for reading actual positions of said arm and wrist joints, said method comprising: desired set of tip coordinate displacements, computing a jacobian matrix, and adding said jacobian matrix to said tip coordinate displacements to produce a corresponding joint coordinate displacement by: rotation transition between successive joints of said robot, tip from a world reference frame to a tip reference frame; at each joint a displacement vector corresponding to a unit motion at a current joint by multiplying a displacement vector at said current joint by a transition matrix of a succeeding joint to produce a result, multiplying said result by a joint axis vector of said current joint, multiplying said result by said transition matrix defining a transition from a last joint to said tip, and setting said vector as a respective column of a jacobian matrix, and matrix to compute corresponding joint angle displacements; and response to step (a).

44. The invention as set forth in claim 40, wherein the setting said vector as a respective column of a jacobian matrix step corresponds to an independent degree of freedom of each of said joints for each independent degree of freedom of said robot.

45. The invention as set forth in claim 43, wherein the multiplying a user defined vector of tip displacements by said jacobian matrix step is constrained by said tip reference frame.

46. A multiple degree of freedom microsurgical robot manipulator, comprising: of arm joints each having a first keying pulley constrained to rotate about a second keying pulley, thereby defining an instantaneous center of rotation to effectuate one degree of freedom movement, and a miniaturized wrist joint coupled to one of said arm joints and having a tip and three degrees of freedom; at a proximal end and coupled to one of said joints at a distal end; and comprising: robot joints; interface and for receiving actual joint positions from said servo sub-system, wherein said high level sub-system sends said user commands and said actual joint positions to a real-time kinematic processor having a forward kinematic processor and an inverse kinematic recursive processor for computing forward and inverse kinematic relationships of said joints; coordinate displacements corresponding to a desired set of tip coordinate displacements, means for computing a jacobian matrix, and means for adding said jacobian matrix to said tip coordinate displacements to produce a corresponding joint coordinate displacement; displacements.

47. The invention as set forth in claim 46, wherein each of said actuator drives comprises a plurality of motors with rotational motion and having optical encoders for effecting micro-rotation of said motors and for transmitting said rotational motion of said motors to said driving cables.

48. The invention as set forth in claim 46, wherein said robot further comprises an antibacklash mechanism for transmitting motion without backlash from respective ones of said actuator drives to respective ones of said joints, said antibacklash mechanism comprising: wherein both of said first dual drive components are rotatably coupled to said respective ones of said actuator drives and are independently rotatable with respect to one another; and means, wherein each one of said second dual drive reduction means is rigidly attached to one of said first dual drive components and is rotatably coupled to said respective ones of said joints, whereby rotational motion of said respective ones of said actuator drives is transmitted through said first and second stages, to said respective ones of said joints without backlash.

49. The invention as set forth in claim 46, wherein said real-time kinematic processor comprises: to a unit motion at a current joint; transition matrix of a succeeding joint to produce a result; current joint; transition from a last joint to said tip; matrix; and said jacobian matrix to compute corresponding joint angle displacements.

50. The invention as set forth in claim 46, further comprising plural keying cables for rotatably coupling said first keying pulley to said second keying pulley and for rotationally constraining said first keying pulley to said second keying pulley so that said first and second keying pulleys rotate with respect to one another about said instantaneous center of rotation.

51. The invention as set forth in claim 46, wherein said first and second keying pulleys are keying spur gears.

52. The invention as set forth in claim 46, wherein said first and second passing drive components are passing spur gears.

53. The invention as set forth in claim 46, further comprising: respective ones of said actuators for receiving rotational motion; and component for receiving said rotational motion from said first passing drive component and for transmitting said received rotational motion to one of said joints; second passing drive component about said instantaneous center of rotation.

54. The invention as set forth in claim 53, wherein said first passing drive component is a first passing pulley and said second passing drive component is a second passing pulley.

55. The invention as set forth in claim 54, further comprising plural passing cables for rotatably coupling said first passing pulley to said second passing pulley and for rotationally constraining said first passing pulley to said second passing pulley so that said first and second passing pulleys rotate with respect to one another about said instantaneous center of rotation.

56. The invention as set forth in claim 46, further comprising an input link coupled between each of said first keying pulley and each of said robot arm joints, and an output link coupled between each of said second keying pulley and each of said robot arm joint.

57. The invention as set forth in claim 56, wherein said input link further comprises plural input keying pulleys and said output link further comprises plural output keying pulleys.

58. The invention as set forth in claim 57, wherein said input link further comprises plural input passing pulleys and said output link further comprises corresponding plural output passing pulleys, wherein each corresponding pair of said input and output passing pulleys drives one of said joints.

59. The invention as set forth in claim 57, wherein said input and output links are coupled to each other by hinged side struts.

60. The invention as set forth in claim 46, wherein said computer control system further comprises: inverse kinematic module, a sum joints module, a control joints module, and a servo-controller module; joint angles and positions of each of said robot joints for a particular computation cycle; and stopping, and selecting combinations of movement of said joints for changing joint angles and said position of each of said robot joints for a particular computation cycle.

61. The invention as set forth in claim 60, further comprising: module by said control joints module for limiting said joint angles sent to said servo-controller; and module by said servo-controller module, for reading actual angles and positions of said robot joints, and for sending said actual angles and positions to said servo controller for controlling said robot joints.

62. The invention as set forth in claim 61, further comprising: and said servo controller module by said forward kinematic module for computing a forward kinematic relationship of said robot joints; said forward kinematic module by said inverse kinematic module for computing an inverse kinematic relationship of said robot joints in order to determine changes in said robot joint angles.

63. The invention as set forth in claim 62, further comprising: inverse kinematic module and said actual joint angle positions from said servo controller module by said sum joints module for computing a sum of said desired change in said joint angle positions and current joint angle positions.

64. The invention as set forth in claim 63, further comprising: relationship by said manual cartesian module for computing a cartesian position change of said robot tip and for changing a position of each of said cartesian position and orientation of said robot tip for a particular computation cycle; relationship by said auto cartesian module for starting, stopping and selecting combinations of tip coordinates and for computing a change in said robot tip position and orientation in order to continuously move said selected tip coordinates and for changing a position of each of said robot tip coordinates for each cycle; and computing and sending a difference between said desired tip position and said actual tip position and a difference between said desired tip orientation and said actual tip orientation to said inverse kinematic module.