Patent Description:
Minimally-invasive surgery (MIS), such as laparoscopic surgery, involves techniques intended to reduce tissue damage during a surgical procedure. For example, laparoscopic procedures typically involve creating a number of small incisions in the patient (e.g., in the abdomen), and introducing one or more surgical tools (e.g., end effectors and endoscope) through the incisions into the patient. The surgical procedures may then be performed using the introduced surgical tools, with the visualization aid provided by the endoscope.

Generally, MIS provides multiple benefits, such as reduced patient scarring, less patient pain, shorter patient recovery periods, and lower medical treatment costs associated with patient recovery. Recent technology development allows more MIS to be performed with robotic systems that include one or more robotic arms for manipulating surgical tools based on commands from a remote operator. A robotic arm may, for example, support at its distal end various devices such as surgical end effectors, imaging devices, cannulae for providing access to the patient's body cavity and organs, etc. In robotic MIS systems, it may be desirable to establish and maintain high positional accuracy for surgical instruments supported by the robotic arms.

New class of surgical instruments supported for robotic arms may share similar designs, for example, a tool may have an end effector that comprises a robotic wrist and one or more jaws, and a pulley and cable system for coupling the end effector to actuators in a tool drive, which can drive multi-axial motions (e.g., pitch and yaw) of the end effector. The end effectors may include more than one jaws actuated through antagonistic cables to perform grasping, cutting, suturing, among other surgical tasks. The ability to control the grip force between the jaws, while moving the robotic wrist to any angular position with precision, is a fundamental requirement for the usability of the robotic surgical instruments. There is currently no known method that can achieve this with a four-wire antagonistic robotic wrist.

<CIT> describes a method in which a lock sensing mode is entered for a robotic surgical instrument. In the lock sensing mode, the degrees of freedom of movement in the robotic surgical instrument are switchably reduced. Further in the lock sensing mode, one or more end effectors of the robotic surgical instrument are switchably clamped together in the robotic surgical instrument. An increased level of torque may also be applied to the end effectors to increase a gripping force applied by the one or more end effectors in response to the reduced degrees of freedom of movement in the robotic surgical instrument. <CIT> describes an instrument suitable for minimally invasive medical procedures having a wrist mechanism that can control the pitch, yaw, and grip of an effector using only four cables that extend from the wrist through the main tube of the instrument to a backend mechanism. The medical instrument may include a clevis, at least one jaw, and at least one pair of cables.

The invention is defined by the appended independent claim <NUM>. Certain surgical methods are described with reference to the system of the claimed invention. Whilst no claim is directed to these methods per se, the system is capable of being used and is intended to be used in such methods. Generally, in some variations, a system and method for controlling during robotic surgery a robotic surgical tool having an end effector at a distal end. The end effector may have a robotic wrist and two members coupled to the robotic wrist pivoting relative to each other, each member is robotically manipulated via a pair of antagonistic cables imparting forces when tensioned. The system receives an input for a desired state of the end effector and calculates a displacement of the pair of the antagonistic cables for each member of the end effector based on the desired state. The system next generates a first command for driving the robotic wrist and the end effector members based the calculated displacement. The system then determines whether the desired state includes a desired grip force between the two end effector members. In response to a determination of the desired grip force, the system generates a second command for tensioning at least one of the pair of antagonistic cables for a member of the end effector based on the desired grip force and the current grip force between the two end effector members. The system further drives the end effector to effect the desired state based on the first command and/or the second command.

In some variations, the desired state comprises at least one of a desired pitch angle of the robotic wrist, a desired yaw angle of the end effector and a desired jaw angle between the two opposing members of the end effector, wherein determining whether the desired state include a desired grip force comprises comparing the desired jaw angle to a threshold. The threshold is a contact jaw angle between the two opposing members of the end effector when grasping an object or when in contact to each other without grasping any objects, wherein the contact jaw angle is determined based on an estimation of the current grip force between the two opposing members and an estimation of current jaw angle. The current grip force between the two end effector members is estimated based on the measurements of current tensioning forces on the pair of antagonistic cables.

In some variations, each of the pair of antagonistic cables is tensioned by at least on actuator and calculating the displacement comprises measuring current positions and/or velocity of the at least one actuator and current tensioning forces on the pair of antagonistic cables; and estimating a current state of at least one of a pitch angle of the robotic wrist, a yaw angle of the end effector, and a jaw angle between the two opposing members of the end effector, and a current grip force based on the measurements. The system may further generate a composite command based on the first command and the second command to drive the at least one actuator. The system may also monitor tensioning forces on the pair of antagonistic cables and maintain a predetermined minimum tensioning force on each of the pair of antagonistic cables to prevent cable slack.

Generally, in some variations, a surgical robotic system comprises a robotic surgical tool, which includes and end effector at a distal end. The end effector comprises two opposing jaws, each manipulated by at least one actuator via a pair of antagonistic cables imparting forces when tensioned by the actuator. The system also comprises a controller having one or more processors coupled to the robotic surgical tool. The system receives a command to effect a desired state of the end effector from an input module. The desired state of the tool may include at least one of a pitch angle and a yaw angle of the end effector, and a jaw angle between the two jaws. The system then determines a desired position of the end effector based on the pitch angle and the yaw angle, and a desired grip force between the two jaws based on the jaw angle. Based on the desired position and desired grip force, the controller drives the at least one actuator to effect the desired state of the end effector.

Generally, in some variations, a system for the example robotic surgical tool control system comprises a surgical tool with an end effector having two grip members, each grip member is robotically manipulated through a pair of antagonistic cables effecting opposite pivoting of each grip member when tensioned individually. The tool control system also comprises one or more processors and an input coupled to the processors. The system receives an input jaw angle between the two grip members of the end effector. The system then determines whether the received input jaw angle indicates a desired force between the two grip members. In response to a determination that the input jaw angle indicates a desired grip force, the system generates a command for tensioning at least one of the pair of antagonistic cables for each grip member based on a difference between the desired grip force and an estimated current grip force. At least one of the pair of antagonistic cables can then be tensioned to effect the desired grip force. Otherwise if it is determined that the received input indicates a desired jaw angle, the system determines a displacement of the pair of the antagonistic cables for each grip member of the end effector, and drive the end effector via the pair of antagonistic cables to effect the desired jaw angle based on the determined displacement.

Other variations of systems and methods for controlling position and grip force of a robotic surgical tool are described herein.

Examples of various aspects and variations of the invention are described herein and illustrated in the accompanying drawings. The following description is not intended to limit the invention to these embodiments, but rather to enable a person skilled in the art to make and use this invention.

Disclosed is a system and method for controlling angular position and grip force of end effectors of surgical robotic arms. An end effector including a robotic wrist and one or more jaws may be coupled to actuators through metal cable or wires. The wires may work, for example, in wire pairs where pulling on one wire imparts an opposite force on the other wire of the wire pair, as such the robotic wrist may be an antagonistic robotic wrist. The control algorithm may use position and velocity feedback from the actuators, as well as force feedback from load cells on the four wires. The actuator controllers may run in the position plus current feedforward mode. The feedforward current may be provided by a grip force controller. The grip force controller may use the forces of the four wires to determine the grip force, and the grip force controller may modulate an additional current to the motors to achieve the desired grip force. Applied surgical robotic instruments includes graspers, forceps, scissors, needle drivers, retractors, pliers, and cautery instruments, among others.

