ZHOU RENBIN (US)
HARIRI ALIREZA (US)
WO2020118149A1 | 2020-06-11 | |||
WO2019164856A1 | 2019-08-29 |
US20210146539A1 | 2021-05-20 | |||
US20190274769A1 | 2019-09-12 | |||
US20180214219A1 | 2018-08-02 |
Title: HARDSTOP DETECTION AND HANDLING FOR SURGICAL TOOL What is claimed is: 1. An apparatus for detecting a hardstop for a surgical tool including a plurality of sensors and a wrist coupled to a plurality of cables, the apparatus comprising: one or more processors configured to: select a highest tension cable from the plurality of cables based on a comparison of the forces associated with the plurality of cables; set a force assigned to the highest tension cable to a predetermined value; calculate a variable wrist torque threshold for the wrist based on a sum of the predetermined value for the highest tension cable and detected forces for remaining cables in the plurality of cables; and identify a hardstop based on a comparison of a received joint torque value for the wrist to the variable wrist torque threshold. 2. The apparatus of claim 1, the one or more processors configured to: when the comparison indicates that the received joint torque value for the wrist exceeds the variable wrist torque threshold, generate a user message with an instruction to move the wrist. 3. The apparatus of claim 2, wherein the instruction to move the wrist include an instruction to move in a yaw direction closer to a home position, an instruction to move in a pitch direction closer to the homing position, or operate an end effector of the wrist. 4. The apparatus of claim 1, wherein the forces (F1, F2, F3, and F4) associated with the plurality of cables are determined from respective motor torque sensors and associated with pulley dimensions (R11, R12, R21, R22, R31 and R32) for respective pulleys for the cables. 5. The apparatus of claim 4, wherein the variable wrist torque threshold for a pitch angle is a minimum pitch angle when one cable is the highest selected cable or a maximum pitch angle when another cable is the highest selected cable. 6. The apparatus of claim 5, wherein when the comparison indicates that the variable wrist torque threshold is less than the minimum pitch angle, then the wrist is hitting a hardstop on a negative side of a pitch joint of the surgical tool; or wherein when the comparison indicates that the variable wrist torque threshold is greater than the maximum pitch angle, then the wrist is hitting a hardstop on a positive side of the pitch joint of the surgical tool. 7. The apparatus of claim 4, wherein the variable wrist torque threshold for a yaw angle is a minimum yaw angle when one cable is the highest selected cable or a maximum yaw angle when another cable is the highest selected cable. 8. The apparatus of claim 7, wherein when the comparison indicates that the variable wrist torque threshold is less than the minimum yaw angle, then the wrist is hitting a hardstop on a negative side of a yaw joint of the surgical tool; or wherein when the comparison indicates that the variable wrist torque threshold is greater than the maximum yaw angle, then the wrist is hitting a hardstop on a positive side of the yaw joint of the surgical tool. 9. The apparatus of claim 1, the one or more processors configured to: activate a hardstop handling phase in response to the comparison of the received joint torque value for the wrist to a variable wrist torque threshold. 10. The apparatus of claim 9, the one or more processors configured to: identify a user input wrist angle; and provide a motor command independent of the user input angle when the received joint torque value for the wrist exceeds the variable wrist torque threshold. 11. The apparatus of claim 10, the one or more processors configured to: provide a second motor command based on the user input angle when the received joint torque value for the wrist does not exceed the variable wrist torque threshold. 12. The apparatus of claim 1, the one or more processors configured to: identify a user input jaw angle for a jaw of the surgical tool; calculate a force error as a difference between the force assigned to the highest tension cable to the predetermined value; and compensate for the force error to modify the user input jaw angle with a proportional control algorithm. 13. The apparatus of claim 12, the one or more processors configured to: activate a catching up algorithm for the jaw; latch a last joint command from a proportional control algorithm as an initial jaw catching up amount; identify a subsequent user input jaw angle to open the jaw or close the jaw; and generate a jaw command adjusted based on the subsequent user input jaw angle. 14. The apparatus of claim 13, the one or more processors configured to: subtract the initial jaw catching up amount from the subsequent user input jaw angle for a jaw command when the user input jaw angle is to open the jaw; or . 15. The apparatus of claim 13, the one or more processors configured to: subtract a predefined step size from the subsequent user input jaw angle for a jaw command when the user input jaw angle is to close the jaw. 16. A method for detecting a hardstop for a surgical tool including a plurality of cables, the method comprising: select a highest tension cable from the plurality of cables; set a force assigned to the highest tension cable to a predetermined value; calculate a variable wrist torque threshold for a wrist of the surgical tool based on a sum of the predetermined value for the highest tension cable and detected forces for remaining cables in the plurality of cables; and identify a hardstop or a risk of hardstop based on a comparison of a received joint torque value for the wrist to the variable wrist torque threshold. 17. The method of claim 16, wherein the forces (F1, F2, F3, and F4) associated with the plurality of cables are determined from respective motor torque sensors and associated with pulley dimensions (R11, R12, R21, R22, R31 and R32) for respective pulleys for the cables. 18. The method of claim 17, wherein: the variable wrist torque threshold is a minimum pitch angle when a first cable or second cable is the highest selected cable; or the variable wrist torque threshold is a maximum pitch angle when a third cable or a fourth cable is the highest selected cable; or the variable wrist torque threshold is a minimum yaw angle when the first cable or the fourth cable is the highest selected cable; or the variable wrist torque threshold is a maximum yaw angle when another cable the second cable or the third cable is the highest selected cable. 19. The method of claim 18, wherein when the comparison indicates that the variable wrist torque threshold is less than the minimum pitch angle, then the wrist is hitting a hardstop on a negative side of a pitch joint of the surgical tool; or wherein when the comparison indicates that the variable wrist torque threshold is greater than the maximum pitch angle, then the wrist is hitting a hardstop on a positive side of the pitch joint of the surgical tool; or wherein when the comparison indicates that the variable wrist torque threshold is less than the minimum yaw angle, then the wrist is hitting a hardstop on the negative side of a yaw joint of the surgical tool; or wherein when the comparison indicates that the variable wrist torque threshold is greater than the maximum yaw angle, then the wrist is hitting a hardstop on the positive side of the yaw joint of the surgical tool. 20. An apparatus for detecting a hardstop for a surgical tool, the apparatus comprising: a memory configured to store a maximum cable force for the surgical tool and a set of measured forces associated with a set of cables for the surgical tool; a controller configured to determine a highest tensioned cable from the set of measured forces for the set of cables and calculate a variable wrist torque threshold based on the maximum cable force and the set of measured forces, wherein the controller compares the variable wrist torque threshold to a received joint torque value for a wrist of the surgical tool and identifies a risk of hardstop is response to the received joint torque value for the wrist exceeding the variable wrist torque threshold. |
[0032] FIGS. 4A and 4B are schematic diagrams illustrating an end effector of an exemplary tool having a robotic wrist, a pair of opposing jaws, and a pulley and cable system for coupling the robotic wrist and the pair of jaws to actuators of a tool driver. Note that although the following tool model and controller design are described with reference to the exemplary surgical robotic grasper, the proposed control system for position and grip force control may be adapted to any tools that include an end effector coupled to a tool shaft via a robotic wrist, which allows multi-axial motion (e.g., pitch and yaw) of the end effector. Similar tools include, but not limited to, needle drivers, monopolar scissors, monopolar hook, bipolar forceps, and other instruments. A needle driver or needle holder includes opposing grippers for holding a needle and operates in a similar manner to the graspers (e.g. open/close, yaw, and pitch) described in detail herein. A set of monopolar scissors are double action scissors with curved plans that also operate in a similar manner to the graspers (e.g. open/close, yaw, and pitch). A set of bipolar forceps includes two tips designed to grasp, manipulate and coagulate selected tissue and also operate in a similar manner to the graspers (e.g. open/close, yaw, and pitch). [0033] As shown in FIG. 4A, the pair of opposing jaws 401 A and 401B are movably coupled to a first yoke 402 of the robotic wrist v ia an extended axle 412 along a first axis 410. The first yoke 402 may be movably coupled to a second yoke 403 of the robotic wrist via a second extended axle 422 along a second axis 420. The pair of jaws 401A and 401B may each be coupled or integrally formed with pulleys 415A and 415B respectively, via the extended axle 412, so that both jaws can r otate about the axis 410. Pulleys 425A, 425B, 425C and 425D are coupled to the extended axl e 422 and rotate around the axis 420. The pulleys 425A, 425B, 425C and 425D are arra nged into a first set of pulleys 425B and 425C on one side of the yoke 402 and a second set of pulleys 425A and 425D on the other side of the yoke 402. The pulleys 425A and 4 2C are outer pulleys and the pulleys 425B and 425D are inner pulleys. Similarly, the thir d set of pulleys 435A, 435B, 435C and 435D are coupled to a third extended axle 432 and rotate around the axis 430, which is parallel to the axis 420. [0034] The end effector 222 (grasper) can be actuated to m ove one or both of the jaws 401A and 401B in a variety of ways around the axis 410. For example, the jaws 401A and 401B may open and close relative to each other. The jaws 401A and 401B may also be actuated to rotate together as a pair to p rovide a yaw motion of the end effector 222 (grasper). In addition, the first yoke 402, the pulleys 415A and 415B, and the jaws 401A and 401B can rotate about the axis 420 to pro vide a pitch motion of the end effector 222 (grasper). The motion of the robotic wr ist and/or the jaws of the tool can be affected by controlling four independent cables 40 5A‐405D. As shown in FIG. 4A, cable 405A may start (or terminates) from one side of the pulley 415A and route along pulleys 425A and 435A, and cable 405B is configured to terminate at the other side of the pulleys 415A and route through pulleys 425B and 435B. Similarly, another pair of cables 405C and 405D can be coupled to the jaw 401 B. For example, cable 405C extends from one side of the pulley 415B to pulleys 425C a nd 435C; and cable 405D routes through pulleys 425D and 435D and terminates at the other side of pulley 415B. The third set of pulleys 435A, 435B, 435C and 435D are arranged in such a way as to keep the cables 405A‐405D affixing to the second set of pulleys 425A‐425D and prevent the cables from slipping or sliding relative to the pull eys 425A‐425D. [0035] Controlling the motions of the end effector 222 (gra sper) via four independent cables has several advantages. One advanta ge may be the reduction of the number of cables that extend from the tool base 352 to the robotic wrist compared to typical on‐market designs using six cables (or thre e cable loops with six cable ends). Less number of cables can reduce the tool size as well as complexity of the wrist assembly, which may benefit minimally‐invasive surgical procedu res or non‐surgical applications. Furthermore, arrangement of four independent cables in stead of two or three cable loops not only allows independent control of the ten sion on each cable without the need for pre‐tensioning of the cables, but also en ables variable compliance in the wrist joints and increased sensitivity to external loads. A dditionally, it is possible to readjust tension on each cable independently, which can furthe r increase tool performance. [0036] As shown in FIGS. 4A and 4B, the end effector 222 (grasper) can be actuated to move the jaws 401A and 401B in a varie ty of ways such as grasping (e.g., jaws rotating independently about axis 410), yaw (e.g ., jaws rotating together about axis 410), and pitch (e.g., jaws rotating about axis 420) by imparting motion to one or more of the pulleys 415A, 415B, 425A, 425B, 425C, and 42 5D to thereby impart motion on the first yoke 402 and/or one or both of the jaws 401A and 401B. Cables 405A‐405D can be grouped into two antagonistic pairs, that is, when o ne cable of the antagonistic pair is actuated or tensioned, while the other cable is loos ened, the jaw will rotate in one direction. Whereas when only the other cable is tens ioned, the jaw will rotate in an opposite direction. [0037] For example, cables 405A and 405B are the first ant agonistic pair for moving jaw 401A, and cables 405C and 405D are the second antagonistic pair for controlling jaw 401B. When cable 405A is tensioned ( e.g., by at least one of the rotary drives 322A‐322F) while cable 405B is loosened, jaw 401A closes (moving towards the opposite jaw 401B). On the other hand, when cable 4 05B is tensioned and cable 405A is loosened, jaw 401A opens (moving away from the oppos ite jaw 401B). Similarly, when tensioned, cable 405C closes jaw 401B (moving towards the opposite jaw 401A) and cable 405D opens jaw 401B (moving away from the opp osite jaw 401A) while the other cable loosens. As another example, grip force between the jaw 401A and jaw 401B can be achieved by continuing to tension both cable 405A and cable 405C (while cable 405B and cable 405D are loosened) after the jaws are clo sed (touching each other). [0038] In case when both cables of an antagonistic pair ar e tensioned at the same time while both cables of the other pair are loosen ed, the pulley 415A or pulley 415B do not rotate. Instead, the first yoke 402 together wit h the jaws 401A and 401B are imparted by the pulleys 415A and 415B to pitch abou t the axis 420. For example, when the pair of cables 405A and 405B are both tensioned simultaneously while the pair of cable 405C and 405D are loosened, the jaws (together with the yoke 402) pitch out of the plane of the paper. Whereas when both cables 40 5C and 405D are tensioned simultaneously and the pair of cables 405A and 405B are kept loose, the jaws pitch into the plane of the paper. [0039] FIG. 4B is a schematic diagram illustrating example angle definitions for various motions of the end effector 221 (grasper). T he angles are defined in reference to axes 410 and 420, as well as an axis 452 of the first yoke 402 and an axis 453 of the second yoke 403. For example, as shown in FIG. 4B, an angle (θ 1 ) between axis 452 and the axis 453 may represent the rotation angle of th e yoke 402 around axis 420, which may also be defined as the pitch angle (θ pitch ) of the end effector 222 (grasper) (while in FIG. 4A, the axis 452 of the yoke 402 is superimpo sed over the axis 453 of the yoke 403 because the jaws are staying in the reference positi on, i.e., no pitch motions). In addition, angles (θ 2 ) and (θ 3 ) can represent the angles between each of the jaws 401A and 401B and the axis 452 of the yoke 402 (as the origin), respectively. To differentiate the sides of the axis 452, angles (θ 2 ) and (θ 3 ) may take on different signs. For example, angle (θ 2 ) is negative and angle (θ 3 ) is positive, as illustrated in FIG. 4B. [0040] In order to perform control tasks, it is often bene ficial to define a consistent coordinate frame for the joint angles. For example, the jaw angle (θ jaw ) may be defined as the angle between the two jaws 401A and 401B, and the yaw angle (θ yaw ) may be defined as the angle between the axis 452 a nd the line bisecting the jaw angle. These angles may be defined according to Equations 1 ‐3: θ pitch = θ 1 Eq. 1 θ yaw = 1/2(θ 2 + θ 3 ) Eq. 2 θ jaw = θ 2 ‐ θ 3 Eq. 3 [0041] The transformation between angles in FIG. 4B and the defined angles are as described in Equation 4: Eq. 4 [0042] FIG. 5 illustrates pulleys of the pulley and cable system of FIGS. 4A and 4B according to the following nomenclature can be establ ished for pulley geometries: a) r11 is the radius of the outer pulleys 425A and 425C on which cables 405A and 405C are residing, respectively; b) r12 is the radius of the inner pulleys 425B and 425D on which cables 405B and 405D are residing, respectively (r11 may or may not be equal to r12); c) r21 is the radius of pulley 415A on the side t hat cable 405A is residing (with reference to the center of pulley 415A and axle 412 as shown in FIG. 4A); d) r22 is the radius of pulley 415A on the side t hat cable 405B is residing (with reference to the center of pulley 415A and axle 412 as shown in FIG. 4A); e) r31 is the radius of pulley 415B on the side t hat cable 405C is residing; and f) r32 is the radius of pulley 415B on the side t hat cable 405D is residing. [0043] While in the above example symmetrical design, r31=r2 1, r32=r22 and r21 (as shown in FIG. 4A), in some other designs it is possible to have r31=r21=r32=r22, as wells as r11=r12. [0044] The fundamental equation that relates cable tensions (ξ[4×1]) or the forces in the cables (F[4x1]) to joint torques (τ[3 ×1]) is presented by Equation 5: Eq. 5a [0045] where matrix (B) has the form given by Equation 5b: Eq. 5b [0046] The joint torques may include the pitch joint τ pitch , yaw joint τ yaw , which may be τ yaw = τ jaw1 + τ jaw2 in the example of FIGS. 4A and 4B, and the cable tensions may be the forces in the cables (F[4x1]), as shown by Eq. 6. Eq. 6 [0047] The kinematic relationship that relates the ideal cab le displacements (assuming no cable elasticity) and jaw angles are de scribed in Equation 7: Eq. 7 [0048] Here q = [q 1 q 2 q 3 q 4 ] T is the displacement of cables in the ideal c ase where the cables are rigid. Therefore, the relationships in expanded form are described as Equation(s) 8: [0049] where θ 1 is the pitch joint angle, and θ 2 and θ 3 are the joint angles of jaw A and jaw B, respectively (see FIG. 3). In reality, the cables may be somewhat elastic, and the cable forces and elongation follow the Hook’s law as shown in Equation(s) 9: [0050] where k is cable elasticity (assuming the four cable s are similar), and x is the actuator displacements. The actuator displacements then may be related to the joint angles for the end effector 222 in two different co ordinate frames. [0051] If the cables cannot be assumed to be elastic, the above equations may be replaced with the nonlinear equation relating the cab le elongation and force. [0052] The angular position and grip force of a distal end effector of a robotic surgical instrument. The end effector may include a robotic wrist and a pair of opposing members (e.g., jaws or claws), each being movable be tween an open position and a closed position actuated by two antagonistic cables. A total of four cables may each be driven by an independent actuator or motor. The cont rol system may include feedback loops involving position and velocity feedback from t he actuators and force feedback measured on the four cables, to effect desired posit ion and grip force. In some implementations, the actuator controllers may be runni ng a position plus feedforward current mode. For example, a position controller may drive the distal end effector to the desired angular position in space based on the posit ional feedback, while a grip force controller provides additional feedforward current base d on the grip force measured by load cells on the four cables to achieve the desire d grip force between the opposing members. [0053] FIG. 6 is an illustration of a subsystem or a part of the surgical robotic system 100, for detecting engagement of a surgical t ool 240 to a tool driver 230 (tool driver) of a surgical robotic arm 122. The surgical robotic arm 122 may be one of the surgical robotic arms of surgical robotic system 100 illustrated and discussed with respect to FIG. 1. The control unit 210 may be par t of for example the control tower in FIG. 1. As discussed in more detail herein, the eng agement may be detected by control unit 210 based on one or more rotary motor operatin g parameters of one or more actuators (e.g., actuator 238‐j) in the tool driver 230. [0054] There is a tool driver 230 to which different surgi cal tools (e.g., surgical tool 240, as well as other detachable surgical tools for rotation of an endoscope camera, pivoting of a grasper jaw, or translation of a need le) may be selectively attached (one at a time.) This may be done by for example a human user holding the housing of the surgical tool 240 in her hand and moving the latter in the direction of arrow 280 shown until the outside surface of the surgical tool 240 in which there are one or more tool disks (e.g., tool disk 244‐i) comes into contact w ith the outside surface of the tool driver 230 in which there are one or more drive disks (e. g., drive disk 234‐j). The one or more tool disks and/or one or more drive disks may be i mplemented by pucks, which may be formed of plastic or another durable material. In th e example shown, the tool driver 230 is a segment of the surgical robotic arm 122 at a distal end portion of the surgical robotic arm 122. A proximal end portion of the arm is secu red to a surgical robotic platform, such as a surgical table that shown in FIG. 1 desc ribed above. [0055] Control unit 210 is configured to control motion of the various motorized joints in the surgical robotic arm 122 (including th e drive disks 234) through which operation of end effector 222 (its position and orie ntation as well as its surgical function such as opening, closing, cutting, applying pressure, etc.) which mimics that of a user input device is achieved. This is achieved via a me chanical transmission in the surgical tool 240, when the surgical tool 240 has been engag ed to transfer force or torque from the tool driver 230. The control unit 210 may be i mplemented as a programmed processor, for example as part of the control tower 130 of FIG. 1. It may respond to one or more user commands received via a local or remot e user input (e.g., joystick, touch control, wearable device, or other user input device communicating via console computer system.) Alternatively, the control unit 210 may respond to one or more autonomous commands or controls (e.g., received form a trained surgical machine learning model that is being executed by the control unit 210 or by the console computer system), or a combination thereof. The comma nds dictate the movement of robotic arm 122 and operation of its attached end e ffector 222. [0056] An end effector 222 may be any surgical instruments, such as jaws (e.g., as shown in FIGS. 4A and 4B), a cutting tool, an endo scope, spreader, implant tool, etc. Different surgical tools each having different end ef fectors can be selectively attached (one at a time) to robotic arm 122 for use during a surgical or other medical procedure. The end effector 222 depicted in the example of FIG . 5 is jaws located at a distal end of the surgical tool 240 and that may be retracted int o, or extend out of, a cannula as shown (e.g., a thin tube that may be inserted into a patient undergoing a surgical procedure). [0057] The robotic arm 122 includes a tool driver 230, in which there are one or more actuators, such as actuator 238‐j. Each actuat or may be a linear or rotary actuator that has one or more respective electric motors (e.g ., a brushless permanent magnet motor) whose drive shaft may be coupled to a respec tive drive disk 234‐j through a transmission (e.g., a gear train that achieves a giv en gear reduction ratio). The tool driver 230 includes one or more drive disks 234 tha t may be arranged on a planar or flat surface of the tool driver 230, wherein the figure shows several such drive disks that are arranged on the same plane of the flat surface. Eac h drive disk (e.g., drive disk 234‐j) is exposed on the outside surface of the tool driver 2 30 and is designed to mechanically engage (e.g., to securely fasten via snap, friction, or other mating features) a mating tool disk 244‐j of the surgical tool 240, to enable di rect torque transfer between the two. This may take place once for example a planar or f lat surface of the surgical tool 240 and corresponding or mating planar or flat surface of th e tool driver 230 are brought in contact with one another. [0058] Furthermore, a motor driver circuit (for example, ins talled in the tool driver 230 or elsewhere in the surgical robotic arm 122) is electrically coupled to the input drive terminals of a constituent motor of one or more of the actuators 238. The motor driver circuit manipulates the electrical power drawn by the motor in order to regulate for example the speed of the motor or its torque, in accordance with a motor driver circuit input, which can be set or controlled by control unit 210, which results in the powered rotation of the associated drive disk (e .g., drive disk 234‐j). [0059] When the mating drive disk 234‐j is mechanically e ngaged to a respective tool disk 244‐j, the powered rotation of the drive disk 234‐j causes the tool disk 244‐j to rotate, e.g., the two disks may rotate as one, ther eby imparting motion on, for example, linkages, gears, cables, chains, or other transmission devices within the surgical tool 240 for controlling the movement and operation of the en d effector 222 which may be mechanically coupled to the transmission device. [0060] Different surgical tools may have different numbers o f tool disks based on the types of movements and the number of degrees of freedom in which the movements are performed by their end effectors, such as rotation, articulation, opening, closing, extension, retraction, applying press ure, etc. [0061] Furthermore, within the surgical tool 240, more than one tool disk 244 may contribute to a single motion of the end effect or 222 to achieve goals such as load sharing by two or more motors that are driving the mating drive disks 234, respectively. In another aspect, within the tool driver 230, there may be two or more motors whose drive shafts are coupled (via a transmission) to rot ate the same output shaft (or drive disk 234), to share a load. [0062] In yet another aspect, within the surgical tool 240, there may be a transmission which translates torque from two drive d isks 234 (via respective tool disks 244) for performing complementary actions in the same degree of freedom, e.g., a first drive disk 234‐j rotates a drum within the housing of the surgical instrument 240 to take in one end of a rod, and a second drive disk 234 i rotates another drum within the housing of the surgical instrument 240 to take in t he other end of the rod. As another example, the extension and the shortening of an end effector along a single axis may be achieved using two tool disks 234‐i, 234‐j, one to perform the extension and another to perform the retraction. This is in contrast to an e ffector that also moves in one degree of freedom (e.g., extension and shortening longitudinally along a single axis of movement) but that only needs a single tool disk to control its full range of movement. As another example, an effector that moves in multiple degrees of freedom (e.g., such as a wristed movement, movement along multiple axes, activation of an energy emitter in addition to end effector movement, etc.) may necessitate the use of several tool disks (each being engaged to a respective drive disk). In anothe r type of surgical tool 240, a single tool disk 244 is sufficient to perform both extensio n and retraction motions, via direct input (e.g., gears). As another example, in the case of the end effector 222 being jaws, two or more tool disks 244 may cooperatively control the motion of the jaws, for load sharing, as discussed in greater detail herein. [0063] In yet another aspect, within the surgical tool 240, there may be a transmission which translates torque from two drive d isks 234 (via respective tool disks 244) for performing complementary actions in the same degree of freedom, e.g., a first drive disk 234‐i rotates a drum within the housing of the surgical tool 230 to take in one end of a cable, and a second drive disk 234‐j ro tates another drum within the housing of the surgical tool 230 to take in the other end of the cable. As another example, the extension and the shortening of an end effector alon g a single axis may be achieved using two tool disks 234‐i, 234‐j, one to perfor m the extension and another to perform the retraction, for example via different cables. Thi s is in contrast to an effector that also moves in one degree of freedom (e.g., extension and shortening longitudinally along a single axis of movement) but that only needs a sing le tool disk to control its full range of movement. As another example, an effector that moves in multiple degrees of freedom (e.g., such as a wristed movement, movement along mu ltiple axes, activation of an energy emitter in addition to end effector movement, etc.) may necessitate the use of several tool disks (each being engaged to a respecti ve drive disk). In another type of surgical tool 240, a single tool disk 244 is suffic ient to perform both extension and retraction motions, via direct input (e.g., gears). A s another example, in the case of the end effector 246 being jaws, two or more tool disks 244 may cooperatively control the motion of the jaws, for load sharing, as discussed in greater detail herein. [0064] FIG. 7 illustrates an example of the surgical tool 240 including rotary device assignments or mapping for tool disks TD1‐5 (TD 6 is unused in this example). In this example, tool disk TD5 is mapped to the roll axis 258 of the end effector, which is illustrated as jaw 251 and may comprise a first opp osing jaw 401A and a second opposing jaw 401B. The tool disk TD5 may be coupled to one or more gears that drive the wrist to rotate about the roll axis. Each oppos ing jaw is assigned two tool disks. For example, the first opposing jaw 401A may be assigned to tool disk TD1 for opening the jaw (i.e., increasing the angle between the first op posing jaw 401A and the second opposing jaw 401B) and tool disk TD3 for closing th e jaw (i.e., decreasing the angle between the first opposing jaw 401A and the second opposing jaw 401B). The tool disk TD1 may be coupled to a cable that rotates pulley 415A in a first direction and the tool disk TD3 may be coupled to a cable for rotating pu lley 415A in a second direction. [0065] Similarly, the second opposing jaw 401B may be assig ned to tool disk TD2 for opening the jaw (i.e., increasing the angle betw een the first opposing jaw 401A and the second opposing jaw 401B) and tool disk TD4 for closing the jaw (i.e., decreasing the angle between the first opposing jaw 401A and the s econd opposing jaw 401B). The tool disk TD2 may be coupled to a cable that rotates pu lley 415B in a first direction and the tool disk TD4 may be coupled to a cable for rotati ng pulley 415B in a second direction. [0066] In some embodiments, when surgical tool 240 is first attached to or installed on tool driver 230 such that the tool dis ks are brought substantially into coplanar and coaxial alignment with corresponding driv e disks (though the tool and drive disks are perhaps not yet successfully engaged) , control unit 210 initially detects the type of the surgical tool 240. In one embodimen t, surgical tool 240 has an information storage unit 242, such as a solid state memory, radio frequency identification (RFID) tag, bar code (including two‐d imensional or matrix barcodes), etc., that identifies its tool or end effector information, such as one or more of identification of tool or end effector type, unique tool or end e ffector ID, number of tool disks used, location of those tool disks being used (e.g., from a total of six possible tool disks 244‐e, f, g, h, i, j), type of transmission for the tool disks (e.g., direct drive, cable driven, etc.), what motion or actuation a tool disk imparts on the end effector, one or more tool calibration values (e.g., a rotational position of th e tool disk as determined during factor testing/assembly of the tool), whether motion of the end effector is constrained by a maximum or minimum movement, as well as other tool attributes. In one embodiment, the information storage unit 242 identifies minimal i nformation, such as a tool ID, which control unit 210 may use to perform a lookup of th e various tool attributes. [0067] The tool driver 230 may include a communication inte rface 232 (e.g., a memory writer, a near field communications, near fiel d communication (NFC), transceiver, RFID scanner, barcode reader, etc.) to r ead the information from the information storage unit 242 and pass the information to control unit 210. Furthermore, in some embodiments, there may be more than one inf ormation storage unit in surgical tool 240, such as one information storage unit assoc iated with each tool disk 244. In this embodiment, tool driver 230 may also include a corre sponding sensor for each possible information storage unit that would be present in a given tool. [0068] After surgical tool 240 is attached with tool driver 230, such that tool disks are brought into alignment and are superimposed on c orresponding drive disks (although not necessarily mechanically engaged), and a fter the tool disk information is obtained, e.g., read by control unit 210, the contro l unit 210 performs an engagement process to detect when all of the tool disks that are expected to be attached to respective drive disks are mechanically engaged with their respective drive disks (e.g., their mechanical engagement has been achieved, or the tool driver 230 is now deemed engaged with the tool). That is, attaching the surgi cal tool 240 with the tool driver 230 does not necessarily ensure the proper mating needed for mechanical engagement of tool disks with corresponding drive disks (e.g., due to misalignment of mating features). The engagement process may include activating one or more motors of an actuator (e.g., actuator 238‐j) that drives a corresponding drive disk 234‐j. Then, based on one or more monitored motor operating parameters of the actu ator 238‐j, while the latter is driving the drive disk 234‐j, the mechanical engage ment of the tool disk 244‐i with a drive disk 234‐j can be detected. This process may be repeated for every drive disk 234 (of the tool driver 230) that is expected to be cu rrently attached to a respective tool disk 244 (e.g., as determined based on the tool disk inf ormation obtained for the particular surgical tool 240 that is currently attached.) [0069] Upon detecting that a particular type of surgical to ol 240 has been attached with the tool driver 230, the control unit 210 activates one or more actuators (e.g., motors) of the tool driver 230 that have bee n previously associated with that type of surgical tool 240. In some embodiments, each actu ator that is associated with a corresponding drive disk 234 of surgical tool 240 ma y be activated simultaneously, serially, or a combination of simultaneous and serial activation. [0070] FIG. 8 illustrates an example of the surgical tool 240 that utilizes five tool disks, such as tool disks 244‐e, f, g, i, j, arr anged in a coplanar fashion on a mating surface of its housing. Each tool disk contributes t o at least a portion of the movement and/or activation of end effector 222. Upon detecting the attachment of surgical tool 240 with tool driver 230 (e.g., joining of mating s urfaces of the respective housings), control unit 210 (or its processor 312 while executi ng instructions stored in memory 314) performs a process which determines that only t he corresponding five drive disks, such as drive disks 234 e, f, g, i, j, are to be turned (a corresponding actuator 238 is activated) to perform the engagement process. [0071] In some embodiments, the motor operating parameters m onitored by the control unit 210 (via sensors 236) are interpreted t o mean successful mechanical engagement of a tool disk with a drive disk. The c ontrol unit 210 is in communication with and receives sensor data from sensor 236 in an example sensor array including any combination of a presence sensor 341, a torque senso r 342, a position sensor 343, an electrical sensor 345, an optical sensor 347, and a force sensor 348. The sensor array may include separate sensors for different degrees of freedom of the surgical tool (e.g., closure joint, roll joint, or other operation of the surgical tool). That is, the sensor array, or one or more sensors thereof, may be repeated for multiple tool disks 244 in the tool driver 230. [0072] The measurements may include measurements of torque a pplied by the actuator 238‐j as measured by the torque sensor 34 2 or the force sensor 348, measurements of current by the electrical sensor 345 supplied to a motor of the actuator 238‐j when attempting to drive the actuato r to move at a certain velocity (e.g., where the sensor 236‐j may include a current sensi ng resistor in series with a motor input drive terminal), measurements of electrical impe dance by the electrical sensor 345 as seen into the input drive terminals of the motor of the actuator 238 when attempting to drive the motor to move at a certain velocity ( e.g., where the sensor 236‐j may also include a voltage sensing circuit to measure voltage of the motor input drive terminal), speed of the actuator 238‐j (e.g., where the optic al sensor 347 may include a position encoder on an output shaft of the actuator 238‐j or on a drive shaft of the motor), as well as other parameters referred to here as motor operating parameters. The measurements may include presence data from the prese nce sensor 341, implied from any sensor in the sensor array 236, or determined f rom the interaction between the information storage unit 242 and the communication in terface 232. The position sensor 343 is illustrated separately but may be implemented using a combination of the presence sensor 341, the torque sensor 342, the elec trical sensor 345, the optical sensor 347, and the force sensor 348. In one example, addi tional sensors of the same type may be used for the position sensor 343. [0073] While monitoring the one or more motor operating par ameters of a particular actuator, when one or more of these param eters satisfies (e.g., meets or reaches) a predetermined condition or threshold, the detection of such a situation can be interpreted by control unit 210 as a mechanical engagement event. Note that satisfying the predetermined condition may for example mean that the monitored operating parameter exhibits certain changes, as per the threshold, relative to an operating parameter of another motor that is part of the same actuator 238‐j or that is part of another actuator 238‐i which his being con trolled by the control unit 210 simultaneously during the engagement detection process. [0074] In some embodiments, detection of certain motor opera ting parameters during operation of the actuator 238‐j, such as on e or more of i) torque that satisfies (e.g., rises and reaches) a torque threshold, ii) mo tor current that satisfies (e.g., rises and reaches) a current threshold, iii) impedance that dro ps below an impedance threshold, iv) motor speed dropping below a motor velocity thre shold, or a combination thereof, are used by control unit 210 to determine that mech anical engagement of tool disk 244‐j to drive disk 234‐j has occurred. The following ar e some examples of such a process. [0075] The control unit 210 including its programmed process or 312 may be integrated into the surgical robotic system 100 (FIG. 1) for example as a shared microprocessor and program memory within the control tower 130. Alternatively, the control unit 210 may be implemented in a remote com puter such as in a different room than the operating room, or in a different building than the operating arena shown in FIG. 1. Furthermore, control unit 210 may also inclu de, although not illustrated, user interface hardware (e.g., keyboard, touch‐screen, mic rophones, speakers) that may enable manual control of the robotic arm and its at tached surgical tool 240, a power device (e.g., a battery), as well as other component s typically associated with electronic devices for controlling surgical robotic systems. [0076] Memory 314 is coupled to one or more processors 312 (generically referred to here as a processor for simplicity) to store instructions for execution by the processor 312. In some embodiments, the memory is no n‐transitory, and may store one or more program modules, including a hardstop detecti on algorithm 325, a relative tracking algorithm 236 for hardstop handling, an abso lute tracking algorithm 237 for hardstop handling, and a jaw catchup algorithm 328 f or hardstop handling, whose instructions configure the processor 312 to perform t he calibration and calibration evaluation processes described herein. In other words, the processor 312 may operate under the control of a program, routine, or the exe cution of instructions stored in the memory 314 as part of the calibration algorithm 316 and the calibration evaluation algorithm 315 to execute methods or processes in acc ordance with the aspects and features described herein. The memory 314 may include one or more settings, coefficient values, threshold values, tolerance values, calibration values for the surgical tool 240 and/or the tool driver 230. These values m ay be stored in memory 314 as a configuration file, table, or matrix. Some values in the configuration file may be provided by the user, some may be accessed or retrieved base d on identifiers of the surgical tool 240 or tool driver 230, and others may be set by the control unit 210. [0077] FIG. 9 illustrates a procedure or technique that may be carried out by any of the systems described herein, for example, by a controller, such as the control unit 210. Each act in FIG. 9 may refer to a separate p rocess that may have many steps. The sequence illustrated is only an example and the step s may be performed in any order. Additional, different, or fewer acts may be included. [0078] At S101, a hardstop detection phase is performed. Th e hardstop may be an obstacle that is contacted by the end effector 2 22. The hardstop may be defined according to the degree of freedom or axis of the wrist that encounters the hardstop. Thus, the end effector 222 may experience a pitch h ardstop when a hardstop is detected in the pitch degree of freedom, a yaw hardstop when a hardstop is detected in the yaw degree of freedom, and/or a roll hardstop when a ha rdstop is detected in the roll degree of freedom. Opening or closing the jaw may also e xperience hardstops. These hardstops may be analyzed separately or movement of the jaw m ay be a factor for the associated axis (e.g., the jaw may contribute to hardstop handl ing in the yaw axis). The hardstop may be an obstacle contacted within the body of the patient. [0079] As described above, each or one or more of the act uators 238 (motors) may be associated with a sensor such as the torque sensor 342. Respective torque sensors 342 measure the torque on actuators 238. The tension in a cable coupled to the actuator 238 is determined based on the measured tor que. The torque on the actuator 238 measured by the torque sensor 342 multiplied by the radius of the actuator 238 and/or radius of the transmission pulley is equal to the tension in the respective coupled cable. As an example, the tensions or cable forces (F1, F2, F3, and F4) may correspond to any order of the cables 405A, 405B, 405C, and 405D, for example in the order of Table 1. Table 1 [0080] The control unit 210 receives values for the cable forces directly from or derived from the data collected at the respective to rque sensors 342. The control unit 210 determines which of the cable forces is the gre atest. For example, the data in Table 1 may be sorted or each cable force is compared to each other cable force. The control unit 210 selects the highest tensioned cable based o n the comparison of forces. The control unit 210 assigned a predetermined value or p redetermined force to the selected highest tensioned cable. The predetermined force may have been previously entered by the user (e.g., via input device 317, which may inc lude one or more UIDs) or otherwise stored in memory 314. The predetermined force may be determined from the material properties of the cable or the end effector 222. Th e predetermined force may be a rated force that can be experienced by the cable before t here is a significant risk of the cable breaking or other damage occurring at the end effect or 222. The predetermined force may be provided by the manufacturer of the cable. T he predetermined force may be determined experimentally through testing the cable or the end effector 222. [0081] At S103, a torque comparison is performed using torq ue threshold for the joints of the wrist and modified cable forces. A re lationship is stored by the control unit 210 that relates the torque of the joint of a wris t to the radius of a pulley and the force of a cable acting on the pulley. The control unit 210 calculates the torque thresholds for a given joint based on at least one modified cable force, which is the predetermined force that is substituted for the selected highest t ension cable. For example, the control unit 210 may calculated one or more torque threshold s based on the forces (F1, F2, F3, and F4) associated with the plurality of cables are determined from respective motor torque sensors and associated with pulley dimensions (R11, R12, R21, R22, R31 and R32) for respective pulleys for the cables. The torque th resholds may be considered variable torque thresholds because the values change depending on the measured values from the motor torque sensors. In other words, each of t he following torque thresholds change in real time or substantially real time as t he forces on the cables change. In each case, one of the force values is held constant, whi le the others fluctuate according to the data from the motor torque sensors. In each of the following eight scenarios (corresponding to Equations 10a‐h) a variable torque threshold for the wrist is based on a sum of the predetermined value for the highest te nsion cable and detected forces for remaining cables in the remaining cables. [0082] Equation 10a provides a variable wrist torque maximum threshold for the pitch angle of the wrist. The values F1, F2, and F4 are based on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F3 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F3, the predetermined force is substituted as F3’. Eq. 10a [0083] Equation 10b provides a variable wrist torque maximum threshold for the pitch angle of the wrist. The values F1, F2, and F3 are base d on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F4 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F4, the predetermined force is substituted as F4’. Eq. 10b [0084] Equation 10c provides a variable wrist torque minimum threshold for the pitch angle of the wrist. The values F2, F3, and F4 are based on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F1 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F1, the predetermined force is substituted as F1’. Eq. 10c [0085] Equation 10d provides a variable wrist torque minimum threshold for the pitch angle of the wrist. The values F1, F3, and F4 are based on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F2 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F2, the predetermined force is substituted as F2’. Eq. 10d [0086] Equation 10e provides a variable wrist torque maximum threshold for the yaw angle of the wrist. The values F1, F3, and F4 are based on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F2 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F2, the predetermined force is substituted as F2’. Eq. 10e [0087] Equation 10f provides a variable wrist torque maximum threshold for the yaw angle of the wrist. The values F1, F2, and F4 are based on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F3 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F3, the predetermined force is substituted as F3’. Eq. 10f [0088] Equation 10g provides a variable wrist torque minimum threshold for the yaw angle of the wrist. The values F2, F3, and F4 are base d on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F1 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F1, the predetermined force is substituted as F1’. Eq. 10g [0089] Equation 10h provides a variable wrist torque minimum threshold for the yaw angle of the wrist. The values F1, F2, and F3 are base d on the measured torque values (e.g., from the respective actuators 23 8). In this case, the cable for F1 corresponds to the selected highest tensioned cable, which means rather than the measured torque value for F1, the predetermined force is substituted as F1’. Eq. 10h [0090] In addition to the selection of the highest tensione d cabled described above, the control unit 210 may select the torque t hreshold equations based on a comparison of two or more cable forces. For example, when F3>F4, Equation 10a is selected (rather than Equation 10b) for the variable wrist torque maximum threshold for the pitch angle . Otherwise, or when F4>F3, Equation 10b is selec ted. In another example, when F1>F2, Equation 10c is selected (rat her than Equation 10d) for the variable wrist torque minimum threshold for the pitch angle Otherwise, or when F2>F1, Equation 10d is selected. [0091] In another example, when F2>F3, Equation 10e is s elected (rather than Equation 10f) for the variable wrist torque maximum threshold for the yaw angle Otherwise, or when F3>F2, equation 10f is selected . In another example, when F1>F4, Equation 10g is selected (rather than Equation 10h) for variable wrist torque minimum threshold for the yaw angle Otherwise, or when F4>F1, equation 10h is select ed. [0092] After the variable torque threshold for the wrist is calculated or at specific time intervals as the variable torque threshold for the wrist is calculated, the control unit 210 compares the variable torque threshold to t he joint torque calculated based on motor torque measured by the torque sensor on motor or tool driver end. [0093] The control unit 210 may receive data indicative of the torque at the pitch joint and/or data indicative of the torque at the yaw joi nt The control unit 210 compares the received joint torque to the calcul ated variable torque threshold(s). When the comparison indicates that the variable wrist torque threshold then the wrist is hitting a hardstop on the negativ e side of a pitch joint of the surgical tool. When the comparison indicates that the variable wrist torque threshold then the wrist is hitting a hardstop on the positiv e side of the pitch joint of the surgical tool. When the comparison indicates that the variable wrist torque threshold then the wrist is hitting a hardstop on the negativ e side of a yaw joint of the surgical tool. When the comparison indi cates that the variable wrist torque threshold then the wrist is hitting a hardstop on the positiv e side of the yaw joint of the surgical tool. [0094] For each case, the graphical user interface on the input device 317 may notify the user that the pitch or yaw is hitting t he limit, and display instructions to ask the user to move a specific joint angle (e.g., pitc h or yaw) closer toward the center position (e.g., homing position), or close the jaw. The notification may include a text message to indicate the direction that is needed to move away from the hardstop. The notification may include a graphical message, for exa mple including an image of the UID, to illustrate the direction that is needed to move away from the hardstop. [0095] At S105, when the torque comparison indicates that n one of the variable torque thresholds have been exceeded, the system retu rns to normal operation. During normal operation, the user commands received at the UID of user input 317 specify one or more positions, wrist angles, or jaw angles for the surgical tool 230 are received at the control unit 210. The control unit 210 calculates th e actuator commands necessary to move the wrist and/or jaw to the desired position. [0096] At S107, when the torque comparison indicates that o ne or more of the variable torque thresholds have been exceeded, any co mmands received from the user (e.g., via user input 317) are modified in a hardst op handling phase or hardstop handling mode. The variable torque threshold may be exceeded when the joint torque is greater than a maximum torque threshold or when the joint t orque is less than a minimum torque threshold. The control unit 210 may activate the hardstop handling mode in response to the comparison indicating that one of th e variable torque thresholds has been exceeded. In one example, the hardstop handling mode may be activated when the variable torque threshold has been exceeded for a predetermined amount of time or a predetermined number of samples or comparisons. [0097] In the hardstop handling phase, the control unit 210 receives commands from the user input 317 and modifies those commands depending on the type of hardstop. In one example, the control unit 210 ignor es those commands. The hardstop handling phase may include any combination of pitch tracking and handling S109, yaw tracking and handling S111, and jaw tracking and han dling S113. [0098] The pitch tracking and handling S109 examples occur when the variable pitch torque threshold is met. That is, when the co ntrol unit 210 receives a command to pitch left when the hardstop is detected already at the negative side of the pitch, the control unit 210 will not command the wrist to pitc h left. When the hardstop is no longer present, as indicated by the pitch joint torq ue returning to the acceptable range, the command may be followed to instruct the wrist t o pitch left. In some embodiments, the command to pitch left is reduced by a predeterm ined percentage. Conversely, when the control unit 210 receives a command to pitch ri ght when the hardstop is detected already at the positive side of the pitch angle, th e control unit 210 will not command the wrist to pitch right. When the hardstop is no longe r present, as indicated by the pitch joint torque returning to the acceptable range, the command may be followed to instruct the wrist to pitch right. [0099] The yaw tracking and handling S111 examples occur wh en the variable yaw torque threshold is met. When the control unit 210 receives a command to increase the yaw angle of the wrist, but when the hardstop is detected already at the positive direction of yaw, the control unit 210 will not com mand the wrist to increase the yaw angle. When the hardstop is no longer present, as i ndicated by the yaw joint torque returning to the acceptable range, the command to in crease the yaw angle may be followed. Conversely, when the control unit 210 recei ves a command to decrease the yaw angle of the wrist, but when the hardstop is d etected already at the negative direction of yaw, the control unit 210 will not com mand the wrist to decrease the yaw angle. When the hardstop is no longer present, as i ndicated by the yaw joint torque returning to the acceptable range, the command to de crease the yaw angle may be followed. [00100] These examples are summarized in Table 2. Pitch trac king examples are in cases 1 and 2, and yaw tracking examples are cases 3 and 4. Table 2 [00101] It should be noted Cases 1‐4 are not mutually exc lusive. Cases 2 and 4, for example, could be true at the same time. The hardst op handling phase may include simultaneous and independent determinations for all ca ses. [00102] The jaw handling and tracking S113 may be performed independently or in combination with the pitch tracking and handling S109 and/or the yaw tracking and handling S111. Depending on the particular surgical t ool 240 and end effector 222 the angle of the end effector 220 may impact hitting ha rd stops on another axis such as any combination of pitch, yaw, and roll. For example, tu rning to FIGS. 4A and 4B when the end effector includes a jaw. The position of the ja w may cause the surgical tool 240 to hit the hardstop. In the example of FIGS. 4A and 4 B, the jaw opens about the yaw angle. Thus, opening the jaw may contribute to hitting the hardstop in the yaw direction. [00103] The control unit 210 is configured to receive jaw a ngle commands from the input device 317. A jaw angle command may indic ate a desired angle for the jaw. The jaw angle command may include multiple angle val ues such as 401 as a first angle for jaw 401A and a second angle for jaw 401B. The jaw angle command may include a value for the difference between the first angle for jaw 401A and the second angle for jaw 401B. The jaw angle may be controlled using an absolute tracking mechanism that map a certain position from the input device 317 to an absolute jaw angle. The input device 317 may include a pressure sensor that determ ines the user’s movement and maps that measurement to the absolute jaw angle. [00104] The hardstop handling phase may include jaw handling when the jaw angle command indicates a nonzero jaw angle. The con trol unit 210 determines whether a jaw angle has been received from the control unit 317. When a jaw angle has been received, the control unit 210 activates the jaw han dling mode, which may be referred to as the jaw handling phase. In another example, t he control unit 210 compares the jaw angle to a minimum level (e.g., 5 degrees) and acti vates the jaw handling mode when the received jaw angle exceeds the minimum level. [00105] The jaw handling mode may be performed by the contr ol unit 210 using a proportional controller. FIG. 10 illustrates an exampl e jaw handling proportional controller 501 for the jaw handling and tracking S11 3. The jaw handling proportional controller 501 compensates the jaw joint command from the user to protect the cables. [00106] The input of the jaw handling proportional controller 501 includes a force error between the predetermined cable force (e.g., ma ximum cable force or F nominal such as 140N) and the highest cable force (Max(F i ) = Max(F1, F2, F3, F4)) from among the four wrist cables, having respective cable forces F1, F2, F3, and F4. Specifically, as implemented by control unit 210, a subtractor 502 ma y calculate a difference between the Max(F i ) and F nominal . The output of the jaw handling proportional controller 501 is a joint angle control value 503 that is used as the modified joint command for the jaw. The modified joint command may be negative. Because when the hardstop handling has been activated, the highest cable force must be larg er than the predetermined value (e.g., 140N). This negative jaw command may be conve rted into a motor command 504 following inverse kinematic calculation for the roboti cs wrist control. [00107] Consistent with the earlier hardstop handling phase f or pitch and yaw, the jaw handling proportional controller 501 and the jaw tracking and handling phase may be stopped when jaw joint command returns to zero o r less than zero. The control unit 210 continues to compare the jaw joint command to z ero or the minimum threshold and deactivates the jaw tracking and handling mode when the jaw joint command is equal to zero or less than the minimum threshold. In addition , for the jaw on the yaw axis as shown by FIGS. 4A and 4B, the jaw handling proporti onal controller 501 and the jaw tracking and handling phase may be stopped when the yaw joint angle returns to the acceptable range The control unit 210 continues to compare the yaw joint angle and deactivates the jaw tracking and handling mode when the jaw joint angle is greater than the and less than the [00108] The control unit 210 may perform a jaw command catc hup algorithm S 115 in response to the jaw handling and tracking S113. When the jaw tracking and handling phase has occurred (e.g., there was a nonzero jaw c ommand received from the user while a corresponding hardstop was detected) and is no longer present, the control unit 210 proceeds to the jaw command catchup phase. [00109] Using the embodiment of FIGS. 4A and 4B as an exam ple, when the yaw torque returns to a nominal value if the jaw handling mechanism was activated previously, there may be a d iscrepancy between the user’s command (e.g., from the input device 317 include UID ) for the jaw and the actual jaw command that the motors are following. Therefore, to re‐sync the motor command with the UID jaw command and prevent a sudden jump in j aw position control, the following catching up algorithm for the jaw may be implemented . [00110] In the catching up algorithm, the last joint command output from the Jaw handling P controller may be latched as the initial jaw catching up amount. The control unit 210 may define the initial jaw catching up amo unt as the last joint command from the joint angle control 503. [00111] The control unit 210 subsequently identifies one or more subsequent UID commands from user input 317 and generates a jaw co mmand adjusted based on the subsequent user input jaw angle. [00112] If the user’s UID command for jaw is an increasin g angle (i.e., the user is instructing to further open the jaw) or not changing (i.e., the user is instructing to keep current jaw open angle), then the jaw catching up a mount will be subtracted from the user’s jaw command, and the overall jaw command is used for jaw position control. Thus, the control unit 210 is configured to subtract the initial jaw catching up amount from the subsequent user input jaw angle for a jaw command when the user input jaw angle is to open the jaw. [00113] If the user’s UID command for jaw is reducing (i. e., the user is instructing to close the jaw), the jaw catching up amount is r educed by a predefined step size until the total catching up amount is smaller than the pr edefined step size. This step size is defined to be less than user noticeable jaw movement angle. In this way, the catch up amount will reduce to 0 if the user is closing the jaw for certain time cycles. Thus, the control unit 210 is configured to subtract the prede fined step size from the subsequent user input jaw angle for a jaw command when the us er input jaw angle is to close the jaw. [00114] The control unit 210 determines whether the catch up amount has reached zero. When the catch up amount has reached zero, the operation routine will return to normal (e.g., the control unit 210 returns to S105). [00115] FIG. 11 describes a process for handling one or mor e hardstops. The process may be performed by a programmed processor ( also referred to here as processor or controller), configured according to inst ructions stored in memory (e.g., the processor 312 and the memory 314 of FIG. 8, where the processor 312 is configured according to the instructions of the calibration cont rol 316 and the calibration evaluation 315). Additional, different, or fewer acts than those in FIG. 11 may be performed. [00116] At act S201, the processor 312 performs a force com parison of the forces associated with a set of cables. The forces may be described in sensor data such as from a force sensor associated with each cable (e.g., for ce transducer coupled to the cable). The forces may be calculated based on data received from torque sensors coupled to actuators coupled to the respective cables. The proce ssor 312 selects a highest tension cable from the cables based on the comparison of th e forces associated with the plurality of cables. [00117] At act S203, the processor 312 sets a predetermined value to the highest tension cable. For example, first the processor 312 selects a highest tensioned cable from the cables based on the comparison of the forc es associated with the plurality of cables. Then, the processor 312 sets the force of t he highest tensioned cable to a predetermined value. That is, the processor 312 remov es or deletes the detected force value for the highest tension cable and replaces it with the predetermined value. [00118] At act S205, the processor 312 calculates a threshol d for the wrist based on a sum of the predetermined value for the highest tension cable and detected forces for remaining cables in the plurality of cables. The threshold corresponds to a failure of the highest tensioned cable, represented by the prede termined value, and the threshold fluctuates according to the forces that are being me asured for the other cables. The threshold may correspond to any joint of the wrist such as roll, pitch, or yaw. [00119] At act S207, the processor 312 also receives sensor data for the wrist. The sensor data may be generated by a torque sensor cou pled to the wrist. A different sensor may be used for each of the joints of the wrist. [00120] At act S209, the processor 312 performs a comparison of the received joint torque value for the wrist to a variable wris t torque threshold. In some examples, the comparison results in an indication (e.g., failur e or alert) when the received joint torque value exceeds the variable wrist torque thresh olds (e.g., either less than the minimum value when the variable wrist torque threshol d is a minimum threshold or greater than the maximum value when the variable wri st torque threshold is a maximum threshold). In some examples, the comparison results in an indication (e.g., failure or alert) when the received joint torque value reaches a predetermined range of the variable wrist torque threshold. The predetermined ran ge may indicate that the threshold is becoming close to being met. In other words, the end effector may have just begun to contact the hardstop. The predetermined rang e is an indication that the end effector is at risk of hitting the hardstop. [00121] At act S211, the processor 312 identifies a hardstop or risk of hardstop based on the comparison of the received joint torque value for the wrist to the variable wrist torque threshold. When the hardstop is contacte d, the processor 312 may instruct the associated actuators 238 to stop or stop increas ing or decreasing depending on whether a maximum threshold or a minimum threshold i s passed. When the comparison indicates that the received joint torque is within t he predetermined range of the threshold, the processor 312 may modify the commands such that one or more velocities of the associated actuators 238 is reduced . The amount of reduction may be calculated in proportion to the difference between th e received joint torque value and the variable wrist torque threshold. In either case, an instruction message may be displayed for the user. When the comparison indicates that the received joint torque value returns to the interval between the minimum an d maximum for the variable wrist torque threshold, the processor 312 returns the proce ss to normal operation and/or stops modifying commands received from the user. [00122] Herein, the phrase “coupled with” is defined to mean directly connected to or indirectly connected through one or more inter mediate components. Such intermediate components may include both hardware‐ a nd software‐ based components. Further, to clarify the use in the pendi ng claims and to hereby provide notice to the public, the phrases “at least one o f <A>, <B>, … and <N>“ or “at least one of <A>, <B>, … <N>, or combination s thereof” are defined by the Applicant in the broadest sense, superseding any other implied definiti ons hereinbefore or hereinafter unless expressly asserted by the Applicant to the co ntrary, to mean one or more elements selected from the group comprising A, B, and N, that is to say, any combination of one or more of the elements A, B, or N including any one element alone or in combination with one or more of the ot her elements which may also include, in combination, additional elements not listed. [00123] The disclosed mechanisms may be implemented at any l ogical and/or physical point(s), or combinations thereof, at which the relevant information/data (e.g., message traffic and responses thereto) may be monitor ed or flows or is otherwise accessible or measurable, including one or more gatew ay devices, modems, computers or terminals of one or more market participants, e.g ., client computers, etc. [00124] One skilled in the art will appreciate that one or more modules described herein may be implemented using, among other things, a tangible computer‐readable medium comprising computer‐executable instructions (e. g., executable software code). Alternatively, modules may be implemented as software code, firmware code, specifically configured hardware or processors, and/or a combination of the aforementioned. [00125] The operations of computer devices and systems shown in Figures 1‐25 may be controlled by computer‐executable instructions stored on a non‐transitory computer‐readable medium. For example, the exemplary computer device or control unit 210 may store computer‐executable instructions, generate electronic messages, extracting information from the electronic messages, e xecuting actions relating to the electronic messages, and/or calculating values from th e electronic messages to facilitate any of the algorithms or acts described herein. Nume rous additional servers, computers, handheld devices, personal digital assistants, telephon es and other devices may also be connected to control unit 210. [00126] As illustrated in FIG. 3, the computer system may i nclude a processor 312 implemented by a central processing unit (CPU), a gr aphics processing unit (GPU), or both. The processor 312 may be a component in a va riety of systems. For example, the processor 312 may be part of a standard personal co mputer or a workstation. The processor 312 may be one or more general processors, digital signal processors, specifically configured processors, application specific integrated circuits, field programmable gate arrays, servers, networks, digital c ircuits, analog circuits, combinations thereof, or other now known or later de veloped devices for analyzing and processing data. The processor 312 may implement a s oftware program, such as code generated manually (i.e., programmed). [00127] The computer system includes memory 314 that can com municate via a bus. The memory 314 may be a main memory, a static memory, or a dynamic memory. The memory 314 may include, but is not limited to, computer‐readable storage media such as various types of volatile and non‐volatile storage media, including but not limited to random‐access memory, read‐only memory, programmable read‐only memory, electrically programmable read‐only memory, e lectrically erasable read‐only memory, flash memory, magnetic tape or disk, optical media and the like. In one embodiment, the memory 314 includes a cache or rando m‐access memory for the processor 312. In alternative embodiments, the memory 314 is separate from the processor 312, such as a cache memory of a processo r, the system memory, or other memory. The memory 314 may be an external storage d evice or database for storing data. Examples include a hard drive, compact disk ( CD”), digital video disc (“DVD”), memory card, memory stick, floppy disk, universal ser ial bus (“USB”) memory device, or any other device operative to store data. The memory 314 is operable to store instructions executable by the processor 312. The fun ctions, acts or tasks illustrated in the figures or described herein may be performed by the programmed processor 312 executing the instructions stored in the memory 314. The functions, acts or tasks are independent of the particular type of instructions se t, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firmware, micro‐code and the like, operating alone or in combination. Likewise, processing strategies may include multiprocessing, mult itasking, parallel processing and the like. [00128] The computer system may further include a display un it 319, such as a liquid crystal display (LCD), an organic light emitti ng diode (OLED), a flat panel display, a solid‐state display, a cathode ray tube (CRT), a p rojector, a printer or other now known or later developed display device for outputting dete rmined information. The display 319 may act as an interface for the user to see t he functioning of the processor 312, or specifically as an interface with the instructions st ored in the memory 314 or elsewhere in the control unit 210. [00129] Additionally, the computer system may include an inpu t device 317 configured to allow a user to interact with any of the components of the system. The input device 317 may be a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote c ontrol or any other device operative to interact with the control unit 210. [00130] The present disclosure contemplates a computer‐readab le medium that includes instructions or receives and executes instruc tions responsive to a signal, so that a device connected to a network can communicate voic e, video, audio, images or any other data over the network. Further, the instruction s may be transmitted or received over the network via a communication interface 318. The communication interface 318 may be a part of the processor 312 or may be a s eparate component. The communication interface 218 may be a physical connect ion in hardware. The communication interface 318 is configured to connect with a network, external media, the display unit 319, or any other components in th e system, or combinations thereof. The connection with the network may be a physical c onnection, such as a wired Ethernet connection or may be established wirelessly. Likewise, the additional connections with other components of the system may be physical connections or may be established wirelessly. [00131] The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complet e description of all of the elements and features of apparatus and systems that utilize t he structures or methods described herein. Many other embodiments may be apparent to th ose of skill in the art upon reviewing the disclosure. Other embodiments may be ut ilized and derived from the disclosure, such that structural and logical substitut ions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scal e. Certain proportions within the illustrations may be exaggerated, while other proporti ons may be minimized. Accordingly, the disclosure and the figures are to b e regarded as illustrative rather than restrictive. [00132] While this specification contains many specifics, thes e should not be construed as limitations on the scope of the inventi on or of what may be claimed, but rather as descriptions of features specific to partic ular embodiments of the invention. Certain features that are described in this specifica tion in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in th e context of a single embodiment can also be implemented in multiple embodiments separ ately or in any suitable sub‐ combination. Moreover, although features may be descri bed as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the c ombination, and the claimed combination may be directed to a sub‐combination or variation of a sub‐combination. [00133] Similarly, while operations are depicted in the drawi ngs and described herein in a particular order, this should not be un derstood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desira ble results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the d escribed embodiments should not be understood as requiring such separation in all em bodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.