1. Field of the Invention
The invention relates to a haptic response simulation method, more particularly to a method for generating real-time haptic response information for a haptic simulating device during a three-dimensional surgery simulation.
2. Description of the Related Art
Common surgical tools for spine surgeries have various shapes, including basic shapes, such as spherical (e.g., round fluted burr, round diamond burr, drum burr), ellipsoidal, cylindrical (e.g., heliocoidal rasp, diamond disc, straight router), frusto-conical, conical, and paraboloid, and combinations of these basic shapes (e.g., Acorn tool, which is composed of a cylindrical shape and a conical shape, Neuro tool, which is composed of a cylindrical shape and a semi-ellipsoid shape, Barrel tool, which is composed of a cylindrical shape and a semi-spherical shape), etc. One constraint of conventional surgery simulation systems is that all surgery simulations can only be done by virtual tools of the spherical burr type.
Another constraint of conventional surgery simulation systems is that the computations are very complicated and time consuming, thereby adversely affecting the resulting haptic responses, which should theoretically be in real-time.
Therefore, the object of the present invention is to provide a method for generating real-time haptic response information for a haptic simulating device that can represent various virtual tool types and that can reduce computation time.
According to this invention, there is provided a method for generating real-time haptic response information for a haptic simulating device during a surgery simulation performed on an object volume by a virtual tool that is associated with the haptic simulating device. The object volume is defined in a three-dimensional object coordinate system, and includes a plurality of uniformly-spaced-apart voxels. Each of the voxels is labeled as one of a tissue voxel and a null voxel, and has a voxel center position expressed by integer coordinate components in the object coordinate system. The object volume further includes a plurality of object boundary points, each of which is located between a corresponding adjacent pair of the tissue and null voxels.
The method includes the steps of:
(a) receiving a select input corresponding to a selected type of the virtual tool, the selected type being selected from a group consisting of a cylindrical type, a frusto-conical type, a conical type, an ellipsoidal type, a paraboloid type, and combinations thereof;
(b) obtaining a plurality of tool boundary points of the virtual tool based on the selected type of the virtual tool;
(c) obtaining a current reference position of the virtual tool in the object coordinate system, the current reference position being temporally spaced apart from a previously obtained reference position of the virtual tool by a predefined haptic period;
(d) determining a current tool subvolume of the object volume in the object coordinate system based on the current reference position of the virtual tool and predefined dimensions of the virtual tool corresponding to the selected type in the object coordinate system; and
(e) upon determining that the current tool subvolume has at least one of the tissue voxels, performing the sub-steps of
The present invention provides a method that is more efficient and that permits surgery simulations using virtual tools of types other than the spherical burr type.
Other features and advantages of the present invention will become apparent in the following detailed description of the preferred embodiment with reference to the accompanying drawings, of which:
a) to 18(c) are schematic diagrams, illustrating the determination of the changes made to an object volume by the virtual tool in sub-step S154;
a) to 19(d) are schematic diagrams of a simplified 2D example for illustrating a separation check procedure;
a) to 20(d) are schematic diagrams, respectively illustrating front, top, side and back views of an image construction of an object volume in an exemplary application;
a) and 21(b),
a) to 24(c) are schematic diagrams for illustrating the image constructions of an object volume for another exemplary application during a surgery simulation performed by a virtual tool; and
Referring to
With reference to
The method for generating real-time haptic response information for the haptic simulating device 3 during the surgery simulation according to the present invention is implemented by the computing apparatus 1 as configured by a program module (not shown) to provide force information related to strength and direction of the force to be generated by the haptic simulating device 3. It should be noted herein that the computing apparatus 1 not only controls the haptic response, but also controls visual response for the surgery simulation so as to provide the most realistic surgery environment for the user 5. Due to the difference in refreshing rates, two separate execution threads are used for visual response processing and haptic response processing. Thus, the program module includes a haptic response module 11 and a display module 12.
The image database 51 contains a plurality of image data sets. The image data sets correspond to pixels in two-dimensional (2D) image slices obtained from CAT-scan (CT) or magnetic resonance imaging (MRI) (and possibly other image slices generated by linear interpolation based on the image slices obtained from CT or MRI), and correspond to voxels in the object volume. Each of the image data sets contains a first-axis coordinate component, a second-axis coordinate component, a third-axis coordinate component, and a gray-scale value. The first, second and third-axis coordinate components are integer coordinate components, and cooperate to indicate the voxel center position of the corresponding one of the voxels.
The image data sets stored in the image database 51 are converted into voxel data sets that are to be stored in the volume database 52. The process for this conversion is disclosed in U.S. patent application Ser. No. 12/559,607, which is the basic application for the present CIP application, and is not described herein for the sake of brevity. Each of the voxel data sets represents a corresponding one of the voxels in the object volume, and contains a first-axis coordinate component, a second-axis coordinate component, a third-axis coordinate component, and a voxel label. The voxel label indicates the corresponding one of the voxels to be one of the tissue and null voxels. For the voxel data set that corresponds to each of the voxels in an adjacent pair of the tissue and null voxels, there is also a distance-level value that indicates a distance between the voxel center position of the corresponding voxel in the adjacent pair of the tissue and null voxels and the corresponding object boundary point that is located between the corresponding adjacent pair of the tissue and null voxels in a corresponding one of six directions (±Xobject, ±Yobject, ±Zobject) along the first, second and third axes (Xobject, Yobject, Zobject). The distance-level value ranges from 0 to 1, and is also stored in the volume database 52. Furthermore, the voxel data set corresponding to one of the voxels in an adjacent pair of the tissue and null voxels further contains a face flag, which indicates that the adjacent pair of the tissue and null voxels shares a boundary face in a corresponding one of six directions along the first, second and third axes (Xobject, Yobject, Zobject).
The 3D image database 53 is used for storing a 3D visual output of the object volume with reference to the image data sets recorded in the image database 51 for display on the display screen 2. It should be noted herein that since the feature of the present invention does not reside in the execution thread for the visual response, further details of the same are omitted herein for the sake of brevity.
The input device 4 is used for inputting into the computing apparatus 1 a selected type of the virtual tool and dimensions of the virtual tool corresponding to the selected type. The haptic simulating device 3 outputs to the computing apparatus 1 operating information of the haptic simulating device 3, which includes the current reference position of the sensing ball 33 (i.e., the current reference position of the virtual tool) as represented by three coordinate components relative to the object coordinate system, the current orientation of the virtual tool as determined from three angular components (or three components of one vector) relative to the object coordinate system, and a current status of the virtual tool. The current status may be one of cutting and non-cutting. In case of a burring surgery, where the virtual tool is a ball-shaped rotatable burring tool, the current status is one of rotating (cutting) and non-rotating (non-cutting).
An initial state of the haptic simulating device 3 in each haptic step determines a tool coordinate system, which is defined by fourth, fifth and sixth axes (Xtool, Ytool, Ztool), where the sixth axis (Ztool) is a longitudinal axis defined by the handle 32 of the haptic simulating device 3, and the fourth and fifth axes (Xtool, Ytool) are computed with reference to the sixth axis (Ztool) due to their orthogonal relationship to each other and to the sixth axis (Ztool). In this embodiment, a button 321 of the handle 32 defines the fifth axis (Ytool).
Moreover, since the object boundary points only exist between adjacent pairs of the tissue and null voxels, the distance level values are only computed for the voxels in the adjacent pairs of the tissue and null voxels. In addition, a voxel data set may have a maximum of six distance-level values, respectively representing the location of the object boundary points in the six directions (±Xobject, ±Yobject, ±Zobject).
With reference to
In step S10, a tool initialization procedure is performed. In this embodiment, step 10 includes three sub-steps. In sub-step S101, a select input corresponding to a selected type of the virtual tool is received. The selected type is selected from a group consisting of a cylindrical type (e.g., barrel burr, heliocoidal rasp, diamond disc, straight router, etc.), a frusto-conical type, a conical type, a spherical type (e.g., round fluted burr, round diamond burr, drum burr, etc.), an ellipsoidal type, a paraboloid type, and combinations (e.g., Acorn tool, which is composed of a cylindrical shape and a conical shape, Neuro tool, which is composed of a cylindrical shape and a semi-ellipsoid shape, Barrel tool, which is composed of a cylindrical shape and a semi-spherical shape, etc.) thereof. With further reference to
With reference to
with the distance between two adjacent tool boundary points being (d). As for the side surfaces of the frusto-cone, the tool boundary points are located along the circumference of each circle centered along the sixth axis (Ztool) and having a radius of
where (n2) is an integer and
with the distance between two adjacent tool boundary points being (d). It should be noted herein that in the cases where the number of the tool boundary points located along the circumference of the same circle using the above method is not a factor of 360 degrees, the closest integer that is a factor of 360 degrees is taken to be the actual number of the tool boundary points for that circle. As a result, the distance between two adjacent tool boundary points for this kind of circumstances is no longer (d).
With reference to
As with the above, assuming that the distance between the centers of two adjacent voxels is (d), the tool boundary points of the ellipsoidal type are located along the circumference of each circle having a radius of
where q=±n3×d and (n3) is an integer and
with the distance between two adjacent tool boundary points being (d). As with the frusto-conical type, it should be noted herein that in the cases where the number of the tool boundary points located along the circumference of the same circle using the above method is not a factor of 360 degrees, the closest integer that is a factor of 360 degrees is taken to be the actual number of the tool boundary points for that circle. As a result, the distance between two adjacent tool boundary points for this kind of circumstances is no longer (d).
Referring back to
In step S14, a current status of the virtual tool (i.e., cutting or non-cutting) is obtained. If the current status is cutting, the process goes to step S15. Otherwise, the process goes to step S16.
In step S15, force information of a force to be generated by the haptic simulating device 3 is determined. Step S15 includes five sub-steps: sub-step S151, sub-step S152, sub-step S153, sub-step S154 and sub-step S155.
In sub-step S151, a tool swept subvolume is determined in the object coordinate system based on the current reference position of the virtual tool, the previously obtained reference position of the virtual tool, and the predefined dimensions of the virtual tool. The tool swept subvolume encloses both the virtual tool in the current haptic step and the virtual tool in the previous haptic step. Only the voxels within the tool swept subvolume are possibly removed during the haptic period. Therefore, the purpose of determining the tool swept subvolume is to define the maximum and minimum points in each of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system for computation of the force information. In the following description, the determination of the tool swept subvolume for various types of the virtual tool are provided.
In this embodiment, the tool swept subvolume has the shape of a rectangular parallelepiped, and is determined by finding boundary of a cuboid that encloses the virtual tools of the previous and current haptic steps.
As shown in
Referring back to
where d=√{square root over (ay2+az2)}, sin θx=ay/d, cos θx=az/d sin θy=ax, and cos θy=d.
Subsequently, in sub-step S153, the positions of the tool boundary points that are disposed within the current tool subvolume are determined based on the current reference position of the virtual tool and the predefined dimensions of the virtual tool. In particular, the position of each of the tool boundary points is determined by locating a corresponding intersection between an outer surface of the virtual tool that is determined from the current center position of the virtual tool and the predefined dimensions of the virtual tool corresponding to the selected type, and a corresponding line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject), and that has integer coordinate components in the other two of the first, second and third axes (Xobject, Yobject, Zobject). In the following descriptions with reference to
With reference to
so as to obtain
represents a surface quadratic equation of the virtual tool of the frusto-conical type in the tool coordinate system, 0≦z≦h, and
represents the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system expressed in the tool coordinate system and where A=(v′x2+v′y2−a2), B=(v′xp′x+v′yp′x−ab), C=(p′x2+p′s2−b2),
and followed by substituting
back into
to obtain coordinates of the intersections in the tool coordinate system when the condition of 0≦z≦h is satisfied.
It is apparent from
The intersection between the outer surface of the virtual tool of the frusto-conical type other than the top and bottom surfaces and the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system is located by substituting
so as to obtain an expression of t in terms of v′x, v′y, v′z, p′x, p′y, p′z, r1, r2 and h, followed by substituting the expression of t into
so as to obtain x, y and z coordinates of the intersection in a tool coordinate system when the condition of 0<z<h is satisfied, where
represents a surface quadratic equation of the virtual tool of the frusto-conical type in the tool coordinate system, 0≦z≦h, and
represents the line that is parallel to one of the first, second and third axes of the object coordinate system expressed in the tool coordinate system.
The intersection between the bottom surface of the virtual tool of the frusto-conical type and the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system is located by substituting z=0 into z=v′zt+p′z to obtain an expression of t in terms of v′z and p′z, followed by substituting the expression of t into x=v′xt+p′x and y=v′yt+p′y to obtain x and y coordinates of the intersection in the tool coordinate system when the condition of x2+y2≦r22 is satisfied.
The intersection between the top surface of the virtual tool of the frusto-conical type and the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system is located by substituting z=h into z=v′zt+p′z to obtain an expression of t in terms of v′z and p′z, followed by substituting the expression of t into x=v′xt+p′x and y=v′yt+p′y to obtain x and y coordinates of the intersection in the tool coordinate system when the condition of x2+y2≦r12 is satisfied.
With reference to
The intersections are located in sub-step S153 by substituting
so as to obtain
represents a surface quadratic equation of the virtual tool of the ellipsoidal type in a tool coordinate system, and
represents the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system expressed in the tool coordinate system, and where A=(a2+b2+c2), B=(ai+bj−ck), C=(i2+j2+k2−1),
followed by substituting
back into
to obtain x, y and z coordinates of the intersection in the tool coordinate system when the condition of −rz<z<rz is satisfied.
With reference to
so as to obtain
represents a surface quadratic equation of the virtual tool of the paraboloid type in a tool coordinate system, and
represents the line that is parallel to one of the first, second and third axes (Xobject, Yobject, Zobject) of the object coordinate system expressed in the tool coordinate system, and where A=(v′x2+v′y2),
and C=(p′x2+p′y2+r2p′z), followed by substituting
back into
to obtain x, y and z coordinates of the intersection in the tool coordinate system when the condition of 0≦z≦h is satisfied.
With reference to
It should be noted herein that the volume removed by the virtual tool within one haptic period is approximated to be the volume covered by the virtual tool located at the current reference position and the previous reference position. This approximation is justified under a feed rate of within 100 mm/s of the virtual tool due to the following reasons. With reference to
Referring back to
Sub-step S154 is performed to manipulate the object volume and update the volume database 52 (as shown in
In a simpler implementation, in order to reduce computations, the tool boundary points are located dynamically with reference to a feed direction of the virtual tool from the previously obtained reference position of the virtual tool to the current reference position of the virtual tool and a central axis of the virtual tool. For instance, when the configuration of the virtual tool is symmetrical with respect to the fourth, fifth and sixth axes (Xtool, Ytool, Ztool), e.g., of the spherical type, the tool boundary points are only located on half of the virtual tool closest to the tip of the virtual tool. When the configuration of the virtual tool is elongated in a direction parallel to the central axis of the virtual tool, e.g., of the cylindrical type, the ellipsoidal type, and the combinations of these types, the tool boundary points are located according to the feed direction of the virtual tool. For instance, for the virtual tool of the cylindrical type, when the feed direction is parallel to the central axis, the tool boundary points are only located on the top surface of the cylinder, and when the feed direction is perpendicular to the central axis, the tool boundary points are only located on the side surface of the cylinder that is perpendicular to the feed direction.
Referring back to
With reference to
In sub-step S1551, an outer surface of the virtual tool is determined according to the current reference position of the virtual tool and the predefined dimensions of the virtual tool.
In sub-step S1552, the outer surface of the virtual tool is divided into a plurality of surface elements (A).
In sub-step S1553, for each of the tool boundary points that is located between an adjacent pair of the tissue voxels, the tool boundary point is set as a first type.
In sub-step S1554, for each of the tool boundary points that is located between one of the tissue voxels and one of the object boundary points corresponding to the corresponding adjacent pair of the tissue and null voxels, the tool boundary point is set as the first type.
In sub-step S1555, for each of the surface elements (A), upon determining that a closest one of the tool boundary points relative to the surface element (A) is the first-type, an element force component is determined according to the feed direction, the feed distance, and an area of the surface element (A).
In sub-step S1556, the element force components obtained in sub-step S1555 are summed to result in the force information. The force information essentially includes strength of three direction force components FX, FY, FZ along the fourth, fifth and sixth axes (Xtool, Ytool, Ztool) of the tool coordinate system.
Specifically, in sub-step S1555, the element force component includes first, second, third and fourth element sub-components. The first element sub-component is in a direction opposite to a rotation direction of the virtual tool. The second element sub-component is in a direction orthogonal to the rotation direction. The third element sub-component is in a direction opposite to a longitudinal axis of the virtual tool. The fourth element sub-component is in a direction opposite to the feed direction. Strengths of the first, second, third and fourth element sub-components are determined according to the following equations:
Ftan g=KhdAfrate
Fradial=KrdAfrate
Faxial=KadAfrate
Fthrust=KtdAfrate
where Ftan g represents the first element sub-component, Fradial represents the second element sub-component, Faxial represents the third element sub-component, Fthrust represents the fourth element sub-component, Kh, Kr, Ka and Kt represent predefined force parameters in the predefined force parameter set respectively corresponding to the first, second, third and fourth element sub-components, dA represents the area of the surface element (A), and frate represents a feed rate of the virtual tool and is a product of the feed distance and the predefined haptic period.
Recall that if it is determined in step S14 that the current status of the virtual tool is non-cutting, the process goes to step S16. In step S16, force information of a force that is to be generated by the haptic simulating device 3 in a direction opposite to the feed direction and that has a predefined strength is provided. This force is a repulsive force provided to notify the user 5 (as shown in
It should be further noted herein that the method of the present invention may also apply to an object volume whose voxels are categorized into more than two types (not just tissue voxel and null voxel). For instance, the tissue voxels may represent one of skin voxel, bone voxel, muscle voxel, nerve voxel, etc., the labelling of which is determined based on the gray-scale values corresponding thereto. In such instance, there will be different sets of predefined force parameters for different types of the tissues for use in force information computations, and the image constructed from the voxel data sets will have different colours.
Furthermore, reference may be made to U.S. patent application Ser. No. 12/559,607 for further details related to the computations of the force information.
In this embodiment, a separation check procedure (step S21 as shown in
Recall that the voxel data set corresponding to one of the voxels in an adjacent pair of the tissue and null voxels further contains the face flag that indicates that the adjacent pair of the tissue and null voxels shares a boundary face in a corresponding one of six directions along the first, second and third axes (Xobject, Yobject, Zobject). Sub-step S154 further includes updating the voxel data sets of the voxels within the current tool subvolume with reference to the positions of the tool boundary points determined in sub-step S153, and the voxel center positions of at least one of the tissue and null voxels within the current tool subvolume. When at least one boundary face cannot be connected to the other boundary faces, it is determined that the object volume contains at least two separate groups of tissue voxels that form two separate tissue structures with reference to the face flags of the updated voxel data sets.
In the simplified 2D example shown in
By manipulating the distance-level values with the intersections of the virtual tool with lines parallel to the first, second and third axes (Xobject, Yobject, Zobject), tissue surface changes caused by cutting can be simulated. For example, a tool boundary point (a) (shown in
All boundary faces of an independent tissue structure should be connected together. However, it would be time consuming to check all of them to determine if there are now two or more separate tissue structures after a cutting operation by the virtual tool. Therefore, in order to save computation time, this method only checks if the new boundary faces generated from the replacement of each tissue voxel with a null voxel are connected.
In this embodiment, four edges of every new boundary face are recorded. For each recorded edge, all new boundary faces that share this edge in common are also recorded for this edge. If a shared boundary face is an original boundary face, the original boundary face is not recorded for the recorded edge. For example, referring to
With reference to
With reference to
In particular, when a tissue voxel is replaced with a null voxel, data related to every new boundary face is stored in a first hash table, and then an iterative process is implemented. The stored data includes a face type and a position of the corresponding boundary face. The face type is one of first, second and third types, indicating the corresponding boundary face has a fixed coordinate component in a corresponding one of the first, second and third axes (Xobject, Yobject, Zobject). The position represents the fixed coordinate component in the corresponding axes (Xobject, Yobject, Zobject) for the corresponding boundary face.
First, one boundary face is taken out of the first hash table to be stored in a second hash table as a processing basis. The remaining boundary faces in the first hash table are checked to see if they share any of the four edges of the basic boundary face with the basic boundary face. If there is at least one edge-sharing boundary face in the first hash table, said at least one edge-sharing boundary face is also taken out of the first hash table to be stored in the second hash table, and the process iterates with said at least one edge-sharing boundary face serving as the basic boundary face. The iteration is completed wgeb the first hash table is empty or until no edge-sharing boundary faces can be found for serving as the basic boundary face. In the case where the iteration ends with the first hash table empty, there is only one tissue structure. Otherwise, there are at least two separate tissue structures, with the first and second hash tables respectively recording the boundary faces of the tissue structures. In the case where there are two tissue structures, the seed-and-flood algorithm is used to determine which tissue voxels belong to which one of the groups that respectively constitute separate tissue structures.
Referring to the 2 D simplified example of
To iterate the process, the second hash table now becomes the first hash table for a subsequent separation check. When the tissue voxel (V) is nullified successively, the boundary face (f3) is deleted and removed from the new first hash table. New boundary faces (f4), (f5) and (f6) are generated and are recorded in the new first hash table. Then, the iteration begins. After the iteration process is completed, it is found that each of edges (d), (e), (i) and (h) is common to at least two of the boundary faces (f1), (f2), (f4), (f5) and (f6) stored in the new first hash table, and therefore, the new first hash table is emptied and a new second hash table stores the boundary faces (f1), (f2), (f4), (f5) and (f6).
When the tissue voxel (W) is nullified successively, the boundary face (f4) is deleted and a new boundary face (f7) is generated. As such, the current first hash table stores the boundary faces (f1), (f2), (f5), (f6) and (f7). No matter which boundary face is used to begin the iteration process, the first hash table for the current iteration process will never be emptied, indicating that there are at least two separate tissue structures in the object volume (with the boundary faces (f1), (f2) and (f7) connected as a group, and the boundary faces (f5) and (f6) connected as another group).
Finally, the seed-and-flood algorithm is used to determine which tissue voxels belong to which one of the groups that respectively constitute separate tissue structures with a tissue voxel that shares any one of the boundary faces in one of the first and second hash tables assigned as a seed voxel (e.g., tissue voxel (S1) or (S2)).
As shown in
This surgery simulation includes the following steps: cutting the L4 spinal process (C1) by using a straight router with a diameter of 2 mm and a length of 12 mm (as shown in
Another exemplary application of the method is shown in
This surgery simulation includes the following steps: burring the cervical vertebra (C3, C4) using a burr with a diameter of 5 mm (as shown in
Another exemplary application of the method is shown in
In summary, the method for generating real-time haptic response information for a haptic simulating device can be employed in the medical field for training or rehearsing purposes in order for doctors to get acquainted with the reaction forces that would be encountered during surgical operations so as to enhance stability during actual surgical operations. The advantages of the present invention include:
1. Surgery simulations can be conducted using virtual tools of various virtual tool types, including the cylindrical type, the frusto-conical type, the conical type, the ellipsoidal type (as well as the spherical type), the paraboloid type, and combinations thereof.
2. The computations involved in the generation of the haptic response information are simplified, and thus require relatively less time as compared to the prior art.
While the present invention has been described in connection with what is considered the most practical and preferred embodiment, it is understood that this invention is not limited to the disclosed embodiment but is intended to cover various arrangements included within the spirit and scope of the broadest interpretation so as to encompass all such modifications and equivalent arrangements.
Number | Date | Country | Kind |
---|---|---|---|
099101062 | Jan 2010 | TW | national |
This application claims priority of Taiwanese Application No. 099101062, filed on Jan. 15, 2010. This application is also a continuation-in-part (CIP) of U.S. patent application Ser. No. 12/559,607, entitled “METHOD FOR GENERATING REAL-TIME HAPTIC RESPONSE INFORMATION FOR A HAPTIC SIMULATING DEVICE”, filed on Sep. 15, 2009.
Number | Date | Country | |
---|---|---|---|
Parent | 12559607 | Sep 2009 | US |
Child | 12848578 | US |