Software remote motion center for controlling motion-
By receiving commanded motion in the control unit and maintaining the position of the remote motion center, and determining the alternative motion of multiple joints, the problem of difficult to effectively control the software remote motion center in the prior art is solved, and the effect of enhancing system flexibility and range of motion while meeting motion limitations is achieved.
Patent Information
- Application Number
- CN202380073357.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-10-17
- Filing Date
- 2023-10-16
- Publication Date
- 2025-05-30
AI Technical Summary
The prior art is difficult to effectively control a repositionable system with software remote movement centers, especially maintaining the position of the remote movement center while satisfying motion limitations.
By configuring the control unit to receive commanded motion and maintain the position of the remote motion center, alternative motion of multiple joints is determined to avoid violation of the limitations of the repositionable structure and to move the remote motion center to different positions.
The effective movement of the remote motion center is achieved without violating the repositionable structural limitations, enhancing the flexibility and range of motion of the system.
Smart Images

Figure CN120076901A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims priority to U.S. Provisional Application No. 63 / 416,877, filed Oct. 17, 2022, entitled “Controlling Software Remote Centers of Motion for Computer - Assisted Systems Subject to Motion Limits”, which is incorporated herein by reference. Technical Field
[0003] The present disclosure generally relates to computer - assisted systems, and more particularly, to controlling software remote centers of motion for computer - assisted systems subject to motion limits. Background Art
[0004] Computer - assisted systems are typically used to perform or assist procedures in a workspace. In an example computer - assisted system with remote operation, an operator at a user input system manipulates a master device (e.g., an input device configured to receive commands for a slave device) such that a slave device (e.g., a remotely - operable manipulation assembly and including a re - positionable structure with or without a supported instrument) generates motion. In one example, the motion of the master device relative to the operator's reference frame is used to determine corresponding motion commands for the slave device relative to the field of view of an imaging device.
[0005] In some examples, a computer - assisted system includes a re - positionable structure having a remote center of motion (RCM) that is enforced by the hardware design of the re - positionable structure such that during the operation of the re - positionable structure, a point on an intubation, catheter, or access guide device experiences little motion. That is, this “hardware” RCM experiences little motion during the performance of tasks by the re - positionable structure because the joints that drive the re - positionable structure to perform tasks are physically designed to avoid moving this hardware RCM.
[0006] In some cases, it may be desirable to drive a re - positionable structure having a hardware RCM to pivot about an RCM set at a location that is not collocated with the hardware RCM. In such cases, a human operator can set a virtual (or software) RCM that is different from the hardware RCM. In some cases, it may be desirable to drive a re - positionable structure that includes a linkage and joint arrangement but does not have a hardware RCM. In such cases, a human operator can set a software RCM to define an orientation that experiences little motion during a procedure.
[0007] Therefore, improved techniques are needed for controlling a relocatable system having a software remote center of motion. SUMMARY OF THE INVENTION
[0008] According to some embodiments, a computer - aided system and a method implemented thereby include: a relocatable structure configured to support an instrument, the relocatable structure including a plurality of links coupled by a plurality of joints; and a control unit communicatively coupled to the relocatable structure. The control unit is configured to: receive a command to move the relocatable structure in a commanded motion when a remote center of motion (RCM) is set at a first position. The control unit is further configured to: determine whether driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position violates a limitation of the relocatable structure. The control unit is further configured to: in response to determining that driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position will violate the limitation: determine an alternative motion of the plurality of joints based on the commanded motion and the first position, wherein driving the plurality of joints in the alternative motion will not violate the limitation and will move the RCM to a second position different from the first position; and drive the plurality of joints in the alternative motion.
[0009] According to some embodiments, a method of driving a plurality of joints of a relocatable structure includes: receiving a command to move an instrument in a commanded motion when a remote center of motion (RCM) is set at a first position. The method further includes: determining whether driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position violates a limitation of the relocatable structure. The method further includes: in response to determining that driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position will violate the limitation: determining an alternative motion of the plurality of joints based on the commanded motion and the first position, wherein driving the plurality of joints in the alternative motion will not violate the limitation and will move the RCM to a second position different from the first position; and driving the plurality of joints in the alternative motion.
[0010] According to some embodiments, one or more non - transitory machine - readable media include a plurality of machine - readable instructions that, when executed by one or more processors, are adapted to cause the one or more processors to perform any of the methods described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 is a schematic diagram of a computer - aided system according to one or more embodiments.
[0012] Figure 2Schematic diagram of a computer-aided system according to one or more embodiments.
[0013] Figure 3A Flowchart of method steps for moving a software RCM having plastic kinematic constraints and associated with a relocatable structure according to one or more embodiments.
[0014] Figure 3B Flowchart of method steps for moving a software RCM having elastic kinematic constraints and associated with a relocatable structure according to one or more embodiments.
[0015] Figures 4A - 4D Illustrates the movement of a software RCM having plastic kinematic constraints according to one or more embodiments.
[0016] Figures 5A - 5D Illustrates the movement of a software RCM having elastic kinematic constraints according to one or more embodiments.
[0017] In these figures, elements with the same reference numerals have the same or similar functions. Detailed Description
[0018] In this specification, specific details of some embodiments consistent with the present disclosure are set forth. The numerous specific details are provided to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that some embodiments may be practiced without some or all of these specific details. The specific embodiments disclosed herein are intended to be illustrative and not restrictive. Those skilled in the art will recognize that other elements, although not specifically described herein, are within the scope and spirit of the present disclosure. Additionally, to avoid unnecessary repetition, unless specifically stated otherwise or one or more features would render an embodiment inoperable, one or more features shown and described in connection with one embodiment may be incorporated into other embodiments.
[0019] In addition, the terms in this specification are not intended to limit the present invention. For example, spatial relative terms such as "below", "beneath", "lower", "above", "upper", "proximal", "distal", etc. may be used to describe the relationship of one element or feature to another element or feature as shown in the figures. These spatial relative terms are intended to cover different positions (i.e., orientations) and orientations (i.e., rotational placements) of the element or its operation outside the positions and orientations shown in the figures. For example, if something in the figure is flipped, an element described as "below" or "beneath" other elements or features will become "above" or "over" other elements or features. Thus, the exemplary term "below" can cover both upper and lower positions and orientations. The device can have other orientations (rotated 90 degrees or in other orientations), and the spatial relative descriptors used herein will be interpreted accordingly. Similarly, descriptions of movement along various axes and around various axes include various specific element positions and orientations. In addition, unless the context otherwise indicates, the singular forms "a", "an", and "the" are intended to include the plural forms. Also, the terms "comprises", "comprising", "including", etc. specify the presence of the stated features, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups. Components described as being coupled may be directly electrically or mechanically coupled, or they may be indirectly coupled through one or more intermediate components.
[0020] Elements (wherever practicable) described in detail with reference to one embodiment, implementation, or module may be included in other embodiments, implementations, or modules in which they are not specifically shown or described. For example, if an element is described in detail with reference to one embodiment and not described with reference to a second embodiment, the element may still be required to be included in the second embodiment. Thus, to avoid unnecessary repetition in the following description, unless otherwise specifically stated, one or more elements shown and described in connection with one embodiment, implementation, or application may be incorporated into other embodiments, implementations, or aspects, unless one or more of the elements would render the embodiment or implementation inoperable, or unless two or more of the elements provide conflicting functions.
[0021] In some instances, well-known methods, procedures, components, and circuits are not described in detail so as not to unnecessarily obscure aspects of the embodiments.
[0022] The present disclosure describes various devices, components, and parts of a computer - assisted system in terms of their states in three - dimensional space. As used herein, the term "position" refers to the orientation of a component or a part of a component (e.g., three translational degrees of freedom in three - dimensional space, such as along Cartesian x, y, and z coordinates). As used herein, the term "orientation" refers to the rotational placement of a component or a part of a component (e.g., having three rotational degrees of freedom in three - dimensional space, such as about roll, pitch, and yaw axes, represented in terms of angular axes, rotation matrices, quaternion notations, etc.). As used herein, for a device having a kinematic series, such as a re - positionable structure having multiple links coupled by one or more joints, the term "proximal" refers to the direction toward the base of the kinematic series, and "distal" refers to the direction along the kinematic series away from the base.
[0023] As used herein, the term "pose" refers to the multi - degree - of - freedom (DOF) spatial position and orientation of a coordinate system of interest attached to a rigid body. Generally, a pose includes pose variables for each DOF in the pose. For example, a full 6 - DOF pose of a rigid body in three - dimensional space will include six pose variables corresponding to 3 position DOFs (e.g., x, y, and z) and 3 orientation DOFs (e.g., roll, pitch, and yaw). A pose of only 3 - DOF position will include only pose variables for the 3 position degrees of freedom. Similarly, a pose of only 3 - DOF orientation will include only pose variables for the 3 rotational DOFs. Additionally, the velocity of a pose reflects the change of the pose over time (e.g., the first - order derivative of the pose). For a full 6 - DOF pose of a rigid body in three - dimensional space, the velocity will include 3 translational velocities and 3 rotational velocities. A pose having other numbers of degrees of freedom will have corresponding numbers of translational velocities and / or rotational velocities.
[0024] Aspects of the present disclosure are described with reference to a computer - assisted system, which may include remotely - operated, externally - manipulated, autonomous, semi - autonomous, etc. devices. Additionally, aspects of the present disclosure are described in terms of embodiments using a remotely - operated surgical system (e.g., the da Vinci Surgical System commercially available from Intuitive Surgical Operations, Inc. of Sunnyvale, California). However, those skilled in the art will understand that the inventive concepts disclosed herein can be embodied and implemented in various ways, including remotely - operated and non - remotely - operated, medical and non - medical examples and embodiments. In the da Vinci Surgical System) embodiment. However, those skilled in the art will understand that the inventive concepts disclosed herein can be embodied and implemented in various ways, including remotely - operated and non - remotely - operated, medical and non - medical examples and embodiments. The embodiments on the surgical system are merely exemplary and should not be regarded as limiting the scope of the invention disclosed herein. For example, the techniques described with reference to surgical instruments and surgical methods can be used in other scenarios. Thus, the instruments, systems, and methods described herein can be used for humans, animals, parts of the human or animal anatomy, industrial systems, general-purpose robots, or teleoperation systems. In further examples, the instruments, systems, and methods described herein can be used for non-medical purposes, including industrial use, general-purpose robot use, sensing or manipulating non-tissue workpieces, cosmetic improvement, imaging of the human or animal anatomy, collecting data from the human or animal anatomy, setting up or disassembling systems, training medical or non-medical personnel, etc. Other example applications include procedures performed on tissue removed from the human or animal anatomy (whether or not returned to the human or animal anatomy) and operations performed on human or animal cadavers. In addition, these techniques can also be used for medical treatment or diagnostic procedures, including or excluding surgical aspects.
[0025] Figure 1 is a schematic diagram of a computer-aided system 100 according to one or more embodiments. As Figure 1 shown, the computer-aided system 100 includes a manipulation assembly 110 having one or more relocatable structures 120. In Figure 1 the example, the relocatable structure is shown as a manipulator arm, which includes a plurality of links coupled by one or more joints. Each of the one or more relocatable structures 120 can support one or more instruments 130. In some examples, the manipulation assembly 110 can include a computer-aided surgery assembly. Examples of medical devices include surgical instruments for interacting with tissue, imaging devices, sensing devices, etc. In some examples, the instrument 130 can include an end effector capable of (but not limited to) performing operations such as grasping, retracting, cauterizing, ablating, suturing, cutting, stapling, fusing, sealing, etc. and combinations thereof.
[0026] In a teleoperation example, the manipulation assembly 110 can also be communicatively coupled to a user input system (not shown) via a wired or wireless connection. The user input system can include one or more input controls (also referred to herein as input devices) for operating the manipulation assembly 110, one or more relocatable structures 120, and / or the instrument 130. In some examples, the one or more input controls can include a kinematic series of links and one or more joints, one or more actuators for driving portions of the (one or more) input controls, a robotic manipulator, a lever, a pedal, a switch, a button, a knob, a trigger, etc.
[0027] In an example supporting external manipulation, the input control can be located at a relocatable structure. As a specific example, the input control can include a joint sensor that detects joint deflections, and the computer-aided system is configured to process certain joint deflections as commands to move the joints.
[0028] Figure 1 The manipulation component 110 is coupled to the control unit 140 via an interface. The interface can be wired and / or wireless and can include one or more cables, optical fibers, connectors, and / or buses, and can also include one or more networks having one or more network switching and / or routing devices. The operation of the control unit 140 is controlled by the processor system 150. The processor system 150 can include one or more central processing units, multi-core processors, microprocessors, microcontrollers, digital signal processors, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), graphics processing units (GPUs), tensor processing units (TPUs), etc. in the control unit 140. The control unit 140 can be implemented as an independent subsystem and / or a board added to a computing device, or as a virtual machine. In some embodiments, the control unit 140 can be included as part of the user input system and / or the manipulation component 110, and / or operate separately from and in coordination with the user input system and / or the manipulation component 110.
[0029] As an example, the manipulation component 110, the user input system, and / or the control unit 140 can correspond to the patient-side cart, the surgeon's console, and the processing unit and associated software of the da Vinci Surgical System commercially available from Intuitive Surgical Operations, Inc. of Sunnyvale, California. In some embodiments, a manipulation component having other configurations (such as fewer or more relocatable structures, different user input systems or input controls, different relocatable structure hardware, etc.) can constitute the computer-aided system 100.
[0030] The memory 160 can be used to store software executed by the control unit 140 and / or one or more data structures used during the operation of the control unit 140. The memory 160 can include one or more types of machine-readable media. Some common forms of machine-readable media can include floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, any other optical media, punched cards, paper tapes, any other physical media with hole patterns, RAMs, PROMs, EPROMs, FLASH-EPROMs, any other memory chips or cartridges, and / or any other media suitable for reading by a processor or computer.
[0031] As Figure 1As shown in the example of , the memory 160 includes a control module 170, which can be used to support autonomous, semi-autonomous, and / or remote operation control of the manipulation assembly 110. The control module 170 may include one or more application programming interfaces (APIs) for receiving position, motion, force, torque, and / or other sensor information from the manipulation assembly 110, the relocatable structure 120, and / or the instrument 130, for sharing position, motion, force, torque, and / or obstacle avoidance information with other control units regarding other devices, and / or for planning and / or assisting in planning the motion of the manipulation assembly 110 (e.g., the motion of the relocatable structure 120) and / or the motion of the instrument 130. In some examples, the control module 170 also supports autonomous, semi-autonomous, and / or remote operation control of the manipulation assembly 110 and / or the instrument 130 during the execution of various tasks. Although the control module 170 is depicted as a software application, the control module 170 may optionally be implemented using hardware (e.g., circuitry), software, or a combination of hardware and software.
[0032] In an example of remote operation of the computer-aided system 100, the input controls include a master device (also referred to as a "master" device in the industry), and the manipulation assembly 110 or the relocatable structure 120 (whether or not supporting the instrument 130) includes a slave device (also referred to as a "slave" device in the industry). The operator can use one or more input controls to generate a user input signal to command the motion of the manipulation assembly 110 in a master-slave configuration, e.g., by commanding the motion of one or more relocatable structures 120 and / or the instrument 130. The master-slave configuration is a remote operation configuration that is sometimes also referred to as a master-slave configuration in the industry.
[0033] In some medical embodiments, the computer-aided system 100 may be found in a clinic, diagnostic facility, operating room, interventional suite, or other medical environment. Although the computer-aided system 100 is shown as including one manipulation assembly 110 having two relocatable structures 120, each relocatable structure supporting a corresponding instrument 130, those of ordinary skill in the art will understand that the computer-aided system 100 may include any number of manipulation assemblies, each manipulation assembly may include one or more relocatable structures, and each relocatable structure may support one or more instruments, and all of these elements may be similar or different in design from the elements specifically depicted in these figures. In some examples, each manipulation assembly may include fewer or more relocatable structures than specifically depicted in these figures, and / or support fewer or more instruments.
[0034] In some embodiments, each of one or more relocatable structures 120 includes a plurality of joints, where the plurality of joints includes multi-joint-group drivable joints. The drivable joints can be driven by an actuator to move the joint and, in turn, move a component physically coupled to the joint. A joint group includes one or more of the plurality of joints. In some embodiments, the joint(s) of the first joint group drivable joints are mechanically constrained to produce movement that pivots an RCM-constrained link (e.g., a distal link) of the plurality of links of the relocatable assembly about a default RCM, or movement that translates the RCM-constrained link along a linear axis that intersects the default RCM. (That is, the default RCM is a hardware RCM based on the physical configuration of the computer-aided system 100, or, alternatively, for a system without a hardware RCM, a software-based initial RCM.) Thus, when the joint(s) of the first joint group are driven to move the relocatable structure, the joint(s) of the first joint group do not translate this default RCM such that the first joint group drivable joints are physically designed not to move the default RCM.
[0035] The joint(s) of the second joint group drivable joints of the relocatable structure are mechanically capable of translating the default RCM. In certain operating instances, the first joint group drivable joints and the second joint group drivable joints are driven at different times such that when the first joint group drivable joints are driven, the second joint group drivable joints are not driven. In one example where the second joint group joints are used for setup and the first joint group joints are used for performing a task, the system can drive the second joint group prior to performing the task to move and position the default RCM in space. In this example, the second joint group is not driven again during the procedure to move the default RCM, while the first joint group is driven to cause the relocatable structure to perform the procedure. In this example, the computer-aided system uses the default RCM and the position of the default RCM remains stationary during the procedure.
[0036] In some application scenarios, the default RCM can be placed at the entrance of the workspace, such as an opening leading to a chamber or device, a surgical incision, a natural orifice (such as the mouth or throat), etc. The (one or more) instruments or the end effector of the (one or more) relocatable structures located distal to the default RCM translate and rotate by driving the first joint group to produce a pivoting motion about the default RCM.
[0037] In some cases, it is desirable to move the end effector of (one or more) instruments or (one or more) repositionable structures in a manner that is difficult to achieve with a stationary RCM. For example, the design of some repositionable structures and / or instruments may limit and / or constrain the ability of the end effector to reach and interact with a particular region, such as a region that is too close or too far from the default RCM. In these embodiments, this limitation and / or constraint can be overcome by repositioning the default RCM, such as moving the default RCM further away from the entry (possibly to reach a region closer to the entry), or inserting it further into the entry or workspace (possibly to reach a region further from the entry). However, in these examples, positioning the default RCM at a location remote from the entry to the workspace may result in an undesirable movement of the repositionable structure (or an instrument supported by the repositionable structure) relative to the entry. For example, in some cases, a lateral movement of the repositionable structure (or instrument) relative to the entry can result in an undesirable collision with or force being applied to the material near the entry. In a medical example, a lateral movement of an instrument within a surgical incision can cause further tissue damage. Additionally, in some examples, the ability to dynamically reposition the RCM can provide advantages such as a greater end effector reach, a greater overall range of motion, reduced movement relative to positions other than the default RCM position (e.g., to avoid collisions).
[0038] In addition, certain joints are mechanically constrained to maintain the RCM and can be driven by the computer-assisted system 100 to move (one or more) repositionable structures while maintaining the RCM. As described herein, the computer-assisted system 100 can also drive other joints to move the RCM. The ability to pivot the repositionable structure about an RCM other than a fixed hardware or stationary RCM helps to increase the range of motion, improve the flexibility and agility of the repositionable structure, save time, reduce the power or energy required to move the repositionable structure, and so on. This configurable RCM is referred to herein as a software RCM.
[0039] In one example system, to achieve little movement of the software RCM as the system moves, one or more joints of the repositionable structure are moved as needed to maintain the position of the software RCM. However, if the repositionable structure is limited or constrained in the movement required to maintain the position of the software RCM, then the system may not be able to maintain the software RCM at the desired position.
[0040] More specifically, the limitation can be one or more of a variety of constraints. In some examples, the constraint can be an attitude constraint of the relocatable structure, a velocity constraint of the relocatable structure, an acceleration constraint of the relocatable structure, a force constraint of the relocatable structure, a power constraint of the relocatable structure, etc. In some examples, the constraint can be based on the physical design of a part of the computer-aided system other than the relocatable structure. In some examples, the constraint can be based on the attitude of this part of the computer-aided system. In some examples, the constraint can be a motion limitation based on the likelihood of a collision occurring between the relocatable structure and an object, or between an instrument and an object, due to an expected commanded motion. In some examples, the constraint can be a boundary around an object in the workspace of the relocatable structure. In some examples, the constraint can be a boundary around a keep out region in the workspace. In some examples, the constraint can be a motion limitation based on the position or rate of the relocatable structure.
[0041] In some application scenarios, the (one or more) relocatable structures can be configured to be coupled or not coupled to an entry port, and it is also possible to select a port other than an intubation tube, such as a catheter, etc. In some examples, the manipulation assembly can also include an arrangement of links and joints that do not provide a hardware RCM. In these examples, the entry port, catheter, or other parts of the (one or more) relocatable structures can be placed at the entrance of the workspace, such as an opening leading to a chamber or device, a surgical incision, a natural orifice (such as the mouth or throat), etc. The human operator can set a default RCM to define an orientation that experiences little motion during the procedure. By driving one or more joints of the (one or more) relocatable structures, the (one or more) relocatable structures proximal to the entrance of the workspace are translated and rotated to produce a pivotal motion around the software RCM, which can then be used to change the position and / or orientation of the (one or more) relocatable structures (such as one or more parts of various instruments located distal to the software RCM).
[0042] Figure 2 is a schematic diagram of a computer-aided system 200 according to one or more embodiments. In Figure 2 the example, the computer-aided system 200 includes a relocatable structure shown as a manipulation assembly 210 and a user input system 250. In a remote operation scenario, the operator 298 can use the user input system 250 to generate user input signals to operate the manipulation assembly 210 (such as in a master-slave configuration). In Figure 1 the master-slave configuration of the example, a component of the user input system 250 (such as an input control device) is the master, while a part of the manipulation assembly 210 (such as a manipulator arm or other relocatable structure) is the slave.
[0043] The manipulation assembly 210 can be used to introduce a set of instruments into a working site through a single port 230 inserted into a hole (e.g., using an introducer as shown). In a medical scenario, the working site can be on or within a patient's body, and the hole can be a minimally invasive incision or a natural body orifice. The port 230 can be free-floating, fixed in place by a fixation device, or fixed by a linkage 222. The linkage 222 can be coupled to additional joints and links 214, 220 of the manipulation assembly 210, and these additional joints and links 214, 220 can be mounted on a base 212. The linkage 222 can also include a manipulator support link 224. A set of manipulators 226 can be coupled to the manipulator support link 224. The relocatable structure that can be moved to follow commands from the user input system 250 can include any one or more of the following: the linkage 222, the additional joints and links 214, 220, the base 212, the manipulator support link 224, and any additional links or joints coupled to the above joints or links. Each manipulator 226 can include a carriage (or other instrument-coupling link) configured to be coupled to an instrument, and each manipulator 226 can include one or more joints and / or links that can be driven to move the carriage. For example, the manipulator 226 can include a prismatic joint that, when driven, linearly moves the carriage and any instrument coupled to the carriage. This linear motion can be along an insertion axis (parallel thereto) extending through the port 230.
[0044] The additional joints and additional links 214, 220 can be used to position the port 230 at a hole or other location. Figure 2 A prismatic joint for vertical adjustment (as shown by arrow “A”) and a set of rotational joints for horizontal adjustment (as shown by arrows “B” and “C”) are shown, and these joints can be used to translate the position of the default RCM. The linkage 222 is used to pivot the port 230 (and the instrument located within the port at this time) to rotate at yaw, pitch, and roll angles shown by arrows D, E, and F respectively about the default RCM located near the port 230, without translating the default RCM.
[0045] Actuation of the degrees of freedom provided by one or more joints of one or more instruments may be provided by an actuator disposed within the one or more instruments or by an actuator whose driving force (e.g., linear force or rotational torque) is transmitted to the instrument. Examples of actuators include rotary motors, linear motors, solenoids, etc. The actuator may drive the manipulation assembly 210 and / or a transmission element in the instrument to control the degrees of freedom of the one or more instruments. For example, the actuator may drive a rotary disk of a manipulator, which is coupled to a drive element (e.g., rotary disk, linear slider) of the one or more instruments, wherein driving the drive element of the instrument drives a transmission element in the instrument, and these transmission elements are coupled to move one or more joints of the instrument or to actuate some other function of the instrument, such as the degrees of freedom of an end effector. Thus, the degrees of freedom of the one or more instruments may be controlled by an actuator that drives the one or more instruments according to a control signal. The control signal may be determined to cause the instrument to move or perform other actuation, as automatically determined by the system, as indicated by the movement of an input control device or other manipulation command, or any other control signal. Additionally, appropriately positioned sensors, such as encoders, potentiometers, etc., may be provided to effect measurement of joint position indication or other data that may be used to deduce joint position, such as joint velocity. The actuator and sensor may be disposed within the one or more manipulators 226 or transmit signals to or receive signals from the manipulator 226. Techniques for manipulating multiple instruments in a computer-assisted system are more fully described in U.S. Provisional Patent Application No. PCT / US2021 / 047374, filed Aug. 24, 2021, titled "METHOD AND SYSTEM FOR COORDINATED MULTIPLE-TOOL MOVEMENT USING A DRIVABLE ASSEMBLY", the contents of which are incorporated herein by reference.
[0046] Although Figure 2 a particular configuration of the manipulation assembly 210 is shown, those skilled in the art will understand that embodiments of the present disclosure may be used with a manipulation assembly or other repositionable structure of any design. In some examples, the manipulation assembly may have any number and any type of degrees of freedom, may be configured to be coupled or not coupled to an access port, and ports other than cannulas, such as catheters, etc., may be optionally used. In some examples, the manipulation assembly 210 may also include an arrangement of links and joints that do not provide a default RCM.
[0047] In Figure 2 the example shown, the user input system 250 includes one or more input devices 252 configured to be operated by an operator 298. In Figure 2In the example shown, one or more input devices 252 are contacted and manipulated by the hands of the operator 298, with each hand corresponding to one input device. Examples of such manual input devices include any type of device that can be manually operated by a human user, such as a joystick, a trackball, a button array, and / or other types of haptic devices that typically have multiple degrees of freedom. Position, force, and / or haptic feedback devices (not shown) can be used to transmit position, force, and / or haptic sensations from the instrument back to the hands of the operator 298 through the input devices 252.
[0048] The input devices 252 are supported by the user input system 250 and are shown in the figure as being mechanically grounded, but may also be mechanically ungrounded in other embodiments. In some embodiments, an ergonomic support 256 may be provided; for example, Figure 2 an ergonomic support 256 is shown, which includes a forearm rest on which the operator 298 can place his or her forearm when manipulating the input device 252. In some examples, the operator 298 can perform tasks at the working site near the manipulation assembly 210 by controlling the manipulation assembly 210 using the input device 252 during a procedure.
[0049] The user input system 250 includes a display unit 254. The display unit 254 can display images for the operator 298 to view. The display unit 254 can provide a view of the working site with which the manipulation assembly 210 interacts. This view can include a stereoscopic image or a three-dimensional image to provide a depth perception of the working site and the instrument(s) of the manipulation assembly 210 at the working site. The display unit 254 can move in multiple degrees of freedom to accommodate the viewing position of the operator 298 and / or provide control functions. When the display unit (such as the display unit 254) is also used to provide control functions (such as commanding the manipulation assembly 210), the display unit also includes an input device (such as another input device 252).
[0050] When using the user input system 250, the operator 298 can sit in a chair or on other supports, position his or her eye position to view the images displayed by the display unit 254, grasp and manipulate the input device 252, and place his or her forearm on the ergonomic support 256 as needed. In some embodiments, the operator 298 can stand at a workstation or assume other postures, and the display unit 254 and the input device 252 can be different in construction, adjustable in position (height, depth, etc.), etc.
[0051] As described herein, the manipulation assembly 210 may optionally include first joint group actuatable joints that are mechanically constrained to produce motion that does not translate the default RCM, such that the first joint group actuatable joints are not designed to move the default RCM. The manipulation assembly 210 also includes second joint group actuatable joints that are mechanically capable of moving the default RCM. In some examples, the operator 298 may want to select an RCM relative to the default RCM, such as a location proximal 262 or distal 264. To reduce the motion of portions of the repositionable structure (and / or the instruments supported by the repositionable structure) at the entry site and / or to address the need to select a different RCM for other reasons, the disclosed embodiments allow for a virtual (or software) RCM different from the default RCM to be provided at or near the entry site. The disclosed embodiments appropriately utilize the motion of the second joint group in combination with the motion of the first joint group to maintain the software RCM at the selected RCM location. In some cases, a graphical user interface may assist the operator 298 of the computer-assisted system in setting (registering for the system) the location of the software RCM. Based on whether the software RCM has been set, whether there are conditions that inhibit the ability of the repositionable structure to maintain the software RCM, and / or whether conditions affecting the software RCM have changed, the graphical user interface may also assist the operator 298 in determining the status of the software RCM. In some examples, the operator 298 may want to drive a repositionable structure that includes a linkage and joint arrangement but does not provide a default RCM. In these examples, the operator 298 may set the software RCM to define an orientation that experiences little motion during the procedure. Techniques for setting and using a remote RCM in a computer-assisted system are more fully described in U.S. Provisional Patent Application No. 63 / 324,587, filed Mar. 28, 2022, titled "SETTING AND USING SOFTWARE REMOTE CENTERS OF MOTION FOR COMPUTER-ASSISTED SYSTEMS", which is incorporated herein by reference.
[0052] In some examples, the repositionable structure includes a base manipulator and a plurality of instrument manipulators coupled to the base manipulator. In some examples, the repositionable structure includes a single instrument manipulator and the manipulators are not serially coupled. In some examples, the repositionable structure includes a single instrument manipulator coupled to a single base manipulator. In some examples, the computer-assisted system may include a movable base and one or more manipulators mounted on the movable base, the movable base being mounted on a cart or mounted to an operating table.
[0053] Figure 3Ais a flow chart of method steps for moving a software RCM with plastic kinematic constraints associated with a relocatable structure according to one or more embodiments. Although the method steps are described in connection with the system in Figures 1 - 2 and Figures 4A - 5D , those of ordinary skill in the art will understand that any system configured to perform these method steps in any order is within the scope of the present disclosure. One or more of the processes 302A - 318A of method 300A can be implemented at least in part in the form of executable code stored on a non - transitory, tangible, machine - readable medium. When this executable code is executed by one or more processors (e.g., the processor system 150 in the control unit 140), it can cause the one or more processors to perform one or more of the processes 302A - 318A. In some embodiments, method 300A can be performed by a module (e.g., the control module 170). In some embodiments, method 300A can be used by a relocatable structure of a computer - aided system to employ a software RCM. In some embodiments, the relocatable structure has a default RCM as a hardware RCM (an RCM enforced by the mechanical design of the relocatable structure, and the computer - aided system can set the RCM at or different from the hardware RCM). In some embodiments, the relocatable structure does not have a default RCM as a hardware RCM. Before and / or during the program, the operator 298 is able to select a software RCM, e.g., by setting the position of the software RCM and using the software RCM as a location in the workspace around which one or more instruments supported by the relocatable structure will pivot during remote operation, semi - autonomous, or autonomous movement.
[0054] As described by reference to Figures 4A - 4D the various aspects of method 300A are shown. Figures 4A - 4D shows the movement of a software RCM with plastic kinematic constraints according to one or more embodiments. However, it can be understood that Figures 4A - 4D the examples are not restrictive, and for different input devices, different relocatable structures, different slave instruments, different degrees of freedom, different programs, etc., Figures 4A - 4D the other numerical values, shapes, behaviors, etc. depicted in
[0055] In process 302A, a control module, such as control module 170, receives a command to move a relocatable structure in a commanded motion. The command can be a direct command for the commanded motion of the relocatable structure. Alternatively, the command can move a component (e.g., an instrument) supported by the relocatable structure (e.g., move the end effector of the instrument), from which the corresponding commanded motion of the supporting relocatable structure can be derived. Control module 170 receives the command when the software RCM is set in a first position. Control module 170 can receive the command by any technically feasible technique, such as by detecting an input from one or more input devices (in response to being manipulated by operator 298), receiving an input (e.g., a command) from a semi-autonomous or autonomous software application executed by one or more processors (e.g., processor system 150 in control unit 140, control module 170 itself, etc.). Control module 170 can operate in a remote operation mode, a semi-autonomous mode, or an autonomous mode. Control module 170 can operate in a single mode during a procedure, or switch between multiple modes during a procedure. In the remote operation mode, control module 170 receives commands from operator 298 through one or more input devices. For example, the input devices can be contacted and manipulated by the hands of operator 298, such as operating one input device with each hand. According to a particular implementation, the pose and the current speed of the input device can include one or more pose variables corresponding to the position and / or orientation DOFs of the input device. In the semi-autonomous mode, control module 170 receives commands both from a software application executed by one or more processors and from operator 298 through one or more input devices. In some examples, control module 170 can receive commands from operator 298 during certain steps of a procedure, and receive commands from the software application during certain other steps of the procedure. Additionally or alternatively, control module 170 can receive commands from the software application, where operator 298 can override the software application and generate commands through one or more input devices. During autonomous operation, control module 170 generally receives commands from the software application throughout the procedure.
[0056] In process 306A, control module 170 determines whether a joint can move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM.
[0057] In some examples, while maintaining the position of the software RCM, the relocatable structure is constrained and / or limited in movement as needed to perform commanded motion. For example, due to physical limitations of the relocatable structure, one or more joints of the relocatable structure are constrained and / or limited by a range of motion (ROM) limit. In other examples, the movement of the relocatable structure is constrained to avoid collisions with nearby objects such as components, devices, and / or people, to avoid restricted areas, etc. In these examples, the relocatable structure may not be able to maintain the software RCM at the desired position without violating the constraints and / or limitations of the relocatable structure. If the joints can move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM, then method 300A proceeds to process 308A.
[0058] In process 308A, control module 170 determines the joint motion of the relocatable structure that performs the commanded motion while satisfying the constraints and / or limitations of the relocatable structure and maintaining the position of the software RCM. In some examples, control module 170 determines the joint motion based on one or more kinematic models of the relocatable structure. To achieve little movement of the software RCM as the computer-aided system moves, one or more joints of the relocatable structure move as needed to maintain the position of the software RCM.
[0059] In some examples, the allowed movement of the software RCM can be plastic, whereby control module 170 is configured such that even if the command allows the relocatable structure to move the software RCM towards the default position of the RCM without violating the relevant constraints and / or limitations, or even if the relocatable structure can achieve the commanded motion while moving the RCM towards the default RCM position, the software RCM remains at the new position of the RCM. In this regard, Figures 4A - 4D shows the movement of a software RCM with "plastic" kinematic constraints according to one or more embodiments. In this example, when the commanded motion cannot move one or more instruments to a desired pose while maintaining the software RCM due to the constraints and / or limitations of the relocatable structure, control module 170 moves the software RCM from the current position. As Figure 4A shown, a portion of relocatable structure 402 includes a default RCM at position 404 and a software RCM at position 414. In this example, the software RCM at position 414 is placed at the entrance of workspace 410, and one or more instruments 406 are mounted in this portion of relocatable structure 402. As Figure 4B shown, control module 170 has moved and rotated this portion of relocatable structure 402 such that one or more instruments 426 are near the entrance of workspace 430. Although fromFigures 4A to 4B In the change, it is defaulted that the RCM 424 has moved from position 404 to 424, but the current position 434 of the software RCM is the same as Figure 4A the software RCM position 414 shown in. Continuing with this example, method 300A then enters process 318A, in which the joints of the relocatable structure can be driven according to the determined joint motion. The commanded motion can be received from the operator relative to its position shown in Figure 4A , can be generated autonomously or semi-autonomously by the system, etc.
[0060] Returning to the discussion of process 306A, if the joints cannot move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM, then method 300A enters process 310A. In process 310A, control module 170 determines an alternative motion of the joints of the relocatable structure that moves the RCM and satisfies the constraints and / or limitations of the relocatable structure. The alternative motion of the joints can move the software RCM from the current position to a new position.
[0061] As Figure 4C shown, control module 170 has moved and further rotated this part of the relocatable structure 442, thereby moving the default RCM 444 and the software RCM 454. Control module 170 also generates an output directed to operator 298 to notify the operator of the movement of software RCM 454. This output can include visual indications on the user interface, audio output, tactile output, etc. Alternatively, in some examples, control module 170 can move software RCM 454 relative to the entrance of the workspace 450 without generating an output notifying operator 298 of the movement of software RCM 454. As described in connection with processes 306A and 308A, control module 170 can move software RCM 454 when maintaining the current software RCM 454 while moving the joints according to the commanded motion would violate the constraints and / or limitations of the relocatable structure 442. In some examples, the constraints and / or limitations of the relocatable structure 442 occur when the relocatable structure 442 is at a motion range limit, when the relocatable structure 442 is at risk of collision, when a part of the relocatable structure 442 is about to enter a restricted area, etc. Due to the motion that cannot be compensated for by the restrictions imposed on the relocatable structure 442, control module 170 allows the software RCM 454 to move and "drift". Instead, control module 170 drives the relocatable structure 442 in a manner that allows the position of the software RCM 454 to move so that the relocatable structure 442 can move one or more instruments 446 according to the commanded motion while satisfying the constraints and / or limitations of the relocatable structure 442.
[0062] AsFigure 4D As shown, when the relocatable structure is no longer in a constrained and / or restricted state, or is moving away from a constraint and / or restriction, the control module 170 maintains the software RCM 474 at its current position, i.e., the drift position of the software RCM 474. The control module 170 has moved this portion of the relocatable structure 402, thereby moving the default RCM 464. Even if one or more instruments 466 are relatively far from the material near the entrance of the workspace 470, the control module 170 still maintains the software RCM 474 at a position that is the same relative to Figure 4C the software RCM 454 in
[0063] In some examples, alternative motions can include moving a joint to a range-of-motion limit or holding a joint at a range-of-motion limit. Additionally or alternatively, alternative motions can include moving the relocatable structure into a predetermined clearance of a physical constraint or holding the relocatable structure at a predetermined clearance of a physical constraint. When one or more joints of the relocatable structure are in a restricted state, the control module 170 can allow the software RCM to move without disturbing the operator 298, e.g., by allowing the software RCM to move (e.g., “drift”) due to motions that cannot be compensated for by one or more joints of the relocatable structure being in a restricted state. Additionally or alternatively, if the motion of a joint violates the constraints and / or restrictions of the relocatable structure, then the control module 170 can perform a corrective action. For any situation where these one or more joints of the relocatable structure are constrained and / or restricted (e.g., due to reaching a ROM limit, to avoid a collision, to avoid a no-go area, etc.), one approach is to not execute and discard a commanded motion from the operator. In some cases, not executing a commanded motion, e.g., by discarding part or all of the commanded motion, can reduce the precision or accuracy of the system motion, delay or impede a task, or increase the likelihood of an incorrect move. This can also confuse or frustrate the human operator and / or be otherwise undesirable.
[0064] In some examples, if the operator 298 executes a movement via an input control command that would require one or more joints of the relocatable structure to move beyond a constraint and / or limit, the control module 170 does not execute the commanded movement. Instead, the control module 170 may execute only a portion of the commanded movement (e.g., execute as much of the commanded movement as possible without violating the limits while maintaining the position of the software RCM). Alternatively, the control module 170 may disallow and / or discard the entire commanded movement. The control module 170 may selectively transmit feedback (e.g., haptic feedback, auditory feedback, visual feedback, etc.) to inform the human operator to indicate the occurrence of the event and provide information (such as the amount of deviation of the commanded movement relative to the actual movement of the joints of the relocatable structure). In some cases, this technique of not executing the movement is sufficient and effective and may better maintain the software RCM.
[0065] In some cases, not executing the commanded movement (e.g., discarding a portion or all of the commanded movement) may reduce the precision or accuracy of the system movement, delay or impede the task, or increase the likelihood of an errant movement. This may also confuse or frustrate the human operator and / or be otherwise undesirable. Additionally, in some examples, some movement of the software RCM is tolerable. In such cases, an alternative approach is to allow some corresponding movement of the software RCM when the relocatable structure reaches a constraint and / or limit (e.g., a constraint and / or limit imposed by a ROM limit or an obstacle). In such cases, the control module 170 will drive the joints of the relocatable structure so as to attempt to maintain the position closest to the point of the default RCM selected by the operator 298, effectively moving the software RCM.
[0066] In some examples, the control module 170 is configured to balance the joint movement of the repositionable structure and the movement of the software RCM. In examples of a repositionable structure with redundant degrees of freedom, the joints of the repositionable structure provide sufficient degrees of freedom to allow for a range of joint states (e.g., joint positions, joint velocities, etc.) of multiple joints when the distal portion of the repositionable structure or a portion of the instrument supported by the repositionable structure (e.g., the end effector of the instrument) is in the same state (e.g., position, orientation, velocity, etc.). As a result, in examples of a repositionable structure with multiple joints providing at least one redundant degree of freedom, the commanded movement of the distal portion of the instrument or the portion of the instrument can generally be achieved by different joint movements of the multiple joints of the repositionable structure (differing by the null space of the repositionable structure). These different joint movements can involve different RCM movements. Thus, in a system where multiple (e.g., two, three, or more) possible joint movements of the repositionable structure can achieve the same commanded movement (e.g., movement of the distal portion or a portion of the instrument such as the end effector), the control module 170 can be configured to calculate or select joint movements that result in a smaller (or larger) movement of the software RCM, and / or a slower (or faster) movement of the software RCM, etc. The control module 170 can be configured to perform such a calculation or selection in the null space by minimizing a cost equation, utilizing a vector field that pushes the solution towards a preferred position or velocity of the RCM, etc.
[0067] Additionally or alternatively, in a system where multiple (e.g., two, three, or more) possible joint movements of the multiple joints of the repositionable structure achieve a primary goal (e.g., generating a commanded movement of the distal portion or a portion of the instrument such as the end effector) while producing the same state of the software RCM (e.g., maintaining the position of the software RCM, or producing the same movement of the software RCM, etc.), the control module 170 can be configured to calculate or select joint movements that result in a smaller (or larger) movement of one or more joints of the repositionable structure, and / or a slower (or faster) movement of one or more joints of the repositionable structure, etc.
[0068] Additionally or alternatively, the control module 170 may calculate or select joint movements based on the results of a cost function constructed to determine joint movements in the null space based on one or more of the above objectives and / or other objectives. As an example of balancing different objectives, the control module 170 may calculate or select a movement that does not minimize the drift of the software RCM, but reduces the movement and / or rate of the links and / or joints of the relocatable structure. Additionally or alternatively, the control module 170 may calculate or select a movement that results in lower power consumption relative to another movement. Additionally or alternatively, the control module 170 may select a joint movement that results in a lower rate of the relocatable structure relative to another joint movement. More discussion regarding the null space and the use of the null space can be found in PCT Publications WO 2006 / 124390 A2 “Software center and highly configurable robotic systems for surgery and other uses” and WO 2014 / 146095 A1 “Systems and methods for managing multiple null-space objectives and SLI behaviors”.
[0069] In some examples, the allowed movement of the software RCM can be the same in some or all of the received commands, or can be different between some or all of these commands. This difference can be based on any suitable criteria, such as the source of the command, the direction of the movement, the magnitude of the movement, the component being moved, etc. For example, the control module 170 can be configured to allow a greater amount of movement (relative to the current position of the software RCM or the default position of the RCM) for a remote operation command than for one or more other types of commands. Examples of other types of commands include: movement commands generated autonomously by the system, movement commands generated semi - autonomously by the system, and movement commands based on external manipulation applied to the relocatable structure. As another example, the control module 170 can be configured to allow a smaller amount of movement (relative to the current position of the software RCM or the default position of the RCM) for a command for an automated task and / or for one or more external manipulations received on the manipulator arm or other parts of the relocatable structure. These amounts of movement can be smaller compared to the movement of other types of commands (such as the movement of a remotely - operated command). These smaller amounts of movement can be the same amount for multiple types of movement, or can vary based on criteria such as the source of the movement command. In some cases, the control module 170 can not allow any movement of the software RCM for a movement command for an automated task and / or external manipulation (relative to the current position of the software RCM), and can effectively hold the orientation of the software RCM at the current position unchanged in response to these types of movement commands. In some examples, the control module 170 can generate movement commands for the manipulator arm or other parts of the relocatable structure for one or more different reasons. Examples of these reasons include generating movement commands in response to: a user input signal received at the input control for remotely operating the manipulator arm, the system performing an automated and / or semi - automated movement (such as automated suturing, automated positioning, etc.), an external manipulation received on the manipulator arm (such as in the "clutch" mode when the operator 298 physically moves the manipulator arm), etc.
[0070] In some examples, the drift magnitude of the software RCM's position from its default position can be limited. The maximum distance or drift magnitude can be a function of the distance between the current software RCM and the default RCM. Additionally or alternatively, the maximum distance or drift magnitude can be a function of the magnitude of the movement commanded by the operator 298 in a direction that would violate the limit. Additionally or alternatively, the maximum distance or drift magnitude can be a function of the pitch and yaw angles of the relocatable structure relative to the software RCM when the control module 170 begins to drift the software RCM. Additionally or alternatively, the maximum distance or drift magnitude can be a function of a maximum distance or drift magnitude less than physically possible that is imposed by the operator 298 based on the program being executed, the operating mode of the relocatable structure, the preferences of the operator 298, etc.
[0071] If the drift magnitude of the software RCM's position from its default position reaches the maximum allowable distance or drift magnitude, then the control module 170 can perform one or more remedial actions. In this regard, the control module 170 can discard additional commanded movement after the drift magnitude exceeds the maximum allowable distance or drift magnitude. Additionally or alternatively, if the magnitude of the maximum allowable distance or drift magnitude is reached, the control module 170 can transmit feedback (e.g., haptic, auditory, or visual feedback) to the operator 298. Additionally or alternatively, the control module 170 can allow the operator 298 to increase the magnitude of the maximum allowable distance or drift magnitude. The increase in magnitude can be temporary (e.g., for a predetermined time period, for a particular operation, until the maximum allowable distance or drift magnitude is no longer reached, etc.) or permanent (e.g., until increased or decreased by the operator 298).
[0072] Once the moving RCM of the joints of the relocatable structure has been determined and alternative movements that satisfy the constraints and / or limitations of the relocatable structure have been identified, method 300A proceeds to process 318A, in which the joints of the relocatable structure are driven according to the determined joint movements.
[0073] In process 318A, the control module 170 drives the joints of the relocatable structure based on the determined joint movements. In some embodiments, the control module 170 drives the joints by sending one or more commands or signals to the actuators and / or control systems that control each joint. Then, method 300A returns to process 302A to receive and process additional commanded movements.
[0074] Figure 3B is a flowchart of method steps for moving a software RCM having elastic kinematic constraints and associated with a relocatable structure, according to one or more embodiments. Although these method steps are described in conjunction with Figures 1 - 2 and Figures 4A - 5DThe system is described, but one of ordinary skill in the art will understand that any system configured to perform these method steps in any order is within the scope of the present disclosure. One or more of the processes 302B - 318B of method 300B can be implemented at least in part in the form of executable code stored on a non - transitory, tangible machine - readable medium. When this executable code is executed by one or more processors (e.g., the processor system 150 in the control unit 140), it causes the one or more processors to perform one or more of the processes 302B - 318B. In some embodiments, method 300B can be performed by a module such as the control module 170. In some embodiments, method 300B can be used by a relocatable structure of a computer - assisted system to adopt a software RCM. In some embodiments, the relocatable structure has a default RCM as a hardware RCM (i.e., an RCM enforced by the mechanical design of the relocatable structure, and the computer - assisted system may set the RCM at the hardware RCM or at a location different from the hardware RCM). In some embodiments, the relocatable structure does not have a default RCM as a hardware RCM. Before and / or during the procedure, the operator 298 is able to select a software RCM, e.g., by setting the location of the software RCM, and use the software RCM as a location in the workspace during remote operation, semi - autonomous or autonomous movement, around which one or more instruments supported by the relocatable structure pivot.
[0075] Aspects of method 300B are described with reference to Figures 5A - 5D which Figures 5A - 5D shows the motion of a software RCM with elastic kinematic constraints according to one or more embodiments. However, it should be understood that Figures 5A - 5D the examples are not restrictive, and for different input devices, different relocatable structures, different slave instruments, different degrees of freedom, different procedures, etc., Figures 5A - 5D other values, shapes, behaviors, etc. depicted in
[0076] In process 302B, a control module, such as control module 170, receives a command to move the relocatable structure in a commanded motion. The command can be a direct command for the motion of the relocatable structure. Alternatively, the command can also move a component (e.g., an instrument) supported by the relocatable structure (e.g., to move the end effector of the instrument), from which the corresponding commanded movement of the relocatable structure supporting it can be derived. Control module 170 receives the command when the RCM is set in the first position. Control module 170 can receive the command by any technically feasible technique, such as by detecting an input from one or more input devices (in response to being manipulated by operator 298), receiving an input from a semi-autonomous or autonomous software application executed by one or more processors (such as processor system 150 in control unit 140, control module 170 itself, etc.). Control module 170 can operate in a remote operation mode, a semi-autonomous mode, or an autonomous mode. Control module 170 can operate in a single mode during a procedure, or can also switch between multiple modes during a procedure. In the remote operation mode, control module 170 receives commands from operator 298 through one or more input devices. For example, the input devices can be contacted and manipulated by the hand of operator 298, such as operating one input device with each hand. According to the specific implementation, the attitude of the input device and the current speed of the input device can include one or more attitude variables corresponding to the position and / or orientation DOF of the input device. In the semi-autonomous mode, control module 170 receives commands both from software applications executed by one or more processors and from operator 298 through one or more input devices. In some examples, control module 170 can receive commands from operator 298 during certain steps of a procedure and receive commands from a software application during certain other steps of the procedure. Additionally or alternatively, control module 170 can also receive commands from a software application, at which time operator 298 can override the software application and generate commands through one or more input devices. During autonomous operation, control module 170 generally receives commands from a software application throughout the procedure.
[0077] In process 304B, control module 170 determines whether the current position of the software RCM has been allowed to drift or move away from the first position (e.g., "default" position) of the RCM, and whether the elastic mode has been enabled. In some embodiments, this first position can be the default position of the RCM set for the relocatable structure. In certain cases, when the software RCM is not set, or when the software RCM is set to have no deviation from the hardware RCM of the relocatable structure (for a relocatable structure having a hardware RCM), the relocatable structure uses an exemplary default position of the RCM. In certain cases, an example default position of the RCM includes the previous position of the software RCM. In combinationFigure 3A and Figures 4A - 4D In the example described, the control module 170 operates in a "plastic" mode. In connection with Figure 3B and Figures 5A - 5D In the example described, the control module 170 operates in an "elastic" mode. The computer-aided system can be implemented without the plastic mode and the elastic mode, with the plastic mode but without the elastic mode, without the plastic mode but with the elastic mode, and with both the plastic and elastic modes. In both the plastic mode and the elastic mode, the control module 170 can move the software RCM from the default position to a new position in order to perform the commanded motion. In the elastic mode, as the control module 170 receives subsequent commands, when the current position of the software RCM has been allowed to drift or move away from the default position of the software RCM, the control module 170 selectively moves the current position of the software RCM toward the default position of the software RCM. In this regard, Figures 5A - 5D shows the movement of the software RCM with elastic kinematic constraints, which will be described in further detail below. In contrast, in the plastic mode, the control module 170 can move the software RCM from the default position to a new position in order to perform the commanded motion, however, as the control module 170 receives subsequent commands, when the current position of the software RCM has been allowed to drift or move away from the default position of the software RCM, the control module 170 maintains the current position of the software RCM. In this regard, Figures 4A - 4D shows the movement of the software RCM with plastic kinematic constraints, which will be described in further detail below.
[0078] If the current position of the software RCM has not drifted from the default position of the software RCM, then method 300B proceeds to process 306B.
[0079] At process 306B, the control module 170 determines whether the joint can move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM.
[0080] In some examples, the relocatable structure is constrained and / or limited in its movement as needed in order to maintain the position of the software RCM while performing the commanded motion. For example, due to physical limitations of the relocatable structure, one or more joints of the relocatable structure are constrained and / or limited by range of motion (ROM) limitations. In other examples, the movement of the relocatable structure is constrained to avoid collisions with nearby objects (such as components, devices, and / or personnel), avoid restricted areas, etc. In these examples, the relocatable structure may not be able to maintain the software RCM in the desired position without violating the constraints and / or limitations of the relocatable structure. If the joint can move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM, then method 300B proceeds to process 308B.
[0081] In process 308B, control module 170 determines the joint motion of the relocatable structure that performs the commanded motion while satisfying the constraints and / or limitations of the relocatable structure and simultaneously maintains the position of the software RCM. In some examples, control module 170 determines the joint motion based on one or more kinematic models of the relocatable structure. To enable the software RCM to move little when the computer-aided system moves, one or more joints of the relocatable structure move as needed to maintain the position of the software RCM.
[0082] In some examples, the allowed movement of the software RCM can be elastic, such that control module 170 is configured such that when the command allows the relocatable structure to move the software RCM toward the default position of the RCM without violating the relevant constraints and / or limitations, the software RCM returns to the default position of the RCM. In this regard, Figures 5A - 5D shows the movement of a software RCM with elastic kinematic constraints according to one or more embodiments. In some examples, when the commanded motion cannot move the relocatable structure and / or one or more instruments to the desired pose while maintaining the software RCM due to the constraints and / or limitations of the relocatable structure, control module 170 moves the software RCM from the current position. As Figure 5A shown, a portion of the relocatable structure 502 includes a default RCM at position 504 and a software RCM at the default position 514. In this example, the software RCM at position 514 is placed at the entrance of the workspace 510, and one or more instruments 506 are mounted in this portion of the relocatable structure 502. As Figure 5B shown, control module 170 has moved and rotated this portion of the relocatable structure 502 such that one or more instruments 526 are close to the entrance of the workspace 530. Although in the change from Figures 5A to 5B the default RCM has moved from position 504 to 524, the current position 534 of the software RCM remains in the same position as the default position 514 of the software RCM shown in Figure 5A . In this example of Figures 5A to 5B when the system receives a commanded motion to move from the pose of Figure 5A to the pose of Figure 5B , control module 170 is able to move the relocatable structure 522 and / or one or more instruments 526 in accordance with the commanded motion without modifying the commanded motion and without moving the position of the software RCM. Even when the relocatable structure is in Figure 5BThe same is true for the constraints and / or limitations in the posture. Continuing with this example, method 300B then proceeds to process 318B, in which the joints of the relocatable structure are driven according to the determined joint motion. The commanded motion can be received from an operator, generated autonomously or semi-autonomously by the system relative to its position as shown in Figure 5A and so on.
[0083] Returning to the discussion of process 306B, if the joints cannot move while satisfying the constraints and / or limitations of the relocatable structure and maintaining the current position of the software RCM, then method 300B proceeds to process 310B. In process 310B, control module 170 determines an alternative motion of the joints of the relocatable structure that moves the RCM and satisfies the constraints and / or limitations of the relocatable structure. The alternative motion of the joints can move the software RCM from the current position to a new position.
[0084] As Figure 5C shown, control module 170 has moved and further rotated this portion of the relocatable structure 502, thereby moving the default RCM 544 and the software RCM 554. Control module 170 can move the position of the software RCM 554 relative to the entrance of the workspace 550. (As used herein, "moving" the RCM is used to denote moving the position of the RCM.) Control module 170 may not generate an output notifying the operator 298 of the movement of the software RCM 554, or may generate such an output while or after the software RCM 554 moves to notify the operator 298 of the movement of the software RCM 554. As described in connection with processes 306B and 308B, control module 170 can move the software RCM 554 when maintaining the current software RCM 554 while moving the joints according to the commanded motion would violate the constraints and / or limitations of the relocatable structure 542. In some examples, the constraints and / or limitations of the relocatable structure 542 occur when the relocatable structure 542 is at the limit of its range of motion, when the relocatable structure 542 is at risk of collision, when a portion of the relocatable structure 542 is about to enter a restricted area, and so on. Due to the motion that cannot be compensated for by the limitations imposed on the relocatable structure 542, control module 170 allows the software RCM 554 to move and "drift". Instead, control module 170 drives the joints of the relocatable structure 542 in a manner that allows the position of the software RCM to move so that the relocatable structure can move one or more instruments 546 according to the commanded motion while satisfying the constraints and / or limitations of the relocatable structure 542.
[0085] In some examples, the alternative motion may include moving the joint to the limit of the range of motion or holding the joint at the limit of the range of motion. Additionally or alternatively, the alternative motion may include moving the relocatable structure into a predetermined clearance of a physical constraint or holding the relocatable structure at the predetermined clearance of the physical constraint. When one or more joints of the relocatable structure are in a restricted state, the control module 170 may allow the software RCM to move without disturbing the operator 298, for example, by allowing the software RCM to move due to motion that cannot be compensated for by one or more joints of the relocatable structure being in a restricted state (e.g., "drift"). Additionally or alternatively, if the motion of the joint violates the constraints and / or limitations of the relocatable structure, then the control module 170 may perform a corrective action. For any situation where one or more of these joints of the relocatable structure are constrained and / or limited (e.g., due to reaching ROM limits, to avoid collisions, to avoid restricted areas, etc.), one approach is to not execute and discard the motion from the operator. In some cases, not executing the commanded motion, such as discarding part or all of the commanded motion, can reduce the accuracy or precision of the motion of the relocatable structure or any component it supports (e.g., the instrument) and can increase the frequency or magnitude of mis-motions. This may confuse or frustrate the human operator or otherwise be undesirable.
[0086] In some examples, if the operator 298 commands the computer-aided system to perform a motion via an input control that would require any of the one or more joints of the relocatable structure to move beyond a constraint and / or limitation, then the control module 170 does not execute the commanded motion. Instead, the control module 170 may only execute a partial commanded motion (e.g., execute as much of the commanded motion as possible without violating the limitations while maintaining the position of the software RCM). Alternatively, the control module 170 may not allow and / or discard the entire commanded motion. The control module 170 may selectively transmit feedback to inform the human operator, such as haptic feedback, auditory feedback, visual feedback, etc., to indicate the occurrence of the event and provide information such as the amount of deviation of the commanded motion relative to the actual motion of the joints of the relocatable structure. In some cases, this technique of not executing the motion is sufficient and effective and can better maintain the software RCM.
[0087] In some cases, motions that do not execute commands (e.g., motions that discard some or all of the commands) can reduce the precision or accuracy of the system's movement, delay or impede task execution, or increase the likelihood of incorrect movements. This can also confuse or frustrate the human operator and / or be otherwise undesirable. Additionally, in some examples, some movements of the software RCM are tolerable. In such cases, an alternative approach is to allow the software RCM to make some corresponding movements when the relocatable structure reaches a constraint and / or limit (e.g., a constraint and / or limit imposed by a ROM limit or an obstacle). In this case, the control module 170 will drive the joints of the relocatable structure to attempt to maintain the position of the point closest to the default RCM selected by the operator 298, thereby effectively moving the software RCM.
[0088] In some examples, the control module 170 is configured to select among possible motions of the relocatable structure joints, select among possible motions of the software RCM, or select a combination of possible motions of the relocatable structure joints and the software RCM. In one example, multiple joints of the relocatable structure have redundant degrees of freedom for moving a distal portion of the relocatable structure or a portion of an instrument supported by the relocatable structure, such as the end effector of the instrument. The joints of the relocatable structure provide sufficient degrees of freedom to allow a series of joint states (e.g., joint positions, joint velocities, etc.) of the multiple joints for the same state (e.g., position, orientation, velocity, etc.) of the distal portion of the relocatable structure or the portion of the instrument supported by the relocatable structure. In this example, a commanded motion of the distal portion of the instrument or a portion of the instrument can generally be achieved by a variety of different movements of the multiple joints of the relocatable structure. In robotics, these different movements are typically represented in the null space of the Jacobian matrix of the multiple joints of the relocatable structure. In this example, these different joint movements can involve different RCM movements or positions. Thus, in a system with such redundant degrees of freedom, the control module 170 can be configured to calculate or select joint movements to achieve additional goals. Exemplary additional goals involving the RCM include smaller (or larger) movements of the software RCM along one or more dimensions, and / or slower (or faster) movements of the software RCM along one or more dimensions, and so on. The control module 170 can be configured to perform such calculations or selections in the null space by minimizing a cost function, utilizing a vector field that pushes the solution towards a preferred position or velocity of the RCM, and so on.
[0089] Additionally or alternatively, in such a system with redundant degrees of freedom, the control module 170 may be configured to calculate or select joint motions to achieve goals that are independent of the RCM position or motion. Other goals include obstacle avoidance, increasing the final range of motion, reducing power consumption, reducing the overall rate of one or more links or joints of the relocatable structure, etc.
[0090] As a specific example of calculating or selecting joint movements based on multiple goals, an optimization cost function built for multiple of the above goals and / or other goals may be used. For example, a cost function may be constructed to balance the position change or amount of motion of the software RCM, and the amount of motion of one or more links or joints of the relocatable structure (e.g., total displacement, total path length of movement, maximum or average rate). The control module 170 may be configured to optimize such a cost function when calculating or selecting the joint movements of the multiple joints of the relocatable structure, and to determine joint motions with specific RCM movement and relocatable structure movement characteristics. For example, the cost function may be constructed to provide reduced motion of the RCM and to reduce the rate of the links and / or joints of the relocatable structure. More discussion regarding the null space of a robotic system with redundant degrees of freedom for various goals and the use of such a null space can be found in the PCT publications cited herein.
[0091] In some examples, the allowed movement of the software RCM can be the same in some or all of the received commands, or can be different between some or all of these commands. This difference can be based on any suitable criteria, such as the source of the command, the direction of the movement, the magnitude of the movement, the component being moved, etc. For example, the control module 170 can be configured such that for a remote operation command, the software RCM is allowed to have a greater amount of movement (relative to the current position of the software RCM or the default position of the RCM) than one or more other types of commands. Examples of other types of commands include: movement commands generated autonomously by the system, movement commands generated semi - autonomously by the system, and movement commands based on an external manipulation applied to the relocatable structure. As another example, the control module 170 can be configured such that for the movement of a command for an automated task and / or one or more external manipulations received on the manipulator arm or other parts of the relocatable structure, the software RCM is allowed to have a smaller amount of movement (relative to the current position of the software RCM or the default position of the RCM). These amounts of movement can be smaller compared to the movement of other types of commands (such as the movement of a remote operation command). These smaller amounts of movement can be the same amount for multiple types of movement, or can vary according to criteria such as the source of the movement command. In some cases, the control module 170 can not allow any movement of the software RCM for the movement command of the automated task and / or external manipulation (relative to the current position of the software RCM), and in response to these types of movement commands, effectively maintain the orientation of the software RCM at the current position unchanged. In some examples, the control module 170 can generate movement commands for the manipulator arm or other parts of the relocatable structure for one or more different reasons. Examples of these reasons include generating a movement command in response to: a user input signal received at the input control for remotely operating the manipulator arm, the system performing an automated and / or semi - automated movement (such as automated suturing, automated positioning, etc.), an external manipulation received on the manipulator arm (such as when the operator 298 physically moves the manipulator arm during the "clutch" mode), etc.
[0092] In some examples, the drift magnitude of the software RCM's position from its default position can be limited. The maximum distance or drift magnitude can be a function of the distance between the current software RCM and the default RCM. Additionally or alternatively, the maximum distance or drift magnitude can also be a function of the magnitude of movement in a direction that would violate the limit, as commanded by the operator 298. Additionally or alternatively, the maximum distance or drift magnitude can be a function of the pitch and yaw angles of the relocatable structure relative to the software RCM when the control module 170 begins to drift the software RCM. Additionally or alternatively, the maximum distance or drift magnitude can be a function of a value less than the physically feasible maximum distance or drift magnitude imposed by the operator 298 based on the program being executed, the operating mode of the relocatable structure, the operator 298's preferences, etc.
[0093] If the drift magnitude of the software RCM's position from its default position reaches the maximum allowable distance or drift magnitude, then the control module 170 can perform one or more remedial actions. In this regard, the control module 170 can discard additional commanded movement after the drift magnitude exceeds the maximum allowable distance or drift magnitude. Additionally or alternatively, if the magnitude of the maximum allowable distance or drift magnitude is reached, the control module 170 can transmit feedback (e.g., tactile, auditory, or visual feedback) to the operator 298. Additionally or alternatively, the control module 170 can allow the operator 298 to increase the magnitude of the maximum allowable distance or drift magnitude. The increase in magnitude can be temporary (e.g., for a predetermined period of time, for a specific operation, until the maximum allowable distance or drift magnitude is no longer reached, etc.) or permanent (e.g., until increased or decreased by the operator 298).
[0094] After determining an alternative movement of the joints of the relocatable structure that moves the RCM and satisfies the constraints and / or limitations of the relocatable structure, method 300B enters process 318B, in which the joints of the relocatable structure are driven according to the determined joint movement.
[0095] Returning to the discussion of process 304B, if the current position of the software RCM has been allowed to drift or move away from its default position and if the elastic mode is enabled, then method 300B enters process 312B. In process 312B, the control module 170 determines whether the joints can move while satisfying the constraints and / or limitations of the relocatable structure and moving the current position of the software RCM toward its default position. If the joints cannot move while satisfying the constraints and / or limitations of the relocatable structure and moving the current position of the software RCM toward its default position, then method 300B enters process 316B.
[0096] In process 316B, the control module 170 determines that an alternative movement of the joints of the relocatable structure satisfies the constraints and / or limitations of the relocatable structure and either maintains the position of the software RCM or further moves the position of the software RCM away from the default position of the software RCM. In process 318B, the control module 170 drives the joints of the relocatable structure based on the determined joint movement. Then method 300B proceeds to process 302B to receive and process additional commanded movements.
[0097] Returning to the discussion of process 312B, if the joints are able to move while satisfying the constraints and / or limitations of the relocatable structure and moving the current position of the software RCM toward the default position of the software RCM, then method 300B proceeds to process 314B. In process 314B, the control module 170 determines that the movement of the joints of the relocatable structure satisfies the constraints and / or limitations of the relocatable structure and moves the position of the software RCM toward the default position of the software RCM.
[0098] As Figure 5D shown, when the relocatable structure is no longer at the limitation or is moving away from the limitation, the control module 170 returns the software RCM 574 to the default position, i.e., Figure 5A the default position 514 of the software RCM as shown in Figure 5A . The control module 170 has moved that portion of the relocatable structure 562, thereby moving the default RCM 564 and the software RCM 574. Similarly, the position of one or more instruments 566 has been moved to the default position relative to
[0099] In some examples, when the relocatable structure is no longer at the constraint and / or limitation, as Figure 5D shown, the control module 170 can perform multiple operations in a series of steps to iteratively reduce the distance between the current position of the software RCM 574 and the default position 514 of the software RCM. In each step of the iterative reduction operation, the control module 170 determines the difference between the current position of the software RCM 574 and the default position 514 of the software RCM in the world coordinate system. The control module 170 determines whether the movement based on the input command received from the operator 298 allows the software RCM 574 to move. If the movement allows the software RCM 574 to move to a potential position closer to the default position 514 of the software RCM (i.e., the difference is less than the previous difference), then the control module 170 moves the software RCM 574 based on that movement.
[0100] In some examples, the control module 170 receives a command to move the relocatable structure in a commanded motion when the software RCM is in an intermediate position. At this intermediate position of the RCM, the distance between the intermediate position of the RCM and the default position of the RCM is less than Figure 5C the distance between the moved position of the RCM and the default position of the RCM as shown in Figure 5C . When the RCM is in the intermediate position, if the control module 170 determines that driving the joints to move the relocatable structure in the commanded motion will not violate the limitations of the relocatable structure, then the control module drives the joints to move the relocatable structure in the commanded motion. When the RCM is in the third position, if the control module 170 determines that driving the joints to move the relocatable structure in the second commanded motion will violate the limitations of the relocatable structure, then the control module drives the joints to move the relocatable structure in the commanded motion while maintaining the RCM at the moved position of the RCM as shown in
[0101]
[0102] As discussed above and further emphasized here, Figures 3A - 3B these are merely examples and should not unduly limit the scope of the claims. Those of ordinary skill in the art will recognize many variations, alternatives, and modifications. In some embodiments, the control module 170 may determine that the commanded motion should not be allowed, or should only be allowed in part. Additionally, in some embodiments, the control module 170 may determine that the computer-aided system should terminate the program and / or exit the remote operation mode, semi-autonomous mode, or autonomous mode, as appropriate. In some examples, the computer-aided system may employ certain operating modes that do not allow the software RCM to move from its current position. Such operating modes may be based on the type of instrument being used, the phase of the procedure being performed, the input from the operator 298, environmental factors, and the like.
[0103] In some examples, such as in Figure 3A process 310A or Figure 3BIn process 310B, control module 170 may employ combinations of the disclosed techniques. Control module 170 may use a hybrid of plastic kinematic constraint methods and elastic kinematic constraint methods to move the software RCM. In such an example, when the relocatable structure is no longer under constraint and / or limitation, control module 170 may move the software RCM to a position between the current position of the software RCM and the default position of the software RCM before the software RCM was moved. In some examples, control module 170 may determine that an alternative motion still violates a limitation. Thus, control module 170 may move the software RCM as far as possible without violating the limitation and discard the portion of the alternative motion that violates the limitation. Control module 170 may generate feedback to operator 298 indicating that at least a portion of the commanded motion was discarded.
[0104] Some examples of control units, such as Figure 1 the control unit 140 in may include a non-transitory, tangible machine-readable medium that includes executable code that, when executed by one or more processors (such as Figure 1 the processor system 150 in), may cause the one or more processors to perform the processes of method 300. Some common forms of machine-readable media that may include the processes of method 300 are: for example, floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, any other optical media, punch cards, paper tapes, any other physical media with hole patterns, RAMs, PROMs, EPROMs, FLASH-EPROMs, any other memory chips or cartridges, and / or any other media suitable for reading by a processor or computer.
[0105] Although illustrative embodiments have been shown and described, numerous modifications, variations, and alternatives are anticipated in the foregoing disclosure, and in some instances, some features of the embodiments may be employed without the corresponding use of other features. Many variations, alternatives, and modifications will be recognized by those of ordinary skill in the art. Accordingly, the scope of the present invention should be limited only by the following claims, and it should be understood that the claims should be interpreted broadly and in a manner consistent with the scope of the embodiments disclosed herein.
Claims
1. A computer - aided system, comprising: a relocatable structure configured to support an instrument, the relocatable structure including a plurality of links coupled by a plurality of joints; and a control unit communicatively coupled to the relocatable structure, the control unit being configured to: receive a command when a remote center of motion, i.e., RCM, is set at a first position, and thereby move the relocatable structure in a commanded motion; determine whether driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position will violate a limitation of the relocatable structure; and in response to determining that driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position will violate the limitation: determine an alternative motion of the plurality of joints based on the commanded motion and the first position, wherein driving the plurality of joints in the alternative motion will not violate the limitation and will move the RCM to a second position different from the first position; and drive the plurality of joints in the alternative motion.
2. The computer - aided system according to claim 1, wherein one or more of the plurality of joints are mechanically constrained to maintain the RCM, and wherein the one or more joints are drivable by the control unit to move the relocatable structure while maintaining the RCM.
3. The computer - aided system according to claim 1, wherein the control unit is further configured to: in response to determining that driving the plurality of joints to move the relocatable structure in the commanded motion while maintaining the RCM at the first position will not violate the limitation, drive the plurality of joints in the commanded motion while maintaining the RCM at the first position.
4. The computer - aided system according to claim 1, wherein the limitation includes a motion range limitation of a first joint included in the plurality of joints.
5. The computer - aided system according to claim 4, wherein the alternative motion includes moving the first joint to the motion range limitation or holding the first joint at the motion range limitation.
6. The computer - aided system according to claim 1, wherein the limitation includes a physical constraint of the computer - aided system.
7. The computer - aided system according to claim 6, wherein the alternative motion includes moving the relocatable structure into a predetermined clearance of the physical constraint or holding the relocatable structure at the predetermined clearance of the physical constraint.
8. The computer - aided system according to claim 1, wherein the limitation includes a constraint selected from the group consisting of: an attitude constraint of the relocatable structure, a velocity constraint of the relocatable structure; an acceleration constraint of the relocatable structure; a force constraint of the relocatable structure; a power constraint of the relocatable structure; The physical design of the part of the computer-aided system other than the relocatable structure; The attitude of the part of the computer-aided system; Motion restrictions based on the likelihood of a collision between the relocatable structure and an object, or between the instrument and the object, caused by the motion expected by the command; Boundaries around an object in the workspace of the relocatable structure; and Boundaries around a no-go area in the workspace.
9. The computer-aided system according to claim 1, wherein the restrictions include motion restrictions based on the position or rate of the relocatable structure.
10. The computer-aided system according to claim 1, wherein the control unit is further configured to: generate feedback to notify the operator in response to moving the RCM to the second position.
11. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to, after moving the RCM to the second position: Receive a second command to move the relocatable structure in the motion of the second command; Determine whether driving the plurality of joints to move the relocatable structure in the motion of the second command while maintaining the RCM in the second position will violate the restrictions of the relocatable structure; And In response to determining that driving the plurality of joints to move the relocatable structure in the motion of the second command while maintaining the RCM in the second position will not violate the restrictions of the relocatable structure, drive the plurality of joints to move the relocatable structure in the motion of the second command while maintaining the RCM in the second position.
12. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to, after moving the RCM to the second position: Receive a second command to move the relocatable structure in the motion of the second command; and While maintaining the RCM in the second position, drive the plurality of joints to move the relocatable structure in the motion of the second command, even if driving the plurality of joints in a second alternative motion of the plurality of joints will not violate the restrictions and will move the RCM to the first position or a third position, the third position being closer to the first position than the second position.
13. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to, after moving the RCM to the second position: Receive a second command to move the relocatable structure in the motion of the second command; Determine whether driving the plurality of joints to move the relocatable structure in the motion of the second command while moving the RCM closer to the first position will violate the restrictions of the relocatable structure; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while moving the RCM closer to the first position will not violate the limitations of the relocatable structure, drive the plurality of joints to move the relocatable structure in accordance with the movement of the second command while moving the RCM closer to the first position.
14. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to, after moving the RCM to the second position: Receive a second command to move the relocatable structure in accordance with the movement of the second command; Determine whether driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in a third position will violate the limitations of the relocatable structure, wherein the distance between the third position and the first position is less than the distance between the second position and the first position; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position will not violate the limitations of the relocatable structure, drive the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position.
15. The computer-aided system according to claim 14, wherein the control unit is further configured to: In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position will violate the limitations of the relocatable structure, drive the plurality of joints to move the relocatable structure in accordance with the movement of the second command while maintaining the RCM in the third position.
16. The computer-aided system according to claim 14, wherein the control unit is further configured to, after moving the RCM to the third position: Receive a third command to move the relocatable structure in accordance with the movement of the third command; Determine whether driving the plurality of joints to move the relocatable structure in accordance with the movement of the third command while the RCM is in a fourth position will violate the limitations of the relocatable structure, wherein the distance between the first position and the fourth position is less than the distance between the third position and the fourth position; In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the third command while the RCM is in the fourth position will not violate the limitations of the relocatable structure, drive the plurality of joints to move the relocatable structure in accordance with the movement of the third command while the RCM is in the fourth position; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the third command while the RCM is in the fourth position would violate the limitation of the relocatable structure, drive the plurality of joints to move the relocatable structure in accordance with the movement of the third command while maintaining the RCM at the third position.
17. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to: When the RCM is in the current position, receive a second command to move the relocatable structure in the movement of the second command, the movement of the second command including a series of steps; Determine whether driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command allows the RCM to move closer to the first position without violating the limitation; In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command allows the RCM to move closer to the first position without violating the limitation, move the RCM closer to the first position; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command does not allow the RCM to move closer to the first position without violating the limitation, maintain the RCM at the current position.
18. The computer-aided system according to claim 17, wherein the control unit is further configured to: Determine that the movement of the second command allows the RCM to move closer to the first position by determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command does not violate the limitation while the RCM is in a potential position, wherein the distance between the potential position and the first position of the RCM is less than the distance between the current position and the first position.
19. The computer-aided system according to claim 17, wherein the RCM has a default position, and the control unit is further configured to: Move the RCM closer to the first position by moving the RCM a distance based on the spacing distance between the second position and the default position.
20. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to: Set the distance between the first position and the second position based on the magnitude of the movement of the command in the direction in which the limitation will be violated.
21. The computer-aided system according to any one of claims 1 and 10, wherein the RCM has a default position, and wherein the control unit is further configured to: Limit the distance between the default position and the second position to not exceed a maximum distance.
22. The computer-aided system according to claim 21, wherein the control unit is further configured to: Determine the maximum distance based on the program being executed by the computer-aided system or the operating mode of the relocatable structure.
23. The computer-aided system according to claim 21, wherein the control unit is further configured to: In response to the command being a remote operation command, determine the maximum distance as a larger distance; and In response to the command being a semi-autonomous or autonomous command generated by the computer-aided system, determine the maximum distance as a smaller distance.
24. The computer-aided system according to claim 21, wherein the default position is the position of the hardware RCM of the relocatable structure, and wherein one or more of the plurality of joints are mechanically constrained to pivot about the hardware RCM.
25. The computer-aided system according to any one of claims 1 to 10, wherein the RCM has a default position, and wherein the control unit is further configured to: In response to the distance between the second position and the default position exceeding the maximum distance, cause the relocatable structure to perform a remedial measure.
26. The computer-aided system according to claim 25, wherein the remedial measure comprises: In response to determining that the movement to drive the plurality of joints to execute an additional command will cause the distance between the current position of the RCM and the default position to exceed the maximum distance, discard the movement of the additional command.
27. The computer-aided system according to claim 25, wherein the remedial measure comprises: Prompt the operator to allow an increase in the maximum distance.
28. The computer-aided system according to claim 27, wherein the control unit is further configured to: After a predetermined period of time, after a specific movement of the relocatable structure, or until the distance between the current position of the RCM and the first position no longer exceeds the maximum distance, reduce the maximum distance.
29. The computer-aided system according to any one of claims 1 to 10, wherein the plurality of joints provide sufficient degrees of freedom to allow the plurality of joints to have a series of joint states so as to be in the same state as the end effector of the instrument, and wherein, In order to determine an alternative movement of the plurality of joints, the control unit is further configured to: Determine the alternative movement to produce a smaller movement of the RCM, produce a slower movement of the RCM, produce a smaller movement of at least one of the plurality of joints, or produce a slower movement of the relocatable structure.
30. The computer-aided system according to any one of claims 1 to 10, wherein in order to receive the command, the control unit is configured to: Receive a user input signal from an input device of the computer-aided system; or Determine the command semi-autonomously; or Determine the command autonomously.
31. The computer-aided system according to any one of claims 1 to 10, wherein the control unit is further configured to: Based on the type of instrument being used by the computer-aided system, or the program phase being executed by the relocatable structure, not allow the RCM to move from the first position.
32. A method of driving a plurality of joints of a repositionable structure, the method comprising: receiving a command to move the instrument in a commanded motion when a remote center of motion, i.e., RCM, is set at a first position; determining whether driving the plurality of joints to move the repositionable structure in the commanded motion while maintaining the RCM at the first position violates a limitation of the repositionable structure; and in response to determining that driving the plurality of joints to move the repositionable structure in the commanded motion while maintaining the RCM at the first position will violate the limitation: determining an alternative motion of the plurality of joints based on the commanded motion and the first position, wherein driving the plurality of joints in the alternative motion will not violate the limitation, and moving the RCM to a second position different from the first position; and driving the plurality of joints in the alternative motion.
33. The method according to claim 32, wherein the limitation includes a motion range limitation of a first joint included in the plurality of joints.
34. The method according to claim 33, wherein the alternative motion includes moving the first joint to or holding the first joint at the motion range limitation.
35. The method according to claim 32, wherein the limitation includes a physical constraint of a computer-aided system.
36. The method according to claim 35, wherein the alternative motion includes moving the repositionable structure into a predetermined clearance of the physical constraint or holding the repositionable structure at the predetermined clearance of the physical constraint.
37. The method according to claim 32, wherein the limitation includes a motion limitation based on a position or a rate of the repositionable structure.
38. The method according to claim 32, further comprising: generating feedback to notify an operator in response to moving the RCM to the second position.
39. The method according to claim 32, further comprising, after moving the RCM to the second position: receiving a second command to move the repositionable structure in a second commanded motion; determining whether driving the plurality of joints to move the repositionable structure in the second commanded motion while maintaining the RCM at the second position will violate a limitation of the repositionable structure; and in response to determining that driving the plurality of joints to move the repositionable structure in the second commanded motion while maintaining the RCM at the second position will not violate the limitation of the repositionable structure, driving the plurality of joints to move the repositionable structure in the second commanded motion while maintaining the RCM at the second position.
40. The method according to claim 32, further comprising, after moving the RCM to the second position: receiving a second command to move the repositionable structure in a second commanded motion; and While maintaining the RCM in the second position, drive the plurality of joints to move the relocatable structure in accordance with the movement of the second command, even though driving the plurality of joints in accordance with a second alternative movement of the plurality of joints would not violate the limitation and would move the RCM to the first position or the third position, the third position being closer to the first position than the second position.
41. The method according to claim 32, further comprising, after moving the RCM to the second position: Receiving a second command to move the relocatable structure in accordance with the movement of the second command; Determining whether driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while moving the RCM closer to the first position would violate the limitation of the relocatable structure; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while moving the RCM closer to the first position would not violate the limitation of the relocatable structure, driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while moving the RCM closer to the first position.
42. The method according to claim 32, further comprising, after moving the RCM to the second position: Receiving a second command to move the relocatable structure in accordance with the movement of the second command; Determining whether driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position would violate the limitation of the relocatable structure, wherein the distance between the third position and the first position is less than the distance between the second position and the first position; And In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position would not violate the limitation of the relocatable structure, driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position.
43. The method according to claim 42, further comprising: In response to determining that driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while the RCM is in the third position would violate the limitation of the relocatable structure, driving the plurality of joints to move the relocatable structure in accordance with the movement of the second command while maintaining the RCM in the third position.
44. The method according to claim 42, further comprising, after moving the RCM to the third position: Receiving a third command to move the relocatable structure in accordance with the movement of the third command; Determine whether driving the plurality of joints to move the repositionable structure in accordance with the movement of the third command while the RCM is in the fourth position will violate the limitations of the repositionable structure, wherein the distance between the first position and the fourth position is less than the distance between the third position and the fourth position; In response to determining that driving the plurality of joints to move the repositionable structure in accordance with the movement of the third command while the RCM is in the fourth position will not violate the limitations of the repositionable structure, drive the plurality of joints to move the repositionable structure in accordance with the movement of the third command while the RCM is in the fourth position; And In response to determining that driving the plurality of joints to move the repositionable structure in accordance with the movement of the third command while the RCM is in the fourth position will violate the limitations of the repositionable structure, drive the plurality of joints to move the repositionable structure in accordance with the movement of the third command while maintaining the RCM in the third position.
45. The method according to claim 32, further comprising: While the RCM is in the current position, receive a second command to move the repositionable structure in the movement of the second command, the movement of the second command including a series of steps; Determine whether driving the plurality of joints to move the repositionable structure in accordance with the movement of the second command while not violating the limitations allows the RCM to move closer to the first position; In response to determining that driving the plurality of joints to move the repositionable structure in accordance with the movement of the second command while not violating the limitations allows the RCM to move closer to the first position, move the RCM closer to the first position; And In response to determining that driving the plurality of joints to move the repositionable structure in accordance with the movement of the second command while not violating the limitations does not allow the RCM to move closer to the first position, maintain the RCM in the current position.
46. The method according to claim 45, further comprising: Determine that the movement of the second command allows the RCM to move closer to the first position by: determining that driving the plurality of joints to move the repositionable structure in accordance with the movement of the second command while the RCM is in a potential position does not violate the limitations, wherein the distance between the potential position and the first position of the RCM is less than the distance between the current position and the first position.
47. The method according to claim 45, wherein the RCM has a default position, and further comprising: Move the RCM closer to the first position by moving the RCM a distance based on the distance between the second position and the default position.
48. The method according to claim 32, further comprising: Set the distance between the first position and the second position based on the magnitude of the movement of the command in a direction that violates the restriction.
49. The method according to claim 32, wherein the RCM has a default position, and further comprises: Limit the distance between the default position and the second position to not exceed a maximum distance.
50. The method according to claim 49, further comprises: Determine the maximum distance based on the program being executed by the computer-aided system or the operating mode of the relocatable structure.
51. The method according to claim 49, further comprises: In response to the command being a remote operation command, determine the maximum distance as a larger distance; and In response to the command being a semi-autonomous or autonomous command generated by the computer-aided system, determine the maximum distance as a smaller distance.
52. The method according to claim 49, wherein the default position is the position of the hardware RCM of the relocatable structure, and one or more of the plurality of joints are mechanically constrained to pivot about the hardware RCM.
53. The method according to claim 32, wherein the RCM has a default position, and further comprises: In response to the distance between the second position and the default position exceeding the maximum distance, cause the relocatable structure to perform a remedial measure.
54. The remedial measure according to claim 53, wherein the remedial measure comprises: In response to determining that driving the movement of the plurality of joints to execute an additional command will cause the distance between the current position of the RCM and the default position to exceed the maximum distance, discard the movement of the additional command.
55. The remedial measure according to claim 53, wherein the remedial measure comprises: Prompt the operator to allow an increase in the maximum distance.
56. The method according to claim 55, further comprises: After a predetermined period of time, after a specific movement of the relocatable structure, or until the distance between the current position of the RCM and the first position no longer exceeds the maximum distance, reduce the maximum distance.
57. The method according to claim 32, further comprises: Based on the type of instrument being used by the computer-aided system, or the program phase being executed by the relocatable structure, do not allow the RCM to move from the first position. One or more non-transitory machine-readable media comprise a plurality of machine-readable instructions that, when executed by one or more processors associated with a computer-aided system, are adapted to cause the one or more processors to execute the method according to any one of claims 32-57.
Citation Information
Patent Citations
Software center and highly configurable robotic systems for surgery and other uses
WO2006124390A2
System and methods for managing multiple null-space objectives and SLI behaviors
WO2014146095A1