Aspects of this invention are related to medical device path planning, and more particularly are related to path planning for an articulatable multi-segment medical device.
An endoscope is a medical device for visualizing the interior of a patient's body. Endoscopes have been used for a variety of medical diagnostic procedures and for a variety of medical interventional procedures.
Many different types of endoscopes are known. For example, one steerable endoscope has an elongated body with a steerable distal portion and an automatically controlled proximal portion. Such an endoscope is described in U.S. Pat. No. 6,468,203 B2, entitled “Steerable Endoscope and Improved Method of Insertion,” of Amir Belson issued on Oct. 22, 2002, which is incorporated herein by reference in its entirety.
In general, conventional medical device path-planning is performed using medical imaging data usually CAT, X-ray, MRI, PET of fluoroscopy imaging data. Path-planning is considered in U.S. Pat. No. 5,611,025, entitled “Virtual internal cavity inspection system,” issued Mar 11, 1997; U.S. Pat. No. 7,167,180, entitled “Automatic path planning system and method,” issued Jan. 23, 2007; U.S. Pat. No. 6,380,958, entitled “Medical-technical System,” issued Apr. 30, 2002; U.S. Patent Application Publication No. US 2008/0091340 Al (filed Dec. 26, 2004, disclosing “Targeted Marching”); and U.S. Patent Application Publication No. US 2003/0109780 A1 (filed Jun. 6, 2002, disclosing “Methods and Apparatus for Surgical Planning”).
Unlike prior art methods that required path planning prior to use of a steerable medical device, waypoints of a steerable medical device are stored as the device is moved within a patient. The stored waypoints are an ordered sequence of locations. The ordered sequence of locations defines a safe path within the patient for moving an articulatable portion of the steerable medical device.
Thus, the articulatable portion of the steerable medical device is constrained to follow the safe path as the articulatable portion moves within the patient or as the device is inserted into the patient. In one aspect, the articulatable portion of the steerable medical device is constrained to remain within a boundary region enclosing the safe path.
In one embodiment, the articulatable portion of the steerable medical device includes a segment of the steerable medical device. The segment, in turn, includes a plurality of links.
In another aspect, the boundary region is a tube having a cross-section. Examples of cross-sections include, but are not limited to, a circular cross-section, an oblate cross-section, and a rectangular cross cross-section.
In still yet another aspect, constraining the articulatable portion of the steerable medical device to remain within a boundary region enclosing the safe path includes generating position and orientation data for each of the plurality of segments. This process uses the ordered sequence of locations and a kinematic model of the plurality of segments of the steerable medical device.
The process of generating position and orientation data for each of the plurality of segments includes minimizing a cost function. In one aspect, minimizing a cost function further includes minimizing the sum of the absolute values of relative joint angles, with an additional constraint that link positions must remain within some distance A of the safe path formed by the waypoints.
An apparatus includes a steerable medical device having an articulatable portion. The articulatable portion includes at least one articulatable segment. The apparatus also includes a controller, coupled to the steerable medical device. The controller includes a processor, and a medical device controller coupled to the processor and to the steerable medical device. The processor stores in the memory an ordered sequence of locations of waypoints. The processor also analyzes the ordered sequence of locations and outputs to the medical device controller at least one command to constrain the articulatable portion within a boundary region enclosing a safe path defined by the ordered sequence of location.
In the drawings, the first digit of a figure number indicates the figure in which the element with that figure number first appeared.
In one aspect, a steerable medical device 100 (
The use of a steerable medical device with at least three segments each having a plurality of movable links is illustrative only and in not intended to be limiting. In view of this disclosure, a steerable medical device may include from at least one segment having a plurality of links to a number of segments with movable links needed to provide the required functionality for the steerable medical device.
An example of a steerable medical device 100 is a steerable endoscope. In the following description, steerable medical device 100 is referred to as steerable endoscope 100. The use of steerable endoscope 100 as an example of a steerable medical device is illustrative only and is not intended to be limiting to this specific steerable medical device.
The plurality of movable links in a segment allows that segment to be articulated as steerable endoscope 100 moves into and out of a patient. Thus, such segments are referred to as articulatable segments.
In one aspect, an operator manipulates a direction controller 245 (
In one embodiment, as the operator steers the tip of steerable endoscope 100 through the patient, a safe path is generated. More specifically, as the operator inserts steerable endoscope 100 into a patient and moves steerable endoscope 100 towards a desired location, an ordered sequence of locations {Pk, Pk+1, Pk+2, Pk+3, Pk+4} (
The ordered sequence of locations {Pk, Pk+1, Pk+2, Pk+3, Pk+4} (
Using the tip movement to generate an ordered sequence of locations that define safe path 150 is illustrative only and is not intended to be limiting. Alternatively, steerable endoscope 100 could be inserted in a passive state, and then all the inserted articulatable segments activated at one. The positions of the links in the articulatable segments at the time of activation provide an ordered sequence of locations that define safe path 150 for additional insertion and for retraction of steerable endoscope 100.
In one aspect, as described more completely below, all trailing segments 101-1, 101-2, 101-03 . . . of steerable endoscope 100 are constrained to follow safe path 150 that is defined by ordered sequence of locations {Pk, Pk+1, Pk+2, Pk+3, Pk+4}. However, trailing segments 101-1, 101-2, 101-03 . . . may not follow safe path 150 exactly. In one aspect, the operator can define a boundary region around safe path 150. The boundary region (See
Also, in another aspect, as medical device 100 is withdrawn from the patient, articulatable segments 101-1, 101-2, 101-03 . . . are constrained to remain within this boundary region. Hence, unlike prior art techniques that required advance planning, a safe route for medical device 100 into and out of a patient is generated based on waypoint data 231 recorded as steerable endoscope 100 moves into the patient.
When segment 101-1 is considered a trailing segment, as just described, segment 101-1 is controlled in the same way as the other trailing articulatable segments. However, in another insertion mode, segment 101-1 remains directly controlled by the operator and does not change shape with insertion. In this insertion mode, segment 101-1 would not be considered a trailing segment.
In one aspect, each location Pk is a point in space (xk, yk, zk) relative to a fixed reference frame. Thus, each of boundary regions 310A, 310B, 310C defines a three-dimensional volume enclosing safe path 150. This volume is referred to as a tube having a cross section to convey the three-dimensional characteristics of the volume. Tube, as used here, is not a physical tube inserted in the patient to define the volume.
The particular cross-sectional shapes of the boundary regions illustrated in
It is not necessary that the boundary region have the same cross-sectional shape over the entire extent of the safe path. For example, a first portion of a boundary region could have a first cross-sectional shape, and a second portion of the boundary region could have a second cross-sectional shape that is different from the first cross-sectional shape.
In method 400, STORE WAYPOINTS operation 420, as described more completely below, saves waypoints of the tip of steerable endoscope 100 as an ordered sequence of locations. The ordered sequence of locations represents the trajectory of the tip as steerable endoscope 100 is inserted into the patient. As described above, the ordered sequence of locations defines a safe path 150 that has been selected by the operator of steerable endoscope 100.
The stored ordered sequence of locations is retrieved and analyzed in FOLLOW SAFE PATH process 430. FOLLOW SAFE PATH process 430 configures the articulatable portion of endoscope 100 so that the articulatable portion of endoscope 100 is constrained to follow safe path 150 as the articulatable portion moves within the patient. Herein, following the safe path does not mean that the safe path is followed exactly, but rather that the articulatable portion steerable endoscope 100 stays at least within a safe region, sometimes called a boundary region, about safe path 150.
In
In
In ESTABLISH WAYPOINT operation 402, a waypoint on the safe path of the endoscope is established. This can be done in a variety of ways. Accordingly, check operations 410 to 412, as discussed more completely below, are illustrative only and are not intended to be limiting to this particular implementation.
In one aspect, as the operator inserts steerable endoscope 100 into a body cavity (for instance, through an incision in the stomach into the abdominal cavity) insertion is paused periodically. When motion of endoscope 100 is paused, DEVICE MOTION PAUSED check operation 410 transfers processing to DEVICE MOTION RESUMED check operation 411.
If steerable endoscope 100 is paused to determine a safe trajectory for the tip, the operator uses the camera and illumination at the tip of steerable endoscope 100 to determine a safe trajectory inside the body cavity. When viewing the interior of the body cavity and determining a safe direction for farther insertion, the endoscope tip may be oriented in any direction to provide views of the body cavity.
Once a safe trajectory is determined, the tip is oriented in the direction that the operator intends steerable endoscope 100 to travel upon farther insertion. The operator then inserts endoscope 100 farther into the patient. However, the operator could also retract endoscope 100 after the pause. Thus, upon resumption of motion of endoscope 100, DEVICE MOTION RESUMED check operation 411 transfers processing to INSERTION check operation 412.
INSERTION check operation 412 determines whether after the pause, the operation is continuing to insert endoscope 100 or is retracting endoscope 100. If the operator is continuing to insert endoscope 100, check operation 412 transfers processing to SAVE WAYPOINT operation 403. Conversely, if the operator is retracting endoscope 100, check operation 412 transfers to DEVICE MOTION PAUSED check operation 410 and to MAINTAIN SEGMENTS IN BOUNDARY REGION operation 405.
Again, the combination of operations 410 to 412 is one way to allow an operator to establish a waypoint. Alternatively, the operator could, for example, push a button when a safe trajectory has been identified and the operator is about to move the endoscope tip on that trajectory.
SAVE WAYPOINT operation 403 records the previous location of the tip as a waypoint in WAYPOINT DATA 403A, which in
In this example, insertion of a link is used as a trigger to record another waypoint for the tip. However, other criteria can be used so long as locations of the tip are saved with sufficient resolution to permit determining a safe path. As steerable endoscope 100 is moved further into the patient along the safe trajectory, as each new link is inserted in the patient, the location of the tip is saved as another waypoint. In this example, when a new link is inserted, NEW LINK INSERTED check operation 404 transfers processing to SAVE WAYPOINT operation 403, which was described above, and to UPDATE check operation 409.
UPDATE check operation 409 is shown with a dotted line in
In this embodiment, FOLLOW SAFE PATH process 430 includes MAINTAIN SEGMENTS IN BOUNDARY REGION process 405 and SEND COMMAND process 406. MAINTAIN SEGMENTS IN BOUNDARY REGION process 405 uses the saved waypoints to generate a configuration for each of the inserted links so that trailing segments 101-1 to 101-3 follow safe path 150 of the tip as defined by the waypoints. As noted above, for some steerable medical devices, it may not be possible to configure the trailing segments to follow exactly safe path 150.
Thus, in one aspect, a boundary region about the ordered sequence of locations {Pk}k=1N is generated. Here, Pk denotes the Cartesian coordinates of the endoscope tip when the number of the inserted links is k. After the endoscope has been inserted for N links, the path trajectory of the endoscope tip is recorded as ordered sequence of locations {Pk}k=1N in memory 230 (
As described above, the boundary region defines a volume around safe path 150, i.e., a volume that encloses safe path 150. The trailing segments can safely pass through any part of the boundary region as the trailing segments move towards the surgical site, or move away from the surgical site.
In one aspect, a kinematic model of steerable endoscope 100, such as model 500 in
A second level 502 of model 500 is a representation of links and joints in each of four articulatable segments Seg 1, Seg 2, Seg 3, and Seg 4. In this example, each segment includes eight links, where adjacent links are separated by a joint. The joints are numbered sequentially from the distal end to the proximal end of the endoscope, starting with a value one as shown in a third level 503 of model 500. (This numbering sequence is for convenience only. In other aspects, the numbering may increase in going from a proximal location towards a distal location.) Each link has a fixed length and the associated joint can rotate in a single plane, either the x-plane or the y-plane. The joints alternate so adjacent links rotate in different planes.
In model 500, each of four articulatable segments Seg 1, Seg 2, Seg 3, and Seg 4 has an angle of rotation about the x-axis and an angle of rotation about the y-axis. For articulatable segment Seg 1, the angle of rotation about the x-axis is θy1, (sometimes referred to as pitch) and the angle of rotation about the y-axis is θx1 (sometimes referred to as yaw). For articulatable segment Seg 2, the angle of rotation about the x-axis is θy2, and the angle of rotation about the y-axis is θx2. For articulatable segment Seg 3, the angle of rotation about the x-axis is θy3, and the angle of rotation about the y-axis is θx3. For articulatable segment Seg 4, the angle of rotation about the x-axis is θy4, and the angle of rotation about the y-axis is θx4.
Row 505 in model 500 gives the initial constraint on the joint angles. In this example, the joint angles for a segment are assumed to be equal. Thus, each joint angle is one-fourth of the corresponding segment angle. Row 506 in model 500 gives the roll matrix for each joint.
In this model, y-links are links that cause motion in the y-direction rather than links that rotate about the y-direction. This definition results in Rx(θy). Similarly, in this model, x-links are links that cause motion in the x-direction rather than links that rotate about the x-direction. This definition results in Ry(θx) Those knowledgeable in the field understand that alternative definitions can be used in the kinematic model, where x-links are links that rotate about the x-direction and y-links are links that rotate about the y-direction. Irrespective of the kinematic model definitions, the results are equivalent.
Thus, model 500 is illustrative only and is not intended to be limiting. Model 500 is used in one example that is developed more completely below.
Using stored ordered sequence of locations {Pk}k=1N and kinematic model 500, a cost function is minimized to generate position and orientation data of the endoscope segments in MAINTAIN SEGMENTS IN BOUNDARY REGION process 405. Specifically, in one aspect, positions and orientations are generated for each of the links in the articulatable portion of endoscope 100. The positions and orientations are constrained within the boundary region.
The cost function allows the position and orientation to be optimized for a variety of criteria, for example, but not limited to: 1) maximum tip controllability; 2) maximum distance of the segments from inverse-kinematic singularities; 3) maximum distance of the segments from articulation limits; 4) maximum distance from user-defined body-cavity boundaries (organs, adhesions, etc.); 5) minimum distance from the defined path.
In process 405, the cost function may be a dynamically changing function of any number of criteria. However, the number of criteria is selected so the cost function can be minimized and the segments positioned to achieve the constrained movement within an endoscope movement time acceptable to the operator. Conventional techniques are used by a processor to minimize the cost function selected subject to the position constraints imposed.
In an additional aspect, an embodiment of process 405 determines the optimal configuration of the segments (relative segment angles) to satisfy the constraint that the segment links stay “near to” the path defined by the tip forward motion and any additional constraints on the link (or segment) positions.
For example, in process 405, the segments may be allowed to assume positions within a tubular bounding region 310A (
Upon determining the configuration for each of the articulatable segments, MAINTAIN SEGMENTS IN BOUNDARY REGION process 405 transfers processing to SEND COMMAND process 406 (
SEND COMMAND process 406 transfers to DEVICE MOTION PAUSED check operation 410 and to RETRACTION AND LINK RETRACTED check operation 407. RETRACTION AND LINK RETRACTED check operation 407 determines whether endoscope 100 is being retracted and whether a link has been retracted. If both of these conditions are true, check operation 407 transfers to DELETE WAYPOINT operation 408.
DELETE WAYPOINT operation 408 deletes the stored waypoint for the withdrawn link and transfers to operation 405. Hence, operations 405 to 408 cause endoscope 100 to follow safe path 150 as endoscope 100 is retracted from the patient.
In the example of
When the operator starts to withdraw the endoscope from the patient, the waypoints in the stored ordered sequence of locations {Pk}k=1N decrease by one as each link is withdrawn. Processes 405 and 406 are used as steerable endoscope is withdrawn to maintain endoscope 100 with the boundary region.
As a further example of process 405, the control of the joint angles at constant endoscopic length increments is considered such that the endoscope configuration is kept within a safety area, the boundary region described above, during the process of insertion and withdrawal. In this example, a configuration of the trailing links that is closest, as measured by Euclidean norm, to the tip trajectory is generated in process 405, since the tip trajectory represents a safe route selected by the operator.
As described above Pk denotes the Cartesian coordinate of the endoscope tip when the number of the inserted links is k. After the endoscope has been inserted for N links, the path trajectory of the endoscope tip is recorded in a series {Pk}k=1N. Process 405 controls the joint angles to achieve an endoscope link configuration close to the waypoints in recorded series {Pk}k=1N. This is formulated as the following optimization, where J is the cost function discussed above:
where pk is the coordinate of each link determined by the kinematics model.
To apply an iterative procedure to solve this problem, assume that at the n-th step, a solution is θn and the next increment Δθn is to be determined. The new link coordinate is approximated by
p
n+1
≈p
n+∇θ
Substituting expression (3) into the cost function gives:
J
n+1=1/2 ∥pn+1−P∥2≈1/2∥∇θ
This is indeed a quadratic programming problem:
subject to
θmin−θn≤Δθn≤θmax−θn. (6)
With respect to
The vector of joint angles is defined as:
and the state of each link is defined as:
The rest of the Tlw's can be obtained in a similar fashion. In particular,
Notice that all these Tlw's are in the Special Euclidean Lie group SE(4).
The cumulative transform to the base from the distal end of link k can be derived as
In this section, gradient ∇θlk is derived, where l is the position vector for link k. To this end, define the basis for the skew-symmetric matrix so(3) as follows:
The rotation matrices can then be described as
R
x(θ)=exp (σxθ), Ry(θ)=exp (σyθ), Rz(θ)=exp (σzθ) (13)
Suppose that R is a rotation matrix
Since RRT=I, an important property for R can be derived:
Rσ
x
R
T
=r
11σx+r21σy+r31σz, (15)
R
TσxR=r11σx+r12σy+r13σz, (16)
Rσ
y
R
T
=r
12σx+r22σy+r32σz, (17)
R
T
σ
y
R=r
21σx+r22σy+r23σz, (18)
Now, the gradient dTcl(k)/dθ is derived. Let
It is easy to derive that
Sk=R1R2 . . . Rk, (20)
l
k
=R
1
R
2
. . . R
k−1
a
k
+R
1
R
2
. . . R
k−2
a
k−1
+ . . . +R
1
a
2
+a
1
=S
k−1
a
k
+S
k−2
a
k−1
+ . . . +S
1
a
2
+a
1, (21)
and l1=a1. We therefore have
When θ=θx1, for k≥7, we have
which in turn yields
For k=5 or 6, we obtain
for k=3 or 4,
and for k=1 or 2,
In summary,
Similarly,
In this subsection, the Jacobian is derived. Let
and denote its blocks as
Recalling Eq.(19), we have
The last equality is obtained by the definition of Tcl and TJ. Proceeding further, we have
Therefore, the derivative of the position vector lN with respect to the joint angle θx1 is
In the above examples, the sequence of ordered locations and six-degrees of freedom were considered in configuring articulatable segments to remain within a boundary region, sometimes called a safe region. However, in some applications, consideration of only two-degrees of freedom may be sufficient. The x-y position could be controlled, or the pitch and the yaw could be controlled. In these applications, each waypoint only includes two degrees of freedom corresponding to an insertion depth and the above processes become less computationally intensive while the safe path is followed.
System controller 220 (
The above description and the accompanying drawings that illustrate aspects and embodiments of the present inventions should not be taken as limiting—the claims define the protected inventions. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of this description and the claims. In some instances, well-known circuits, structures, and techniques have not been shown or described in detail to avoid obscuring the invention.
While the memory in
A processor is coupled to a memory containing instructions executed by the processor. This could be accomplished within a computer system, or alternatively via a connection to another computer via modems and analog lines, or digital interfaces and a digital carrier line.
All examples and illustrative references are non-limiting and should not be used to limit the claims to specific implementations and embodiments described herein and their equivalents. The headings are solely for formatting and should not be used to limit the subject matter in any way, because text under one heading may cross reference or apply to text under one or more headings. Finally, in view of this disclosure, particular features described in relation to one aspect or embodiment may be applied to other disclosed aspects or embodiments of the invention, even though not specifically shown in the drawings or described in the text.
The present application is a continuation of U.S. patent application Ser. No. 16/048,438, filed Jul. 30, 2018, which is a continuation of U.S. patent application Ser. No. 12/613,739 (filed Nov. 6, 2009), which claims the benefit of the filing date of U.S. Provisional Patent Application No. 61/113,534 (filed Nov. 11, 2008) all of which are hereby incorporated by reference herein in their entirety.
Number | Date | Country | |
---|---|---|---|
61113534 | Nov 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16048438 | Jul 2018 | US |
Child | 16999592 | US | |
Parent | 12613739 | Nov 2009 | US |
Child | 16048438 | US |