HARIRI ALIREZA (US)
WO2018148030A1 | 2018-08-16 |
US20190274769A1 | 2019-09-12 | |||
US20160287840A1 | 2016-10-06 | |||
US20200054401A1 | 2020-02-20 | |||
US20180311831A1 | 2018-11-01 | |||
JP2013248119A | 2013-12-12 |
What is claimed is: 1. An apparatus for detecting disengagement of a surgical tool, the apparatus comprising: an end effector connected to and driven by a plurality of cables of a tool driver; a plurality of sensors configured to detect forces associated with the plurality of cables; and one or more processors configured to: identify a tension of at least one of the plurality of cables derived from at least one of the forces detected by the plurality of sensors; perform a first comparison of the tension of the at least one of the plurality of cables to a threshold tension value; identify a velocity value for each of the plurality of cables; calculate a velocity norm value based on a vector including the velocity value for each of the plurality of cables; perform a second comparison of the velocity norm value to a statistic velocity threshold; and identify a disengagement of at least one of the plurality of cables or associated components based on the first comparison and the second comparison. 2. The apparatus of claim 1, wherein the velocity norm value is a magnitude of the vector including the velocity value for each of the plurality of cables. 3. The apparatus of claim 2, one or more processors configured to: calculate the statistic velocity threshold, in part, from a commanded velocity. 4. The apparatus of claim 3, wherein the statistic velocity threshold is calculated, in part, from a Bayesian filter. 5. The apparatus of claim 3, wherein the statistic velocity threshold is calculated, in part, from an average of the velocity norm value at a first time and the velocity norm value at a second time. 6. The apparatus of claim 5, wherein the statistic velocity threshold is calculated, in part, from a standard deviation of a time series of data including the velocity norm value at the first time and the velocity norm value at the second time. 7. The apparatus of claim 6, one or more processors configured to: calculate a chi squared value for the time series of data. 8. The apparatus of claim 1, further comprising: a plurality of motors coupled to the plurality of cables, respectively, wherein the plurality of sensors detect torque at respective ones of the plurality of motors. 9. The apparatus of claim 8, one or more processors configured to: calculate the tension of at least one of the plurality of cables from an inverse kinematics model for the surgical tool. 10. The apparatus of claim 9, wherein the inverse kinematics model includes a relationship between the torque detected at respective ones of the plurality of motors and the tension of the at least one of the plurality of cables according to an inverse kinematics matrix. 11. The apparatus of claim 1, one or more processors configured to: calculate the velocity value for each of the plurality of cables from an inverse kinematics model. 12. The apparatus of claim 1, one or more processors configured to: generate a message in response to the disengagement of at least one of the plurality of cables or associated components. 13. The apparatus of claim 12, wherein the message is a user alert with instructions for a user of the surgical tool. 14. The apparatus of claim 12, wherein the message dispatches services for the surgical tool. 15. The apparatus of claim 12 wherein the message is an error command that disables the surgical tool. 16. A method for detecting disengagement of a surgical tool, the method comprising: identifying a tension of at least one of a plurality of cables derived from at least one force detected by a plurality of sensors; performing a first comparison of the tension of the at least one of the plurality of cables to a threshold tension value; identifying a velocity value for each of the plurality of cables; calculating a velocity norm value based on a vector including the velocity value for each of the plurality of cables; performing a second comparison of the velocity norm value to a statistic velocity threshold; and identifying a disengagement based on the first comparison and the second comparison. 17. The method of claim 16, wherein the velocity norm value is a magnitude of the vector including the velocity value for each of the plurality of cables. 18. The method of claim 16, wherein the statistic velocity threshold is based, at least in part, on a commanded velocity. 19. The method of claim 16, wherein the statistic velocity threshold is based, at least in part, on the velocity norm value at a first time and the velocity norm value at a second time. 20. An apparatus comprising: a memory configured to store a threshold tension value and a statistic velocity threshold; and a controller configured to perform a first comparison of a tension of the at least one of a plurality of cables to the threshold tension value and perform a second comparison of a velocity norm value to the statistic velocity threshold, wherein a disengagement is determined based on the first comparison and the second comparison. |
[0051] 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: [0052] 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. [0053] 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. [0054] 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. [0055] FIG. 5 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. [0056] 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 mplements 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. [0057] 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 (e.g., torque is a twisting force) from the tool driver 23 0. The control unit 210 may be implemented as a programmed processor, for example as part of the control tower 130 of FIG. 1. It may respond to one or more user com mands received via a local or remote user input (e.g., joystick, touch control, wearable d evice, or other user input device communicating via console computer system.) Alternative ly, the control unit 210 may respond to one or more autonomous commands or contro ls (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 commands dictate the movement of robotic arm 122 and operation of it s attached end effector 222. [0058] 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 may be jaws located at a dist al end of the surgical tool 240 and that may be retracted into, or extend out of, a ca nnula as shown (e.g., a thin tube that may be inserted into a patient undergoing a surgical procedure). [0059] 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. [0060] 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). [0061] 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. [0062] 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. [0063] 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. [0064] 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. [0065] 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 complimentary 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 240 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 240 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. [0066] FIG. 6 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. [0067] 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. [0068] 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. [0069] 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. [0070] 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.) [0071] 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. [0072] FIG. 7 illustrates the cable drive system for the s urgical tool 240. As described in other embodiments herein, four cables 40 5A‐D are driven by the tool driver 230 to provide a desired position or motion to a t ool, which includes a wrist 223 and the end effector 222. The cables 405A‐D connect to the wrist 223 at a cable interface 224. The wrist 223 is connected to the end effector 222, or includes the end effector 222. The cables 405A‐D are contained and protected by a sha ft 239. The cables connect to the distal end of the robotic arm 200 at a tool attach ment interface 205. A control unit 210 provides data to one or more components of the surg ical tool 240 and receives feedback data from the surgical tool 240, as described in mo re detail below. [0073] FIG. 8 illustrates a more detailed view of the cabl e drive system. A motor 231 operates the cables 405. The motor 231 may be connected directly to a shaft for winding the cables 405 in particular sequences in or der to move the wrist 223. In the example illustrated in FIG. 8, the motor 231 drives a gear train 235 to rotate a capstan 237 that the cable wraps around. A variety of senso rs may be included in the cable drive system. A position encoder 233 may be a rotary posi tion encoder that monitors motor shaft position and encodes the current motor shaft p osition, e.g., to a value representing angular position. A sensor 236 may include a tension sensor that is coupled to a respective cable or a torque sensor that measures to rque of a respective motor coupled to the cable. Measured torque (a rotational force) c an be converted to tension (a linear force). Each cable may have an initial tension (a p re‐tension) at a starting ‘relaxed’ position of the tool. In some embodiments, the pre tension is 10N. In some embodiments, where the tool does not require cable p re‐tension, the pre‐tension value may be set to 0 other low value. [0074] FIG. 9 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. [0075] 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. [0076] The measurements may include measurements of torque ( e.g., a twisting force) applied by the actuator 238‐j as measured b y the torque sensor 342 or the force sensor 348, measurements of current by the electrical sensor 345 supplied to a motor 231 of the actuator 238‐j when attempting to drive the actuator to move at a certain velocity (e.g., where the sensor 236‐j may include a current sensing resistor in series with a motor input drive terminal), measurements of electrical impedance by the electrical sensor 345 as seen into the input drive terminals of the motor 231 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 actuat or 238‐j (e.g., where the optical sensor 347 may include a position encoder on an out put shaft of the actuator 238‐j or on a drive shaft of the motor 231), as well as ot her parameters referred to here as motor operating parameters. The measurements may inclu de presence data from the presence sensor 341, implied from any sensor in the sensor array 236, or determined from the interaction between the information storage unit 242 and the communication interface 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 electrical sensor 345, the optical sensor 347, and the force s ensor 348. In one example, additional sensors of the same type may be used for the posit ion sensor 343. [0077] 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. [0078] 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. [0079] 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. [0080] 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 tension evaluation control 316 and the velocity evaluation control 315, whose instructions configure t he processor 312 to perform the calibration and calibration evaluation processes descri bed herein. In other words, the processor 312 may operate under the control of a pr ogram, routine, or the execution of instructions stored in the memory 314 as part of te nsion evaluation control 316 and the velocity evaluation control 315 to execute methods or processes in accordance with the aspects and features described herein. [0081] The memory 314 may include one or more settings, co efficient values, threshold values, tolerance values, calibration values for the surgical tool 240 and/or the tool driver 230. The memory 314 may include specific values for the threshold tension value and/or the velocity threshold described below. These values may 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 acce ssed or retrieved based on identifiers of the surgical tool 240 or tool driver 230, and others may be set by the control unit 210. [0082] FIG. 10 illustrates a block diagram for a procedure or technique that may be carried out by any of the systems described here in, for example, by a controller, such as the control unit 210. Each act or block may ref er to a separate process that may have many steps. The sequence illustrates is only an exam ple and the steps may be performed in any order. Additional, different, or few er blocks may be included. [0083] As described above, each or one or more of the act uators 238 or motors 231 may be associated with a sensor such as the to rque 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 may be multip lied by the radius of the actuator 238 to equal to the tension in the respective coupl ed cable. The control unit 210 may calculate a set of cable tensions 501A‐D including tension values from the torques on the corresponding actuators and/or drive train between the actuator and the cable. [0084] The control unit 210 may calculate the tension of a t least one of the cables from an inverse kinematics model for the surgical to ol 240. For example, the user input from the input device 317 may request a particular position or direction of motion in joint space. The control unit 210 translates the com manded position from the inverse kinematics model including the B matrix described abo ve to convert the commanded position in actuator space or directly to cable spac e. The inverse kinematics model includes a relationship between the torque detected a t respective ones of the plurality of motors and the tension of the at least one of the plurality of cables according to an inverse kinematics matrix. [0085] Alternatively, the control unit 210 may receive the tension for at least one the cables from a tension sensor that is coupled to a respective cable. In all of these examples, the control unit 210 identifies a tension of at least one of the plurality of cables derived from at least one of the forces dete cted by the sensors. [0086] The control unit 210 performs tension threshold compa rison 503 (e.g., included in the tension evaluation control 316) to c ompare the tension of the at least one of the cables to a threshold tension value. The output of the threshold comparison 503 may be a binary value that corresponds to a fi rst value (e.g., high value or 1) when the tension is less than the threshold tension value and a second value (e.g., low value or 0) when the tension is greater than the threshol d tension value. [0087] The control unit 210 may also determine a set of c able velocities 502A‐D based on sensor data for the corresponding actuator 238. In one example, the position encoder 233 provides sensor data for the position of the actuator 238. The change in rotational position of the actuator 238 is translated to the linear velocity of the cables. Alternatively, the set velocity of the cables 502A‐ D is based on the sensor data for motor torque. For example, the motor torque ?? [0088] Another example of the calculation of the set of ca ble velocities 502A‐D accounts for the capstan 237 and/or gear train. The set of cable velocities 502A‐D may be determined based in on actuator position and a r adius of the capstan 237. The capstan radius is the distance that a respective cab le fixes to and wraps around when the capstan 237 rotates. Rotation of the capstan can be effected through one or more gears that translate rotational motion of motor 231 to rotational motion of the capstan 237. When the capstan is rotated, cable position and cable tension changes accordingly, depending on an amount and direction of rotation. [0089] In some embodiments, measured cable position (C) is determined through the product of actuator position (x) and a radius ( r) as shown by Equation 10. The radius (r) may be the radius of the actuator or the radiu s of the capstan, which may be adjusted by the gear ratio of the gear train. [0090] The change in cable position (C) is the velocity of the cable (V) as shown by Equation 11. The derivative of cable position with r espect to time is cable velocity. Likewise, the derivative of actuator position with re spect to time multiplied by the radius is cable velocity. [0091] The control unit 210 generates velocity vector 504 (e.g., using velocity evaluation control 315) from the set of cable veloci ties 502A‐D. The control unit 210 may identify a velocity value for each of the plura lity of cables calculated from any of the techniques described above. The velocity vector 504 i ncludes an entry for each cable in the cable drive system. The velocity vector 504 may be arranged such that antagonistic pairs of cables are in predetermined positions in th e velocity vector 504. For example, the velocity values for antagonistic pairs of cables may be adjacent in the velocity vector 504. [0092] The control unit 210 may calculate a measured veloci ty norm value 506 from the velocity vector 504. The entries of the ve locity vector 504 are squared and summed, and the square root of the result is the v elocity norm value 506, as shown in Equation 11. The magnitude of the velocity vector 50 4 is the measured velocity norm value 506. Thus, the measured velocity norm value (V measured ) is a single value that represents the measured velocities (MV 1 , MV 2 , ... MV n ) of all of the cables in the cable drive system. [0093] The measured velocity norm value 506 may be compared to commanded velocities. The commanded velocities are the expected velocities of the cable based on the commands sent to the actuator 238. When the com manded velocities are different from the measured velocities, there has been unexpect ed behavior. The engagement between the actuator and the sterile adapter may hav e been disengaged or otherwise compromised. When this happens, the energy stored in one or more cables as tension can move the wrist in an unexpected manner. [0094] The control unit 210 may calculate a commanded veloc ity norm value from the commanded velocity values for the cable bas ed on the user input. The commanded velocity values are squared and summed, and the square root of the result is the commanded velocity norm value (V command ), as shown in Equation 12. The commanded velocity norm value is a single value that represents the commanded velocities (CV 1 , CV 2 , ... CV n ) of all of the cables in the cable drive sy stem. [0095] The control unit 210 performs the velocity threshold comparison 510 (e.g., using velocity evaluation control 315) to compare the velocity norm value to a statistic velocity threshold. The statistic velocity threshold m ay be set equal to the commanded velocity norm value so that the comparison is a dir ect comparison. The output of the threshold comparison 503 may be a binary value that corresponds to a first value (e.g., high value or 1) when the velocity is greater than the statistic velocity threshold and a second value (e.g., low value or 0) when the tensio n is less than the statistic velocity threshold. [0096] The statistic velocity threshold may be the differenc e in the measured velocity norm value and the commanded velocity norm value that is statistically significant. For example, the measured velocity norm value and/or the commanded velocity norm value may be monitored by the control unit 210 over time to determine how much of a change in the measured velocity norm value and/or the commanded velocity norm value indicates that one or more of t he cables has experienced a release of energy due to a disconnection or breakage and no t simply a inconsequential variation in the data. [0097] The statistic velocity threshold may be calculated, i n part, from a Bayesian filter. For example, a Bayesian filter may analyze a time series of data from the measured velocity norm value, the commanded velocity norm value, or a difference between the measured velocity norm value and the com manded velocity norm value. The Bayesian filter may determine a joint probability distribution over any of these variables in time to identify statistically significan t changes in the variables and filter out variations that are merely noise. [0098] The statistic velocity threshold may be determined fr om a statistical hypothesis test (e.g., chi‐squared test). The statis tical hypothesis determines whether there is a statistically significant difference betwee n the measured velocity norm value and the expected value from the commanded velocity n orm value. [0099] The statistic velocity threshold is calculated, in pa rt, from an average of the velocity norm value at a first time and the ve locity norm value at a second time. For example, the statistic velocity threshold is calculate d, in part, from a standard deviation of a time series of data including the velocity nor m value at the first time and the velocity norm value at the second time. [00100] An AND gate 505, which may be included merely for graphical representation, represents the logical operation for t he output of the tension threshold comparison 503 and the velocity comparison threshold 510. There may be no component corresponding to the gate 505, which may b e only a graphical representation. When the output of the velocity thres hold comparison 510 indicates that the velocity is greater than the statistic velo city threshold and the tension threshold comparison 503 indicates the measured tension is less than the threshold tension value the output of the AND gate 505 may be high and ca use the control unit 210 to generate one or more messages. The control unit 210 is confi gured to identify a disengagement of at least one of the plurality of cables or associat ed motors based on the first comparison and the second comparison. [00101] The message may be indicative of a disengagement of a cable or a disengagement of the motor from the sterile adapter, which resuslts in a disengaged cable. The control unit 210 may generate the message in response to the disengagement of at least one of the cables. The message may spe cify the cable. For example, the cable may be identified by the lowest tension value for t he set of cable tensions 501A‐D based on the torques on the corresponding actuator 238 or from the inverse kinematics model for the surgical tool 240. [00102] The message may be an alert 507 to the user. For example, the message may state that an error has occurred. The message m ay provide instructions for the user to handle the error such as reconnecting the disenga ged cable or the disengaged motor. The message may instruct the user to remove the too l. The message may instruct the user to replace the tool with a new tool. [00103] The message may be an internal message that instruct s the control unit 210 to disable the surgical tool 240. Thus, when a disengagement is detected, the surgical tool 240 is disabled. The control unit 210 may generate an error command that disables the surgical tool 240 in response to the m essage when the disengagement is detected. Re‐enabling the tool may require entering a code to the surgical tool 240 or providing a factor reset command to the surgical too l 240. [00104] The message may be an external message that is comm unicated to an external device. For example, the message may be sen t to a manufacturer or other entity that dispatches services for the surgical tool . The external device or the control unit 210 may track the occurrences of messages or a lerts at the surgical tool 240, and when a set number of messaged have occurred, a fata l error may be assigned to the surgical tool 240 and the surgical tool 240 permanen tly disabled. The message may be logged by the external device, along with other surg ical tools, to identify trends in the deployment of a particular model of surgical tool. [00105] FIG. 11 describes a process for detection of a cabl e malfunction. 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 tension evaluati on control 316 and the velocity evaluation control 315). Additional, different, or few er acts than those in FIG. 11 may be performed. [00106] At act S101, the processor 312 identifies a tension in a cable of the surgical tool. The processor 312 may calculate a val ue for the tension or receive the value from a sensor directly or indirectly. Tension values may be received or calculated repeatedly such as at a predetermined time interval. Tension values may be identified at a sample rate such as every 1 second, 100 milliseco nds, or 10 milliseconds. Tension values may be received for any number or all of th e cables in the surgical tool. [00107] In one example, the tension is measured or received only at specific times. For example, the processor 312 may determine that th e cables are tensioned based on the movement of the end effector. In some examples, the cables, or a subset of the cables, may not be tensioned when a degree of freed om (e.g., roll, pitch, yaw, or jaw) changes direction. The degree of freedom changes dire ction when the corresponding angle for the degrees of freedom transitions from in creasing in value to decreasing in value or from decreasing in value to increasing in value. [00108] At act S103, the processor 312 performs a comparison of the tension of the at least one cable to a threshold tension value extracted from memory 314. The threshold tension value may be set by the user or manufacturer. Alternatively, the threshold tension value may be variable over time. T he threshold tension may be based on an average of past tension vales such as twice the average of past tension values over a time window. The threshold tension value may be d ifferent for different cables. The threshold tension value may be different for pairs o f cables. In one example, for each pair of antagonistic cables, the comparison is made only for one of the antagonistic pair at a time. In another example, the threshold tension value is assigned to a pair of antagonistic cables and the comparison is for the su m of the tension vales for the pair of antagonistic cables. [00109] At act S105, the processor 312 identifies a velocity for each of the cables of the surgical tool or at least multiple cables of the surgical tool. The processor 312 may calculate a value for the velocities or receive the value from a sensor directly or indirectly. Velocity values may be received or calcul ated repeatedly such as at a predetermined time interval. Velocity values may be i dentified at a sample rate such as every 1 second, 100 milliseconds, or 10 milliseconds. [00110] At act S107, the processor 312 calculates a velocity norm or representative value for all of the cables of the s urgical tool or for multiple cables of the surgical tool. The velocity norm may be a sum of t he velocity values. The velocity norm may include a sum of squares of the velocity values . The velocity mum may be the square root of the sum of the squares of the veloc ity values. Other examples for the velocity that combine the relative velocities of the cables of the surgical tool are possible. [00111] At act S109, the processor 312 compares the velocity norm to a velocity threshold. The velocity threshold may be set by the user or manufacturer. Alternatively, the velocity threshold may be variable over time. Th e velocity threshold may be set based on past values such as twice the average of the velocity norm over a time window. [00112] At act S111, the processor 312 detects a malfunction of the surgical tool. The malfunction is based on the comparison for tensi on and the comparison for velocity. When the tension is below the tension threshold and the velocity is above the threshold, the processor 312 identifies a malfunction with the cable. The malfunction may indicate a disengagement between the sterile adapter and the surgical tool. The malfunction may be disengagement of at least one cable. [00113] The processor 312 may generate a command for remedia l action in response to the determination of the malfunction in the surgical tool. The remedial action may disable the surgical tool. The surgical t ool may be disabled for a predetermined time, until user intervention (e.g., res et switch) takes place, or until the surgical tool is reconfigured. The reconfiguring of t he surgical tool may include homing and/or calibration. The reconfiguring of the surgical tool may include replacing one or more cables. [00114] 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. [00115] 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. [00116] 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. [00117] 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. [00118] 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). [00119] 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. [00120] 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. [00121] Additionally, the computer system may include an inpu t device 317 configured to allow a user to interact with any of the components of 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. [00122] 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. [00123] 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. [00124] 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. [00125] 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.