<FIG> is a diagram illustrating an example operating room environment with a surgical robotic system <NUM>, in accordance with aspects of the subject technology. As shown in <FIG>, the surgical robotic system <NUM> comprises a surgeon console <NUM>, a control tower <NUM>, and one or more surgical robotic arms <NUM> located at a surgical robotic platform <NUM> (e.g., a table or a bed etc.), where surgical tools with end effectors are attached to the distal ends of the robotic arms <NUM> for executing a surgical procedure. The robotic arms <NUM> are shown as a table-mounted system, but in other configurations, the robotic arms may be mounted in a cart, ceiling or sidewall, or other suitable support surface.

Generally, a user, such as a surgeon or other operator, may use the user console <NUM> to remotely manipulate the robotic arms <NUM> and/or surgical instruments (e.g., tele-operation). The user console <NUM> may be located in the same operation room as the robotic system <NUM>, as shown in <FIG>. In other environments, the user console <NUM> may be located in an adjacent or nearby room, or tele-operated from a remote location in a different building, city, or country. The user console <NUM> may comprise a seat <NUM>, foot-operated controls <NUM>, one or more handheld user interface devices <NUM>, and at least one user display <NUM> configured to display, for example, a view of the surgical site inside a patient. As shown in the exemplary user console <NUM>, a surgeon located in the seat <NUM> and viewing the user display <NUM> may manipulate the foot-operated controls <NUM> and/or handheld user interface devices <NUM> to remotely control the robotic arms <NUM> and/or surgical instruments mounted to the distal ends of the arms.

In some variations, a user may also operate the surgical robotic system <NUM> in an "over the bed" (OTB) mode, in which the user is at the patient's side and simultaneously manipulating a robotically-driven tool/end effector attached thereto (e.g., with a handheld user interface device <NUM> held in one hand) and a manual laparoscopic tool. For example, the user's left hand may be manipulating a handheld user interface device <NUM> to control a robotic surgical component, while the user's right hand may be manipulating a manual laparoscopic tool. Thus, in these variations, the user may perform both robotic-assisted MIS and manual laparoscopic surgery on a patient.

During an exemplary procedure or surgery, the patient is prepped and draped in a sterile fashion to achieve anesthesia. Initial access to the surgical site may be performed manually with the robotic system <NUM> in a stowed configuration or withdrawn configuration to facilitate access to the surgical site. Once the access is completed, initial positioning and/or preparation of the robotic system may be performed. During the procedure, a surgeon in the user console <NUM> may utilize the foot-operated controls <NUM> and/or user interface devices <NUM> to manipulate various end effectors and/or imaging systems to perform the surgery. Manual assistance may also be provided at the procedure table by sterile-gowned personnel, who may perform tasks including but not limited to, retracting tissues or performing manual repositioning or tool exchange involving one or more robotic arms <NUM>. Non-sterile personnel may also be present to assist the surgeon at the user console <NUM>. When the procedure or surgery is completed, the robotic system <NUM> and/or user console <NUM> may be configured or set in a state to facilitate one or more post-operative procedures, including but not limited to, robotic system <NUM> cleaning and/or sterilization, and/or healthcare record entry or printout, whether electronic or hard copy, such as via the user console <NUM>.

In some aspects, the communication between the robotic platform <NUM> and the user console <NUM> may be through the control tower <NUM>, which may translate user commands from the user console <NUM> to robotic control commands and transmit to the robotic platform <NUM>. The control tower <NUM> may also transmit status and feedback from the robotic platform <NUM> back to the user console <NUM>. The connections between the robotic platform <NUM>, the user console <NUM> and the control tower <NUM> may be via wired and/or wireless connections, and may be proprietary and/or performed using any of a variety of data communication protocols. Any wired connections may be optionally built into the floor and/or walls or ceiling of the operating room. The surgical robotic system <NUM> may provide video output to one or more displays, including displays within the operating room as well as remote displays accessible via the Internet or other networks. The video output or feed may also be encrypted to ensure privacy and all or portions of the video output may be saved to a server or electronic healthcare record system.

<FIG> is a schematic diagram illustrating one exemplary design of a robotic arm, a tool drive, and a cannula loaded with a robotic surgical tool, in accordance with aspects of the subject technology. As shown in <FIG>, the example surgical robotic arm <NUM> may include a plurality of links (e.g., a link <NUM>) and a plurality of actuated j oint modules (e.g., a joint <NUM>) for actuating the plurality of links relative to one another. The joint modules may include various types, such as a pitch joint or a roll joint, which may substantially constrain the movement of the adjacent links around certain axes relative to others. Also shown in the exemplary design of <FIG> is a tool drive <NUM> attached to the distal end of the robotic arm <NUM>. The tool drive <NUM> may include a cannula <NUM> coupled to its end to receive and guide a surgical instrument <NUM> (e.g., endoscopes, staplers, etc.). The surgical instrument (or "tool") <NUM> may include an end effector <NUM> at the distal end of the tool. The plurality of the joint modules of the robotic arm <NUM> can be actuated to position and orient the tool drive <NUM>, which actuates the end effector <NUM> for robotic surgeries.

<FIG> are schematic diagrams illustrating an exemplary tool drive with and without a loaded tool adjacent, respectively, in accordance with aspects of the subject technology. As shown in <FIG>, in one variation, the tool drive <NUM> may include an elongated base (or "stage") <NUM> having longitudinal tracks <NUM> and a tool carriage <NUM>, which is slidingly engaged with the longitudinal tracks <NUM>. The stage <NUM> may be configured to couple to the distal end of a robotic arm such that articulation of the robotic arm positions and/or orients the tool drive <NUM> in space. Additionally, the tool carriage <NUM> may be configured to receive a tool base <NUM> of the tool <NUM>, which may also include a tool shaft <NUM> extending from the tool base <NUM> and through the cannula <NUM>, with the end effector <NUM> (not shown) disposed at the distal end.

Additionally, the tool carriage <NUM> may actuate a set of articulated movements of the end effector, such as through a cable system or wires manipulated and controlled by actuated drives (the terms "cable" and "wire" are used interchangeably throughout this application). The tool carriage <NUM> may include different configurations of actuated drives. For example, the rotary axis drives may include a motor with a hollow rotor and a planetary gear transmission at least partially disposed within the hollow rotor. The plurality of rotary axis drives may be arranged in any suitable manner. For example, the tool carriage <NUM> may include six rotary drives 322A-322F arranged in two rows, extending longitudinally along the base that are slightly staggered to reduce width of the carriage and increase the compact nature of the tool drive. As clearly shown in <FIG>, rotary drives 322A, 322B, and 322C may be generally arranged in a first row, while rotary drives 322D, 322E, and 322F may be generally arranged in a second row that is slightly longitudinally offset from the first row.

<FIG> are schematic diagrams illustrating an end effector of an exemplary grasper <NUM> 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 drive, in accordance with aspects of the subject technology. 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, graspers, grippers, forceps, needle drivers, retractors, and cautery instruments.

