System and apparatus for external torque observation and compensation of surgical robotic arms
By introducing joint torque sensors and intelligent controllers into the surgical robot arm system to monitor and compensate external torque, the operational instability of the surgical robot arm under the influence of external forces is solved, achieving higher operating stability and safety.
Patent Information
- Application Number
- CN202411607932.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-03
- Filing Date
- 2019-07-09
- Publication Date
- 2025-02-11
AI Technical Summary
The surgical robot arm is susceptible to external forces during operation, resulting in unstable operation, and it is difficult for the prior art to effectively monitor and compensate these external torques.
A surgical robot arm system was designed, including a joint torque sensor and a controller. By measuring the torque applied to the linkage, the controller calculates the ambient torque value, detects collisions when the torque exceeds a threshold, and adjusts the motor torque command to prevent the output torque from being oversaturated.
Effective monitoring and compensation of external torque of the surgical robot arm is achieved, the operation stability and safety of the robot arm is improved, and mechanical overload caused by collision is prevented.
Smart Images

Figure CN119405426A_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application with application number 201980001213.7 (international application number PCT / US2019 / 040908), application date July 9, 2019, and invention name “System and device for external torque observation and compensation of surgical robot arm”. Background Art
[0002] Surgical robotic systems are currently being used for minimally invasive medical procedures.Some surgical robotic systems may include a surgical console that controls a surgical robotic arm and a surgical instrument having an end effector (eg, forceps or grasping tool) coupled to and actuated by the robotic arm.
[0003] A robotic arm may be subject to various external forces. Thus, there is a need to monitor these forces and compensate for them in order to improve the operation of the robotic arm. Summary of the invention
[0004] According to one embodiment of the present disclosure, a surgical robot arm is disclosed. The surgical robot arm includes: a first link; a second link connected to the first link at a first joint so that at least one of the first link or the second link can move relative to each other; and a first actuator configured to move at least one of the first link or the second link. The surgical robot arm also includes a joint torque sensor, which is disposed in the first joint and is configured to measure the torque applied to at least one of the first link or the second link to obtain a measured torque value. The surgical robot arm further includes a controller, which is configured to: calculate an input motor torque command in response to a movement command, the input motor torque command being configured to activate a first actuator to move at least one of the first link or the second link according to the movement command; determine an estimated joint torque value; determine an environmental torque value based on a comparison of the estimated joint torque value with the measured torque value; and detect a collision based on the environmental torque value being greater than a threshold.
[0005] According to one aspect of the above embodiment, the controller is further configured to adjust the input motor torque command in response to detecting a collision.The controller is further configured to adjust the input motor torque command to prevent oversaturation of the output torque of the first actuator.
[0006] According to another aspect of the above embodiment, the surgical robot arm further includes a motor torque sensor configured to measure an output torque applied by the first actuator. The controller is further configured to determine a friction loss of the first actuator and a friction loss of the first joint. The controller is further configured to determine a gravity effect on at least one of the first link or the second link. The controller is further configured to determine a motor inertia of the first actuator and a joint inertia of at least one of the first link or the second link.
[0007] According to another embodiment of the present disclosure, a surgical robot system is disclosed. The surgical robot system includes: a surgical console, which includes at least one user interface device configured to generate user input; a control tower, which is connected to the surgical console and configured to process the user input to generate a movement command; and a surgical robot arm. The surgical robot arm includes: a first link; a second link, which is connected to the first link at a first joint so that at least one of the first link or the second link can move relative to each other; and a first actuator, which is configured to move at least one of the first link or the second link. The surgical robot arm also includes a joint torque sensor, which is disposed in the first joint and is configured to measure the torque applied to at least one of the first link or the second link to obtain a measured torque value. The surgical robot arm further includes a controller configured to: calculate an input motor torque command in response to a movement command, the input motor torque command being configured to activate a first actuator to move at least one of the first link or the second link according to the movement command; determine an estimated joint torque value; determine an ambient torque value based on a comparison of the estimated joint torque value with a measured torque value; and detect a collision based on the ambient torque value being greater than a threshold.
[0008] According to one aspect of the above embodiment, the controller is further configured to determine an estimated joint torque value based on the torque applied by the first actuator, the friction loss of the first actuator, the friction loss of the first joint, the motor inertia of the first actuator, the joint inertia and the gravity effect. The controller is further configured to adjust the input motor torque command in response to detecting a collision. The controller is further configured to adjust the input motor torque command to prevent the output torque of the first actuator from being oversaturated.
[0009] According to another aspect of the above embodiment, the surgical robot arm further includes: a motor torque sensor configured to measure a torque applied by the first actuator. The controller is further configured to determine a friction loss of the first actuator and a friction loss of the first joint. The controller is further configured to determine a gravity effect on at least one of the first link or the second link. The controller is further configured to determine a motor inertia of the first actuator and a joint inertia of at least one of the first link or the second link. The controller is further configured to determine an estimated joint torque value based on the torque applied by the first actuator, the friction loss of the first actuator, the friction loss of the first joint, the motor inertia of the first actuator, the joint inertia, and the gravity effect.
[0010] According to another embodiment of the present disclosure, the method further includes: generating user input through at least one user interface of the surgical console; processing the user input to generate a movement command at a control tower connected to the surgical console; transmitting the movement command to a controller of a surgical robot arm. The surgical robot arm includes: a first link; a second link connected to the first link at a first joint so that at least one of the first link or the second link can move relative to each other; and a first actuator configured to move at least one of the first link or the second link. The method further includes: measuring the torque applied to at least one of the first link or the second link to obtain a measured torque value at a joint torque sensor disposed in the first joint; calculating an input motor torque command in response to the movement command, the input motor torque command being configured to activate the first actuator according to the movement command to move at least one of the first link or the second link; determining an estimated joint torque value; determining an environmental torque value based on a comparison of the estimated joint torque value with the measured torque value; and detecting a collision based on the environmental torque value being greater than a threshold.
[0011] According to one aspect of the above embodiment, the method further includes: measuring the torque applied by the first actuator at a motor torque sensor connected to the first actuator; determining the friction loss of the first actuator and the friction loss of the first joint; determining the gravity effect on at least one of the first link or the second link; and determining the motor inertia of the first actuator and the joint inertia of at least one of the first link or the second link.
[0012] According to another aspect of the above embodiment, the method further includes determining an estimated joint torque value based on torque applied by the first actuator, friction losses of the first actuator, friction losses of the first joint, motor inertia of the first actuator, joint inertia, and gravity effects. The method further includes adjusting the input motor torque command in response to detecting a collision to prevent oversaturation of the output torque of the first actuator. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Embodiments of the present disclosure are described herein with reference to the accompanying drawings, in which:
[0014] Figure 1 is a schematic illustration of a surgical robotic system including a control tower, a control console, and one or more surgical robotic arms according to the present disclosure;
[0015] Figure 2 According to the present disclosure Figure 1 A perspective view of a surgical robot arm of a surgical robot system;
[0016] Figure 3 According to the present disclosure, Figure 1 A perspective view of a setting arm of a surgical robot arm of a surgical robot system;
[0017] Figure 4 According to the present disclosure Figure 1 A schematic diagram of the computer architecture of a surgical robot system;
[0018] Figure 5 According to the present disclosure Figure 2 A cross-sectional view of an actuator of a surgical robot arm;
[0019] Figure 6 According to the present disclosure Figure 5 A schematic illustration of a torque measured by a torque sensor of an actuator;
[0020] Figure 7 is a method for detecting a collision of a surgical robot arm and controlling the surgical robot arm in response thereto according to the present disclosure; and
[0021] Figure 8 is a flow chart for controlling a surgical robot arm according to one embodiment of the present disclosure. DETAILED DESCRIPTION
[0022] Embodiments of the surgical robotic system of the present disclosure are described in detail with reference to the accompanying drawings, wherein like reference numerals refer to identical or corresponding elements in each of the several views. As used herein, the term "distal" refers to a portion of a surgical robotic system and / or a surgical instrument coupled to the surgical robotic system that is closer to a patient, while the term "proximal" refers to a portion that is farther from a patient.
[0023] As will be described in detail below, the present disclosure relates to a surgical robotic system comprising a surgical console, a control tower, and one or more mobile carts having a surgical robotic arm coupled to a setup arm. The surgical console receives user inputs through one or more interface devices, which are interpreted by the control tower as movement commands for moving the surgical robotic arm. The surgical robotic arm comprises a controller configured to process the movement commands and generate torque commands for activating one or more actuators of the robotic arm, which in turn will move the robotic arm in response to the movement commands. The controller is further configured to measure the total joint torque and determine an estimated joint torque, the estimated joint torque comprising internal and external forces. The estimated torque is calculated using: the torque generated by the actuator, which is measured by the torque sensor of the actuator; the gear and joint friction as calculated using a friction model; the gravity effect on the robotic arm and / or the setup arm as calculated using a gravity model; and the actuator and joint inertia calculated using mass and actuator velocity. The controller is further configured to compare the measured total joint torque to the estimated torque to determine whether the environmental torque causes a difference between the measured torque and the estimated torque, for example due to a collision. Thus, in the absence of a collision or other external forces other than gravity acting on the robot arm, the environmental torque is approximately zero, and thus the estimated torque and the measured torque (which includes gravity, friction, inertia, and environmental torque) are approximately the same. The threshold value can be adjusted to change the sensitivity of calculating and identifying the environmental torque.
[0024] refer to Figure 1 , the surgical robot system 10 includes a control tower 20, which is connected to all components of the surgical robot system 10, including a surgical console 30 and one or more robotic arms 40. Each of the robotic arms 40 includes a surgical instrument 50 detachably coupled thereto. The surgical instrument 50 is configured to be used in minimally invasive surgery. In an embodiment, the surgical instrument 50 can be configured for open surgery. Each of the robotic arms 40 is also coupled to a movable cart 60.
[0025] The surgical console 30 includes a first display device 32 that displays a surgical site provided by a camera (not shown) mounted on the robotic arm 40, and a second display device 34 that displays a user interface for controlling the surgical robotic system 10. The surgical console 30 also includes a plurality of user interface devices, such as a foot pedal 36 and a pair of handle controllers 38a and 38b that are used by a clinician to remotely control the robotic arm 40.
[0026] The control tower 20 acts as an interface between the surgical console 30 and one or more robotic arms 40. Specifically, the control tower 20 is configured to control the robotic arms 40 based on a programmable instruction set and / or input commands from the surgical console 30 so as to move the robotic arms 40 and corresponding surgical instruments 50 in such a way that the robotic arms 40 and surgical instruments 50 execute a desired movement sequence in response to input from the foot pedals 36 and handle controllers 38a and 38b.
[0027] Each of the control tower 20, surgical console 30 and robotic arm 40 includes a respective computer 21, 31, 41. The computers 21, 31, 41 are interconnected to each other using any suitable communication network based on wired or wireless communication protocols. As used herein, the term "network" whether in the plural or singular refers to a data network, including but not limited to the Internet, an intranet, a wide area network or a local area network, and is not limited to the full definition of the scope of communication networks as covered by the present disclosure. Suitable protocols include but are not limited to the Transmission Control Protocol / Internet Protocol (TCP / IP), the Datagram Protocol / Internet Protocol (UDP / IP) and / or the Datagram Congestion Control Protocol (DCCP). Communication may be performed via one or more wireless configurations, such as radio frequency, optical means, Wi-Fi, Bluetooth (an open wireless protocol for exchanging data over short distances, using short-length radio waves, from fixed and mobile devices, creating a personal area network (PAN), (Specification of a set of advanced communication protocols using small, low-power digital radios based on the IEEE 802.15.4-2003 standard for wireless personal area networks (WPANs))) enables wireless communications.
[0028] The computers 21, 31, 41 may include any suitable processor (not shown) operably connected to a memory (not shown), which may include one or more of volatile, non-volatile, magnetic, optical, or electronic media, such as read-only memory (ROM), random access memory (RAM), electrically erasable programmable ROM (EEPROM), non-volatile RAM (NVRAM), or flash memory. The processor may be any suitable processor (e.g., control circuit) suitable for performing the operations, calculations, and / or instruction sets described in the present disclosure, including but not limited to hardware processors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), central processing units (CPUs), microprocessors, and combinations thereof. Those skilled in the art will appreciate that the processor may be replaced by using any logical processor (e.g., control circuit) suitable for performing the algorithms, calculations, and / or instruction sets described herein.
[0029] refer to Figure 2Each of the robotic arms 40 may include a plurality of links 42a, 42b, 42c that are interconnected at joints 44a, 44b, 44c, respectively. The joint 44a is configured to secure the robotic arm 40 to the mobile cart 60 and defines a first longitudinal axis. Figure 3 , the movable cart 60 includes a lift 61 and a setup arm 62, which provides a base for mounting the robotic arm 40. The lift 61 allows the setup arm 62 to move vertically. The setup arm 62 includes a first link 62a, a second link 62b, and a third link 62c, which enable lateral mobility of the robotic arm 40. The links 62a, 62b, 62c are interconnected at joints 63a and 63b, each of which may include an actuator (not shown) for rotating the links 62b and 62b relative to each other and the link 62c. Specifically, the links 62a, 62b, 62c can move in their corresponding lateral planes that are parallel to each other, thereby allowing the robotic arm 40 to extend relative to the patient (e.g., an operating table). In an embodiment, the robotic arm 40 may be coupled to an operating table (not shown). The setup arm 62 includes a control 65 for adjusting the movement of the links 62a, 62b, 62c and the lift 61.
[0030] The third link 62c includes a rotatable base 64 with two degrees of freedom. Specifically, the rotatable base 64 includes a first actuator 64a and a second actuator 64b. The first actuator 64a can rotate around a first fixed arm axis perpendicular to the plane defined by the third link 62c, and the second actuator 64b can rotate around a second fixed arm axis transverse to the first fixed arm axis. The first actuator 64a and the second actuator 64b allow full three-dimensional orientation of the robot arm 40.
[0031] refer to Figure 2 The robotic arm 40 further includes a holder 46 defining a second longitudinal axis and configured to receive an instrument drive unit 52 ( Figure 1 ), the instrument drive unit is configured to be coupled to the actuation mechanism of the surgical instrument 50. The instrument drive unit 52 transfers the actuation force from its actuator to the surgical instrument 50 to actuate the components (e.g., the end effector) of the surgical instrument 50. The holder 46 includes a sliding mechanism 46a, which is configured to move the instrument drive unit 52 along a second longitudinal axis defined by the holder 46. The holder 46 also includes a joint 46b, which allows the holder 46 to rotate relative to the connecting rod 42c.
[0032] The joints 44a and 44b include actuators 48a and 48b that are configured to drive the joints 44a, 44b, 44c relative to each other through a series of belts 45a and 45b or other mechanical linkage mechanisms, such as drive rods, cables or levers, etc. Specifically, the actuator 48a is configured to rotate the robotic arm 40 about the longitudinal axis defined by the link 42a.
[0033] Actuator 48b of joint 44b is coupled to joint 44c by strap 45a, and joint 44c is coupled to joint 46c by strap 45b. Joint 44c may include a transfer case coupling straps 45a and 45b, such that actuator 48b is configured to rotate each of links 42b, 42c and holder 46 relative to each other. More specifically, links 42b, 42c and holder 46 are passively coupled to actuator 48b, which rotates about a pivot point "P" located at the intersection of a first axis defined by link 42a and a second axis defined by holder 46. Thus, actuator 48b controls the angle θ between the first axis and the second axis, thereby allowing surgical instrument 50 to be oriented. Since the links 42a, 42b, 42c and the retainer 46 are interconnected by the straps 45a and 45b, the angle between the links 42a, 42b, 42c and the retainer 46 is also adjusted to achieve the desired angle θ. In an embodiment, some or all of the joints 44a, 44b, 44c may include actuators to avoid the need for mechanical linkages.
[0034] refer to Figure 4 , each of the computers 21, 31, 41 of the surgical robot system 10 may include multiple controllers, which may be implemented in hardware and / or software. The computer 21 of the control tower 20 includes a controller 21a and a safety observer 21b. The controller 21a receives data about the current position and / or orientation of the handle controllers 38a and 38b and the status of the foot pedal 36 and other buttons from the computer 31 of the surgical console 30. The controller 21a processes these input positions to determine the drive commands required for each joint of the robotic arm 40 and / or the instrument drive unit 52, and communicates these commands to the computer 41 of the robotic arm 40. The controller 21a also receives back the actual joint angles and uses this information to determine the force feedback commands transmitted back to the computer 31 of the surgical console 30 and provide tactile feedback through the handle controllers 38a and 38b. The safety observer 21b performs validity checks on the data entering and leaving the controller 21a, and notifies the system fault processor to put the computer 21 and / or the surgical robot system 10 into a safe state if an error is detected in the data transmission.
[0035] The computer 41 includes a plurality of controllers, namely a main cart controller 41a, a setup arm controller 41b, a robotic arm controller 41c, and an instrument drive unit (IDU) controller 41d. The main cart controller 41a receives and processes joint commands from the controller 21a of the computer 21 and communicates them to the setup arm controller 41b, the robotic arm controller 41c, and the IDU controller 41d. The main cart controller 41a also manages instrument exchange and the overall status of the movable cart 60, the robotic arm 40, and the instrument drive unit 52. The main cart controller 41a also transmits the actual joint angle back to the controller 21a.
[0036] The arm controller 41b controls each of the joints 63a and 63b and the rotatable base 64 of the arm 62, and calculates the desired motor movement command (e.g., motor torque) for the pitch axis and controls the brakes. The robot arm controller 41c controls each joint 44a and 44b of the robot arm 40, and calculates the desired motor torque required for gravity compensation, friction compensation, and closed-loop position control. The robot arm controller 41c calculates movement instructions based on the calculated torque. The calculated motor command is then communicated to one or more of the actuators 48a and 48b in the robot arm 40. The actual joint position is then transmitted back to the robot arm controller 41c through the actuators 48a and 48b.
[0037] The IDU controller 41d receives the desired joint angles of the surgical instrument 50, such as wrist and jaw angles, and calculates the desired current for the motors in the instrument drive unit 52. The IDU controller 41d calculates the actual angles based on the motor positions and transmits the actual angles back to the main cart controller 41a.
[0038] The robot arm controller 41c is also configured to estimate the torque applied to the joints 44a and 44b by the rigid link structure of the robot arm 40, i.e., the links 42a, 42b, 42c. Each of the joints 44a and 44b accommodates an actuator 48a and 48b. Due to the large weight of the robot arm 40, high torques may be used to move the robot arm 40. However, the torques may need to be adjusted to prevent damage or injury. This is particularly useful for limiting the torque during collisions of the robot arm 40 with external objects, such as other robot arms, patients, staff, operating room equipment, etc.
[0039] To determine the effect of the external torque on the robot arm 40, the robot arm controller 41c first calculates friction losses, gravity, inertia, and then determines the effect of the external torque. Once the external torque is calculated, the robot arm controller 41c determines whether the environmental force exceeds a predetermined threshold, which indicates a collision with an external object and takes preventive measures, such as terminating movement in the direction in which the collision was detected, slowing down and / or reversing movement (e.g., moving in the opposite direction) a predetermined distance.
[0040] The following is about Figure 5 Describe sensor measurements and calculations based on them, Figure 5 An integrated joint module 100 is shown. The integrated joint module 100 can be used as an actuator 48a, 48b, 64a, 64b, and can be used as an actuator in joints 63a and 63b. The integrated joint module 100 includes a shaft 102, which serves as a support structure for other components of the integrated joint module 100, that is, a motor 104 and a harmonic gearbox 106. The motor 104 can be any motor that can be powered by AC or DC energy, such as a brushed motor, a brushless motor, a stepper motor, etc. The motor 104 is connected to the harmonic gearbox 106, which can be a harmonic drive gear configured to provide a large reduction ratio and approximately zero clearance, high torque capacity and high efficiency. The harmonic gearbox 106 may include a concentric input shaft and an output shaft (not shown), and may include a wave generator 106a, which is placed in a flexible spline 106b with an outer gear surface, which is placed in a circular spline 106c with an inner gear surface. When the motor 104 drives the wave generator 106a, the flexible spline 106b, which may be formed of a resilient material such as stainless steel, also rotates. The flexible spline 106b has fewer teeth than the circular spline 106c, so for each full rotation of the wave generator 106a, the flexible spline 106b rotates less than a full rotation, which reduces the output speed. The harmonic gearbox 106 is in turn coupled to one of the belts 45a or 45b.
[0041] The integrated joint module 100 also includes a sensor kit, which is used to monitor the performance of the integrated joint module 100 to provide feedback and control thereof. Specifically, the integrated joint module 100 includes an encoder 108 connected to the motor 104. The encoder 108 can be any device that provides a sensor signal indicating the number of rotations of the motor 104, such as a mechanical encoder or an optical encoder. The motor 104 can also include other sensors, such as a current sensor configured to measure the current consumption of the motor 104, a motor torque sensor 105 for measuring the motor torque, etc. The number of rotations can be used to determine the speed and / or position control of each joint 44a, 44b, 44c. The parameters measured and / or determined by the encoder 108 can include speed, distance, rpm, position, etc. The integrated joint module 100 further includes a joint torque sensor 110, which can be any force or strain sensor including one or more strain gauges, and the sensor is configured to convert mechanical force and / or strain into a sensor signal indicating the torque applied by the harmonic gearbox 106. Sensor signals from the encoder 108 and the joint torque sensor 110 are transmitted to the computer 41, which then controls the speed, angle and / or position of each joint 44a, 44b, 44c of the robotic arm 40 based on the sensor signals. In embodiments, additional position sensors may also be used to determine the movement and orientation of the robotic arm 40 and setup arm 62. Suitable sensors include, but are not limited to, potentiometers, Hall effect sensors, accelerometers, and gyroscopes coupled to the movable component and configured to detect travel distance.
[0042] refer to Figure 6 , the dynamic model of the robot arm 40 shows the internal dynamics caused by the motor torque applied by the motor 104, which produces drive train inertia and friction due to the change in the rotational position of the motor 104. The motor torque also produces joint torques, for example at joints 44b and 44c, and changes the link positions of the links 42b, 42c and the holder 46. The dynamic model also accounts for the effects of external torques on the robot arm 40 due to external forces.
[0043] Continue to refer Figure 6, a schematic diagram of the motor 104, the harmonic gearbox 106, and the joint torque sensor 110 is provided. As described above, the joint torque sensor 110 measures the torque applied to the joint, and the joint torque sensor 110 is disposed in the joint, such as the joints 44a, 44b, 44c. The torque measured by the joint torque sensor 110 includes an internal torque parameter, i.e., the torque generated by the motor 104, which takes into account the gear friction of the harmonic gearbox 106 and the motor inertia of the motor 104. In addition, the measured torque also includes an external torque parameter, i.e., the gravity effect (e.g., weight) on the links 42a, 42b, 42c, the joint friction and joint inertia of each of the joints 44a, 44b, 44c, and the environmental torque generated, for example, due to collision with an object. In order to determine the effect of the external torque on the robot arm 40, the robot arm controller 41c first calculates the friction loss, gravity, inertia, and then determines the effect of the external torque.
[0044] Each of the robot arm controller 41 c and the setup arm controller 41 b contains a friction observer module that calculates the friction torque at the corresponding joints and actuators using the joint torque sensors 110 , the angular velocity from the encoders 108 , and the motor torque from the motor torque sensors 105 .
[0045] In an embodiment, the friction observer module may use the torque measured from the joint torque sensor 110, the commanded motor torque, and the estimated motor inertia, which is calculated based on the measured joint encoder, such as Figure 6 In other embodiments, the friction observer module may use Coulomb and viscous friction models that use estimated velocities calculated from the joint encoders.
[0046] The friction observer module can calculate the actual friction based on Coulomb friction, viscous friction, and the deadband of the joint torque sensor 110, which corresponds to the torque sensor offset. Coulomb friction is calculated based on the direction and magnitude of the friction force between two bodies in dry physical contact. Viscous friction is calculated based on the direction and magnitude of the friction force between two bodies in fluid physical contact. The deadband corresponds to a portion of the input of the joint torque sensor 110 that produces a zero output.
[0047] The friction estimator module can be implemented in software executable by the robot arm controller 41c. The friction estimator module is based on the external torque applied to the joint 44b and measured by the joint torque sensor 110, which is measured at a non-zero angular velocity (e.g., when the joint 44b moves the joints 44a, 44b, 44c). Therefore, the friction estimator module also receives the angular velocity from the encoder 108. In addition, the friction estimator module also uses the motor torque from the motor torque sensor 105.
[0048] The friction estimator module may incorporate the following equations (I) and (II):
[0049] (I)
[0050] (II)
[0051] In formulas (I) and (II), “s” is the Laplace operator, “L” is the filter time constant, is the estimated friction, “T fm " is the actual friction. The Coulomb friction, viscous friction and torque sensor dead zone in joint 44b are given by formula (III):
[0052] (III)
[0053] In formula (III), “f c ” is the Coulomb friction coefficient, “f v ” is the coefficient of viscous friction, and “f d ” is the dead zone friction (corresponding to the torque sensor offset). The friction observer is defined by equations (IV) and (V):
[0054] (IV)
[0055] (V)
[0056] The robotic arm controller 41c is also configured to calculate a torque to compensate for the friction of the joint 44b determined by the friction estimator module of the robotic arm controller 41c. Specifically, the robotic arm controller 41c calculates a torque of the motor 104 that overcomes the friction encountered by the joint 44b. After determining the friction, the robotic arm controller 41c calculates a friction compensation torque or movement command for the motor 104 of the joint 44b that will be sufficient to overcome the friction.
[0057] The setup arm controller 41b is also configured to compensate for friction acting on the actuators 64a, 64b and joints 63a, 63b of the setup arm 62. The setup arm controller 41b calculates the torque of the motor 104 of the joints 63a, 63b and actuators 64a, 64b that will overcome the friction encountered by the actuators 64a, 64b and joints 63a, 63b. After determining the friction, the setup arm controller 41b calculates a friction compensation torque or movement command for the actuators 64a, 64b and joints 63a, 63b of the setup arm 62 that will be sufficient to overcome the friction.
[0058] The method for friction compensation according to the present disclosure can be applied to the robot arm 40 and / or the setting arm 62, and can be executed by the robot arm controller 41c or the setting arm controller 41b. With respect to the robot arm 40, a movement command is received from the control tower 20, for example, in response to a movement command from the surgical console 30. With respect to the setting arm 62, a movement command is received from the control member 65. The controller 21a of the control tower 20 processes these input positions to determine the desired drive command for each joint of the robot arm 40 and / or the setting arm 62 and transmits the processed movement command to the computer 41. The computer 41, specifically the robot arm controller 41c controls each joint 44a and 44b of the robot arm 40, and calculates the motor torque required for the actuators 48a, 48b. Similarly, the setting arm controller 41b controls each link 62a, 62b, 62c of the setting arm 62 and calculates the actuators of the joints 63a and 63b and the motor torques of the actuators 64a, 64b. The motor torque includes enough torque to match the movement of the connecting rod 42a, 42b, 42c, 62a, 62b, 62c with the movement command. In addition, the motor torque is also calculated to compensate for the effect of friction on the joint 44a, 44b, 44c, 63a, 63b and the actuator 64a, 64b. Therefore, the motor torque command includes two components: a first component for imparting movement corresponding to the movement command, and a second component corresponding to the movement of each motor 104 for overcoming the friction of the joint 44a, 44b, 44c, 63a, 63b and the actuator 64a, 64b. The second component is based on the calculated friction, as described above. Specifically, the friction estimator module of the computer 41 uses the joint torque sensor 110, the angular velocity from the encoder 108, and the motor torque from the motor torque sensor 105 to calculate the friction torque at the joint 44b. In an embodiment, the command motor torque can be used instead of the measured motor torque.
[0059] Each of the robot arm controller 41c and the setup arm controller 41b contains a gravity compensator module that calculates the effects of gravity on the robot arm 40 and the setup arm 62, respectively. The robot arm controller 41c is also configured to calculate torques to compensate for the gravity acting on the robot arm 40, i.e., the weight of the links 42a, 42b, 42c and other components of the robot arm 40. The robot arm controller 41c calculates the torques of the motors 104 that statically balance the robot arm 40 against the gravity load by setting the velocities and accelerations of the joints 44a, 44b, 44c to zero. This provides a static modeling of the robot arm 40 that does not account for all movements of the robot arm 40 except those due to gravity. After determining the movements of the robot arm 40 caused solely by gravity, the robot arm controller 41c calculates gravity-compensated torques or movement commands for the motors 104 of the actuators 48a and 48b that will be sufficient to counteract the droop of the robot arm 40.
[0060] The setup arm controller 41b is also configured to compensate for the gravity acting on the setup arm 62, i.e., the weight of the robot arm 40 applied to the rotatable base 64. The actuator 64a controls the pitch of the robot arm 40, i.e., the angle of the robot arm 40 relative to the setup arm 62, and by extension the floor, because the actuator 64a must act against gravity. The setup arm controller 41b calculates the torque of the actuator 64a, which statically balances the rotatable base 64 and the robot arm 40 with the gravity load by setting the velocity and acceleration of the actuator 64a to zero. This provides a static modeling of the setup arm 62 and the robot arm 40 that does not take into account all movements of the robot arm 40 except those caused by gravity. After determining the movement of the setup arm 62 and the robot arm 40 caused by gravity alone, the setup arm controller 41b calculates a gravity compensation torque or movement command for the actuator 64a that will be sufficient to counteract the sinking of the robot arm 40 and compensate for the pitch.
[0061] The method for gravity compensation according to the present disclosure can be applied to the robot arm 40 and / or the setup arm 62, and can be executed by the robot arm controller 41c or the setup arm controller 41b. With respect to the robot arm 40, a movement command is received from the control tower 20, for example, in response to a movement command from the surgical console 30. With respect to the setup arm 62, a movement command is received from the control member 65. The controller 21a of the control tower 20 processes these input positions to determine the desired drive command for each joint of the robot arm 40 and / or the setup arm 62 and transmits the processed movement command to the computer 41. The computer 41, and more specifically the robot arm controller 41c controls each joint 44a and 44b of the robot arm 40, and calculates the motor torque required for the actuators 48a, 48b. Similarly, the setup arm controller 41b controls each link 62a, 62b, 62c of the setup arm 62 and calculates the motor torque of the actuators of the joints 63a and 63b. The motor torque includes sufficient torque to match the movement of the links 42a, 42b, 42c, 62a, 62b, 62c to the movement command. In addition, the motor torque is also calculated to compensate for the effects of gravity on the robot arm 40, and more specifically, to compensate for each of the links 42a, 42b, 42c, 62a, 62b, 62c and joints 44a, 44b, 44c, 63a, 63b. Therefore, the motor torque command includes two components: a first component for imparting movement corresponding to the movement command, and a second component corresponding to movement for compensating for gravity of each component of the robot arm 40 and / or the setting arm 62.
[0062] The robot arm controller 41c and the setup arm controller 41b calculate the torque of the actuators, which statically balance the robot arm 40 and the setup arm 62 with the gravity load by setting the velocity and acceleration of the joints 44a, 44b, 44c and the actuator 64a to zero. The motor torque command includes a first component and a second component, the first component including the motor torque for imparting movement to move the robot arm 40 and / or the setup arm 62 to a desired position, and the second component is configured to compensate for the effects of gravity. The second component is calculated by setting the value of the first component, i.e., the velocity and acceleration to zero. In addition, the second component is also based on the mass, stiffness, size and angle between the links 42a, 42b, 42c, 62a, 62b, 62c.
[0063] The compensation process also includes calculating the motor torques of actuators that are not directly affected by the movement command, i.e., those actuators that do not need to be actuated to move the joints 44a, 44b, 44c, 63a, 63b, since the movement command of the mobile robot arm 40 indirectly affects the joints 63a and 63b of the setting arm 62, which remains stationary, and vice versa.
[0064] The external torque compensation process can be performed by the robot arm controller 41c and may involve measuring the output torque of the joint through the joint torque sensor 110, observing the torque applied by the robot arm 40 to the environment, and adjusting the movement of the robot arm 40 in response to changes in the external torque exceeding a predetermined threshold, wherein the external torque indicates an external force, such as a collision with an object.
[0065] Continue to refer Figure 6 , the joint torque sensor 110 measures the torque of the joints (e.g., joints 44a, 44b, 44c, etc.). The measured torque represents internal forces 120 and external forces 122. The internal forces 120 include the motor torque generated by the motor 104, which is calculated based on the angular velocity of the motor 104, minus mechanical losses, such as gear friction of the harmonic gearbox 106 and motor inertia of the motor 104. The external forces 122 include gravity loads, joint friction, and environmental torques. As used herein, the term "environmental torque" refers to any external force acting on the robotic arm 40 other than gravity, friction, or inertia, such as those due to collisions with objects in the operating room.
[0066] As described above, each of the components of the internal force 120 can be measured using the joint torque sensor 110, the encoder 108, and the motor torque sensor 105, or otherwise calculated by the robot arm controller 41c or the setting arm controller 41b using the friction estimator module and the gravity compensator module. Specifically, the motor torque and the motor inertia are measured by the motor torque sensor 105, the gear friction and the joint friction are calculated by the friction observer, and the gravity load is calculated by the gravity compensator module. Therefore, after calculating and / or measuring each of the above values, each of the values is added to determine the estimated joint torque value. The estimated joint torque value is then compared with the measured torque value by the robot arm controller 41c or the setting arm controller 41b. As described above, the measured torque value measured by the joint torque sensor 110 measures all components of the estimated joint torque value and any force applied by the environmental torque. Then, the robot arm controller 41c or the setting arm controller 41b calculates the environmental torque by subtracting the calculated joint torque from the measured joint torque.
[0067] The environmental torque can be calculated using an inverse dynamic calculation representing the robot arm 40 and the setting arm 62. The inverse dynamic calculation is based on the instantaneous position, velocity and acceleration of the robot joints (e.g., joints 44a, 44b, 44c, etc.). The instantaneous motor torque and the force driving the joint are calculated by the robot arm controller 41c or the setting arm controller 41b. The robot arm controller 41c or the setting arm controller 41b also stores various link parameters, including the mass and inertia for each of the links 42a, 42b, 42c, 62a, 62b, 62c, and the kinematic relationship between the links. Once the inverse dynamic function is calculated, the gravity compensation portion is separated by replacing the velocity and acceleration with zero.
[0068] The inverse dynamic problem of the robot arm 40 and the setup arm 62 can be solved using a Lagrangian mechanism. The effective / independent joint variables are used when deriving the kinematic relationship between the link frames. In other words, the constrained / dependent link positions / orientations are expressed with respect to the independent joint variables using constraint relationships. This allows the constraints to be incorporated early in the frame definition and eliminates the need to include constraint equations in the Lagrangian formulation.
[0069] For each link 42a, 42b, 42c, the mass, center of mass, and inertia tensor may be defined relative to the link's local reference frame. Each link 42a, 42b, 42c is defined as a rigid body having the following properties: the link's local coordinate system, the link's center of mass described in the local coordinate system, and the link's inertia defined around the link's center of mass in the local reference frame.
[0070] The kinematic relationship between the local reference frames of the links 42a, 42b, 42c is constructed according to the above frame definitions. An inertial reference frame is selected that coincides with the rotatable base 64 when the pitch angle is 0. The total kinetic energy (K) of the robot arm 40 is derived, which is generated by the kinetic energy generated due to the translational and rotational motion of the links 42a, 42b, 42c in the reference frame. Similarly, the total potential energy (P) of the system is also calculated relative to a common point in the world coordinate frame. After calculating these terms, the Lagrangian T is defined in the following formula (VI):
[0071] (VI) T=KP
[0072] In the case where Lagrangian is used for the robot arm 40, the general equation of motion (Lagrangian equation) is defined by the following formula (VII):
[0073] (VII)
[0074] Once the inverse dynamics function is calculated, the result of the function can be compared with the measured torque forces at the links 42a, 42b, 42c and joints 44a, 44b, 44c to estimate the external torque / force applied by the robotic arm 40 to the environment.
[0075] refer to Figure 7 The present disclosure also provides a method for responding to a collision after it is detected. First, a collision is detected based on calculating an external torque force as described above. The calculated external torque is then compared to an external torque threshold. In an embodiment, the threshold may be about 10 Newtons (Nm) to about 20 Nm, and in another embodiment, the threshold may be about 15 Nm. If the calculated external torque exceeds the threshold, the robot arm controller 41c adjusts or shuts down the movement of the surgical robot arm 40.
[0076] The method may be embodied in software and may be executed by any of the computers 21, 31, 41. Similar to the friction and gravity compensation method disclosed above, with respect to the robotic arm 40, movement commands are received from the control tower 20, for example, in response to movement commands from the surgical console 30. With respect to the setup arm 62, movement commands are received from the control member 65. The controller 21a of the control tower 20 processes these input positions to determine the desired drive commands for each joint of the robotic arm 40 and / or the setup arm 62 and transmits the processed movement commands to the computer 41. The computer 41, and more specifically the robotic arm controller 41c controls each joint 44a and 44b of the robotic arm 40, and calculates the input motor torque of the actuators 48a, 48b. Similarly, the setup arm controller 41b controls each link 62a, 62b, 62c of the setup arm 62 and calculates the input motor torque of the actuators of the joints 63a and 63b. The input motor torque contains sufficient torque to match the movement of the links 42a, 42b, 42c, 62a, 62b, 62c to the movement command.
[0077] When the surgical robot arm 40 moves in response to a movement command, the method calculates the external torque encountered by the surgical robot arm 40 during its movement. The method also includes calculating the estimated joint torque as described above. Specifically, each of the components of the internal force 120 can be measured using the joint torque sensor 110, the encoder 108 and the motor torque or command motor torque from the motor torque sensor 105, or otherwise calculated by the robot arm controller 41c or the setting arm controller 41b using the friction estimator module and the gravity compensator module. Specifically, the motor inertia is calculated using the encoder value and the rotor inertia, the gear friction and the joint friction are calculated by the friction observer, and the gravity load is calculated by the gravity compensator module. The friction observer module calculates the motor and gearbox friction, while the joint friction is a separate model. Therefore, after calculating and / or measuring each of the above values, each of the values is added to determine the estimated joint torque value. The estimated joint torque value is then compared with the measured torque value by the robot arm controller 41c. Then, the robot arm controller 41c calculates the environmental torque by subtracting the calculated joint torque from the measured joint torque.
[0078] The environmental torque is then compared to a threshold to determine whether a collision exists. The threshold is used to filter out false readings so that only environmental torques due to collisions trigger a positive response. After detecting a collision, the robot arm controller 41c adjusts the command motor torque in the direction of the detected collision. In an embodiment, position control, i.e., execution of a movement command, may be paused or terminated in response to detecting a collision. In addition, the robot arm controller 41c also prevents the torque of the motor 104 from being oversaturated. After determining that the external torque is less than a threshold indicating a collision, the robot arm controller 41c stops the surgical robot arm 40 by setting the input motor torque to zero, while continuing to output torque to compensate for gravity and friction in the collision state. This prevents the surgical robot arm 40 from shaking in the direction of movement before the collision after the obstacle is removed.
[0079] Figure 8A flow chart of a kinematic controller for controlling the robotic arm 40 is shown. First, the pose of a handle controller (e.g., handle controller 38a) controlling the robotic arm 40 is converted to a desired pose of the robotic arm 40 by a hand-eye conversion function performed by the master cart controller 41a. The hand-eye function, as well as other functions described herein, are embodied in software that can be executed by the master cart controller 41a or any other suitable controller described herein. The pose of one of the handle controllers 38a can be embodied as a coordinate position and roll-pitch-yaw ("RPY") orientation relative to a coordinate reference frame that is fixed to the surgical console 30. The desired pose of the instrument 50 is relative to the fixed frame on the robotic arm 40. The pose of the handle controller 38a is then scaled by a zoom function performed by the master cart controller 41a. In an embodiment, the coordinate position is reduced and the orientation is enlarged by the zoom function. In addition, the master cart controller 41a also performs a clutch function that disengages the handle controller 38a from the robotic arm 40. Specifically, if certain movement limits or other thresholds are exceeded, the master cart controller 41a stops transmitting movement commands from the handle controller 38a to the robotic arm 40 and essentially acts as a virtual clutch mechanism, eg, limiting mechanical inputs from affecting mechanical outputs.
[0080] The desired pose of the robotic arm 40 is based on the pose of the handle controller 38a and then delivered by the inverse kinematics function executed by the main cart controller 41a. The inverse kinematics function calculates the angles of the joints 44a, 44b, 44c of the robotic arm 40 that implement the scaled and adjusted pose input by the handle controller 38a. The calculated angles are then delivered to the robotic arm controller 41c, which includes a joint axis controller. The joint axis controller includes a proportional-derivative (PD) controller, a friction estimator module, a gravity compensator module, and a double-sided saturation block, which is configured to limit the command torque of the motor 104. The joint axis controller also includes an environmental torque estimator module, which determines the forces and / or torques that the robotic arm 40 and the surgical instrument 50 are applying to the environment, such as the patient, other robotic arms 40, operating tables, bedside operators, and other objects or people.
[0081] In one embodiment, the environmental torque estimator module is configured to calculate the estimated environmental torque based on the sensor signal τ JTS from the joint torque sensor 110 as described above. In another embodiment, the environmental torque estimator may be implemented based on the position error alone or in combination with the sensor signal τ JTS from the joint torque sensor 110. In another embodiment, the environmental torque estimator may use the actual position and velocity of the robot arm 40 and the calculated models of gravity and friction from the friction estimator module and the gravity compensator module, respectively.
[0082] The estimated environmental torque is supplied to a collision detection module executed by the robot arm controller 41c. The collision detection module determines whether the robot arm 40 collides with an external object or person based on the estimated environmental torque, and enters a collision state if the estimated environmental torque value exceeds a first torque threshold, which in an embodiment may be + / -15Nm. The collision state is effective until the estimated environmental torque drops below a second torque threshold and the position error of the robot arm 40 is minimized, which in an embodiment is within + / -1 degree of the desired position angle of each of the joints, or the sum of the errors of each angle is + / -5 degrees. The second threshold is less than the first torque threshold, and in an embodiment may be + / -5Nm. Verification of the reduction in environmental torque and the error in position angle ensures that the robot arm 40 does not rapidly accelerate to a desired position away from the current position based on the position of the handle controller 38a.
[0083] In another embodiment, a collision state may be entered if the ambient torque is greater than a first threshold, the desired (i.e., commanded) speed is greater than a speed threshold (which may be approximately 1 degree per second), and the direction of the ambient torque is opposite to the direction of the desired speed. The last condition describes a situation where the arm is moving to a point of collision and is not being pushed by an operator at the bedside. Using these three parameter thresholds keeps the robotic arm 40 rigid when it is stationary and holding its position, and minimizes collision forces when the robotic arm 40 is actively driven during teleoperation.
[0084] During the crash state, the joint axis controller continues to apply the full amount of torque to compensate for gravity and friction of the joint as described above. In response to friction and gravity compensation, the robot arm 40 continues to maintain its position, similar to when the robot arm 40 is in manual mode. A portion of the PD controller generates damping, such as negative feedback of the actual velocity, which portion is not limited by the one-sided saturation block.
[0085] When the collision state is valid, the robot arm controller 41c communicates with the computers 21, 31, 41 of the surgical robot system 10 to limit the force applied. In an embodiment, this can be accomplished by limiting the command torque component generated by the PD controller, as shown in command line 301. The limit command is generated by the collision detection module and can be divided into two unilateral saturations so that restrictions can be applied in the direction of the detected collision. This allows unrestricted movement away from the collision, allowing the robot arm 40 to maintain full performance to move away from the collision. When in a collision state, the unilateral saturation can be set to zero, meaning that no torque will be applied due to position error, or can be set to a small torque level, allowing the arm to slightly compress the environment.
[0086] Additional control schemes for responding to collisions also include commands issued by the collision detection module, which are represented as command lines 302, 303, and 304. With respect to command line 302, the collision detection module may change (e.g., reduce) the P and / or D gains of the joint axis controller. This will produce less torque due to position errors in the collision state. With respect to command line 303, the collision detection module may change the desired movement of the robot arm 40 by "clutching out" the handle controller 38a in the collision direction, such as using a clutch function to disengage the handle controller 38a from the robot arm 40. This will cause the robot arm 40 to stop moving in the collision direction, but allow full force to move away from the collision. In command line 304, the collision detection module may change the scale factor (e.g., increase) to slow down the movement of the robot arm 40 in the collision direction. This method may also use a dynamic scale factor that increases as the environmental torque increases. This will slow down the robot arm 40 when the robot arm 40 applies greater forces and torques to the environment.
[0087] In an embodiment, if the robot arm 40 and / or a particular joint is pushed too far from the set position point (i.e., the desired or commanded position) of the joint, then the set position point may be changed, which reflects the tracking position error to minimize the "bounce" of the robot arm due to the movement command from the robot arm controller 41c. This configuration addresses the situation where the operator tilts and therefore deflects the robot arm 40, and the robot arm 40 does not need to move suddenly back to the desired position after the operator removes the force that displaced the robot arm. The updated set point described above may be equal to the current position or a small distance away from the current position, so that the tracking error has the same command torque but minimizes the rebound distance. In another embodiment, if the tracking error is too large, the handle controller 38a is "disengaged" in the direction of the error, such as using a clutch function to disengage the handle controller 38a from the robot arm 40.
[0088] It should be understood that various modifications may be made to the embodiments disclosed herein. In embodiments, the sensor may be placed on any suitable portion of the robot arm. Therefore, the above description should not be interpreted as limiting, but merely as an illustration of various embodiments. Those skilled in the art will envision other modifications within the scope and spirit of the appended claims.
Claims
1. A surgical robot arm, comprising: First connecting rod; a second link coupled to the first link at a first joint such that at least one of the first link or the second link is movable relative to each other; a first actuator configured to move at least one of the first link or the second link; a joint torque sensor disposed within the first joint and configured to measure a torque applied to at least one of the first link or the second link to obtain a measured torque value; as well as A controller configured to: calculating an input motor torque command in response to a movement command, the input motor torque command configured to activate the first actuator to move at least one of the first link or the second link according to the movement command; determining an estimated joint torque value; determining an ambient torque value based on a difference between the estimated joint torque value and the measured torque value; detecting a collision based on the ambient torque value being greater than a first threshold; as well as In response to the environmental torque value being greater than the first threshold, a collision state is entered, wherein when in the collision state, the controller is further configured to: adjusting the input motor torque command to prevent oversaturation of the output torque of the first actuator; and The crash state is determined to be terminated based on the ambient torque value being less than a second threshold and the position error being less than a position error threshold.
2. The surgical robot arm of claim 1, wherein the second threshold is smaller than the first threshold.
3. A surgical robot arm, comprising: at least one movable link coupled to the joint; an actuator configured to move the at least one movable link relative to the joint; a joint torque sensor configured to measure a torque applied to the at least one movable link to obtain a measured torque value; as well as A controller configured to: calculating an input motor torque command in response to a movement command, the input motor torque command configured to activate the actuator to move the at least one movable link according to the movement command; determining an estimated joint torque value; determining an ambient torque value based on a difference between the estimated joint torque value and the measured torque value; detecting a collision based on the ambient torque value being greater than a first threshold; as well as In response to the environmental torque value being greater than the first threshold, a collision state is entered, wherein when in the collision state, the controller is further configured to: adjusting the input motor torque command to prevent oversaturation of the output torque of the actuator; and The crash state is determined to be terminated based on the ambient torque value being less than a second threshold and the position error being less than a position error threshold.
4. The surgical robot arm of claim 3, wherein the second threshold is smaller than the first threshold.
5. A method for detecting a collision of a surgical robot arm, the method comprising: transmitting a movement command to the surgical robotic arm including an actuator configured to move at least one movable link relative to a joint; measuring a torque applied to the at least one movable link to obtain a measured torque value; calculating an input motor torque command in response to a movement command, the input motor torque command configured to activate the actuator to move the at least one movable link according to the movement command; determining an estimated joint torque value; determining an ambient torque value based on a difference between the estimated joint torque value and the measured torque value; detecting a collision based on the ambient torque value being greater than a first threshold; causing the surgical robot arm to enter a collision state in response to the ambient torque value being greater than the first threshold, wherein when in the collision state, the input motor torque command is adjusted to prevent oversaturation of the output torque of the actuator; as well as When in the collision state, it is determined that the collision state is terminated based on the environmental torque value being less than a second threshold and the position error being less than a position error threshold. The method according to claim 5 , wherein the second threshold is smaller than the first threshold.
Citation Information
Cited By
Control of a surgical robot arm
US20260026899A1