Cable-driven force actuation system
The cable-driven force actuation system in surgical robots estimates contact forces using motorized reels, load cells, and optical encoders with closed-loop feedback, addressing the lack of accurate haptic feedback and reducing complexity and cost, enhancing surgical robot performance.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- UNIV OF WASHINGTON
- Filing Date
- 2025-10-23
- Publication Date
- 2026-04-30
AI Technical Summary
Surgical robots lack accurate haptic feedback and reliable force sensing due to the complexity and cost associated with force sensors mounted on the end-effector, and existing learning-based methods face challenges in obtaining representative training datasets.
A cable-driven force actuation system that estimates contact forces using motorized reels, load cells, and optical encoders, coupled with a closed-loop feedback control system to adjust control signals for precise force application, and employs a trained AI model for enhanced accuracy.
The system provides accurate haptic feedback and reduces the complexity and cost of surgical robots by estimating contact forces with high precision, improving the robot's performance under various load conditions.
Smart Images

Figure US2025052314_30042026_PF_FP_ABST
Abstract
Description
CABLE-DRIVEN FORCE ACTUATION SYSTEMCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority to U.S. Provisional Application No. 63 / 711.876 titled “CABLE-DRIVEN FORCE ACTUATION SYSTEM” filed on October 25, 2024. The entire contents of the above-listed application are hereby incorporated by reference for all purposes.TECHNICAL FIELD
[0002] Embodiments of the subject matter disclosed herein relate generally to surgical robots, and in particular, to cable-driven surgical robots.BACKGROUND
[0003] Surgical robots have been used in different types of surgeries and provide accurate and reliable operations between surgeons and robots, and improve outcomes for patients. Compared to conventional minimally invasive surgeries, tclcopcration of surgical robots by leader and follower control enables comfortable and intuitive control for surgeons with stereo vision. However, many surgical robots have no haptic feedback. Even when there are motorized leader controllers, the motors and encoders of a follower surgical robot are typically mounted on a robot base instead of on joints of a robot arm that are driven by cables, which makes it challenging to measure or estimate external contact forces on an end-effector of the surgical robot. Force sensors may be installed on the end-effector, which can provide direct and accurate force sensing. However, the force sensors increase a cost and complexity of the surgical robot due to size, wiring, and sterilization. As a less costly and complex alternative, distal force sensing may be used with learning-based methods that do not rely on extra sensors on the endeffector. However, limitations remain on obtaining representative training datasets for learning models.BRIEF DESCRIPTION
[0004] In one example, the issues described above may be addressed by a method for operating a cable-driven force actuation system coupled to a target via a plurality of cables, each cable of the plurality' of cables coupled to a motorized reel positioned on a frame of the cable-driven force actuation system, the method comprising providing control signals to the motorized reels, thereby causing the motorized reels to apply tensions to the plurality' of cables; sensing magnitudes of the tensions applied to the plurality of cables using load cells coupled to respective motorized reels; estimating a position of the target based on rotational positions of the motorized reels sensed by optical encoders coupled to the motorized reels; determining a difference between a setpoint force and an actual force applied to the target based on the magnitudes of the tensions applied to the target by the cables and the estimatedposition of the target; and adjusting the control signals based on the difference between the setpoint force and the actual force to reduce the difference.
[0005] It should be understood that the brief description above is provided to introduce in simplified form a selection of concepts that are further described in the detailed description. It is not meant to identify key or essential features of the claimed subject matter, the scope of which is defined uniquely by the claims that follow the detailed description. Furthermore, the claimed subject matter is not limited to implementations that solve any disadvantages noted above or in any part of this disclosure.BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
[0007] FIG. 1 shows a schematic diagram of an exemplary cable-driven force actuation system;
[0008] FIG. 2 shows a block diagram of an exemplary force unit of the cable-driven force actuation system;
[0009] FIG. 3 shows a block diagram of an exemplary architecture of the cable-driven force actuation system;
[0010] FIG. 4 shows a schematic user input and data collection functions of the cable-driven force actuation system;
[0011] FIG. 5 shows a schematic control diagram illustrating how the cable-driven force actuation system is controlled during operation;
[0012] FIG. 6 shows a perspective view of a positioning of cables of the cable-driven force actuation system in a simulation of the force actuation system;
[0013] FIG. 7 shows a force diagram indicating a direction of forces exerted on an end-effector of a robotic system by the cable-driven force actuation system; and
[0014] FIG. 8 is a flowchart illustrating an exemplary method for generating 3D forces on the end-effector.
[0015] The drawings illustrate specific aspects of the described systems and methods. Together with the following description, the drawings demonstrate and explain the structures, methods, and principles described herein. In the drawings, the size of components may be exaggerated or otherwise modified for clarity. Well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the described components, systems and methods.DETAILED DESCRIPTION
[0016] Methods and systems are provided herein for increasing a performance of robotic systems, such as surgical robots. However, while the methods and systems are described herein with respect tosurgical robots, it should be appreciated that they may also apply to other ty pes of robotic systems without departing from the scope of this disclosure.
[0017] A surgical robot may include a robotic arm comprising a plurality of joints that are controlled by motorized cables. The robotic arm may be moved by increasing or decreasing tension on the cables, using motors positioned at the joints. For example, the robotic arm may have three joints, which pennit the robotic arm freedom of movement within three dimensions. A surgical tool, such as a grasper or a scalpel, may be coupled to an end-effector at a tip of the robotic ann. Control signals received at the surgical robot control a movement of the robotic arm to perform a surgical task. In some examples, the surgical robot may perform the surgical task in a fully automated manner, where the control signals are generated in accordance with a computer program. In other examples, the control signals are generated by a human user via a leader controller interface. For example, a surgeon may manipulate a first grasper at the leader controller, and control signals may be generated to actuate a second grasper at a follower robot based on forces exerted on the first grasper by the surgeon’s hands.
[0018] When the surgical tool makes contact with tissues of a patient, a contact force is generated on the surgical tool by the tissues (e.g., force feedback or resistance). The contact force tells the surgical robot how much force (e.g., pressure) is applied on the surgical tool when performing the surgical task. Therefore, effective use of the surgical tool may rely on an accurate estimation of the contact force by the surgical robot. The estimation of the contact force may be used by the computer program to determine how to actuate motorized cables in the robotic arm to apply a commanded force on the surgical tool in three dimensions. The measurement of the contact force may also be used to generate haptic feedback that simulates the resistance of the tissues for the surgeon.
[0019] The contact force could be measured by force sensors positioned at the end effector. However, the inclusion of the force sensors may increase a cost and complexity of the surgical robot. Thus, to reduce the cost and complexity, the contact force may alternatively be estimated based on a position of the end effector in a coordinate system of the robot and mechanics of the arm. That is, the surgical robot may be configured to estimate the contact force in three dimensions at the end-effector based on motor torques measured at the motors positioned at the joints of a robotic arm of the surgical robot. For example, when the end-effector is at a location (1. 2, 3) and the motor torques are (4, 5, 6), then a controller of the surgical robot may estimate the contact force on the end-effector to be (7, 8. 9).
[0020] If the arm mechanism were ideal, the contact force could be predicted by a known matrix (e.g., Jacobian transpose) times a vector of the motor torques, which may be modeled by known motor current. However, in practice, the estimated contact force may be less accurate than desired, due to losses and errors in the arm mechanism, variance in measurements due to temperature, friction, and / or other factors, and degradation of the motors and cables over time, for example. Therefore, alternative ways to increase the accuracy of the contact force estimation that do not rely on additional sensors are desired.
[0021] One solution to this issue is to train an artificial intelligence (Al) model to estimate the contact forces based on the motor torque measurements received from the sensors positioned at the joint motors, using known contact forces as ground truth data. That is, a separate cable-driven force actuation system may be coupled to the end-effector that generates ground truth contact forces. The ground truth contact forces generated at different points in time may be paired with robot state data (e g., position of the robotic arm and motor torques) to generate training pairs used to train the Al model. After training, the trained Al model may be stored in a memory of the surgical robot. The estimated contact forces output by the trained Al model may then be used to control the end-effector (for example, during a surgery) and / or generate realistic haptic feedback for a user of the surgical robot.
[0022] During a collection of the training data, the force actuation system may generate contact forces on the end-effector based on a position of the end-effector, in accordance with instructions provided manually or via a computer program. The surgical robot may move the end-effector around a three-dimensional (3D) workspace of the force actuation system. The workspace may be defined as an abstract space that can be reached by the end-effector, located around a home position of the surgical robot, where a size and shape of the workspace is determined by a design and mechanism of the arm of the surgical robot. For example, the computer program may command the end-effector to follow a predetermined trajectory’ through the workspace. As the end-effector moves, the force actuation system may apply a 3D contact force to the end effector via cables of the force actuation system. As a position of the end-effector changes within the workplace, the force actuation system may adjust the force in accordance with a predefined model of the workspace, by increasing or decreasing tension in the cables of the force actuation system.
[0023] Specifically, as the end-effector is moved by the surgical robot, a set of motorized reels of the cable-driven force actuation system are back-driven, which allows the end-effector to move freely. As the end-effector moves, the cable-driven force actuation system determines a position of the endeffector by calculating the lengths of the different cables coupled to the tip of the robotic arm. The cable-driven force actuation system then applies a contact force to the end-effector depending on the position, based on a model of the workspace. The cable-driven force actuation system provides control signals to the set of motorized reels, causing the motorized reels to apply the tensions to the cables such that the contact force is applied to the end-effector. The surgical robot then records the contact forces generated on the end-effector by the cable-driven force actuation system, which may later be paired with the recorded states of the surgical robot at a time of generating the contact forces to generate training pair data as described above.
[0024] However, an accuracy of the trained Al model may depend on an ability of the force actuation system to provide accurate assessments of the 3D contact forces generated on the end-effector at the 3D location. One challenge in using the cable-driven force actuation system is that because the system is following the movement of the end-effector while concurrently providing a force, the tensionon the cables is different depending on a direction of movement of the end-effector, making it difficult to accurately generate a commanded force. An additional challenge in generating contact forces using the cable-driven force actuation system is that the mechanical and physical properties of the cables, motors, and other components of the experimental setup may vary over time and during use.
[0025] Thus, to increase an accuracy of the contact forces applied by the cable-driven force actuation system on the end-effector (meaning, to reduce a difference between the commanded force and the force applied by the force actuation system), the inventors herein disclose a cable-driven force actuation system that controls the forces using a closed-loop feedback control system. In the closed-loop feedback control system, load cells may be positioned at each of the motorized reels of the cable-driven force actuation system that sense magnitudes of tensions applied to the cables. Rotary encoders may also be positioned at each of the motorized reels that sense the rotational (e.g., angular) positions of the motorized reels. The cable-driven force actuation system may continuously calculate, in real time, a difference between a setpoint (e.g., desired) force specified by the model of the workplace, and an actual force applied to the end-effector based on the magnitudes of the tensions applied to the cables and the rotational positions of the motorized reels. The cable-driven force actuation system then adjusts the control signals to reduce the difference. In this way, the cable-driven force actuation system may minimize a difference between the contact forces delivered to the end-effector and the forces commanded by the model of the workplace.
[0026] The cable-driven force actuation sy stem further increases an accuracy of the applied contact forces by employing two levels of feedback control. A first, higher-level feedback control is applied to the force command, based on the difference between a desired force and an actual applied force. A second, lower-level feedback control is applied to the cable tension, based on a difference between a desired cable tension and an actual cable tension measured by load cells.
[0027] In other words, in contrast to other cable-driven parallel robotic mechanisms that use motor models and current feedback to estimate the contact force, the disclosed cable-driven force actuation system relies on sensing the forces using load cells positioned at each motor, which generate direct and more accurate measurements. These load cells are not torsional load cells that measure torque on the cable reels, but rather beam load cells that are mounted to the DC motors used to power the cable reels such that tension in the cable may be maintained close to perpendicular to the load cell. When the tension is not perpendicular, a compensatory calculation may be made based on an angle between the cable reel and the cable. In this way, the load cells can be oriented precisely along the line of the cable, ensuring accurate measurements.
[0028] By using the disclosed force actuation system to generate forces on a target, a robot’s performance may be evaluated under a wider variety of load conditions with a greater accuracy than may be provided by alternative force actuation systems. Additionally, an accuracy of the ground truthdata supplied to train the Al model may be increased, resulting in an increased performance of the Al model and the robotic system overall.
[0029] Referring now to the figures, FIG. 1 shows a simplified schematic diagram of an exemplary cable-driven force actuation system 100, which may be operated in conjunction with a robotic system, such as a surgical robot 160. While cable-driven force actuation system 100 is described in reference to a surgical robot herein, it should be appreciated that cable-driven force actuation system 100 and the other systems and methods described herein may alternatively be used in conjunction with other types of non-surgical robotic systems.
[0030] Cable-driven force actuation system 100 includes six force units that are coupled to a target, such as an end-effector 102 of the robotic system (e.g., in FIG. 1, surgical robot 160) via six respective cables. End -effector 102 may be positioned at an end or tip of a robotic arm 162 of the robotic system and may enable a tool 164 to be coupled to the tip of robotic arm 162, such as a grasper, or a scalpel.
[0031] Each force unit of the six force units may be coupled to common infrastructure, such as a set of interconnected motor racks or frame 170. The force units may be paired along x, y, and z dimensions, as indicated by a set of reference coordinates 190, where in each dimension, two force units are diametrically opposed at equal distances from end-effector 102. Thus, the six cables may be configured to apply force to the end-effector 102 hi at least three directions, which may be orthogonal or substantially orthogonal directions.
[0032] That is, end-effector 102 may be coupled to a first force unit 104 via a first cable 120, and to a second force unit 106 via a second cable 122, where first force unit 104 and second force unit 106 may be coupled to opposite sides of interconnected motor racks 170 along the x dimension. End-effector 102 may be coupled to a third force unit 108 via a third cable 124. and to a fourth force unit 110 via a fourth cable 126, where third force unit 108 and fourth force unit 110 may be coupled to opposite sides of interconnected motor racks 170 along the y dimension. End-effector 102 may be coupled to a fifth force unit 112 via a fifth cable 128, and to a sixth force unit 114 via a sixth cable 130, where fifth force unit 112 and sixth force unit 114 may be coupled to opposite sides of interconnected motor racks 170 along the y dimension. A maximum length of each of cables 120. 122, 124, 126, 128, and 130 may be similar or identical, such that end-effector 102 may be positioned at a center of the cable-driven force actuation system 100 and the common infrastructure, with force units 104. 106, 108, 110. 112, and 114 being positioned around end-effector 102 at equal distances.
[0033] Each force unit may include a motorized cable reel configured to apply tension to respective cables. For example, first force unit 104 includes a motorized cable reel that when actuated, generates tension in cable 120 that pulls end-effector 102 in a direction 140 towards first force unit 104; second force unit 106 includes a motorized cable reel that when actuated, generates tension in cable 122 that pulls end-effector 102 in a direction 142 towards second force unit 106; third force unit 108 includesa motorized cable reel that when actuated, generates tension in cable 124 that pulls end-effector 102 in a direction 144 towards third force unit 108; fourth force unit 110 includes a motorized cable reel that when actuated, generates tension in cable 126 that pulls end-effector 102 in a direction 146 towards fourth force unit 110; fifth force unit 112 includes a motorized cable reel that when actuated, generates tension in cable 128 that pulls end-effector 102 in a direction 148 towards fifth force unit 112; and sixth force unit 114 includes a motorized cable reel that when actuated, generates tension in cable 130 that pulls end-effector 102 in a direction 150 towards sixth force unit 114. Thus, respective motorized cable reels of force units 104, 106. 108, 110, 112, and 114 may be actuated to apply a force (e.g., a sum of various respective forces) on end-effector 102 in various directions. Additionally, the respective motorized cable reels of force units 104, 106, 108. 110, 112, and 114 may be actuated to apply a torque on end-effector 102 in various rotational directions.
[0034] Additionally, in some embodiments, cable-driven force actuation system 100 may include a first set of motorized reels configured to generate a three-dimensional (3D) force on the end-effector as described above, and a second set of motorized reels configured to generate a 3D torque on the endeffector. That is. each of force units 104, 106, 108, 1 10. 112, and 114 may include a first motorized cable reel for generating a one-dimensional (ID) force on the end-effector via a respective cable, and a second motorized cable reel for generating a ID torque on the end-effector via the respective cable.
[0035] For the performance of the force actuation system, suitable motor locations may be determined such that each cable tension will not exceed limits for providing desired forces, and that the cables do not interfere with the robot and other obstacles. In other words, a positioning of force units 104, 106, 108, 110, 112, and 114 on motor racks 170 may be customized for surgical robot 160 (or a different robotic system), such that cables 120, 122, 124, 126, 128, and 130 do not interfere with a movement of robotic arm 162 and / or end-effector 102 during a use of the force actuation system in conjunction with surgical robot 160. In some cases, simulation software may be used to determine suitable positions of force units 104, 106, 108, 110, 112, and 114 on motor racks 170.
[0036] In one embodiment, at least six motorized reels are coupled to motor racks 170 at positions that are equidistant or approximately equidistant from end-effector 102. As such, the six motorized reels define a sphere with end-effector 102 at a center of the sphere, where each motorized reel of the six motorized reels pulls end-effector 102 in a different direction towards a surface of the sphere.
[0037] Further, in some examples, a pulley or low-friction guide may be deployed on one or more of cables 120, 122, 124, 126, 128, and 130 to change a location of a respective force unit coupled to the interconnected motor racks 170 with respect to a direction in which tension is applied to the endeffector. As an example, in one embodiment, a position of force unit 106 on interconnected motor racks 170 may be adjusted to an alternative position 130. For example, alternative position 130 may be a position that prevents an interference of an obstacle with cable 122. To maintain an alignment of cable 122 with respect to end-effector 102 (e.g., in direction 142), a pulley or low-friction guide 134 may bepositioned on cable 122, with pulley 134 being coupled to interconnected motor racks 170 at an anchor 136, via a support cable 138. In this way, cables 120, 122, 124, 126, 128, and 130 may maintain tension on end-effector 102 in orthogonal or substantially orthogonal directions, while providing flexibility regarding where force units 104, 106, 108, 110, 112. and 114 are coupled to on motor racks 170.
[0038] Turning briefly to FIG. 6, an exemplary visualization 600 shows a simulated configuration or placement of force units 104, 106, 108, 110, 112, and 114 in three dimensions, which may be generated by motor placement simulation software. Visualization 600 is shown within a coordinate system of cable-driven force actuation system 100, where the coordinate system has an x dimension 610, a y dimension 612, and a z dimension 614, with end-effector 102 positioned in a center point of the coordinate system. End-effector 102 may move freely within a workspace 602 around the center point, where boundaries of workspace 602 are created by a range of motion of various joints of robotic arm 162. Obstacles to be avoided by the cables coupling force units 104, 106, 108, 110, 112, and 114 (e.g., cables 120. 122. 124, 126. 128, and 130) may be defined and represented by bounding boxes. For example, a first bounding box 604 represents a first space that may be occupied by robotic arm 162; a second bounding box 606 represents a second space that may be occupied by a base of surgical robot 1 0; and a third bounding box 608 represents a third space that may be occupied by a table on which surgical robot 160 is mounted or positioned. In one example, simulation software may allow a user to reposition one or more of force units 104, 106, 108, 110, 112, and 114 at different locations within the coordinate system. The simulation software may also determine suitable placements based on various factors. For example, motor positions closer to the robot workspace may benefit from a smaller influence of cable elasticity, but a cable direction may experience larger changes due to robot movement, resulting in greater cable tensions. In one example, a Monte-Carlo simulation of workspace 602 may be performed to determine a maximum cable tension for a desired range of force actuation. When the force units have been positioned at suitable locations within the coordinate system, the coordinates of the force units in the coordinate system may be used to position the force units at appropriate locations on motor racks 170.
[0039] Referring now to FIG. 2, an exemplary force unit 200 of cable-driven force actuation system 100 is shown, which may be a non-limiting example of force units 104, 106, 108. 110, 112, and 114 of FIG. 1. Force unit 200 includes a direct current (DC) motor 202. a cable reel 204, a load cell 206, and an optical encoder 214. Load cell 206 includes a rack mounting plate 208, a motorized reel mounting plate 212, and a bending beam 210.
[0040] Force unit 200 may be coupled to the cable-driven force actuation system 100 via a cable, (e.g., one of cables 120, 122, 124. 126, 128. and 130), where a first end of the cable is coupled to and wound around cable reel 204, and second end of the cable is coupled to end-effector 102 of cable-driven force actuation system 100. In various examples, the cable is a nylon cable, although in other examples the cable may be created from a different material. Force unit 200 may be coupled to interconnectedmotor racks 170 at a first side 220 of force unit 200 via rack mounting plate 208, to achieve the physical configuration described above in reference to FIG. 1. In particular, rack mounting plate 208 may be configured and mounted such that load cell 206 is oriented along a direction of a respective cable, and pointing towards the center point of the workspace. DC motor 202 is coupled to cable reel 204 in an inline configuration along central axis 240 via motorized reel mounting plate 212, forming a motorized cable reel at a second side 222 of force unit 200.
[0041] During operation of cable-driven force actuation system 100, DC motor 202 may receive a current from a controller of cable-driven force actuation system 100. which generates a torque in cable reel 204 in either a first rotational direction 230 or a second rotational direction 232. The torque generated on cable reel 204 may be dictated by the current, meaning, as the current increases, the torque generated on cable reel 204 may increase. As the torque is applied to cable reel 204 by the current, cable reel 204 may rotate in either of first rotational direction 230 or a second rotational direction 232 to increase or decrease a tension in the cable. By increasing or decreasing the tension on the cable, a force in a corresponding dimension of the cable may be generated at end-effector 102. Changes in the tension may be registered by load cell 206, as a shape and position of bending beam 210 changes in response to the tension. Signal wires through which the current is received may be shielded and grounded to ensure that signals are not corrupted.
[0042] The motorized cable reel comprised by DC motor 202 and reel 204 may be configured to be back-driven by a movement of end-effector 102. That is, a force applied to end-effector 102 by the robotic system (surgical robot 160) may cause a corresponding rotation of cable reel 204 to shorten or lengthen a respective cable to permit the movement. As the movement is performed, the tension in the cable may be maintained, such that the force on end-effector 102 generated by cable-driven force actuation system 100 and the measured by load cell 206 may not change, or may be maintained or updated based on a desired force to be applied to end-effector 102.
[0043] Optical encoder 214 may measure a rotational movement and a rotational position of cable reel 204. In some embodiments, optical encoder 214 may be a different type of rotational encoder, or a magnetic sensor. The rotational movement may be used to determine a direction of movement of endeffector 102, based on whether cable reel 204 is rotated in first rotational direction 230 or second rotational direction 232. The direction of movement indicates whether a length of the cable (e.g.. a distance between end-effector 102 and force unit 200) is increasing or decreasing as a result of the force applied to end-effector 102. The determination of the direction of movement by optical encoder 214 may increase an accuracy of an estimation of force on end-effector 102. A first force applied by motor 202 when the cable length is decreasing (e.g., becoming shorter) may be different from a second force applied by motor 202 when the cable length is increasing (e.g.. becoming longer), even when the first force and the second force are generated by a same current. The rotational position of cable reel 204 may indicate a length of the cable (e.g., a distance between force unit 200 and end-effector 102). Bycalculating the lengths of all of cables 120, 122, 124, 126, 128, and 130, a first 3D position of endeffector 102 within a first coordinate system of cable-driven force actuation system 100 may be determined.
[0044] The first 3D position of end-effector 102 may be defined with respect to 3D positions of the motor reels 204. The 3D positions of the motor reels 204 within the first coordinate system of cable-driven force actuation system 100 may be translated into a 3D positions of the motor reels within a second coordinate system of surgical robot 160 and end-effector 102. The translation of the 3D positions may be performed by measuring several known points in the second coordinate system, and using the Kabsch algorithm often used in cheminformatics and bioinformatics to generate a suitable translation matrix. In some cases, intermediate coordinate frames may be used.
[0045] FIG. 3 illustrates an exemplary simplified, high-level architecture 300 of cable-driven force actuation system 100 of FIG. 1. Cable-driven force actuation system 100 includes a system controller 302, a motor control board 306, a motor driver 304. a sensor system 308. and a force unit 200 of FIG. 2, which collectively may be referred to as a system core 301 of cable-driven force actuation system 100. It should be appreciated that while a single force unit 200 is depicted in FIG 3 for simplicity, simplified architecture 300 includes six or more force units 200, each force unit 200 having a dedicated motor driver 304. a dedicated motor control board 306, and a dedicated sensor system 308.
[0046] System controller 302 may take 3D force commands, for example, from a user via a UI 303 of cable-driven force actuation system 100, and calculate a corresponding one-dimensional (ID) command for (each) force unit 200 to implement the 3D force commands. The generation of the force commands via UI 303 is described in greater detail below in reference to FIGS. 4 and 5. The force commands may include commanded forces to be applied in three dimensions to a target, such as endeffector 102 of surgical robot 160. In some examples, the force commands may include commanded torques to be applied to the target in three rotational directions. In still other examples, cable-driven force actuation system 100 may include an additional set of motors such that both force commands and torque commands may be applied to the target. System controller 302 interprets the commanded forces and / or torques, and outputs a set of corresponding tension commands for increasing or decreasing tensions of cables coupled to respective force units 200 via motor control board 306.
[0047] Motor control board 306 may include a microcontroller that receives the commanded forces and torques from system controller 302. Motor control board 306 may be electronically coupled to motor driver 304 and sensor system 308. Motor driver 304 may include one or more power supplies, servo amplifiers, and / or other components. In one example, motor driver 304 includes a 48V power supply and a + / -15V power supply.
[0048] Motor driver 304 may control a torque applied to DC motor 202, by regulating the amount of current flowing through DC motor 202. A current-to-force ratio may not be symmetrical. Motor driver 304 may receive voltage / current signals from motor control board 306, and may output a currentto DC motor 202. As a result of receiving the current. DC motor 202 may actuate a cable reel of force unit 200 (e.g., cable reel 204) to adjust a tension in the cable. As the tension is adjusted by DC motor 202, optical encoder 214 sends a motor position of DC motor 202 to sensor system 308. Concurrently, load cell 206 sends a measurement of the tension in the cable to sensor system 308.
[0049] Sensor system 308 may include multiple external analog-to-digital converters that amplify and digitize load cell force signals and multiple quadrature counters that convert pulses from optical encoder 214 into motor position information. Sensor system 308 may transmit the motor position information to motor control board 306. The motor control board may directly interface with the motor driver 304. The microcontroller of motor control board 306 receives the motor position information and load cell force readings.
[0050] The motor control board 306 may transmit the motor position information and load cell readings to system controller 302. System controller 302 may calculate a cable tension based on the motor position and load cell readings. System controller 302 may compare the cable tension with the tension command transmitted to motor driver 304. If the cable tension is different from the tension command, motor control board 306 may then output a feedback voltage signal back to motor driver 304 using a digital-to-analog converter (DAC). The feedback voltage signal may be used to adjust the signal sent to DC motor 202 (c.g., a first feedback loop). The functions of system controller 302 arc described in greater detail below in reference to FIG. 5.
[0051] The motor position information (e.g., cable directions) and the magnitudes of the component forces measured by the load cells received at system controller 302 may be summed to generate a single ground truth contact force, meaning, an actual force applied to the end-effector by the force actuation system in three dimensions. The ground truth contact force may be stored in a memory 350 of surgical robot 160 by a processor 354, along with state data of surgical robot 160, which together may be used to generate training data for training an Al model 352 of the surgical robot to generate accurate contact forces on end-effector 102.
[0052] Memory 350 and other memories described herein may include, but are not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD). Blu-ray disc (BD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, solid state drives or other solid state storage devices, or other tangible and / or non-transitory media which can be used to store desired information. In this regard, the terms ‘ tangible” or “non-transitory” herein as applied to storage, memory or computer-readable media, are to be understood to exclude only propagating transitory signals per se as modifiers and do not relinquish rights to all standard storage, memory or computer-readable media that are not only propagating transitory' signals per se. Memory’ 350 may beaccessed by one or more local or remote computing devices, e.g., via access requests, queries or other data retrieval protocols, for a variety of operations with respect to the information stored by the medium.
[0053] Referring now to FIG.4, a system software diagram 400 shows how the cable-driven force actuation system 100 of FIG. 1 is operated in conjunction with surgical robot 160. As described above, end-effector 102 of surgical robot 160 may be coupled to cable-driven force actuation system 100, and cable-driven force actuation system 100 may generate forces on end-effector 102. In some examples, surgical robot 160 and cable-driven force actuation system 100 may be operated independently. In other examples, a single high-level controller may coordinate the operation of surgical robot 160 and cable-driven force actuation system 100 together.
[0054] Force control commands for generating contact forces may be received at a force actuation system core 402 of cable-driven force actuation system 100, which may be a non-limiting example of system core 301 of FIG. 3. Force actuation system core 402 is described in greater detail below in reference to FIG. 5.
[0055] In some examples, the force control commands may be transmitted manually from a user of cablc-drivcn force actuation system 100 via a keypad controller 404. Additionally or alternatively, die user may specify a force control command via a UI of cable-driven force actuation system 100 (e.g., UI 303 of FIG. 3). Via the UI, the user may specify a constant contact force 406 w ith a direction and a magnitude, where constant contact force 406 is applied to end-effector 102 as end-effector 102 is moved by surgical robot 160 (e g., to simulate a resistance of skin tissues to a surgical tool coupled to endeffector 102, for example). Alternatively, the user may specify a random contact force 408 via the UI, which may have a direction and a magnitude that is generated by the system and applied to end-effector 102 as end-effector 102 is moved by surgical robot 160. Random contact force 408 may be a randomly changing contact force in accordance with predefined parameters such as range of force, speed of change, and randomness, which may be useful for collecting testing data for data-driven applications. As another alternative, the user may specify a trajectory contact force 410 via the UI, which may apply different predefined contact forces at different points along a predefined trajectory of movement of endeffector 102. For example, the predefined trajectory may include a trajectory of a surgical tool through a specific patient anatomy, and different trajectory contact forces 410 may be applied to end-effector 102 along the trajectory. An example trajectory is described below in reference to FIG. 7.
[0056] Force actuation system core 402 may then compute servo motor control commands that control motorized reels of cable-driven force actuation system 100 (e.g., motor 202 and cable reel 204 of FIG. 2), for example, via the motor drivers 304 of FIG. 3. Force actuation system core 402 may receive signals (values) from load cells and optical encoders positioned at force imits of cable-driven force actuation system 100 (e.g., load cell 206 and optical encoder 214 of FIG. 2) that encode a position of end-effector 102 and an actual force applied to end-effector 102 by the motorized reels. Force actuation system core 402 may also receive state data of surgical robot 160 from surgical robot 160. Invarious examples, force actuation system core 402 may be communicatively coupled to surgical robot 160 via a robot operating system (ROS) application programming interface (API) 411, and force actuation system core 402 may receive the state data from surgical robot 160 via ROS API 411.
[0057] A system state of cable-driven force actuation system 100 may be generated from data including positions of the force units, tensions and directions of the cables coupled to the end-effector, the applied contact force on end-effector 102. and the position / location of end-effector 102 within the coordinate system of cable-driven force actuation system 100. The system state may be available after an initialization routine 412 is performed, during which the optical encoders and load cells are calibrated. During initiation, all the load cells may be calibrated to zero force prior to measurement. The system state may be stored in a memory 415 of cable-driven force actuation system 100 by a system state recorder software component 414. In particular, in some examples, the applied contact force on end -effector 102 may be stored as ground truth training data for training an Al model 417 stored in memory 415. which may be the same as or similar to Al model 352 of surgical robot 160 of FIG. 3. In other examples, the applied contact force on end-effector 102 may be stored as ground truth training data for training Al model 352, as described above in reference to FIG. 3.
[0058] Software components such as a data extraction and processing component 416 and a data visualization component 418 may form a data processing and visualization pipeline for analyzing the system state data and / or displaying / visualizing results of the analysis. An example visualization is shown in FIG. 7.
[0059] Referring briefly to FIG. 7, a visualization 700 is shown of forces applied to an endeffector of a robotic system by the cable-driven force actuation system 100 described herein. Visualization 700 shows a trajectory 702 followed by the end-effector (represented in joint space) through a 3D workspace 704, which may be a user-specified trajectory contact force 410 of FIG. 4. In the depicted example, 3D workspace 704 is defined by ranges of motion of three joints of a robotic arm of the robotic system. That is, a length 710 of workspace 704 in an x dimension of visualization 700 is defined by a rotational position (in degrees) of a first joint of the robotic arm; a width 712 of workspace 704 in a y dimension of visualization 700 is defined by a rotational position of a second joint of the robotic arm; and a height 714 of workspace 704 in a z dimension of visualization 700 is defined by a rotational position of a third joint of the robotic arm.
[0060] Forces generated by the force actuation system at a plurality of points 706 of trajectory 702 are illustrated in visualization 700 by arrows 708, where an orientation of each arrow 708 shows a direction of an applied force and a length of each arrow 708 shows a relative magnitude of the applied force. The applied forces may be applied in various directions and with various magnitudes, in accordance with instructions and / or a provided model. For example, during a first portion of trajectory 702, a first force may be applied in a first direction; during a second portion of trajectory 702, a second force may be applied in a second direction different from the first direction, where the second force mayhave a different magnitude than the first force; and so on. The applied forces may be applied while the end-effector is moving along trajectory 702. At some points along trajectory 702, forces may be applied in different directions to the end-effector while the end effector is not moving, resulting in a star-shaped visualization 716.
[0061] In this way, visualization 700 provides a visual depiction of how the applied forces change along different points of trajectory 702. and the magnitudes of those applied forces. Visualization 700 may be used to assess a range and variation in the applied forces over a data collection session in which ground truth data is acquired for training an Al model to estimate contact forces on the end-effector. For example, it may be desirable to collect ground truth data that encompasses forces of many different magnitudes and different directions that are applied at different robotic arm configurations.
[0062] FIG. 5 shows a data flow diagram 500 that depicts a flow of data through a system controller of cable-driven force actuation system 100, such as system controller 302 of FIG. 3, during operation of cable-driven force actuation system 100 in conjunction with surgical robot 160. The system controller may operate using a two-layer feedback-loop structure. At a first layer of the two-layer structure, a high-level proportional-integral (PI) controller 502 regulates Cartesian force commands received from a user (via UI 303) based on collective feedback from a plurality of force units of cable-driven force actuation system 100. At a second layer of the two-layer structure, a plurality of low-level proportional-integral-derivative (PID) controllers 514 (e.g., a PID controller 514 for each of the x, y, and z dimensions) adjust motor torque of DC motors coupled to the cables (e g., DC motor 202) using sensor feedback.
[0063] In a first feedback loop, PI controller 502 receives a 3D force command (to generate a contact force on the end-effector) and an applied 3D force as feedback from a previous cycle. PI controller 502 adjusts the 3D force command based on the previous 3D applied force, generating a 3D compensated force command that minimizes a difference between the 3D force command and the previous 3D applied force.
[0064] The 3D compensated force command is an input into an optimized solver 504. which calculates a cable tension for each cable of cable-driven force actuation system 100 that in combination will generate the demanded 3D compensated force, based on a cable system model 506. Cable system model 506 is a physical model that dynamically encodes state information of cable-driven force actuation system 100, such as a location of end effector 102, lengths of different cables, etc. The cable tensions calculated at optimized solver 504 are used to generate motor torque commands that are then input into the PID controllers 514. Each PID controller 514 may compensate the motor torque command based on sensor data received from corresponding force sensor modules 12. Each PID controller 514 may generate a compensated motor torque command for each motorized cable reel.
[0065] For example, in reference to FIG. 1, a first PID controller 514 may generate a first compensated motor torque command for a first DC motor 202 of first force unit 104. A second PIDcontroller 514 may generate a second compensated motor torque command for a second DC motor 202 of second force unit 106. A third PID controller 514 may generate a third compensated motor torque command for a third DC motor 202 of third force unit 108, and so on.
[0066] In a second feedback loop, each PID controller 514 generates the respective compensated motor torque commands based on sensor feedback received from a respective force sensor module 512 (e.g. one for each force unit 200). Each force sensor module 512 may be the same as or similar to sensor system 308 of FIG. 3. The sensor feedback may include load cell readings and rotational positions of respective motors. The compensated motor torque command generated by each PID controller 514 is adjusted to minimize a difference between a desired force or tension on a respective cable created by the motor torque command outputted by optimize solver 504, and an actual force or tension generated at a respective cable as measured by a respective load cell in a previous cycle, where the desired force is calculated by multiplying the motor torque command by a diameter of a respective cable reel .
[0067] The sensor feedback from force sensor modules 512 is also used to update cable system model 506. An optical encoder module 510 at each force unit converts pulse signals into motor position data of a DC motor of the respective force unit. The motor position data is then used to calculate a length of a respective cable coupled to the respective force unit. Based on the calculated lengths of each of the cables, an end-effector localization module 508 estimates a position of end-effector 102 in the reference frame of cable-driven force actuation system 100. In one example, the position of end-effector 102 may be calculated by computing an intersection of six spheres, where a center of each sphere corresponds to a location of a force unit, and a radius of each sphere corresponds to a length of a cable coupled to the force unit. The position of end-effector 102 may then be used to update cable system model 506, along with the sensor readings, which establishes each cable’s direction in space. The actual 3D applied force delivered at end-effector 102 is then an input into PI controller 502, for a subsequent force command.
[0068] Turning now to FIG. 8, a method 800 is shown for generating 3D forces on end-effector 102 of surgical robot 160 using cable-driven force actuation system 100 of FIG. 1. The steps of method 800 may be performed by a processor of a controller such as system controller 302 (e g., processor 354 of FIG. 3) in accordance with instructions stored in a memory of the system controller (e.g., memory 350 of FIG. 3). It should be further appreciated that method 800 may be performed repeatedly or continuously during a data collection session in which ground truth data is acquired for training Al model 352 to estimate contact forces on end-effector 102.
[0069] At 802, method 800 includes receiving a force command. The force command may be a 3D force command that specifics a setpoint or commanded force to be applied to cnd-cffcctor 102 in three dimensions. The setpoint force may be defined by a magnitude and a 3D direction. In some examples, the force command may be transmitted from a computer program selected by a user of cable-driven force actuation system 100 via UI 303 of cable-driven force actuation system 100.
[0070] At 804, method 800 includes calculating a desired cable tension at each cable based on the force command and a cable system model. The cable system model may be a physical model of cable-driven force actuation system 100 that includes positions of force units within a coordinate system of cable-driven force actuation system 100, and directions of cables coupled to end-effector 102 within the coordinate system. The calculation of the desired cable tension at each cable may be performed using an optimization solver (e.g., optimize solver 504 of FIG. 5) that takes the force command and cable directions from the cable system model as input, and outputs the desired cable tension at each cable. In various examples, the optimization solver may use Sequential Least Squares Quadratic Programming (SLSQP) optimization to determine the desired cable tension at each cable. A minimum cable tension may be maintained at all times for smoothness and stability of force actuation. At a first iteration of method 800, a position of end-effector 102 may be at a center point of the coordinate system of cable-driven force actuation system 100.
[0071] At 806, method 800 includes generating motor torque commands for a plurality of PID controllers of a respective plurality of force unit pairs. The motor torque commands may be generated based on the desired cable tension at each cable calculated at 804. Each motor torque command may specify a current to be applied to DC motor 202 of a respective force unit, where the current generates a torque in a cable reel 204 of the respective force unit. The torque generated on cable reel 204 may be dictated by the current, meaning, as the current increases, the torque generated on cable reel 204 may increase. As the torque is applied to cable reel 204 by the current, cable reel 204 may rotate to increase or decrease a tension in a respective cable. By increasing or decreasing the tension on the respective cable, a force in a corresponding dimension of the respective cable may be generated at end-effector 102.
[0072] At 808. method 800 includes receiving load cell readings from sensor modules of each force unit. The load cell readings may be received from a load cell 206 of each force unit, where the load cell 206 measures a tension in a respective cable. Changes in the tension may be registered by load cell 206, as a shape and position of bending beam 210 of load cell 206 changes in response to the tension. The load cell readings may be used to determine an actual force applied to end-effector 102 by cable-driven force actuation system 100.
[0073] At 810, method 800 includes receiving motor positions of each motor of each force unit from respective sensor modules. The motor positions may be received from an optical encoder 214 of each force unit, where optical encoder 214 measures a rotational position of cable reel 204. The rotational position of each cable reel 204 may indicate a length of a respective cable, meaning, a distance between a respective force unit and end-effector 102. Optical encoder 214 may also measure a rotational movement of cable reel 204, which may be used to determine a direction of movement of end-effector 102. based on whether cable reel 204 is rotated in first rotational direction 230 or second rotational direction 232 of FIG. 2. The direction of movement indicates whether the length of the respective cableis increasing or decreasing, which may increase an accuracy of feedback supplied to a respective PID controller (e.g., PID controller 514 of FIG. 5) for controlling the tension on the respective cable.
[0074] At 812, method 800 includes estimating a position of end-effector 102 based on the motor positions. By calculating the lengths of all of cables based on the motor positions, a 3D position of endeffector 102 within a coordinate system of cable-driven force actuation system 100 may be determined. The estimation of the position of end-effector 102 may be performed by end-effector localization module 508 of FIG. 5, which may receive the motor positions from optical encoder modules 510 of FIG. 5.
[0075] At 814, method 800 includes updating a physical model of the cable system (e.g., cable system model 506 of FIG. 5) with directions of each cable, based on the position of end-effector 102. The directions of each cable may be computed based on the positions of the force units within the coordinate system of cable-driven force actuation system 100, and the position of end-effector 102 estimated at 812. As end-effector 102 moves within a workspace of cable-driven force actuation system 100. the directions of the cables may change. By updating the physical model of the cable system with the directions of each cable as the end-effector moves, a more accurate calculation of desired cable tensions may be performed in subsequent iterations of method 800.
[0076] At 816, method 800 includes calculating an actual force applied to the cnd-cffcctor by the cables, and transmitting the actual force to surgical robot 160 to be stored as ground truth data. The actual force applied to end-effector 102 may be determined based on the load cell readings received at 808 and the directions of each cable extracted from the updated physical model of the cable system. The actual force may be calculated by summing vector components of forces applied by each cable, where a magnitude of a force applied by each cable is determined from a respective load cell reading, and a direction of the force applied by each cable is determined from the directions of each cable. In some cases, the actual force may be a torque applied to the end-effector.
[0077] The actual force applied to end-effector 102 may be stored in the memory of the force actuation system, and / or transmitted to the robotic system for storage therein. In various examples, the actual force applied to end-effector 102 may be stored as ground truth data for training an Al model to estimate forces applied to the end-effector. The ground truth data may be paired with state data of the robotic system at a time of generating the actual force, to generate training pair data for training the Al model to estimate contact forces on the end-effector during subsequent use of the robotic system.
[0078] At 818, method 800 includes receiving a new force command with a new setpoint force (e.g., from the user / computer program), and compensating the new force command based on the actual applied force. The new force command may be the same as the force command received at 802. or may be a different force command. Compensating based on the actual applied force may include calculating a difference between the setpoint force specified by the force command and the actual force applied to end-effector 102 determined at 816. A compensated force command may be generated by adjusting theforce command based on the difference. For example, if the setpoint force is 10 N in a first direction, and the actual force applied to end-effector 102 is 9 N in the first direction, the compensated force command may specify a force of 11 N in the first direction to reduce the difference. The compensation may be performed by a PI controller (e.g., PI controller 502 of FIG. 5), which may take the force command and the actual applied force as input, and may output the compensated force command. In this way, a first, higher-level feedback control is applied to the force command, based on the difference between the setpoint force and the actual applied force.
[0079] At 820. method 800 includes calculating a desired cable tension at each cable based on the compensated new force and the updated cable system model. The calculation of the desired cable tension at each cable may be performed in a similar manner as described above at 804. using the optimization solver. However, at 820, the calculation is based on the compensated force command generated at 818 and the updated cable system model updated at 814, rather than the force command received at 802 and an initial cable system model. By using the compensated force command and the updated cable system model, a more accurate calculation of the desired cable tension at each cable may be performed. After calculating the desired cable tension at each cable at 820, method 800 returns to 806. where motor torque commands are generated for the plurality of PID controllers based on the desired cable tension at each cable calculated at 820. In this way, a second, lower-level feedback control is applied to the cable tension, based on a difference between the desired cable tension and an actual cable tension measured by the load cells. By employing two levels of feedback control, an accuracy of the actual force applied to end-effector 102 may be increased, with respect to an alternative force actuation system that does not employ feedback control or that employs only a single level of feedback control.
[0080] At 822, method 800 includes determining whether a data collection session is terminated. The data collection session may be a session in which ground truth data is acquired for training the Al model to estimate contact forces on the end-effector. The data collection session may be terminated in response to a user input received via UI 303 or keypad controller 404, or in response to a predetermined duration of time elapsing, or in response to a predetermined amount of ground truth data being collected. If at 822 the data collection session is not terminated, method 800 returns to 818, where a new force command is received and compensated based on the actual applied force. If at 822 the data collection session is terminated, method 800 ends.
[0081] Thus, the disclosed force actuation system can be used to train a robotic system that includes robotic arm to estimate contact force and / or torque and compensate for unknown and / or unexpected force or torque impacts experienced while the robotic arm is performing a task. The system typically includes six or more cables that are attached to a target, such as an end-effector of the robotic arm. In some examples, additional cables may be attached to the target to apply torque to the target. By using back-drivable motorized reels at fixed and known locations to control the tension on each cable,the system can control the direction and magnitude of force and / or torque applied to the target. Since die motorized reels are back-drivable, the system can passively follow the movement of the target while applying force and / or torque.
[0082] The system provides control signals to the motorized reels, thereby causing the motorized reels to apply the tensions to the cables. The system uses load cells to sense magnitudes of the tensions applied to the cables and uses rotary encoders to sense the rotational (e.g., angular) positions of the motorized reels. The system may determine a difference between a setpoint (e.g., desired) force and an actual force applied to the target, based on the magnitudes of the tensions applied to the cables and the rotational positions of the motorized reels. For example, the system may determine lengths of portions of the cables that are deployed between the motorized reels and the target based on the rotational positions of the motorized reels, and may determine a position of the target (e.g., at an intersection point of the cables) based on the lengths of the deployed cable portions and known positions of the motorized reels. The system may then determine the actual force applied to the target based on the position of the target and the known tensions applied to the cables by the motorized reels. Finally, the system adjusts the control signals based on the difference between the setpoint force and the actual force to reduce the difference. In this way. an accuracy of the forces applied to the target by the system may be ensured.
[0083] When the forces are generated on the end -effector of the robotic system, such as a surgical robot, the forces may be separately estimated by motor torque sensors positioned at joints of a robotic arm of the robotic system. However, the estimated forces may be different from the actual forces generated by the force actuation system. In such cases, an Al model of the robotic system may be trained to estimate the forces more accurately. During training, the Al model may take as input the forces and torques measured by the robotic system and at specific positions of the end-effector and joint configurations of a robotic arm of the robotic system, and actual forces generated by the force actuation system as ground truth data. A difference between estimated contact forces outputted by the Al model and the ground truth data forces at the specific positions and joint configurations may be minimized using a gradient descent algorithm, for example. Because of the increased accuracy of the ground truth data as a result of the feedback control strategies and force unit sensor configurations described herein, the performance of the trained Al model may be higher than an alternative Al model trained using a different type of force actuation system. Thus, the technical effect of generating the forces on the end-effector using the disclosed feedback control strategies and force unit sensor configurations is that an accuracy of the ground truth data supplied to train the Al model may be increased, resulting in an increased performance of the Al model and the robotic system overall. A second technical effect of generating the forces on the end-effector using the disclosed feedback control strategies and force unit sensor configurations is that a robot’s performance may be evaluated under a wider variety of load conditions with a greater accuracy than may be provided by alternative force actuation systems.
[0084] The disclosure also provides support for a force actuation system comprising: a frame, motorized reels coupled to the frame, cables comprising first ends and second ends, wherein the first ends are coupled to a target and the second ends are coupled respectively to the motorized reels, first sensors configured to sense tensions applied to the cables by the motorized reels, and second sensors configured to sense a position of the target. In a first example of the system, the cables are formed of one or more of nylon, polymers, or metals, and the motorized reels and the cables are configured to apply force to the target in at least three directions. In a second example of the system, optionally including the first example, the at least three directions are orthogonal or substantially orthogonal directions. In a third example of the system, optionally including one or both of the first and second examples, at least six motorized reels are coupled to the frame at positions that are equidistant or approximately equidistant from the target, defining a sphere with the target at a center of the sphere, each motorized reel of the at least six motorized reels pulling the target in a different direction towards a surface of the sphere. In a fourth example of the system, optionally including one or more or each of the first through third examples, a pulley or low-friction guide is deployed between a first end and a second end of a cable to adjust a location of a respective motorized reel on the frame with respect to a direction that tension is applied to the target. In a fifth example of the system, optionally including one or more or each of the first through fourth examples, the system further comprises: a first set of motorized reels configured to generate a thrcc-di m ens i onal (3D) force on the target, and a second set of motorized reels configured to generate a 3D torque on the target. In a sixth example of the system, optionally including one or more or each of the first through fifth examples, the target is an end-effector of a robotic arm of a robotic system comprising sensors, actuators, and a control system. In a seventh example of the system, optionally including one or more or each of the first through sixth examples, the motorized reels each comprise a back-drivable motor. In a eighth example of the sy stem, optionally including one or more or each of the first through seventh examples, the first sensors comprise load cells, each load cell oriented along a direction of a respective cable. In a ninth example of the system, optionally including one or more or each of the first through eighth examples, the second sensors comprise optical encoders, rotary encoders, one or more cameras, or magnetic sensors. In a tenth example of the system, optionally including one or more or each of the first through ninth examples, the system further comprises: a controller, and a memory storing instructions that when executed by the controller, cause the controller to: receive a force command, calculate a cable tension at each cable of the cables based on the force command and a cable system model stored in the memory, generate motor torque commands for a plurality of proportional-integral-derivative (PID) controllers of a respective plurality of motorized reels, receive readings from the first sensors and the second sensors, estimate a position of the end-effector based on the readings of the second sensors, update the cable system model based on the estimated position of the end-effector, calculate an actual force applied to the target by the cables based on the readings from the first sensors and directions of each cable extracted from the updated cable system model, transmit the actual force to the robotic system to be stored in a memoryof the robotic system. In a eleventh example of the system, optionally including one or more or each of die first through tenth examples, the actual force is used as ground truth data to train an artificial intelligence (Al) model to estimate contact forces on the end-effector.
[0085] The disclosure also provides support for a method of operating a cable-driven force actuation system coupled to a target via a plurality of cables, each cable of the plurality of cables coupled to a motorized reel positioned on a frame of the cable-driven force actuation system, the method comprising: providing control signals to the motorized reels, thereby causing the motorized reels to apply tensions to the plurality of cables, sensing magnitudes of the tensions applied to the plurality of cables using load cells coupled to respective motorized reels and oriented along directions of the cables, estimating a position of the target based on rotational positions of the motorized reels sensed by optical encoders coupled to the motorized reels, determining a difference between a setpoint force and an actual force applied to the target based on the magnitudes of the tensions applied to the target by the cables and the estimated position of the target, and adjusting the control signals based on the difference between the setpoint force and the actual force to reduce the difference. In a first example of the method, the setpoint force is defined by a magnitude and a direction. In a second example of the method, optionally including the first example, the method further comprises: receiving the setpoint force via a user interface. In a third example of the method, optionally including one or both of the first and second examples, the target is moving in a direction that is not aligned with the actual force while the control signals are provided to the motorized reels. In a fourth example of the method, optionally including one or more or each of the first through third examples, estimating the position of the target based on the rotational positions of the motorized reels sensed by optical encoders coupled to the motorized reels further comprises: determining lengths of portions of the cables that are deployed betw een the target and the motorized reels, or pulleys or low-friction guides positioned on the cables, based on the rotational positions, and determining the position of the target based on the lengths of the portions and known positions of the motorized reels, pulleys, or low -friction guides. In a fifth example of the method, optionally including one or more or each of the first through fourth examples, providing the control signals to the motorized reels, thereby causing the motorized reels to apply the tensions to the cables further comprises: generating a motor torque command for a motorized reel of the motorized reels to apply a tension to a respective cable, determining a difference between the motor torque command and an actual measured cable tension applied to the respective cable as measured by a respective first sensor, and adjusting the motor torque command based on the difference between the motor torque command and the actual measured cable tension to reduce the difference.
[0086] The disclosure also provides support for a method for training an artificial intelligence (al) model of a robotic system to estimate a contact force applied to an end -effector of a robotic arm of the robotic system, the method comprising: receiving a force command at a controller of a cable-driven force actuation system, the cable-driven force actuation system coupled to the end-effector via a plurality of cables, each cable of the plurality of cables coupled to a motorized reel positioned on aframe of the cable-driven force actuation system, calculating a desired cable tension at each cable of die plurality of cables based on the force command and a cable system model stored in a memory of the controller, generating motor torque commands for a plurality of proportional-integral-derivative (PID) controllers based on the desired cable tensions, each PID controller coupled to a respective motorized reel, measuring a force on each cable of the plurality of cables using a load cell coupled to each respective motorized reel, measuring a rotational position of each respective motorized reel using an optical encoder, estimating a position of the end-effector based on the measured rotational positions of each motorized reel, updating the cable system model based on the estimated position of the endeffector, calculating an actual force applied to the end-effector by the cables, based on the forces measured by tire load cells and directions of each cable extracted from the updated cable system model, creating a training pair comprising state data of the robotic system including a position and motor torque at each joint of the robotic arm as input data, and the actual force as ground truth data, and training the al model on training pair data including the training pair. In a first example of the method, the controller comprises a two-layer feedback-loop structure, where at a first layer of the a two-layer feedback-loop structure, the force command is adjusted based on a difference between the force command and the actual force, and at a second layer of the two-layer feedback-loop structure, the PID controllers adjust the motor torque commands of the respective motorized reels based on respective load cell readings and the rotational positions of the respective motorized reels.
[0087] FIG. 2 shows an example configuration with relative positioning of the various components. If shown directly contacting each other, or directly coupled, then such elements may be referred to as directly contacting or directly coupled, respectively, at least in one example. Similarly, elements shown contiguous or adjacent to one another may be contiguous or adjacent to each other, respectively, at least in one example. As an example, components laying in face-sharing contact with each other may be referred to as in face-sharing contact. As another example, elements positioned apart from each other with only a space there-between and no other components may be referred to as such, in at least one example. As yet another example, elements shown above / below one another, at opposite sides to one another, or to the left / right of one another may be referred to as such, relative to one another. Further, as shown in the figures, a topmost element or point of element may be referred to as a “top” of the component and a bottommost element or point of the element may be referred to as a “bottom” of the component, in at least one example. As used herein, top / bottom, upper / lower, above / below, may be relative to a vertical axis of the figures and used to describe positioning of elements of the figures relative to one another. As such, elements shown above other elements are positioned vertically above the other elements, in one example. As yet another example, shapes of the elements depicted within the figures may be referred to as having those shapes (e.g., such as being circular, straight, planar, curved, rounded, chamfered, angled, or the like). Further, elements shown intersecting one another may be referred to as intersecting elements or intersecting one another, in at least one example. Further still, an element show n within another element or shown outside of another element may be referred as such,iii one example. It will be appreciated that one or more components referred to as being “substantially similar and / or identical” differ from one another according to manufacturing tolerances (e.g., within 1-5% deviation).
[0088] When introducing elements of various embodiments of the present disclosure, the articles “a," “an,” and “the” are intended to mean that there are one or more of the elements. The terms “first,” “second,” and the like, do not denote any order, quantity, or importance, but rather are used to distinguish one element from another. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. As the terms "connected to.” “coupled to,” etc. are used herein, one object (e.g., a material, element, structure, member, etc.) can be connected to or coupled to another object regardless of whether the one object is directly connected or coupled to the other object or whether there are one or more intervening objects between the one object and the other object. In addition, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
[0089] Unless the context clearly requires otherwise, throughout the description and the claims, the words ‘comprise’, ‘comprising’, and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to”. Words using the singular or plural number also include the plural and singular number, respectively. Additionally, the words “herein,” “above,” and “below” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of the application.
[0090] The description of embodiments of the disclosure is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. While the specific embodiments of, and examples for, the disclosure are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize.
[0091] In addition to any previously indicated modification, numerous other variations and alternative arrangements may be devised by those skilled in the art without departing from the spirit and scope of this description, and appended claims are intended to cover such modifications and arrangements. Thus, while the information has been described above with particularity and detail in connection with what is presently deemed to be the most practical and preferred aspects, it will be apparent to those of ordinary skill in the art that numerous modifications, including, but not limited to, form, function, manner of operation and use may be made without departing from the principles and concepts set forth herein. Also, as used herein, the examples and embodiments, in all respects, are meant to be illustrative only and should not be construed to be limiting in any manner.
Claims
CLAIMS1. A force actuation system comprising:a frame;motorized reels coupled to the frame;cables comprising first ends and second ends, wherein the first ends are coupled to a target and the second ends are coupled respectively to the motorized reels;first sensors configured to sense tensions applied to the cables by the motorized reels; and second sensors configured to sense a position of the target.
2. The force actuation system of claim 1, wherein the cables are formed of one or more of nylon, polymers, or metals, and the motorized reels and the cables are configured to apply force to the target in at least three directions.
3. The force actuation system of claim 2. wherein the at least three directions are orthogonal or substantially orthogonal directions.
4. The force actuation system of claim 2. wherein at least six motorized reels are coupled to the frame at positions that are equidistant or approximately equidistant from the target, defining a sphere with the target at a center of the sphere, each motorized reel of the at least six motorized reels pulling the target in a different direction towards a surface of the sphere.
5. The force actuation system of claim 2, wherein a pulley or low-friction guide is deployed between a first end and a second end of a cable to adjust a location of a respective motorized reel on the frame with respect to a direction that tension is applied to the target.
6. The force actuation system of claim 1, further comprising a first set of motorized reels configured to generate a three-dimensional (3D) force on the target, and a second set of motorized reels configured to generate a 3D torque on the target.
7. The force actuation system of claim 1, wherein the target is an end-effector of a robotic arm of a robotic system comprising sensors, actuators, and a control system.
8. The force actuation system of claim 1, wherein the motorized reels each comprise a back-drivable motor.
9. The force actuation system of claim 1, wherein the first sensors comprise load cells, each load cell oriented along a direction of a respective cable.
10. The force actuation system of claim 1, wherein the second sensors comprise optical encoders, rotary encoders, one or more cameras, or magnetic sensors.
11. The force actuation system of claim 7, further comprising a controller, and a memory storing instructions that when executed by the controller, cause the controller to:receive a force command;calculate a cable tension at each cable of the cables based on the force command and a cable system model stored in the memory;generate motor torque commands for a plurality of proportional-integral-derivative (P1D) controllers of a respective plurality of motorized reels;receive readings from the first sensors and the second sensors;estimate a position of the end-effector based on the readings of the second sensors; update the cable system model based on the estimated position of the end-effector; calculate an actual force applied to the target by the cables based on the readings from the first sensors and directions of each cable extracted from the updated cable system model;transmit the actual force to the robotic system to be stored in a memory of the robotic system.
12. The force actuation system of claim 11, wherein the actual force is used as ground truth data to train an artificial intelligence (Al) model to estimate contact forces on the end-effector.
13. A method of operating a cable-driven force actuation system coupled to a target via a plurality of cables, each cable of the plurality of cables coupled to a motorized reel positioned on a frame of the cable-driven force actuation system, the method comprising;providing control signals to the motorized reels, thereby causing the motorized reels to apply tensions to the plurality' of cables;sensing magnitudes of the tensions applied to the plurality of cables using load cells coupled to respective motorized reels and oriented along directions of the cables;estimating a position of the target based on rotational positions of the motorized reels sensed by optical encoders coupled to the motorized reels;determining a difference between a setpoint force and an actual force applied to the target based on the magnitudes of the tensions applied to the target by the cables and the estimated position of the target; andadjusting the control signals based on the difference between the setpoint force and the actual force to reduce the difference.
14. The method of claim 13, wherein the setpoint force is defined by a magnitude and a direction.
15. The method of claim 13, further comprising receiving the setpoint force via a user interface.
16. The method of claim 13, wherein the target is moving in a direction that is not aligned with the actual force while the control signals are provided to the motorized reels.
17. The method of claim 13, wherein estimating the position of the target based on the rotational positions of the motorized reels sensed by optical encoders coupled to the motorized reels further comprises:determining lengths of portions of the cables that are deployed between the target and the motorized reels, or pulleys or low-friction guides positioned on the cables, based on the rotational positions; anddetermining the position of the target based on the lengths of the portions and known positions of the motorized reels, pulleys, or low-friction guides.
18. The method of claim 13, wherein providing the control signals to the motorized reels, thereby causing the motorized reels to apply the tensions to the cables further comprises:generating a motor torque command for a motorized reel of the motorized reels to apply a tension to a respective cable;determining a difference between the motor torque command and an actual measured cable tension applied to the respective cable as measured by a respective first sensor; andadjusting the motor torque command based on the difference between the motor torque command and the actual measured cable tension to reduce the difference.
19. A method for training an artificial intelligence (Al) model of a robotic system to estimate a contact force applied to an end-effector of a robotic arm of the robotic system, the method comprising:receiving a force command at a controller of a cable-driven force actuation system, the cable-driven force actuation system coupled to the end-effector via a plurality of cables, each cable of the plurality of cables coupled to a motorized reel positioned on a frame of the cable-driven force actuation system;calculating a desired cable tension at each cable of the plurality of cables based on the force command and a cable system model stored in a memory of the controller;generating motor torque commands for a plurality of proportional-integral-derivative (PID) controllers based on the desired cable tensions, each PID controller coupled to a respective motorized reel;measuring a force on each cable of the plurality of cables using a load cell coupled to each respective motorized reel;measuring a rotational position of each respective motorized reel using an optical encoder; estimating a position of the end-effector based on the measured rotational positions of each motorized reel;updating the cable system model based on the estimated position of the end-effector; calculating an actual force applied to the end-effector by the cables, based on the forces measured by the load cells and directions of each cable extracted from the updated cable system model;creating a training pair comprising state data of the robotic system including a position and motor torque at each joint of the robotic arm as input data, and the actual force as ground truth data; andtraining the Al model on training pair data including the training pair.
20. The method of claim 19, wherein the controller comprises a two-layer feedback -loop structure, where at a first layer of the a two-layer feedback-loop structure, the force command is adjusted based on a difference between the force command and the actual force, and at a second layer of the two-layer feedback-loop structure, the PID controllers adjust the motor torque commands of the respective motorized reels based on respective load cell readings and the rotational positions of the respective motorized reels.
Citation Information
Patent Citations
System and method for controlling a robotic wrist
US10166082B1
Detecting cable breakage on cable driven tools
US20210282876A1
Soft Robotic Tentacle Gripper
US20220161444A1
Antitwist mechanism for robotic endoscope camera
US20230240513A1
Anomaly detection in instruments in a surgical robotic system
US20240081938A1