As shown in <FIG>, the pair of opposing jaws 401A and 401B are movably coupled to a first yoke <NUM> of the robotic wrist via an extended axle <NUM> along a first axis <NUM>. The first yoke <NUM> may be movably coupled to a second yoke <NUM> of the robotic wrist via a second extended axle <NUM> along a second axis <NUM>. The pair of jaws 401A and 401B may each be coupled or integrally formed with pulleys 415A and 415B respectively, via the extended axle <NUM>, so that both jaws can rotate about the axis <NUM>. Pulleys 425A, 425B, 425C and 425D are coupled to the extended axle <NUM> and rotate around the axis <NUM>. The pulleys 425A, 425B, 425C and 425D are arranged into a first set of pulleys 425B and 425C on one side of the yoke <NUM> and a second set of pulleys 425A and 425D on the other side of the yoke <NUM>. The pulleys 425A and 425C are outer pulleys and the pulleys 425B and 425D are inner pulleys. Similarly, the third set of pulleys 435A, 435B, 435C and 435D are coupled to a third extended axle <NUM> and rotate around the axis <NUM>, which is parallel to the axis <NUM>.

The grasper <NUM> can be actuated to move one or both of the jaws 401A and 401B in a variety of ways around the axis <NUM>. 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 provide a yaw motion of the grasper <NUM>. In addition, the first yoke <NUM>, the pulleys 415A and 415B, and the jaws 401A and 401B can rotate about the axis <NUM> to provide a pitch motion of the grasper <NUM>. These motion of the robotic wrist and/or the jaws of the tool can be effected by controlling four independent cables 405A-405D. As shown in <FIG>, 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 401B. For example, cable 405C extends from one side of the pulley 415B to pulleys 425C and 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 pulleys 425A-425D.

