INVERSE KINEMATIC CONTROL SYSTEMS FOR ROBOTIC SURGICAL SYSTEM
20210212777 · 2021-07-15
Inventors
Cpc classification
B25J9/1607
PERFORMING OPERATIONS; TRANSPORTING
A61B34/76
HUMAN NECESSITIES
G05B2219/40495
PHYSICS
International classification
A61B34/00
HUMAN NECESSITIES
Abstract
A method of using inverse kinematics to control a robotic system includes receiving an input pose from a user interface to move an arm of the robotic system, calculating a remote center of motion for a desired pose from the input pose in a tool center-point frame, checking when the desire pose needs correction, correcting the desired pose of the arm, and moving the arm to the desired pose in response to the input pose. The arm of the robotic system including a tool having a jaw disposed at an end of the arm. Checking when the desired pose needs correction includes verifying that the remote center of motion is at or beyond a boundary distance in the desired pose. Correcting the desired pose of the arm occurs when the remote center of motion is within the boundary distance.
Claims
1. A method of controlling a robotic system, the method comprising: receiving an input pose from a user interface to move an arm of the robotic system, wherein a tool having a jaw is disposed at the end of the arm, the jaw defining a jaw axis; calculating a remote center of motion for a desired pose from the input pose in a tool center-point frame; checking when the desired pose needs correction by verifying the remote center of motion is at or beyond a boundary distance in the desired pose; correcting the desired pose of the arm when the remote center of motion is within the boundary distance; and moving the arm to the desired pose in response to the input pose.
2. The method according to claim 1, wherein during correcting the desired pose of the arm, the jaw axis is held in position.
3. The method according to claim 1, wherein correcting the desired pose of the arm includes moving the remote center of motion to the boundary distance.
4. The method according to claim 1, wherein determining the boundary distance as a function of a maximum joint angle of a pitch joint between the tool and the distance between the origin of the tool center-point and the pitch joint.
5. The method according to claim 4, wherein the maximum joint angle of the pitch joint is 75°.
6. The method according to claim 4, wherein determining the boundary distance includes taking the sum of the distance between the origin of the tool center-point and the pitch joint and the cosine of the maximum joint angle of the pitch joint.
7. The method according to claim 5, wherein the boundary distance is taken along the jaw axis.
8. The method according to claim 1, further comprising providing feedback when the remote center of motion approaches the boundary distance.
9. The method according to claim 8, wherein providing feedback when the remote center of motion approaches the boundary distance includes increasing the feedback as the remote center of motion approaches the boundary distance.
10. The method according to claim 9, wherein increasing the feedback includes linearly increasing the feedback.
11. The method according to claim 9, wherein increasing the feedback includes exponentially increasing the feedback.
12. The method according to claim 9, wherein increasing the feedback includes linearly increasing the feedback as the remote center of motion approaches the boundary distance and exponentially increasing the feedback as the remote center of motion crosses the boundary distance.
13. The method according to claim 1, further comprising determining a check angle defined between the jaw axis and a vector between an origin of the tool center-point frame and the remote center of motion when the remote center of motion is within the boundary distance.
14. The method according to claim 13, further comprising providing feedback when the check angle is below a predefined extreme angle.
15. A robotic surgical system comprising: a processing unit; a user interface in communication with the processing unit and including an input handle; and a robotic system in communication with the processing unit and including an arm and a tool supported at an end of the arm, the arm defining a remote center of motion and the tool defining a tool center-point frame, the arm and the tool configured to move to a desired pose in response to an input pose of the input handle, wherein the processing unit is configured to verify the remote center of motion being within the boundary distance in the desired pose, and wherein the processing unit is configured to correct the desired pose when the remote center of motion is within the boundary distance.
16. The robotic surgical system according to claim 15, wherein the processing unit is configured to verify that a check angle defined between the jaw axis and a vector between an origin of the tool center-point frame and the remote center of motion is below a predefined extreme angle when the remote center of motion is within the boundary distance in the desired pose.
17. The robotic surgical system according to claim 16, wherein the user interface is configured to provide feedback to a clinician when the check angle is below the predefined extreme angle.
18. The robotic surgical system according to claim 15, wherein the input handle is configured to provide force feedback to a clinician as the remote center of motion approaches the boundary distance in the desired pose.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Various aspects of the present disclosure are described hereinbelow with reference to the drawings, which are incorporated in and constitute a part of this specification, wherein:
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036] and
[0037]
DETAILED DESCRIPTION
[0038] Embodiments of the present disclosure are now described in detail with reference to the drawings in which like reference numerals designate identical or corresponding elements in each of the several views. As used herein, the term “clinician” refers to a doctor, a nurse, or any other care provider and may include support personnel. Throughout this description, the term “proximal” refers to the portion of the device or component thereof that is closest to the clinician and the term “distal” refers to the portion of the device or component thereof that is farthest from the clinician.
[0039] This disclosure relates generally to correcting the pose of an arm and a tool of a robotic system to avoid singularities between joints and to maintain degrees of freedom of movement of the arm and the tool. Specifically, when a remote center of motion of the arm is within a boundary distance from an origin of a tool center-point frame, the remote center of motion is moved to the boundary distance while maintaining a position of a jaw axis of the tool and rotating the remote center of motion according to the rigid body kinematics. After the rotation, the tool center-point frame is expressed in the rotated remote center of motion frame, and treated as the corrected desired pose for inverse kinematics calculation.
[0040] Referring to
[0041] The user interface 40 includes a display device 44 which is configured to display three-dimensional images. The display device 44 displays three-dimensional images of the surgical site which may include data captured by imaging devices 16 positioned on the ends 14 of the arms 12 and/or include data captured by imaging devices that are positioned about the surgical theater (e.g., an imaging device positioned within the surgical site, an imaging device positioned adjacent the patient, imaging device 56 positioned at a distal end of an imaging linkage or arm 52). The imaging devices (e.g., imaging devices 16, 56) may capture visual images, infra-red images, ultrasound images, X-ray images, thermal images, and/or any other known real-time images of the surgical site. The imaging devices transmit captured imaging data to the processing unit 30 which creates three-dimensional images of the surgical site in real-time from the imaging data and transmits the three-dimensional images to the display device 44 for display.
[0042] The user interface 40 also includes input handles 42 which are supported on control arms 43 which allow a clinician to manipulate the robotic system 10 (e.g., move the arms 12, the ends 14 of the arms 12, and/or the tools 20). Each of the input handles 42 is in communication with the processing unit 30 to transmit control signals thereto and to receive feedback signals therefrom. Additionally or alternatively, each of the input handles 42 may include input devices (not shown) which allow the surgeon to manipulate (e.g., clamp, grasp, fire, open, close, rotate, thrust, slice, etc.) the tools 20 supported at the ends 14 of the arms 12.
[0043] Each of the input handles 42 is moveable through a predefined workspace to move the ends 14 of the arms 12 within a surgical site. The three-dimensional images on the display device 44 are orientated such that movement of the input handle 42 moves the ends 14 of the arms 12 as viewed on the display device 44. It will be appreciated that the orientation of the three-dimensional images on the display device may be mirrored or rotated relative to view from above the patient. In addition, it will be appreciated that the size of the three-dimensional images on the display device 44 may be scaled to be larger or smaller than the actual structures of the surgical site permitting a clinician to have a better view of structures within the surgical site. As the input handles 42 are moved, the tools 20 are moved within the surgical site as detailed below. As detailed herein, movement of the tools 20 may also include movement of the ends 14 of the arms 12 which support the tools 20.
[0044] For a detailed discussion of the construction and operation of a robotic surgical system 1, reference may be made to U.S. Pat. No. 8,828,023, the entire contents of which are incorporated herein by reference.
[0045] With reference to
[0046] Using a typical forward kinematics model based on the frame attachments detailed above, the Denavit-Hartenberg (DH) parameters of the intracorporeal chain is shown in Table 1 below. As used herein “i” is the frame number, “a” is the length from the common normal, “a” is the angle about the common normal, “D” is the offset along previous z axis to the common normal, “0” is the angle about previous z axis, and the joint type is the type of movement about the joint. It will be appreciated that the common normal is along the arm 12.
TABLE-US-00001 TABLE 1 i a.sub.i−1 α.sub.i−1 D.sub.i θ.sub.i Joint Type 1 0 0 0 θ.sub.1 Rotational 2 0 −π/2 0 .sup. θ.sub.2−π/2 Rotational 3 0 π/2 0 θ.sub.3 Rotational 4 0 0 d.sub.4 0 Linear 5 0 −π/2 0 .sup. θ.sub.5−π/2 Rotational 6 a.sub.6 −π/2 0 θ.sub.6 Rotational
[0047] Further, the Homogenous transform for movement in the six DOF is as follows:
where cθcos θ and sθ
sin θ, this convention will be used throughout this disclosure. Thus, the final pose of frame 6 in the base frame 0 is defined as:
.sub.6.sup.0T=.sub.1.sup.0T.sub.2.sup.1T.sub.3.sup.2T.sub.3.sup.4T.sub.5.sup.4T.sub.6.sup.5T (2)
[0048] With reference to
[0049] As shown in
[0050] With these two constraints placed on the pitch point “P”, three cases can be defined to determine the location of the pitch point “P”. In the first case modeled in FIG. 3, the pitch plane “PP” is uniquely defined by the trocar point “O” and the 26 axis and intersects the yaw plane “YP” at the pitch point “P” on a proximal side (i.e., closer to the trocar point “O”) of the yaw point “T”. Thus, in the first case, the joint angle θ.sub.6 and the joint angle θ.sub.5 are in a range of about −π/2 to about π/2. As used herein, angles are expressed in radians where it is equal to 180°.
[0051] In the second case modeled in
[0052] In the third case modeled in
[0053] Referring back to the first case shown in
and the rotation .sub.6.sup.0R which are both defined in the Base Frame, the homogenous transform of the “TCP” Frame in the Base Frame can be expressed as:
[0054] To determine the joint angles, the Base Frame is expressed in the TCP Frame as:
Based on the property that .sub.0.sup.6T=[.sub.6.sup.0T].sup.−1, .sub.0.sup.6R=[.sub.6.sup.0R].sup.−1=.sub.6.sup.0R.sup.T it can be determined that:
[0055] Referring now to
The projection of the trocar point “O” in the {circumflex over (x)}.sub.6, ŷ.sub.6 plane is point “O′” and the projection of point “O′” on the ŷ.sub.6 axis is “O″”.
[0056] Applying the right hand rule, the relative sign and quarter locations are as follows:
[0057] Taking into account the relative sign and quarter location, as detailed above, in Equation 6:
θ.sub.6=a tan 2(v′,−u′) (7)
[0058] With reference to
θ.sub.5=a tan 2(w′,−u′ cos θ.sub.6+v′ sin θ.sub.6−a.sub.6) (8)
[0059] In addition, the distance d.sub.4 between the trocar point “O” and the pitch point “P” is:
d.sub.4=w′ sin θ.sub.5+(−u′ cos θ.sub.6+v′ sin θ.sub.6−a.sub.6)cos θ.sub.5 (9)
[0060] Now that the joint angle θ.sub.6, the joint angle θ.sub.5, and the distance d.sub.4 have been determined, the joint angle θ.sub.6, the joint angle θ.sub.5, and the distance d.sub.4 can be used to determine the joint angle θ.sub.1, the joint angle θ.sub.2, and the joint angle θ.sub.3. In light of Equation 2 above, a rotation matrix chain can be expressed as:
.sub.6.sup.0R=.sub.1.sup.0R.sub.2.sup.1R.sub.3.sup.2R.sub.4.sup.3R.sub.5.sup.4R.sub.6.sup.5R (10)
[0061] Since joint angle θ.sub.5 and joint angle θ.sub.6 are now known, in view of Equation 1, .sub.6.sup.5R can be expressed as:
In addition, .sub.5.sup.4R can be expressed as:
The transpose of the product of the above two equations is expressible as:
Then multiplying Equation 13 from the right side to Equation 10:
.sub.6.sup.0R(.sub.5.sup.4R.sub.6.sup.5R).sub.T=.sub.6.sup.0R(.sub.5.sup.4R.sub.6.sup.5R).sup.−1=.sub.1.sup.0R.sub.2.sup.1R.sub.3.sup.2R.sub.4.sup.3R.sub.5.sup.4R.sub.6.sup.5R(.sub.5.sup.4R.sub.6.sup.5R).sup.−1=.sub.4.sup.0R (14)
Further, by defining
provides that:
[0062] Referring to
θ.sub.1=a tan 2(−
In addition, joint angle θ.sub.2 can be expressed as:
θ.sub.2=a tan 2(
[0063] It can be observed that when θ.sub.2=±π/2, shaft OP of the arm 12 or tool 20 (
[0064] With reference to
θ.sub.3=a tan 2(−
[0065] Using the previous derivation of the rotation matrix above, if the unit vector of the frame is defined as {circumflex over (x)}, ŷ, {circumflex over (z)}, the equation 15 can be expressed as:
[0066] With respect to the second case, shown in
θ.sub.6−θ.sub.6′=π (20)
[0067] Thus, to determine the joint angles in the second case, the joint angle θ.sub.6 is calculated in a manner similar to the first case detailed above and then Equation 20 is used to determine the joint angle θ.sub.6′ for the second case. Once the joint angle θ.sub.6′ for the second case is determined, the rest of the joint angles θ.sub.1, θ.sub.2, θ.sub.3, and θ.sub.5 as well as the distance d.sub.4 can be determined using the above method.
[0068] Now turning to the third case, as shown in
If the singularity of the third case is detected, the previous joint angle θ.sub.6 can be used. Thus, with θ.sub.6=θ.sub.6,previous, the rest of the joint angles θ.sub.1, θ.sub.2, θ.sub.3, and θ.sub.5 as well as the distance d.sub.4 can be determined using the above method.
[0069] As detailed above, the inverse kinematics solution provides mathematically precise mapping between an input pose and joint angles of the surgical robot 10. In the inverse kinematics solution, other considerations such as joint limits and joint speed limits are not taken into account. For example, due to mechanical constraints of the design of the surgical robot 10, the joint limits of joint angles θ.sub.5 and θ.sub.6 are usually in the range of about −π/2 to about π/2. The mechanical constraints of the surgical robot 10 prevent cases 2 and 3, detailed above, from being physically realizable since one of the joint angles will be greater than π/2. However, the poses presented in cases 2 and 3 may be commanded by the input device 42 because the input device 42 and the surgical robot 10 have different kinematic constructions and working spaces. For example, case 3 is a singularity where the inverse kinematic solution is not unique. In addition, when the joint angle θ.sub.5 approaches ±π/2, a small rotation of the input pose along the axis x.sub.6 would cause a dramatic change in joint angle θ.sub.3. Such a dramatic change may violate a joint speed limit and an acceleration limit of the roll joint of the arm 12 represented by joint angle θ.sub.3. It will be appreciated that such sudden motions are undesirable in clinical settings.
[0070] To avoid an unrealizable configuration or a singularity condition, the joint angle θ.sub.5 is restricted in a range of about −5π/12 to about 5π/12 and the joint angle θ.sub.6 is restricted in a range of about −π/2 to about π/2. One method of achieving this is in a brutal-force method by clamping the solution provided by the inverse kinematics solution. However, the brutal-force method may cause discontinuity in the inverse kinematics solution which is not desirable in a clinical setting.
[0071] Alternatively, as detailed below, a method may be used to correct the input pose after it crosses from a desirable solution space to an undesirable solution space. In the desirable solution space, the joint limits and the joint speed limits are acceptable and in the undesirable solution space at least one of the joint limits or the joint speed limits are exceeded or undesirable. Once the input pose is corrected, the corrected input pose can be solved by using the inverse kinematics solution detailed above having deniable joint angles. Such a method may avoid discontinuities in the joint angles when the boundary between the desirable and undesirable solution spaces is crossed. In addition, such a method can realize the position component of the input pose by only correcting an orientation component of the TCP frame to avoid unintended motion of the TCP frame from being introduced into the inverse kinematic solution.
[0072] As described below, a projection method that corrects an orientation component of the TCP frame of a desired input pose while maintaining a position component of the desired input pose is disclosed in accordance with the present disclosure. In the projection method, a boundary plane that separates a desirable and undesirable solution space may be defined by locating the trocar point on a spherical surface. A boundary plane then divides the spherical surface into two sections. If the trocar point is located on one side of the boundary (e.g., the right side), the input pose does not require correction. If no correction is required, the inverse kinematics solutions are desirable and within the joint limits and the joint speed limits. When the trocar point is located on the other side of the boundary (e.g., the left side), the input pose is projected to the boundary plane. If correction is required, the input pose is corrected by rotating the TCP frame to a projection point located on the boundary plane according to rigid body kinematics and expressing the corrected TCP frame in a rotated base frame for the inverse kinematics solution. After the correction of the TCP frame, the inverse kinematics solution for the corrected TCP frame will be desirable and within the joint limits and the joint speed limits.
[0073] With reference to
[0074] When the projection point “O′” of the trocar point “O” is close to a circle about the yaw point “T” with a radius equal to the length a.sub.6 of the yoke “PT”, the joint angle θ.sub.5 will approach ±π/2. Thus, any small orientation change of the 26 axis will cause a large change in the joint angle θ.sub.6 and the joint angle θ.sub.2.
[0075] Continuing to refer to
[0076] Referring to
u′<u.sub.0 (22)
[0077] The coordinate u.sub.0 is chosen to meet the physical limits of joint angle θ.sub.5 and joint angle θ.sub.6 to avoid a singular condition. As described in detail below, the projection point “O′” may be positioned on either side or on the boundary line “B”.
[0078] With particular reference to
(r″ cos θ.sub.5,max+a.sub.6).sup.2+(r″ sin θ.sub.5,max).sup.2=r.sub.0.sup.2 (23)
From Equation 23, r″ can be calculated, and coordinate u.sub.0 can be expressed as
u.sub.0=−(a.sub.6+r″ cos θ.sub.5,max) (24)
where θ.sub.5, max is a desirable limit (i.e., mechanical constraint) on joint angle θ.sub.5 (e.g., 75° or 5π/12).
[0079] If the projection point “O′” lies on the left side of the boundary line “B”, the projection point “O′” is systematically projected to the boundary line “B”. In this manner, the yaw point “T” is rotated according to the projection rule, as detailed below, such that after the rotation of the yaw point “T”, a new pose of the “TCP” Frame is realized.
[0080] Referring to
[0081] During this rotation, the orientation of the vector {right arrow over (T)}O in the {circumflex over (x)}.sub.6, {circumflex over (z)}.sub.6 plane remains constant. In accordance with the projection rule
Where the linear constant k is given by:
[0082] Referring to
ϕ=2a sin(l/2r.sub.0) (27)
where l=√{square root over ((u′−u.sub.0).sup.2+(√{square root over (r.sub.0.sup.2−u′.sup.2)}−√{square root over (r.sub.0.sup.2−u.sub.0.sup.2)}).sup.2)}.
[0083] Referring now to
.sub.0.sup.6T=.sub.7.sup.6T.sub.0.sup.7T (28)
and the Rotated Base Frame expressed from Frame 6 through Frame 7′ is:
.sub.0.sup.6T=.sub.7′.sup.6T.sub.0.sup.7′T (29)
During rotation, the Base Frame in Frame 7 is equal to the Rotated Base Frame in Frame 7′ such that:
.sub.0.sup.7T=.sub.0.sup.7′T (30)
Thus, the Rotated Base Frame in Frame 6 can be calculated as:
.sub.0.sup.6T=.sub.7.sup.6T[.sub.7.sup.6T].sup.−1.sub.0.sup.6T (31)
From Equation 31 we have:
[0084] During the above posing, it is assumed, for simplicity, that the trocar point “O” and the Base Frame are rotated and that the yaw point “T” and the “TCP” Frame are kept constant. In fact, during the above movement, the trocar point “O”, the yaw point “T”, and the Base Frame are kept constant and only the “TCP” Frame is rotated. Due to the fact that the rotation is relative, if the “TCP” Frame is rotated instead of the Base Frame, then the rotated “TCP” Frame can be expressed in the Base Frame as:
where .sub.0′.sup.6R is from the homogenous transform .sub.0′.sup.6T in Equation 31.
[0085] Referring to
(r″ cos(π−θ.sub.5,extreme)−a.sub.6).sup.2+(r″ sin(π−θ.sub.5,extreme)).sup.2=r.sub.0.sup.2 (35)
[0086] Solving for r″ from the above equation 35 provides:
u.sub.extreme=r″ cos(π−θ.sub.5,extreme)−a.sub.6 (36)
[0087] In light of the above, the steps of the complete inverse kinematics algorithm for the arm 12 and the tool 20 (
[0093] In the inverse kinematics algorithm above, checking if the input pose needs correction is accomplished by choosing u.sub.0 in Equation 22 as a function of the yaw point “T” and a maximum joint angle θ.sub.5, max. For example, the maximum joint angle θ.sub.5, max may be selected as 5π/12 (i.e., 75°).
[0094] As detailed above, the tool 20 (
[0095] When the tool 20 is a straight instrument, the joint angle θ.sub.5 and the joint angle θ.sub.6 are about zero such that the straight instrument is treated as a wristed instrument. Accordingly, Equation 23 can be modified as follows:
[0096] When the tool 20 is a stapler instrument, a jaw (not shown) of the stapler instrument is typically pivotal in one DOF such that the joint angle θ.sub.6 is substantially zero. Thus, Equation 23 can be modified as follows:
where
and the rest of the algorithm detailed above continues to operate properly with a stapler instrument as the tool 20.
[0097] When the tool 20 is another type of instrument with a single DOF the joint angle θ.sub.5 may be substantially zero. Similar to the stapler instrument above, Equation 23 can be modified such that:
where
and the rest of the algorithm detailed above continues to operate properly with such an instrument.
[0098] It will be appreciated that Equations 37-39 are applied after the correction Equations 25-34 have been applied. Thus, two rounds of corrections are required.
[0099] When tool 20 is an instrument with long jaws 29 (e.g., a bowel grasper), an additional frame may be needed. As shown in
[0100] Referring to
(r″ cos θ.sub.5,max+a.sub.6+a.sub.7).sup.2+(r″ sin θ.sub.5,max).sup.2=r.sub.0.sup.2 (40)
Solving for r″ in Equation 40, coordinate u.sub.0 can be expressed as:
u.sub.0=−(a.sub.6+a.sub.7+r″ cos θ.sub.5,max) (41)
[0101] Following the projection method as detailed above, Equation 3 becomes:
Expressing the Base Frame in the End Effector Frame provides:
and the position of the trocar point “O” in the End Effector Frame is:
[0102] Referring to
As shown in
l=√{square root over ((u′−u.sub.0).sup.2+(√{square root over (r.sub.0.sup.2−u′.sup.2)}−√{square root over (r.sub.0.sup.2−u.sub.0.sup.2)}).sup.2)} (45)
and the distance between the trocar point “O” and the yaw point “T” is:
r.sub.0′=√{square root over (r.sub.0.sup.2−u′.sup.2+(u′+a.sub.7).sup.2)}(46)
and the distance between the yaw point “T” and the rotated trocar point “M” is:
r.sub.0′=√{square root over (r.sub.0.sup.2−u.sub.0.sup.2+(−u.sub.0−a.sub.7).sup.2)}(47)
The rotation angle ϕ′ can be expressed as:
[0103] Referring to
and Equation 33 becomes the following:
and further:
.sub.e.sup.0T=.sub.6.sup.0T.sub.e.sup.6T (51)
and .sub.6.sup.0T can be expressed as:
.sub.6.sup.0T=.sub.e.sup.0T[.sub.e.sup.6T].sup.−1 (52)
[0104] Where .sub.e.sup.6T is the End Effector Frame in the TCP frame and is expressed as:
[0105] By substituting the above equations into Equation 31:
[0106] Finally, by applying the relative motion between the TCP frame and the Base
[0107] Frame, the Rotated TCP Frame can be expressed in the Base Frame as:
.sub.6′.sup.0T=[.sub.6.sup.0T].sup.−1 (55)
[0108] With reference to
(r″ cos(π−θ.sub.5,extreme)−a.sub.6−a.sub.7).sup.2+(r″ sin(π−θ.sub.5,max)).sup.2=r.sub.0.sup.2 (56)
[0109] Solving r″ from Equation 56 provides:
u.sub.extreme=r″ cos(π−θ.sub.5,extreme)−a.sub.6−a.sub.7 (58)
[0110] Thus, the steps of the complete inverse kinematics algorithm for a long-jaw instrument are as follows: [0111] 1) For each given input pose .sub.6.sup.0T, calculate the trocar point “O” position in the End Effector Frame using Equation 42; [0112] 2) Use Equation 40 to check if the input pose needs correction, if correction is needed got to step 3, otherwise calculate .sub.6′.sup.0T from Equation 52 and go to step 5; [0113] 3) Check if u′>u.sub.extreme with Equation 57, if true provide feedback, else got to Step 4; [0114] 4) Use Equations 49-55 to calculate a corrected pose .sub.6′.sup.0T; and replace the original pose .sub.6′.sup.0T with the corrected pose .sub.6′.sup.0T; [0115] 5) Reapply Equations 3-18 to calculate the joint angles θ.sub.1, θ.sub.2, θ.sub.3, θ.sub.5, and θ.sub.6 as well as the distance d.sub.4.
[0116] It is also within the scope of this disclosure to provide a clinician with an indication or an alert when the arm 12 and the tool 20 are approaching a singularity or may experience reduced DOF. Thus, while checking whether u′>u.sub.extreme, if the angle approaches the extreme angle θ.sub.exterme (e.g., π/6 or 30°), then the {circumflex over (x)}.sub.6 axis may be pointing back to the trocar point “O” such that the motion of the {circumflex over (x)}.sub.6 axis will be significantly amplified. In such a condition, the inverse kinematic solution may become less stable and the algorithm may provide a warning to the user such that mapping between the input handle 43 (
[0117] Referring briefly back to
[0118] During a medical procedure, when a correction of the pose of the arm 12 is desirable, the user interface 40 (
{circumflex over (τ)}=f(ϕ){right arrow over (T)}M×{right arrow over (T)}O/|{right arrow over (T)}M×{right arrow over (T)}O| (59)
[0119] In Equation 42, f(ϕ) is a scalar function that determines the magnitude of the feedback torque {circumflex over (t)} and the cross product of {right arrow over (T)}M and {right arrow over (T)}O determines the direction of the feedback torque {circumflex over (t)}. The f(ϕ) may be a linear function or may be an exponential function that is limited by a maximum torque. The maximum torque may be set by torque that is realizable by the force feedback system and/or may be set by torque that is physiologically meaningful to a clinician interfacing with the input handles 42. It will be appreciated that in Equation 42 the feedback torque {circumflex over (t)} is expressed in the Base Frame and that when displayed or applied by the input handles 42 of the user interface 40, the feedback torque {circumflex over (t)} would be expressed in the proper frame of the user interface 40.
[0120] While several embodiments of the disclosure have been shown in the drawings, it is not intended that the disclosure be limited thereto, as it is intended that the disclosure be as broad in scope as the art will allow and that the specification be read likewise. Any combination of the above embodiments is also envisioned and is within the scope of the appended claims. Therefore, the above description should not be construed as limiting, but merely as exemplifications of particular embodiments. Those skilled in the art will envision other modifications within the scope of the claims appended hereto.