Controlling the motions of the grasper <NUM> via four independent cables has several advantages. One advantage may be the reduction of the number of cables that extend from the tool base <NUM> to the robotic wrist compared to typical on-market designs using six cables (or three 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 procedures or non-surgical applications. Furthermore, arrangement of four independent cable instead of two or three cable loops not only allows independent control of the tension on each cable without the need for pretensioning of the cables, but also enables variable compliance in the wrist joints and increased sensitivity to external loads. Additionally, it is possible to readjust tension on each cable independently, which can further increase tool performance.

As shown in <FIG>, the grasper <NUM> can be actuated to move the jaws 401A and 401B in a variety of ways such as grasping (e.g., jaws rotating independently about axis <NUM>), yaw (e.g., jaws rotating together about axis <NUM>), and pitch (e.g., jaws rotating about axis <NUM>) by imparting motion to one or more of the pulleys 415A, 415B, 425A, 425B, 425C, and 425D to thereby impart motion on the first yoke <NUM> and/or one or both of the jaws 401A and 401B. Cables 405A-405D can be grouped into two antagonistic pairs, that is, when one cable of the antagonistic pair is actuated or tensioned, while the other cable is loosened, the jaw will rotate in one direction. Whereas when only the other cable is tensioned, the jaw will rotate in an opposite direction.

For example, cables 405A and 405B are the first antagonistic 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 405B is tensioned and cable 405A is loosened, jaw 401A opens (moving away from the opposite 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 opposite 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 closed (touching each other).

In case when both cables of an antagonistic pair are tensioned at the same time while both cables of the other pair are loosened, the pulley 415A or pulley 415B do not rotate. Instead, the first yoke <NUM> together with the jaws 401A and 401B are imparted by the pulleys 415A and 415B to pitch about the axis <NUM>. 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 <NUM>) pitch out of the plane of the paper. Whereas when both cables 405C and 405D are tensioned simultaneously and the pair 405A and 405B are kept loose, the jaws pitch into the plane of the paper.

<FIG> is a schematic diagram illustrating example angle definitions for various motions of the grasper <NUM>, in accordance with aspects of the subject technology. The angles are defined in reference to axes <NUM> and <NUM>, as well as an axis <NUM> of the first yoke <NUM> and an axis <NUM> of the second yoke <NUM>. For example, as shown in <FIG>, an angle (θ<NUM>) between axis <NUM> and the axis <NUM> may represent the rotation angle of the yoke <NUM> around axis <NUM>, which may also be defined as the pitch angle (θpitch) of the grasper <NUM> (while in <FIG>, the axis <NUM> of the yoke <NUM> is superimposed over the axis <NUM> of the yoke <NUM> because the jaws are staying in the reference position, i.e., no pitch motions). In addition, angles (θ<NUM>) and (θ<NUM>) can represent the angles between each of the jaws 401A and 401B and the axis <NUM> of the yoke <NUM> (as the origin), respectively. To differentiate the sides of the axis <NUM>, angles (θ<NUM>) and (θ<NUM>) may take on different signs. For example, angle (θ<NUM>) is negative and angle (θ<NUM>) is positive, as illustrated in <FIG>.

In order to perform control tasks, it is often beneficial to define a consistent coordinate frame for the joint angles. For example, we may further define the jaw angle (θjaw) as the angle between the two jaws 401A and 401B, and the yaw angle (θyaw) as the angle between the axis <NUM> and the line bisecting the jaw angle. Therefore, we have: <MAT> The transformation between angles in <FIG> and the newly defined angles are as follows: <MAT>.

Furthermore, the following nomenclature can be established for pulley geometries:.

While in the above example symmetrical design, r<NUM> = r<NUM>, r<NUM> = r<NUM> and r<NUM> ≠ r<NUM> (as shown in <FIG>), in some other designs it is possible to have r<NUM> = r<NUM> = r<NUM> = r<NUM>, as well as r<NUM> = r<NUM>.

The fundamental equation that relates cable tensions (ξ[<NUM>×<NUM>]) to joint torques (τ[<NUM>×<NUM>]) is presented by: <MAT> where matrix (B) has the following form: <MAT> and (ξ<NUM>, ξ<NUM>, ξ<NUM>, ξ<NUM>) corresponds to cable tensions on cables 405A, 405B, 405C and 405D, respectively.

In Eq. (<NUM>), (τ[<NUM>×<NUM>]) is the vector of virtual joint torques applied by the cables, which may cause the joints overcome friction and move against the external forces. Vector (τ[<NUM>×<NUM>]) has three components: <MAT> where (τ<NUM>) is the pitch joint torque, and (τ<NUM>) and (τ<NUM>) are the joint torques of jaw 401A and jaw 401B, respectively.

The kinematic relationship that relates the ideal cable displacements (assuming no cable elasticity) and jaw angles are as follows: <MAT> where (q[<NUM>×<NUM>]) is the four-element vector containing the ideal displacements of cables 405A-405D, and (θ[<NUM>×<NUM>]) is the vector of angles illustrated in <FIG>: <MAT>.

In the actual case, where the cables are elastic, the actual and ideal cable displacements are related as follows: <MAT> where ke is the elastic constant of the cables in N/m (assuming all cables are similar).

Described below is a method and system for controlling 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 between an open position and a closed position actuated by two antagonistic wires. A total of four wires may each be driven by an independent actuator or motor, as illustrated in <FIG> and <FIG> and described in the corresponding sections. The control system may include feedback loops involving position and velocity feedback from the actuators and force feedback measured on the four wires, to effect desired position and grip force. In some implementations, the actuator controllers may be running 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 positional feedback, while a grip force controller provides additional feedforward current based on the grip force measured by load cells on the four wires to achieve the desired grip force between the opposing members.

<FIG> is a block diagram illustrating a high-level control system for controlling a surgical tool, in accordance with aspects of the subject technology. The control system comprises an input <NUM>, a controller <NUM>, a plant <NUM>, an output <NUM>, and sensors and estimators <NUM> on a feedback path between the output <NUM> and the controller <NUM>. The plant <NUM> may include tool actuators and end effector (e.g., actuator units <NUM> and cable and wrist links <NUM> in <FIG>). The controller <NUM> may include one or more processors configured by software instructions stored on a memory to calculate motions of the plant <NUM> in response to the input <NUM>, which may indicates a desired movement of the surgical tool's end effector. Commands thus generated by the controller <NUM> may drive the tool actuators to facilitate the desired movement of the end effector. The output <NUM>, such as position, velocity, cable tension, and grip force of the end effector, may be directly measured or estimated by the sensors and estimators <NUM> and fed back to the controller <NUM> for closed-loop control.

<FIG> is a block diagram illustrating an exemplary control system <NUM> for controlling the position and grip force of an end effector of a robotic surgical tool, in accordance with aspects of the subject technology. The robotic control system <NUM> comprises an input processing unit <NUM>, a actuator command generator <NUM>, a position controller <NUM>, a grip force controller <NUM>, a plant including one or more actuator units <NUM> and/or cables and wrist links <NUM>, a slack controller <NUM>, a position estimator <NUM> and a grip force estimator <NUM>. Note that additional, different or fewer components than shown in the figure may be used. Variations in the arrangement and types of the components may also be made without departing from the scope of the claims as set forth herein.

The input processing unit <NUM> and the actuator command generator <NUM> receive desired angular positions of the end effector and translate the desired angular positions into corresponding actuator position commands (via inverse kinematics algorithm) and/or grip force command, which are output to the position controller <NUM> and/or grip force controller <NUM>. For example, the input desired angular positions may include pitch angle (θpitch), yaw angle (θyaw), and jaw angle (θjaw). The desired jaw angle input may be treated as position control command when the angle is no less than a threshold. The threshold corresponds to an angle at which both jaws are just simultaneously in contact with the object(s) in between. In case there is no objects to grasp, the threshold is zero degree when the jaws begin to touch each other. For any desired jaw angle less than the threshold, the input may be translated to a desired grip force command and forwarded to the grip force controller <NUM>, which can generate a current command in addition to the position commands to achieve the desired grip force.

<FIG> is a block diagram illustrating an exemplary design for the input processing unit <NUM> and actuator command generator <NUM> of a robotic surgical tool control system, in accordance with aspects of the subject technology. In some implementations, the desired pitch angle (θpitch_d) <NUM> and the desired yaw angle (θyaw_d) <NUM> are always treated as desired position of the end effector and passed to the actuator command generator <NUM> directly as input. Whereas the desired jaw angle (θjaw_d) <NUM> is first compared by the input processing unit <NUM> against a threshold value (θth) <NUM> to determine whether the input is a desired position or a desired force command for the end effectors. The threshold (θth) <NUM> provided to the input processing unit <NUM> can be a predetermined value or dynamically determined (e.g., by the grip force estimator <NUM>). Details on how to determine the threshold will be further explained below.

For example, if the desired jaw angle (θjaw_d) <NUM> is below the threshold (θth) <NUM> as determined by the input processing unit <NUM>, the desired jaw angle (θjaw_d) <NUM> is interpreted as a grip force command and the angle value is converted to a desired grip force (Fgrip_d) <NUM> and output to the grip force controller <NUM>. The desired grip force may be determined based on a function of the desired jaw angle (θjaw_d) <NUM> and/or the threshold (θth) <NUM>. The function may be a linear function, an exponential function, a quadratic function, or any other proper functions. On the other hand, if the desired jaw angle (θjaw_d) <NUM> is above the threshold (θth) <NUM>, it is interpreted as a position command and passed to the actuator command generator <NUM> as a position input together with the desired pitch angle (θpitch_d) <NUM> and the desired yaw angle (θyaw_d) <NUM>.

Subsequently, the actuator command generator <NUM> uses inverse kinematics to generate a position command (xcmd<NUM>) <NUM> for the position controller <NUM> to actuate the end effector. The actuator command generator <NUM> may also receive a feedback angular position (θfb) <NUM> (e.g. from the position estimator <NUM>) to adjust the generated position command (xcmd<NUM>) <NUM> based on the feedback (e.g., to compensate for cable elasticity).

Referring back now to <FIG>. The position controller <NUM> may receive position feedback from position and/or speed sensors on the actuator units <NUM>. Achieving the desired actuator positions can in turn lead to the desired position of the robotic wrist due to the kinematic relationship between the actuators and the robotic wrist. Hence, it is preferred that controllers of non-zero steady-state error type are employed in the position controller <NUM>, as controllers of zero steady-state type may "fight" the grip force controller by forcing the exact positions (thus saturating the current command in the process) while making the desired grip force hard to achieve. Examples of the preferred non-zero steady-state error controllers include the proportional plus derivative (PD) controllers. A PD controller allows for compliance of the grasper jaws necessary for a grip force controller to generate the desired grip force. The grip force controller <NUM> may then be the main factor in dominating the compliance in the degree of freedom of jaw closure during grip force control (as opposed to the position controller <NUM>).

Since the actuator units <NUM> are coupled to the robotic wrist through elastic cables (or wires), which may change length under force, estimation only based on a pure kinematic relation between actuator positons and wrist movements may not be accurate. The position estimator <NUM> may provide the actuator command generator <NUM> and the grip force estimator <NUM> with a more accurate estimate of the wrist joint positions and velocities by taking into account the cable elasticity in estimation algorithms (e.g., using a Kalman filter). The estimated position and velocity information can then be used for accurate positioning of the wrist, as well as estimation of the friction.

In some implementations, the grip force controller <NUM> takes feedback of cable tensions measured by load cells or torque sensors on the cable wires. Algorithms can then be used by the grip force estimator <NUM> to estimate the grip force between the jaws based on the tension values measured on the cables. The grip force controller <NUM> may compare the estimated value to the desired grip force and generates additional current commands to achieve the desired grip force. Alternatively, instead of the measurements from the force/torque sensing load cells, the grip force controller <NUM> can use motor currents as feedback, combined with some estimation techniques, to produce the additional current command for grip force generation.

As described above, the end effector may be coupled to the tool drive through four independent cables, each of which is actuated by an independent motor. In particular, the end effector may include a robotic wrist and a pair of opposing jaw members, each jaw being movable between an open position and a closed position. In some implementations, the motors may be driven by current. The current command may include two parts: the first part of the driving current may be from the joint angle controller <NUM> and the second part from the grip force controller <NUM>. The two current commands may be summed up and sent to the actuator units <NUM>.

<FIG> is a block diagram illustrating exemplary actuator units <NUM> of a robotic surgical tool control system and input/output thereof, in accordance with aspects of the subject technology. The actuator units may include one or more low level actuators or motor drivers <NUM>, each driving a corresponding actuator or motor <NUM>. Note that additional, different or fewer components may be used in the actuator units. In some implementations, the actuators or motors <NUM> are electric current driven DC motors. The low level actuator or motor drivers <NUM> receive input current command (id) <NUM>, which is a sum of a desired current command (iposition_d) <NUM> from the position controller <NUM> and a desired current command (igrip_d) <NUM> from the grip force controller <NUM>. The actuator or motor drivers <NUM> may then drive the actuators or motors <NUM>, which in turn drive the end effector with the output current (imotor) <NUM>. The status of the motors <NUM>, e.g., current (imotor) <NUM>, may be fed back to the motor drivers <NUM>. By summing up the desired current commands (iposition_d) <NUM> and (igrip_d) <NUM>, the actuators units <NUM> may drive the one or more motors to effect desired movement and/or grip force of the end effector.

Due to the antagonistic nature of the robotic wrist, the desired grip force command (igrip_d) <NUM> for different motors may be antagonistic, for example, positive for closing actuators and negative for opening actuators. It may be advantageous that the additional current commands be added to the existing current command for closing the jaws at the two closing actuators and subtracted from the current commands for opening the jaws to the two opening actuators. In other implementations, the additional current command can be sent only to the two closing actuators for controlling the closing cables, which may result in a reduced performance. In the latter scenario, the threshold (θth) <NUM> at which the input jaw angle, e.g., desired jaw angle (θjaw_d) <NUM>, is used to control the grip force may become critical, i.e., the threshold need to be set at the exact angle of contact. Otherwise, the opening cables may resists more as the jaws get closer while increasing the grip force. It may reach the point where the closure of grip becomes impossible due to saturation of actuators and cable forces. Therefore, a separate estimator may be needed to estimate friction and to estimate the contact angle, so that the threshold can be determined and provided to the input processing unit <NUM>.

Alternatively, the grip force controller <NUM> may use a model to calculate the additional current needed for generating the desired grip force. Furthermore, instead of generating additional current setpoints to be added and/or subtracted from the current command generated by the position controller <NUM>, the grip force controller <NUM> may provide additional position setpoints to be added to the two closing cables position setpoints and subtracted from the two opening cables position setpoints (a setpoint is simply the desired or target value for an essential variable of a system, such as a desired angular position).

Referring back to <FIG>, the slack controller <NUM> may perform the task of ensuring the tensions on the cables never falls below zero (or a predetermined positive value to compensate slackness). Cables are tension-only members of the end effector, to which negative forces cannot be applied. Besides, when cables become slack, the kinematic relation between the two ends of the cable no longer holds. Therefore, it is desirable to prevent the tensions on the cables from dropping to zero under any circumstances. To achieve this goal, the slack controller <NUM> may monitor the force values from load cells on the cables and compare the minimum of the force values to a predetermined threshold. If the minimum force value across all the cables falls below the threshold, the slack controller <NUM> may generate an additional position command to all the actuators to ensure that the desired minimum tension is maintained. These additional position commands need to bin in the null space of the wrist cable system, so as not to change the grip force or cause any unwanted motions to the wrist. Alternatively, instead of additional position command, the slack controller may provide additional currents to the actuators with magnitudes in the null space of the wrist cable system (assuming identical actuators). In either case, zero steady-state type controllers, such as a proportional plus integral (PI) controller, can be deployed as the slack controller <NUM> to maintain the desired minimum force on the cables.

The following paragraphs describe an example control algorithm in more details regarding the input, output and functions of each component in an example control system. The proposed methodology may rely on using position plus feed forward current control on the actuators driving the end effector. The position controller may drive the end effector to the desired position setpoints in space through the cables, while additional feed forward current may be added to effect the desired grip force in between the two end effector members.

Now referring to <FIG>, a detailed block diagram illustrating an exemplary control system 800A for controlling the position and grip force of an end effector of a robotic surgical tool, in accordance with aspects of the subject technology. Note that the description is not intended to limit the control systems to the specific implementation, but rather to enable a person skilled in the art to make and use this invention. Furthermore, the control systems and methods may include more or fewer components. Each of these components may be used with one another, or may be used individually for various purposes. For instance, similar to the example control system <NUM>, the control system 800A comprises a input processing unit <NUM>, a actuator command generator <NUM>, a position controller <NUM>, a grip force controller <NUM>, a slack controller <NUM>, a position estimator <NUM>, a grip force estimator <NUM>, and four actuator units (motors and drivers) <NUM>. In the control system 800A, cables 512A and wrist links 512B are separated, and a contact prediction unit <NUM> is added to the control system <NUM> (as shown in <FIG>).

The control system 800A may take input of desired angles <NUM>, <NUM> and <NUM>. Among the three input angles, the desired pitch angle (θpitch_d) <NUM> and the desired jaw angle (θyaw_d) <NUM> are directly passed to the actuator command generator <NUM>. The desired jaw angle (θjaw_d) <NUM> is provided to the input processing unit <NUM> to be compared against a threshold value (θ̂threshold) <NUM>, which may be estimated by the contact prediction unit <NUM>.

As described above, the input pitch angle <NUM> (rotation about axis <NUM> in <FIG>) and yaw angles <NUM> (angle between axis <NUM> and the middle point of jaws, as shown in <FIG>) of the end effector can be controlled in positon mode by the position controller <NUM>. The input jaw angle (angle between the two jaw members) may be interpreted differently depending on whether the desired jaw angle <NUM> is smaller or greater than the threshold value <NUM>. When the desired jaw angle <NUM> is below the threshold <NUM> as determined by the input processing unit <NUM>, a desired grip force (Fgrip_d) <NUM> is generated for the grip force controller <NUM>. The desired grip force may be determined according to a function of the desired jaw angle <NUM> and/or the threshold <NUM>. The function may be a linear function, an exponential function, a quadratic function, or other functions. The desired jaw angle <NUM> may be passed to the actuator command generator <NUM> as part of the position command regardless of the comparison result, however, it is treated as a position command only when it is greater than the threshold <NUM>.

The threshold <NUM> corresponds to an angle value at which the two members of the jaws are just in contact with each other or any objects being grasped in between. In other words, the input jaw angle is switched from an angular position command to a grip force command at the threshold value. The threshold <NUM> can be a predetermined value (e.g., zero degree). Preferably, the threshold is determined in real time by estimating the actual jaw angle at which contact with grasped objects first occurs. For example, the contact prediction unit <NUM> may detect and/or predict the instance a contact happens based on estimations of the jaw angles and the grip force value, so as to determine the threshold. The determined threshold is then passed on to the input processing unit <NUM> for interpreting the input jaw angle. The output of the actuator command generator <NUM> may include displacement command (xcmd) <NUM> for the position controller <NUM> to produce four cable displacements, which may in turn be applied to the four actuator units (or motors) <NUM>.

By representing the desired angles with [θpitch_d θyαw_d θjaw_d ]T, we can convert the vector to the desired angles θd[<NUM>×<NUM>] in the joint space using Eq. (<NUM>): <MAT> where the subscript "_d" denotes the desired value for the corresponding input as well as converted parameters. In case a grip force is desired, the jaw angle input may be converted to the desired grip force (Fgrip_d) <NUM> and sent to the grip force controller <NUM>.

The actuator command generator <NUM> may receive a feedback from the position estimator <NUM> on estimations of the joint angles (θ̂[<NUM>×<NUM>]) <NUM>. A first order estimate of joint angles can be gauged from measurement of actuator (motor) positions (x[<NUM>×<NUM>]) <NUM> and the cable tensions (ξ[<NUM>×<NUM>]) <NUM> using Eq. (<NUM>): <MAT> where ke is the elastic constant of the cables in the unit of N/m, the cable tensions (ξ[<NUM>×<NUM>]) <NUM> is defined in Eq. (<NUM>), and (x[<NUM>×<NUM>]) <NUM> is a vector of position sensor measurement on the actuator units <NUM>: <MAT>.

In some implementations, the control system 800A may adopt a closed-loop control to achieve the desired joint positions (pitch and yaw). In the closed-loop control scheme, the actuator command generator <NUM> may keep monitoring the angular position from the position estimator <NUM> and modulate its position command (xcmd<NUM>) <NUM> until the desired joint angles are achieved. Alternatively, the actuator command generator <NUM> may perform open-loop control and use an inverse kinematic technique based on Eq. (<NUM>) to obtain the desired displacement of the four motors: <MAT> where B and θd[<NUM>×<NUM>] are defined in Eq. (<NUM>) and Eq. (<NUM>), respectively. To account for the effect of cable elasticity, the desired displacement of the four motors can be further improved using Eq. (<NUM>): <MAT>.

Furthermore, as shown in <FIG>, the position setpoint or command (xcmd) <NUM> may be the sum of two components: <MAT> where the first component (xcmd<NUM>) <NUM> may be generated by the actuator command generator <NUM> outlined above, and a second component (xcmd<NUM>) may be provided by the slack controller <NUM>.

The second displacement command (xcmd<NUM>) <NUM> may be generated by the slack controller <NUM> based on the cable tensions (ξ[<NUM>×<NUM>]) <NUM> feedback (e.g., from load cells on the four cables 512A). A minimum tension value (ξmin) <NUM> among the cable tension feedback (ξ[<NUM>×<NUM>]) <NUM> is first determined by a "min" unit 514A: <MAT>.

Next, the slack controller may compare the minimum value (ξmin) <NUM> to a desired minimum tension value (ξmin_d) to generate an additional displacement command (us) <NUM>. A zero steady-state error type controller may be adopted for the purpose of maintaining the minimum desired tension on all four cables. Such controllers, in discrete domain, may take the following form (other forms, such as state-space, or nonlinear, are also possible): <MAT> where C(z) is the controller transfer function from input (ξmin) <NUM> to output (us) <NUM>, and z is the z-transform parameter. Furthermore, parameters ai and bi are real numbers such that the corresponding polynomials in the numerator and denominator of C(z) have roots strictly inside the unit circle, and no roots at z = +<NUM>. Parameters m, n, and p are integers such that p > <NUM> and m ≤ n + p to ensure the controller transfer function C(z) proper.

A proportional plus integral (PI) controller is a special case of C(z) and may be used to regulate the minimum tension in the four cables as described above and may take the following form in the time domain: <MAT> where kps and kis are the proportional and integral gains, respectively.

In order to regulate the tension on the cables to keep the minimum tension and not to disturb the joint angle positions or the grip force, the position command (xcmd<NUM>) <NUM> needs to be in the null space of the wrist cable system. To achieve this, the scalar displacement (us) <NUM> may be further multiplied by the null space of the matrix (B). Hence, the second displacement command (xcmd<NUM>) <NUM> may take the following form: <MAT> where (c) <NUM> is a constant to scale the null space vector so that its element corresponding to the cable with minimum tension equals to unity (i.e., one).

Alternatively, the slack controller <NUM> may generate commands including additional currents directly to drive the actuators <NUM> (with magnitudes in the null space of the wrist cable system), instead of the additional position command (xcmd<NUM>) <NUM> provided to the position controller <NUM>. In such an implementation, the additional current commands may be added to each of the (icmd) components <NUM>-<NUM>.

The position controller <NUM> may be used to achieve desired actuator positions which in turn may result in the desired position of the wrist through a kinematic relationship. To regulate the current command sent to each motor, the position controller <NUM> may rely on feedback from actuators' position and/or speed sensors or velocity estimates. Furthermore, each of the motors <NUM> may receive its current setpoints or commands from the position controller <NUM> combined with additional or less current, which depends on each value (ci) <NUM>-<NUM> in a scaling vector (ci[<NUM>×<NUM>] = [c<NUM> c<NUM> c<NUM> c<NUM>]T) from the grip force controller <NUM>.

The position controller <NUM> may generate current commands (icmd<NUM>[<NUM>×<NUM>]) based on the position setpoint or command (xcmd) <NUM>, as well as position (x[<NUM>×<NUM>]) and velocity (x[<NUM>×<NUM>]) <NUM> feedback. Preferably, the position controller <NUM> may be implemented with a nonzero steady-state-error controllers, as discussed above. Such controllers, in discrete domain, may take the following form (other forms, such as state-space, or nonlinear, are also possible): <MAT> where C(z) is the controller transfer function between input (xcmd) <NUM> and output (icmd<NUM>) <NUM>-<NUM>, and z is the z-transform parameter. Furthermore, parameters ai and bi are real numbers such that the corresponding polynomials in the numerator and denominator of C(z) have roots strictly inside the unit circle, and no roots at z = +<NUM>. Parameters m and n are integers such that (m ≤ n) to ensure the controller transfer function C(z) proper.

A proportional plus derivative (PD) controller is a special case of C(z) in Eq. (19a) and may be used for generating the current commands (icmd<NUM>) <NUM>-<NUM>. Thus the first component of the current command to the four actuators, as shown in Eq. (19b), can be generated as follows (expressed in the time domain): <MAT> where (kp) and (kd) are controller gains, (x[<NUM>×<NUM>]) <NUM> is a <NUM>-tuple vector of the actuator positions defined in Eq. (<NUM>), and (ẋ[<NUM>×<NUM>]) is a <NUM>-tuple vector of actuator velocities, which can be direct speed sensor measurement or estimates from the position derivatives.

The grip force controller <NUM> may generate a second current (icmd<NUM>[<NUM>×<NUM>]) <NUM> which can be combined with the current command (icmd<NUM>[<NUM>×<NUM>]) from the position controller <NUM> for each of the actuators <NUM> to effect the grip force. The second current command (icmd<NUM>[<NUM>×<NUM>]) <NUM> may be generated by the grip force controller <NUM> based on the desired grip force input (Fgrip_d) <NUM>, as well as grip force feedback (F̂grip) <NUM> provided by the grip force estimator <NUM>.

Assuming L defines the length of the jaw from jaw rotation axis to the point of grip load application, the grip force between the two jaw members may be estimated using the following equation: <MAT> where (τ<NUM>) and (τ<NUM>) are the joint torques of the two jaw elements from Eq. (<NUM>). Substituting with the joint torques from Eq. (<NUM>) and using Eq. (<NUM>), we may obtain: <MAT> Note that Eq. (<NUM>) assumes that the cable forces are measured directly using load cells or torque sensors on the cables 512A. Cable force values may also be estimated indirectly using motor currents and motor states, such as (x[<NUM>×<NUM>] & ẋ[<NUM>×<NUM>]) <NUM> in conjunction with advanced estimation algorithms (e.g., using a Kalman filter).

Once the grip force estimate (F̂grip) <NUM> is obtained, the grip force controller <NUM> may then compare the value to the desired grip force value (Fgrip_d) <NUM> and generate the second current command (icmd<NUM>) <NUM> to achieve the desired grip force. A zero steady-state error type controller similar to the one shown in Eq. (16a) may be adopted for the purpose of controlling the grip force. In this case, C(z) will be the controller transfer function between the input (Fgrip_d) <NUM> and output (icmd<NUM>) <NUM>. A special case of C(z) includes a proportional plus integral (PI) controller, which may be used for regulating the grip force and may take the following form in time domain: <MAT> where kpg and kig are the proportional and integral gains, respectively.

As such, the scalar second current command (icmd<NUM>) <NUM> may pass through individual gain amplifiers <NUM>-<NUM> to produce a scaled current command, which may be added to current command (icmd<NUM>[<NUM>×<NUM>]) <NUM>-<NUM>, respectively. Each component ( <MAT>) <NUM>-<NUM> of the combined current command (icmd) may then be applied to the actuators or motors <NUM>. For example, the second current command (icmd<NUM>) <NUM> may be added to the current command of the two actuators closing the jaws and may be subtracted from the current commands to the two actuators opening the jaws. Different values may be chosen for each component (ci) <NUM>-<NUM> in the scaling vector (ci[<NUM>×<NUM>]) depending on implementations. The following equations demonstrate various example current command settings for the four motors, which may result in varied performance: <MAT> <MAT> <MAT> <MAT>.

In some implementations, the grip force control algorithm may use a model to calculate the additional current needed for generating the desired grip force, rather than estimation based on the cable tension measurement. The model may project the grip force based on known parameters, such as motor position and current.

<FIG> is a detailed block diagrams illustrating an alternative control system 800B for controlling the position and grip force of an end effector of a robotic surgical tool, in accordance with aspects of the subject technology. In the control system 800B, instead of generating additional current setpoints (icmd<NUM>) to be added to and subtracted from the current commands as shown in <FIG>, the grip force controller <NUM> may generate additional position setpoints, such as (xcmd<NUM>) <NUM> shown in <FIG>, to be added to the two closing cables position setpoints and subtracted from the two opening cables position setpoints (or vice versa). Therefore the position input command (xcmd) <NUM> to the position controller <NUM> may include three components: the first component (xcmd<NUM>) <NUM> generated by the actuator command generator <NUM> outlined above, a second component (xcmd<NUM>) provided by the slack controller <NUM>, and third component (xcmd<NUM>) <NUM> calculated by the grip force controller <NUM>. The composite position command (xcmd) <NUM> is provided to the position controller <NUM> for generating current command (icmd) for driving the actuator units <NUM>.

<FIG> is a flowchart illustrating an example process <NUM> for controlling a robotic surgical tool having an end effector with two opposing members, in accordance with aspects of the subject technology. It should be understood, however, that the process <NUM> performed by the surgical tool control system provides only an illustrative description of the operation of the controller, and that more or fewer steps may be included in the process, and/or the steps may occur in one or more orders which are different from the order of blocks shown in <FIG>.

First, the surgical tool control system receives <NUM> an input for a desired state for an end effector of a robotic surgical tool, the end effector having a robotic wrist at a distal end and two members coupled to the robotic wrist pivoting relative to each other. The desired state may comprise desired angles, such as a desired pitch angle of the robotic wrist, a desired yaw angle of the end effector, and a desired jaw angle between the two opposing members of the end effector. For example, in the tool control system <NUM> shown in <FIG>, the input processing unit <NUM> may receive desired angular positions of the robotic wrist and end effector members. Each of the two opposing members may be robotically manipulated via a pair of antagonistic cables imparting forces when tensioned. For example, the end effector of the grasper <NUM> shown in <FIG> includes a pair of jaws 401A and 401B, and cables 405A and 405B are the first antagonistic pair for manipulating jaw 401A. When tensioned individually, cable 405A closes jaw 401A, while cable 405B opens jaw 401A.

The tool control system may subsequently calculate <NUM> a displacement of the pair of the antagonistic cables for each member of the end effector based on the desired state. In case the desired jaw angle indicates desired grip force, the displacement is calculated in response to the desired pitch and yaw angles. Otherwise, the displacement calculation corresponds to the desired pitch, yaw and jaw angles. In both cases, the position controller <NUM> in the tool control system, as shown in <FIG> and <FIG>, may also base the calculation upon measurements of the current positions and/or velocity of the at least one actuator. Next, the control system may generate <NUM> a first command for driving the robotic wrist and the end effector members based on the calculated displacement. For example, the actuator command generator <NUM> in <FIG> and <FIG> can generate displacement or positions command (xcmd<NUM>) based on desired pitch and yaw angles (as well as jaw angle in case it represents desired angle instead of desired grip force). The control system may also optionally adopt another feedback control loop to prevent cable slack, such as the slack controller <NUM> in <FIG> and <FIG>, to monitor the tensioning forces on the pair of antagonistic cables and to maintain a predetermined minimum tensioning force on the cables. The output (xcmd<NUM>) from the slack controller <NUM> can be summed up with the position command (xcmd<NUM>) to provide to the position controller <NUM> as the position setpoint.

The surgical tool control system may then determine <NUM> whether the desired state includes a desired grip force between the two opposing members of the end effector. In some implementations, to determine whether the desired state include a desired grip force may involve comparing the desired jaw angle to a threshold. The threshold can be a contact jaw angle between the two opposing members of the end effector when grasping an object or when in contact to each other without grasping any object (i.e., zero degree). For example, when the grasper <NUM> is not grasping any objects, the contact angle is zero degree. The contact angle can be predetermined, for instance, based on the size of the object to be grasped. Alternatively or in addition, the contact angle can be determined dynamically or predicted based on the estimation of current jaw angle and/or the estimation of a current grip force between the two opposing members, for example, by the contact prediction unit <NUM> shown in <FIG> and <FIG>. When the desired jaw angle is smaller than the threshold, the desired jaw angle can be interpreted both as an indication and an extent of the desired grip force between the two opposing members of the end effector.

In response to a determination that the desired state includes a desired grip force (e.g., when the desired jaw angle is smaller than the threshold), the tool control system may generate <NUM> a second command for tensioning at least one of the pair of antagonistic cables for a member of the end effector based on the desired grip force indicated by the desired jaw angle and the current grip force between the two end effector members. As described above, each of the pair of antagonistic cables (e.g., cables 405A and 405B in <FIG>) for a member of the end effector (e.g., jaw 401A in <FIG>) can be pulled or tensioned by at least one actuator, such as the rotary drives 322A-322F shown in <FIG>. The second command can be calculated, for example, by the grip force controller <NUM> shown in <FIG> and <FIG>, based on the difference between the desired grip force <NUM> and an estimation of the current grip force <NUM> from the grip force estimator <NUM>, which may take into consideration the measurements of the current tensioning forces <NUM> on the pair of antagonistic cables, as well as angular velocity <NUM> from the position estimator <NUM>.

In block <NUM>, the tool control system drives the end effector to effect the desired state based on the first command and/or the second command. In some implementations as shown in <FIG>, the tool control system may generate a first current command (icmd<NUM>) for the at least one actuator based on the calculated displacement to drive the end effector. In case it is determined that the desired jaw angle indicates a desired grip force, a second drive command (icmd<NUM>) is generated for the at least one actuator based on the desired grip force and the estimated current grip force. The actual input to the actuator units <NUM>, for example, may be a composite command based on the first drive command and the second drive command to drive the at least one actuator. The composite command can be any linear combination of the first and the second commands, as illustrated in Eqs. (<NUM>)-(<NUM>). In some other implementations as shown in <FIG>, the grip force controller <NUM> outputs an additional displacement or position command (xcmd<NUM>), which is combined with the position setpoints from the actuator command generator <NUM> and slack controller <NUM> to generate a composite position command (xcmd). The composite position command can then be input to the position controller <NUM> for generating current commands to drive the actuator units <NUM>.

<FIG> is a flowchart illustrating another example process <NUM> for controlling a robotic surgical tool having an end effector with two opposing members, in accordance with aspects of the subject technology. In this example, the surgical robotic system comprises a robotic surgical tool having an end effector at a distal end. The end effector has two opposing jaws each manipulated by at least one actuator via a pair of antagonistic cables imparting forces when tensioned by the actuator. The system may also include a controller comprising one or more processors coupled to the robotic surgical tool.

The controller may receive <NUM>, from an input module, an input to effect a desired state of the end effectors of the robotic surgical tool. The input may include at least one of a pitch angle and a yaw angle of the end effector, and a jaw angle between the two jaws of the end effector. The controller then determines <NUM> a desired position of the end effector based on the pitch angle and the yaw angle, and a desired grip force between the two jaws of the end effector based on the jaw angle. Based on the desired position and desired grip force, the controller can drive <NUM> the at least one actuator to effect the desired state of the tool, including the desired position of the end effector and the desired grip force between the jaws.

In some implementations, to effect the desired state of the tool, the controller may measure the current positions of the at least one actuator as well as current tensioning forces on the pair of antagonistic cables to generate a first drive command for the at least one actuator. The controller may further estimate a current grip force between the two opposing members of the end effector based on the measured tensioning forces on the pair of antagonistic cables to generating a second drive command for the at least one actuator. The first and the second drive commands may be combined to drive the tool to the desired state.

<FIG> is a flowchart illustrating yet another example process <NUM> for controlling a robotic surgical tool having an end effector with two grip members, in accordance with aspects of the subject technology. As shown in <FIG>, the example robotic surgical tool control system comprises a surgical tool having an end effector with two grip members, each of which is robotically manipulated through a pair of antagonistic cables effecting opposite pivoting of each grip member when tensioned individually. The tool control system also comprises one or more processors and an input coupled to the processors.

The tool control system may receive <NUM> an input jaw angle between the two grip members of the end effector. Next, the tool control system may determine <NUM> whether the received input jaw angle indicates a desired grip force between the two grip members. For example, the command indicates a desired grip force when the desired jaw angle is smaller than a threshold, which can be a contact angle between the two grip members when the end effector is grasping an object. In some implementations, the contact angle can be determined based on an estimation of a current grip forces between the two grip members and an estimation of a current jaw angle.

In response to a determination that the desired jaw angle indicates a desired force, the tool control system may generate <NUM> a command for tensioning at least one of the pair of antagonistic cables for each grip member based on the difference between the desired grip force and an estimation of the current grip force. For example, the input jaw angle indicates a desired grip force when the input jaw angle is smaller than a threshold, which is a contact jaw angle between the two grip members when the end effector is grasping an object or zero degree when not grasping. The contact angle can be determined based on an estimation of the current grip force between the two grip members and an estimation of the current jaw angle. In some implementations, the current grip force between the two grip members can be estimated based on the measurements of the current tensioning forces on the pair of antagonistic cables. The at least one of the pair of antagonistic cables can then be tensioned <NUM> to effect the desired grip force.

Otherwise if it is determined that the received input is indeed a desired jaw angle (e.g., the input jaw angle exceeds the threshold), the tool control system may determine <NUM> a displacement of the pair of the antagonistic cables for each grip member of the end effector, and drive <NUM> the end effector via the pair of antagonistic cables to effect the desired jaw angle based on the determined displacement.

The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims define the scope of the invention.

The methods, devices, processing, and logic described above may be implemented in many different ways and in many different combinations of hardware and software. The controllers and estimators may comprise electronic circuitry. For example, all or parts of the implementations may be circuitry that includes an instruction processor, such as a Central Processing Unit (CPU), microcontroller, or a microprocessor; an Application Specific Integrated Circuit (ASIC), Programmable Logic Device (PLD), or Field Programmable Gate Array (FPGA); or circuitry that includes discrete logic or other circuit components, including analog circuit components, digital circuit components or both; or any combination thereof. The circuitry may include discrete interconnected hardware components and/or may be combined on a single integrated circuit die, distributed among multiple integrated circuit dies, or implemented in a Multiple Chip Module (MCM) of multiple integrated circuit dies in a common package, as examples.

The circuitry may further include or access instructions for execution by the circuitry. The instructions may be stored in a tangible storage medium that is other than a transitory signal, such as a flash memory, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM); or on a magnetic or optical disc, such as a Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium. A product, such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions when executed by the circuitry in a device may cause the device to implement any of the processing described above or illustrated in the drawings.

The implementations may be distributed as circuitry among multiple system components, such as among multiple processors and memories, optionally including multiple distributed processing systems. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many different ways, including as data structures such as linked lists, hash tables, arrays, records, objects, or implicit storage mechanisms. Programs may be parts (e.g., subroutines) of a single program, separate programs, distributed across several memories and processors, or implemented in many different ways, such as in a library, such as a shared library (e.g., a Dynamic Link Library (DLL)). The DLL, for example, may store instructions that perform any of the processing described above or illustrated in the drawings, when executed by the circuitry.

Claim 1:
A surgical robotic system, comprising:
a robotic surgical tool (<NUM>) having an end effector at a distal end, the end effector comprising two opposing jaws (401A, 401B) each manipulated by a pair of actuators (<NUM>) and a pair of antagonistic cables (435A-435D) imparting forces when tensioned by the pair of actuators; and characterized in that the system comprises
a controller (<NUM>) comprising one or more processors coupled to the robotic surgical tool, the processors configured to:
receive, from an input module (<NUM>), an input to effect a desired state of the end effector, the input including at least one of a pitch angle and a yaw angle of the end effector, and a jaw angle between the two jaws;
measure positions of the pairs of actuators using sensors on the actuator units;
measure tensioning forces on the pairs of antagonistic cables using sensors;
determine a desired position of the end effector based on the pitch angle and the yaw angle, and a desired grip force between the two jaws based on the jaw angle;
generate a first drive command for each actuator of the pairs of actuators based on the desired position and the measured positions and tensioning forces;
estimate a current grip force between the two opposing j aws based on the measured tensioning forces on the pairs of antagonistic cables;
generate a second drive command for each actuator of the pairs of actuators based on a difference between the desired grip force and the estimated current grip force; and
drive the pairs of actuators to effect the desired position and the desired grip force using a composite drive command based on a summation of the first drive command and the second drive command.