Etd 4241
Etd 4241
Etd 4241
by
Date Approved:
ii
Abstract
This thesis presents a knotting and suturing model based on the Virtual Training
Environment (VTE). We introduce a mechanics-based approach to real-time simula-
tion of deformable linear objects (DLOs) with visual and force feedback, which can
represent the mechanical properties of a real thread, such as stretching, compressing,
bending, and twisting. We also present how forces propagate along the suture when
the user pulls it with one or two hands.
The user can practice the basic suturing techniques on the simulator presented
in this thesis. The pre-wound suturing target is modeled as a modified mass-spring
system. The tools involved in the live suturing procedures are also simulated. Colli-
sions between the soft tissue and the needle, between the soft tissue and the suture
are analyzed. In addition, the tissue tearing is also studied in this thesis.
Furthermore, this thesis addresses the GPU application in simulating deformable
objects.
iii
To my wife Lucia, whose support, patience, and encouragement helped make this
thesis a reality. To the family who taught and encouraged me to follow my dreams
and passions. And to my adorable son Noah.
iv
Acknowledgments
Thanks to my senior supervisor Dr. Shahram Payandeh for the advice and support
throughout this thesis work. This work would not be possible without his enthusiasm
and knowledge of inter-disciplinary research.
Thanks to my supervisor Dr. Hao Zhang for his support and to Dr. Ghassan
Hamarneh for examining this thesis.
Also thanks to Dr. John Jones for chairing my defence.
I thank everybody who works at Experiment Robotics Lab. I would never be
graduating without your support.
v
Contents
Approval ii
Abstract iii
Dedication iv
Acknowledgments v
Contents vi
List of Tables x
List of Figures xi
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 VTE System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 VTE Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Haptic Feed-back . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.1 Knotting and Unknotting . . . . . . . . . . . . . . . . . . . . 11
1.3.2 Suturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.3 GPU Application in Deformable Object Simulation . . . . . . 16
1.4 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1 Knotting and Unknotting . . . . . . . . . . . . . . . . . . . . 17
vi
1.4.2 Suturing Simulation . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.3 GPU Application . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5 Dissertation Road Map . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Suturing Simulation 37
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Collision Detection and Management . . . . . . . . . . . . . . . . . . 38
3.2.1 Collisions between Needle Drivers and the Needle . . . . . . . 38
3.2.2 Collisions between the Needle and the Soft Tissue . . . . . . . 39
3.2.3 Collisions between the Suture and the soft tissue . . . . . . . . 39
3.3 The process of suturing . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Stitch Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.1 Tissue Tearing . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5 Haptic Force Feed-back . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6 Experiment Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.1 Suturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.2 Knotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.3 Tearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
vii
4 Knotting and Unknotting 52
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2 Force Propagation Along the Suture . . . . . . . . . . . . . . . . . . . 53
4.2.1 Condition A - no propagation . . . . . . . . . . . . . . . . . . 53
4.2.2 Condition B - one-hand pulling . . . . . . . . . . . . . . . . . 53
4.2.3 Condition C - two-hand pulling . . . . . . . . . . . . . . . . . 54
4.3 Collision Detection and Management . . . . . . . . . . . . . . . . . . 55
4.4 Haptic Force Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5 Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5.2 Experiment of Knotting . . . . . . . . . . . . . . . . . . . . . 67
4.5.3 Experiment of Unknotting . . . . . . . . . . . . . . . . . . . . 71
viii
B.1.1 Piercing the deformable mesh . . . . . . . . . . . . . . . . . . 94
B.1.2 Slipping on the Needle . . . . . . . . . . . . . . . . . . . . . . 95
B.1.3 Slipping on the Suture . . . . . . . . . . . . . . . . . . . . . . 96
B.1.4 Suture Tension . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Bibliography 115
ix
List of Tables
x
List of Figures
2.1 Suture model. Pi is the ith mass point. All mass points are connected
through segments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Virtual Coupling. Pi0 is the point of the haptic device end-effector. Pi
is virtually grasped point. vi is the velocity of point Pi . fi is the net
force acting on point Pi . fh is the user input force from virtual coupling. 23
2.3 Two suture segments Pa Pb and Pc Pd are sliding on each other, where
point C is the contact point; va , vb , vc , and vd are the velocities of
points Pa , Pb , Pc , and Pd respectively. . . . . . . . . . . . . . . . . . . 25
2.4 Intersection of the two contact segments. Point C and E are contact
points. s is the distance between the center lines of two contact seg-
ments. r is radius of the suture segment. . . . . . . . . . . . . . . . . 25
2.5 Linear Spring. Point Pi and Pi+1 are two mass points. lr is the rest
length of the spring. li is the current length of the spring. . . . . . . . 27
2.6 Linear Damper. Point Pi and Pi+1 are two mass points. vi and vi+1
are the velocities of Point Pi and Pi+1 respectively. vi+1 and vi are the
norms of the components of the velocity of vi and vi+1 on the direction
of Pi Pi+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
xi
2.7 Torsional Spring. ei1 and ei are the unit vectors with directions from
point, Pi1 to Pi , and from Pi to Pi+1 , respectively. ti1 and ti+1 are the
unit vectors with directions the same as the torsional force applied at
the two endpoints and therefore, orthogonal to ei1 and ei respectively
and in the plane formed by segment Pi1 Pi and Pi Pi+1 . . . . . . . . 28
2.8 Swivel Damper. The linear damper and the torsional damper are work-
ing in the plane formed by Pi1 Pi and Pi Pi+1 . The swivel damper is
orthogonal to the linear damper and the torsional damper. . . . . . . 31
2.9 (a) A needle hold by a needle driver. (b) A needle driver commonly
used in the surgery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.10 The model of the needle driver. Triangle AOB is the open triangle of
the needle driver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11 Needle model - arc T E represents the needle during simulation. Point
O is the needle arc center. Point T and E are the tip point and the
end point of the needle respectively. r is the radius of the arc T E. y
is the unit tangent vector of arc T E at point T . . . . . . . . . . . . . 35
2.12 A suture is attached on the end ponit of a needle during the simulation 36
3.1 Needle model - arc T E represents the needle during simulation. Point
O is the needle arc center. Point T and E are the tip point and the
end point of the needle respectively. r is the radius of the arc T E. y
is the unit tangent vector of arc T E at point T . . . . . . . . . . . . . 38
3.2 Bounding box of the needle tip . . . . . . . . . . . . . . . . . . . . . 39
3.3 Schematic of a suturing pattern. Node C and N are top constraints.
Node D and E are bottom constraints . . . . . . . . . . . . . . . . . 40
3.4 Collisions between suture and soft tissue . . . . . . . . . . . . . . . . 40
3.5 (a) Triangles before subdivisions. (b) Triangles after subdivisions . . 41
3.6 (a) Tear-into the soft tissue. C is the top start constraint and D is a
groove constraint (b) Tear-through the soft tissue. C is the top start
constraint and D is the bottom start constraint. . . . . . . . . . . . . 43
xii
3.7 (a) Start state of the first tearing polygon. (b) Terminiation state of
the last tearing polygon . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.8 Map the surface to XZ plane to find out the intersection points . . . 44
3.9 Surface polygon subdivision in tear-into condition where the tearing
path is not across the wound . . . . . . . . . . . . . . . . . . . . . . . 45
3.10 Plot about the force acting on a pierced node when the suture tears
the tissue from this node . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.11 Before the needle pierces tissue. (a) Screen shot (b) Wire frame . . . 47
3.12 After the needle pierces the tissue. (a) Screen shot (b) Wire frame . . 47
3.13 Constraint slipping on the needle. (a) Screen shot (b) Wire frame . . 48
3.14 Constraint slipping on the suture. (a) Screen shot (b) Wire frame . . 48
3.15 A simple continuous pattern. (a) Screen shot (b) Wire frame . . . . . 49
3.16 A single stitch with a knot. (a) Screen shot (b) Wire frame . . . . . . 49
3.17 Tear-into - tearing path not across the wound. (a) Before tearing (b)
After tearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.18 Tear-into - tearing path across the wound. (a) Before tearing (b) After
tearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.19 Tear-through - tearing path across the wound. (a) Before tearing (b)
After tearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.20 Tear-through - tearing path not across the wound. (a) Before tearing
(b) After tearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.1 Linear Spring. Point Pi and Pi+1 are two consecutive mass points. li
is the current segment length between Pi and Pi+1 . lmin and lmax are
the minimum and maximum length of the spring. . . . . . . . . . . . 53
4.2 Condition A - no force propagation. Point Pi and Pi+1 are two consec-
utive mass points. Pi+1 is the grasped point. li is the current segment
length between Pi and Pi+1 . fh is the user haptic input force. . . . . . 54
xiii
4.3 Condition B - pulling one point. Point Pi and Pi+1 are two consecutive
mass points. Pi+1 is the grasped point. lmax is the max segment length
between Pi and Pi+1 . fh is the user haptic input force. fp is the force
that be propagated. fm is the force creating the movtion. . . . . . . . 55
4.4 Condition C - pulling two points. Pk and Pi are the two grasped points.
fhk and fhi are the user haptic input forces. fpk and fpi are the forces
that be propagated. fmk and fmi are the forces creating the movtion. . 56
4.5 Bounding-Volume Hierarchy . . . . . . . . . . . . . . . . . . . . . . . 57
4.6 Collision management of two suture segments. d is the distance be-
tween the center lines of the two contact segments. r is the radius of
the segment. is the adjust constant. . . . . . . . . . . . . . . . . . . 57
4.7 Two suture segments Pa Pb and Pc Pd are sliding on each other, where
point C is the contact point; va , vb , vc , and vd are the velocities of
points Pa , Pb , Pc , and Pd respectively. . . . . . . . . . . . . . . . . . . 58
4.8 Virtual coupling. Point P is the real position of the end factor and
point Q is the grabbed point. K is the spring. B is the damper
working against the spring. . . . . . . . . . . . . . . . . . . . . . . . . 59
4.9 Plot of the spring force acting on one mass node . . . . . . . . . . . . 59
4.10 Plot of the spring damper acting on one mass node . . . . . . . . . . 60
4.11 Plot of the torsional spring acting on one mass node . . . . . . . . . . 60
4.12 Plot of the torsional damper acting on one mass node . . . . . . . . . 61
4.13 Plot of the swivel damper acting on one mass node . . . . . . . . . . 61
4.14 Screen shot of suture colliding. The user is gasping the suture and
making it collide over itself. This is to demonstrate how friction force
changes when the friction constant is changed. . . . . . . . . . . . . . 62
4.15 Friction plot when = 0.1 . . . . . . . . . . . . . . . . . . . . . . . . 63
4.16 Friction plot when = 0.5 . . . . . . . . . . . . . . . . . . . . . . . . 63
4.17 Friction plot when = 1.0 . . . . . . . . . . . . . . . . . . . . . . . . 64
4.18 Friction plot when = 2.0 . . . . . . . . . . . . . . . . . . . . . . . . 64
4.19 Screen shot of one-hand pulling . . . . . . . . . . . . . . . . . . . . . 65
4.20 Output force plot of one-hand pulling . . . . . . . . . . . . . . . . . . 65
xiv
4.21 Screen shot of knotting . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.22 Output force plot of left hand when pulling the suture with two Phan-
tom Omis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.23 Output force plot of right hand when pulling the suture with two Phan-
tom Omis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.24 Suture model 1. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom
Omnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.25 Suture model 2. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a knot with two Phantom
Omnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.26 Suture model 3. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom
Omnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.27 Suture model 4. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom
Omnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.28 Suture model 5. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom
Omnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.29 Success unknotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.30 Unsuccessful unknotting . . . . . . . . . . . . . . . . . . . . . . . . . 72
xv
B.1 Subdivision process when a portion of the mesh is pierced by the needle.
a) Original mesh. b) After initial subdivision by being pierced by the
needle at the highlighted point. c) After final subdivision of original
triangles edges. Note the new vertices in c) are moved a short distance
away from the pierced vertex. . . . . . . . . . . . . . . . . . . . . . . 95
B.2 Calculating the slip; gray indicates the suture, with arrows showing the
magnitude and direction of the tension (a missing arrowhead indicates
zero tension). Black indicates the shape of the mesh and the arrow
shows the vector representing the summed mesh force. In a), the suture
will not slip, because the tensions are equal in each direction, and the
mesh force agrees equally with each direction of the suture. Part b)
shows a normal case where one end of the suture is being pulled by the
user while the other has no force; both the mesh force and the tension
difference will cause the pierced vertex to slip away from the tensioned
suture. Part c) shows a case where the mesh force will cause little effect
on slippage, due to the directions of the suture being nearly identical;
the suture will slip due to the difference in tension magnitude in each
direction only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.3 Calculation of tension . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
xvi
Chapter 1
Introduction
1.1 Motivation
Virtual reality (VR) has been attracting an increasing interest in computing and sci-
ence research fields. It is a substantial and ubiquitous technology by which humans
can interact with computer-generated virtual environments in such a way that simu-
lates real life and engages all the senses. It comes across applications for education,
learning, and training. In virtual reality, the user is placed in a three-dimensional
environment. With the assistance of haptic devices, the user not only can see the vir-
tual objects, but also can feel and manipulate them and experience the consequences.
Although the entertainment industry is VRs most widely known application, the real
engagement of virtual reality lies in such fields as medicine engineering, and military.
By virtual reality, scientists can triple the rate of oil discovery, pilots can practice
flying techniques in virtual military training environment, and surgeons can improve
their surgical skills on virtual objects instead of real patients.
There are usually three main components in one typical virtual training environ-
ment: The visual interface which might be a video screen, a computer monitor, or
one of a variety of head-mounted displays (HMD), depending upon the visual require-
ments of the task being trained. The haptic interface which can provide tactile and
force feedback; and the tracking system which will detect interaction between the
virtual instruments and tissues. These three components, working in conjunction, are
1
CHAPTER 1. INTRODUCTION 2
capable of producing a compelling impression that the trainee is interacting with the
real tissue.
In the medical area, developing virtual surgical training environments has become
one of the most practical topics of interest. The virtual training environments offer
many benefits compared to the traditional training methods, including cost reduction,
decreasing patient risk, flexibility, and the possibility of self-placed learning. Surgical
training is traditionally performed in a master-and-apprentice model which requires
the skilled surgeons to spend much time. The novice surgeon in training watches an
expert surgeon performing an operation on the real patients. After sufficient expe-
rience, he or she may perform operations under the expert guidance. After enough
practice the trainee then becomes an expert surgeon. Plastic models are the com-
mon models used in the traditional training methods, which can only demonstrate a
limited range of anatomy and cannot reflect the mechanical properties of the living
tissue, though they are relatively less expensive and can be used many times. Further
more, not only do different procedures require different models, which will increase
the cost, not all the required models are available. For practicing the cutting and
stitching tasks, plastic models must often be replaced. Animals such as live pigs
are anatomically similar to humans, however, they do not always reflect the human
anatomy and are expensive. Cadavers present the most realistic anatomy, but the tis-
sue responses are affected by preserving technologies. In addition, there is a limited
supply of cadavers for the surgical training and they are generally more expensive.
Simulations trying to mimic the entire operation frequently fail because of lacking
fidelity in some of the component tasks. However, in any operation, there are always
some critical procedures that the trainee must master, which will result in compli-
cations that can impair the outcome of the operation or even endanger the patients,
if it is performed incorrectly. Virtual training systems can significantly lessen the
probability of morbidity by exposing the trainee to the potentially critical procedure
in a safe and structured environment. Just as pilots train for emergency conditions
on simulators, surgeons can train for the unanticipated complication and prepare for
it. First, the virtual training systems are able to provide different training scenarios
easily, such as different anatomy, pathologies, and operating environment. Secondly,
CHAPTER 1. INTRODUCTION 3
a virtual environment may also recreate unusual situations which seldom occur in the
operating room. Thirdly, the trainee can practice on the same scenario as many times
as needed without introducing any additional cost, which will likely accelerate the
acquisition of basic surgical skills. In addition, the virtual training environment can
objectively quantify the performance and simulate the result of an operation and will
be no harm or risk to any animals or real patients. Further more, in order to solve
new problems that keep popping up in real surgical procedures, new instruments are
being created every day. Virtual reality systems are uniquely situated as a test bed
of new instruments or procedures because they can provide immediate feedback on
the effectiveness, limitations, and problems of introducing new instruments or im-
plementing new procedures. With the improvements of computer technology, when
virtual models can eventually represent the actual surgical environment with the same
physical properties, texture, and complexities, computer-based simulators can be an
optimal approach for the surgical training.
Recently many surgical training systems have been designed and put into market,
such as, Bronchoscope Training Simulator from Fifth Dimension Technologies, Virtual
Clinic from Cine-Med, CathSim and Endoscopy AccuTouch
R
Simulator from Immer-
sion etc. Unfortunately, there is few such complete systems available and almost all
haptic surgical simulators have their own limit applications. This thesis focuses on
a training simulator for suturing, knotting, and unknotting procedures. All of these
works are built on the Virtual Training Environment (VTE) which has been developed
at Experimental Robotics lab, Simon Fraser University for many years.
In this thesis, we primarily focus on the laparoscopic surgery (also known as mini-
mally invasive surgery, or MIS). MIS has been developing very rapidly in recent years
and is in an intensive development phase of its life cycle. It makes surgery less trau-
matic to the patient. Rather than cutting large incisions in the patient to easily
access the operating target, only a few small incisions are made. Instruments, such
as grasping forceps, scissors, cautery hooks, and staplers, are inserted into the body
through these small holes. The operating site is viewed through a laparoscope which
is also inserted through a small incision. The trauma caused by the operation is
small compared to open surgery, which will speed the recovery and reduce the patient
CHAPTER 1. INTRODUCTION 4
discomfort. However, the surgical skill requirements are greatly increased. While
performing an operation, surgeons cannot rely on traditional eye-hand coordination
since they see a 2D image rather than the real operating site directly. In addition,
camera views of the operating site can be unusual and unnatural compared to the
open surgery, which makes the operation even more demanding.
In this task, the user is required to touch each of the red spheres, so-called target
sphere, on the surface of the textured sphere. The target spheres appear at different
positions every time this task is selected. When the tip of the probe contacts any
target sphere, it disappears. Once the target disappears, a message box pops up
displaying the time taken to touch all the targets. The timer starts when the first
target sphere is contacted, and stops when the last target sphere is contacted.
This task is meant to help the user practice the fine and smooth control of the probe.
The user is required to slide the tip of the probe and draw a curve on the surface of
mesh following the previous path. The user may use two or more probes to do the
tracing task. Each tracing path of a probe has a different color so that the user may
CHAPTER 1. INTRODUCTION 6
tell the tracing belongs to which probe with ease. The idea is to draw a curve with
one probe and then to use the other probe to follow the previous path.
Once the user has mastered the interactions in the previous simple tasks, the relative
complexity of the grasp/pluck task will be more manageable. The grasp/pluck task
is more challenging. The user must grasp each of the smaller target spheres and drop
them into the cylindrical receptacle in the front right corner of the visual field. It is
quite difficult to align the gripper with a target sphere using the keyboard interface.
In any case, it does work in the haptic version, and once all the targets have been
removed from the surface of the textured sphere, a message box pops up indicating
the elapsed time and the number of target spheres that missed the receptacle.
The Teasing tasks are considered as the most challenging task among the four basic
tasks, where the user is required to grasp any part of the target thread and tease
it away from the surface of the deformable mesh. The use may feel a continuous
force while he or she is pulling the thread away. This force is due to both the tissue
between the target thread and the deformable mesh, and the tissue inside the thread.
Once the tissue between target threads and the deformable mesh is broken, this force
will suddenly disappear, and only the force inside the thread remains. The user may
choose to use two probes to grasp the thread, in this case, the user may feel force feed
back from both devices if force feedback is enabled.
Cutting Task
Cutting Task is one of the complex tasks of the current VTE. In this task, soft tissue
is modeled with a surface-based mass-spring model. The surface mesh, which models
the outer surface of the tissue, is composed of triangles. Collision detection between
instruments and models is carried out by intersection checking of a line segment
representing the instrument and triangles of the object mesh. Scalpel, cautery hook
CHAPTER 1. INTRODUCTION 7
virtual tissues, which could produce tactile cues that the trainee can use to assess the
precise location of the laparoscopic tool. The calculations of tactile feedback are com-
puter intensive, which involves tissue parameters such as visco-elasticity, anisotropy,
and nonlinearity.
Particle-based methods such as Mass-Spring System (MSS) and Finite-Element
Method (FEM) are two principal approaches to developing force-reflecting organ mod-
els. In particle-based models, the organs particles - mass nodes - are connected with
springs and dampers. All the particles have their own positions, velocities, and accel-
eration characteristics and are moving under the influence of the implied forces of the
surgical tools. In FEM, the geometric model of an organ can be divided into either
surface or volumetric elements. The properties of each element are calculated and all
the elements are assembled into a working model to computer the deformation of the
organ under the applied forces. FEM relies on modeling the behavior of compliant
biological tissues by differential equations and thus could provide more realistic tissue
dynamics than MSS, although it needs more intensive computation.
A key issue in integrating force feedback into surgical simulators is the high update
rate of haptic rendering required to achieve a stable feel. Real-time surgical simulation
often requires computing the deformation of visco-elastic human tissue and generating
both graphic and haptic feedbacks. Simulating the deformations involves calculating
the tissue successive shape over time. Reaction forces result from the interactions be-
tween the virtual instruments, which are controlled by the haptic devices, and tissue
models. To satisfy the requirement that virtual tissue models must look and behave
realistically, the models must be based on physical laws governing the dynamic behav-
ior of deformable objects. To update the new positions of physics-based deformable
models, it usually requires solving a set of differential equations which is very com-
putationally demanding. The visual display only needs the shape of the models to
be updated at (a minimum of) 30Hz. However, the reaction forces sent to the haptic
interface should be updated at a rate around 1000Hz for high fidelity.
Several commercial force feedback devices are currently available for the surgi-
cal simulation. One of the most commonly used devices is the SensAble PHAN-
TOM Omni
R
from Sensable Technologies, Inc. (PHANTOM, PHANTOM Desktop,
CHAPTER 1. INTRODUCTION 9
PHANTOM Omni, SensAble, and SensAble Technologies, Inc. are trademarks or reg-
istered trademarks of SensAble Technologies, Inc.), which is a point contact device.
Another popular force feedback device is the Laparoscopic Impulse Engine (LapIE)
from Immersion Corporation, which mimics tools used in laparoscopic surgery.
The input devices which the VTE supports are Laparoscopic Impulse Engine (see
Figure 1.2) and Virtual Laparoscopic Interface (see Figure 1.3) from Immersion, Sens-
Able PHANTOM Omni
R
(see Figure 1.4) and SensAble PHANTOM
R
DesktopTM
(see Figure 1.5) from SensAble Technologies, Inc..
The essence of the simulator operation is supporting the interactions between the
models of one or more tissue objects and the virtual instruments. In order to make
it easy to define various shapes for the users and experimenters, we chose the Virtual
Reality Modeling Language (VRML) file format as the means of representing geomet-
ric shapes external to our program. VRML is an open standard for virtual reality and
there are many free VRML models available on the Internet. Though VRML mod-
els have many properties, such as material and texture, we only use geometry and
CHAPTER 1. INTRODUCTION 10
topology information, i.e. vertices coordinates and how they are connected together.
Therefore, we can use any version of VRML files, no matter VRML 1, 2 or 97. A
VRML model can be composed of arbitrary planar polygons, e.g. triangle, rectangle
etc. However, since our progressive subdivision algorithm to simulate cutting is based
on triangle, we only use VRML models composed of triangles.
reality simulation, they may shift continuously until converge to equilibrium points,
which makes them difficult for users to manipulate. In our training systems, because
the purpose is to enable users to feel the force feedback when they manipulate the
suture, especially during knotting and unknotting, to make it more realistic, we need
to consider both external and internal forces to determine the force output. Thus
geometric models are obviously inappropriate.
Some researchers have been focusing on knotting manipulation by robots. In
[1], Wakamatsu, Arai and Hirai established a model of DLOs based on an extension
of differential geometry, and proposed a planning method for knotting/unknotting
of DLOs based on the knot theory. If the initial and the objective states of the
linear object are given, all possible knotting/unknotting plans can be derived and
be executed by their system. However, their proposed models can not simulate the
DLOs dynamically in 3D space. In addition, their system does not allow any user
interaction, and can not simulate the knotting/unknotting procedure in real-time. [2]
describes a 2D DLOs dynamic model based on the differential geometry coordinates
with the minimum number of parameters. Based on the description in this paper,
the static deformation of a linear object have been formulated using the differential
geometry coordinates, but the dynamic deformation has not been investigated. First,
the dynamic 2D deformation of an inextensible linear object is formulated based on a
differential geometry coordinate system. Second, simulation results is presented using
the proposed modeling technique. Next, the proposed dynamic modeling is applied to
the control of a flexible link. In [3], a knot planning from observation(KPO) system is
described. First, this system observes the procedure of tying a knot by a human as a
sequence of movement primitives. Then, by repeating the sequence, it can tie a similar
knot. The topological information of a knot is represented in a P-data representation.
A knot-tying task is converted into a sequence of movement primitives which have
been defined in this paper. In [4], a topological motion planner for manipulating
DLOs and tying knots using two cooperating robot arms was introduced based on
Probabilistic RoadMaps (PRMs). The planner described in this paper takes a model
as input, in the form of a state transition function and constructs a probabilistic
roadmap in the configuration space of the DLO. The effectiveness are demonstrated
CHAPTER 1. INTRODUCTION 13
by tying commonly used knots like bowline, neck-tie, bow (shoe-lace), and stun-sail.
In [5] [6] [7], Cosserat approaches of modeling DLOs based on the Cosserat theory
of elastic rods have been introduced. Cosserat model is well suited for real-time
applications because it needs less computation compared to finite elements models
and provides a clear delineation between basic physical principles, material properties
and mathematical approximations. However, in return, it yields a set of ordinary
differential equations to be solved. If two end points or multiple points along the
length of a suture are specified (as in the procedure of knotting or unknotting with
two hands), it is significantly more difficult to solve these equations. In addition, the
shooting technique which is mentioned in [5] makes it very difficult to integrate
external forces [8].
A particle-based model of a rope is represented in [9] by overlapping spheres rep-
resenting mass-points, which are connected by simple springs. Each mass-point can
collide with other mass points as in the instantaneous elastic collision model, but the
author only considers the linear spring forces and does not allow any user interaction.
In [10], inner bending force and the gravity are taken into consideration. In [11], the
author mentioned gravity, stretch/compression force, forces from bending and twist-
ing, dissipative friction, and contact forces with environment or to self-collision, but
there is no detail about how to compute those forces.
A mass-spring model for suture in surgical training system has been built in [12].
Torsional spring, torsional damper, and viscous damper are modeled in this paper,
but, the author did not use them in the simulation due to the complex computation.
Further more, there is no discussion about collision detection and force propagation
for haptic interaction between the user and the suture model.
1.3.2 Suturing
Suturing is one of the most fundamental tasks common to almost every surgery pro-
cedure used by surgeons worldwide. It can be used in from helping simple wound
closure to complex tissue movements. Poor suturing techniques can cause traumatic
negative influences on patients, such as slow healing, infection, and cosmetics. Before
CHAPTER 1. INTRODUCTION 14
novice surgeons or medical school students could actually work on real patients, they
must practise such skills on plastic models or virtual training systems to potentially
improve their techniques.
Suturing simulations integrate various techniques from different areas, such as
deformable object modeling, collision detection, and haptic rendering. Deformability
of the object, difficulty of collision detection, and high demanding of haptic rendering
make this topic very difficult to model and to solve. Recently many surgical simulators
have been designed with or without using haptic devices.
A geometry-based suture model is presented in [13] with a outline of modeling a
suture simulation. [14] describes a haptic simulation for teaching basic suturing skills
for simple wound closure. During the simulation, needle holders, needle, sutures,
and virtual skin are displayed and updated at real-time. An actual needle holder is
attached at the stylus of a haptic device to make users feel more realistic.
[15] and [16] present a 3 DOF haptic based suturing simulator operating on mass-
spring surface meshes. The suture is built as a geometry model and the method
of following the leader is used to simulate displacements of suture nodes at each
time step. A knot planner is also presented to let users tie a knot after the suturing.
However, geometry models are less accurate and less realistic for dynamic simulations.
Furthermore, the authors did not study the scenario about the tissue tearing when
the stitches get over stretched, which is a key metric to evaluate the suturing skills of
the user.
In [17] and [18], J. Berkley etc. show that real-time Finite Element Method (FEM)
can be used to simulate suturing in surgical training systems. The authors present
a new real-time methodology based on linear FEM analysis and prove the constraint
approach is well suitable for suturing simulations. The suturing task is broken down
into 9 steps in [17]. However, not all of these steps are implemented. Moreover, the
computational model based on FEM is quite CPU intensive.
In [19], M. LeDuc et al present their initial works on simulating suturing using
mass-spring models. Their suturing simulator shows that a wound could be closed by
the suturing. However, it does not have any haptic interactions and the model does
not allow the placement of arbitrary incision points around the wound. In addition, no
CHAPTER 1. INTRODUCTION 15
models for the tissue reaction to excessive suture pulling forces are presented, which
can result in tissue being ripped.
By comparing the performances of skillful surgeons to medical students on the
same simple suturing task, [20] demonstrates that a surgical simulator can measure
and develop surgical skills if that simulator has sufficient realism to emulate critical
aspects of live surgical procedures. But they only focus on the penetration of the
virtual needle, and the entire suturing procedure is not implemented.
A virtual suturing simulator with haptic feedback is presented in [21], in which
the deformable tissue is modeled as a multi-layer mass spring system. The authors
show that their simulator could suture a pre-wound soft tissue. However, there is no
knotting part in their simulation, which is a key element in suturing. Once again, the
study about how the suture tears the soft tissue is not conducted.
A user study about a suturing simulator is reported in [22]. A real needle holder is
attached on the stylus of Phantom desktop haptic device. The user is asked to insert
the needle approximately 2cm off the edge of the incision. Force application, time to
task completion, length and straightness of the suture have been measured to discuss.
Performance has been shown to improve over training. However, there is no details
about how they modeled the deformable tissue and the suture, and how the suturing
simulation is implemented.
Deformable objects can be built based on either physics-based model or geometry-
based model. In [23], the authors have pointed out the advantages of using physics-
based modeling. Among all the physics-based models, Finite Element Method (FEM)
as in [17] [18] [24] [25] and Mass Spring System (MSS) as in [15] [16] [19] [26] [27]
[28] are two commonly used models for representing deformable objects. In [29], S.
Payandeh et al present an overview of haptic rendering using FEM and MSS. In [21],
L.L. Lian has argued the benefits of using MSS in surgical simulations with haptic
feedback.
CHAPTER 1. INTRODUCTION 16
1.4 Contribution
nodes beyond a pre-set threshold. Experiment results show that our simulator can
run on a standard personal computer and allow users to perform different suturing
patterns with smooth haptic feedback.
the knotting and unknotting procedure. Chapter 4 covers the suturing simulation.
Chapter 5 describes the GPU application in the deformable object simulation, and
Chapter 6 gives the conclusion and discusses about the future work.
Chapter 2
In this research, we simulate a section of skin or soft tissue, one suture, one needle,
and two needle drivers. Each model is simplified to allow for faster computational
environment, and to increase the haptic feedback rate in the virtual training envi-
ronment. Rapid simulation of simple mechanics offers a more stable interaction in a
discontinuous dynamical environment than more complex models. All the models are
explained in details in the following subsections:
20
CHAPTER 2. MODELS FOR SUTURING 21
Figure 2.1: Suture model. Pi is the ith mass point. All mass points are connected
through segments.
f = ma
where f is the force, m is the mass of the particle, a is the acceleration. Because the
forces can depend on the particles position, velocity, or time, we rewrite the above
equation as:
f (x, x, t)
x =
m
CHAPTER 2. MODELS FOR SUTURING 22
x = v (2.1)
f
v = (2.2)
m
To simulation such a system, the explicit Euler integration scheme is as follows:
dt
vn+1
i = vni + fni (2.3)
m
xn+1
i = xni + vn+1
i dt (2.4)
where i is the discrete mass point;n and n + 1 indicate the nth and the (n + 1)th time
steps.
Based on the above equations, first we compute the total force acting at each
point, Pi , and then update its position based on the computed force. Once the total
force at each of the nodes has been calculated, with the interval time dt, we can obtain
the velocity and position of each point.
The following part of this section explains the forces we simulate in our simulator.
We can use various combinations of these forces to build different models. The springs
and dampers both contribute some force to the net force f at each point. Different
springs and dampers all behave differently and we calculate their force contributions
using their own particular equations.
Gravity
Allowing the user to provide both input and output to the simulation in the form of
forces, positions, and velocity etc, a haptic device becomes a natural interface for a
dynamic simulation. However, a position controlled impedance style haptic device,
such as SensAble PHANTOM Omni
R
and SensAble PHANTOM
R
DesktopTM from
SensAble Technologies Inc., forces are not directly available as input variables into
the model. Furthermore, the mechanical characterization and digital nature of the
haptic device make the operation of directly incorporating the device as part of the
simulation more challenging. We use virtual coupling technique [35] to overcome these
difficulties, which introduces a indirect layer of interaction between the mechanical
device and the simulation by employing a spring-damper between a simulated body
and the device end-effector (see Figure 2.2).
Figure 2.2: Virtual Coupling. Pi0 is the point of the haptic device end-effector. Pi is
virtually grasped point. vi is the velocity of point Pi . fi is the net force acting on
point Pi . fh is the user input force from virtual coupling.
All haptic devices have limits for the output forces. For example, SensAble PHAN-
TOM Omni
R
, the maximum exertable force at nominal (orthogonal arms)position is
0.75 lbf (3.3 N) (See Appendix A). Before we output the force to the device, we must
multiply it by an appropriate constant to make sure the output force not beyond the
limits. Another advantage of virtual coupling is that we can use different constants
for computing the output force for the device versus the input force for the simulated
CHAPTER 2. MODELS FOR SUTURING 24
body, which makes the forces appropriate for both the haptic device and the dynamic
simulation.
Friction Force
In this research, we use Coulomb model to simulate the friction forces during the
procedure of knotting and unknotting. To simplify the computation, we only consider
kinetic friction forces and will not compute any static frictions.
Coulomb friction is a model to describe friction forces. It is described by the
following equation:
ff = fn
where ff is either the force exerted by friction, or, in the case of equality, the max-
imum possible magnitude of this force; is the coefficient of friction, which is an
empirical property of the contacting materials; fn is the normal force exerted between
the surfaces
For surfaces at rest relative to each other = s , where s is the coefficient of
static friction. For surfaces in relative motion = k , where k is the coefficient of
kinetic friction. The Coulomb friction is equal to ff , and the frictional force on each
surface is exerted in the direction opposite to its motion relative to the other surface.
During the simulation, we consider each suture segment as rigid body. From
Coulombs observations we know that: kinetic frictional force is approximately inde-
pendent of contact area and velocity magnitude of the object; Coefficient of friction
depends on pairs of materials. During knotting or unknotting procedure, suppose
there are only two segments colliding with each other (see Figure 2.3).
We use linear interpolation to compute the velocity of a point on the segment.
For example (see Figure 4.7), velocities of point C and E can be computed by the
following equation:
Figure 2.3: Two suture segments Pa Pb and Pc Pd are sliding on each other, where point
C is the contact point; va , vb , vc , and vd are the velocities of points Pa , Pb , Pc , and
Pd respectively.
vr = vc ve (2.7)
Figure 2.4: Intersection of the two contact segments. Point C and E are contact
points. s is the distance between the center lines of two contact segments. r is radius
of the suture segment.
Let n be the unit vector from point E to point C (see Figure 2.4), then,
Pe Pc
n =
||Pe Pc ||
The friction direction vector e is computed as follows:
(vr n)n vr
e = . (2.8)
||(vr n)n vr ||
CHAPTER 2. MODELS FOR SUTURING 26
where krs is a spring constant for the repulsion force, r is the radius of the rope
model, d is the distance between contact point C to point E (of Figure 4.7), s is the
distance between the two centers of the contact cylinder, krd is the damper constant
for the repulsion force, vr is the relative velocity of point C with respect to point E.
The friction ff can be described in vector format as:
ff = ||n||e. (2.11)
The linear spring force is computed by comparing the current segment length, li ,
between point, Pi and Pi+1 , with the rest length of the segment lr , and by projecting
the resulting difference on the direction from point Pi to Pi+1 (See Figure 2.5). Then,
Figure 2.5: Linear Spring. Point Pi and Pi+1 are two mass points. lr is the rest length
of the spring. li is the current length of the spring.
Linear damper
We simulate all the factors that try to stop the spring as it moves as one constant
called the damping factor, kd . It models all the frictions working against the motion
of the moving mass points. This force opposes the direction of movement and is
proportional to the velocity of the moving mass (See Figure 2.6).
Figure 2.6: Linear Damper. Point Pi and Pi+1 are two mass points. vi and vi+1
are the velocities of Point Pi and Pi+1 respectively. vi+1 and vi are the norms of the
components of the velocity of vi and vi+1 on the direction of Pi Pi+1
When the system is at rest (v = 0), no linear damping force is involved. The
linear damper fd can be computed by:
where kd is the linear damper constant; vi+1 and vi are the norms of the components
CHAPTER 2. MODELS FOR SUTURING 28
Torsional spring
With only the linear spring and the linear damper, tow connected suture segments
can easily bend to any angles, which is not true in the real world. To overcome this
problem, we introduced the third internal force - the torsional spring which is derived
from the angle, , between two connected segments of the suture (See Figure 2.7).
Figure 2.7: Torsional Spring. ei1 and ei are the unit vectors with directions from
point, Pi1 to Pi , and from Pi to Pi+1 , respectively. ti1 and ti+1 are the unit vectors
with directions the same as the torsional force applied at the two endpoints and
therefore, orthogonal to ei1 and ei respectively and in the plane formed by segment
Pi1 Pi and Pi Pi+1
The basic idea is to model each two connected segments as a triangle with a spring
as the hypothesis pushing the end points to the full expanded position. The length of
the two connected segments remain unchanged. Only the force component orthogonal
to the segments is used for the end points.
Let ei1 and ei be the unit vectors with directions from point, Pi1 to Pi , and from
Pi to Pi+1 , respectively. Let ti1 and ti+1 be the unit vectors with directions the same
as the torsional force applied at the two endpoints and therefore, orthogonal to ei1
CHAPTER 2. MODELS FOR SUTURING 29
and ei respectively and in the plane formed by segment Pi1 Pi and Pi Pi+1 . Then,
If ei1 ei = 0,
If ei1 ei < 0,
The common equation used to calculate the torsional spring force is:
Deg
P =K
M
where P is the force exerted on spring (lbs); M is the moment arm (inch); Deg is the
deflection in (degrees); k is the spring constant (in-lbs/Deg).
We use the ratio of
to replace the Deg and revise the above equation. The
torsional spring force then can be computed as follows:
fi1 = kts ti1 , (2.23)
||Pi1 Pi ||
fi+1 = kts ti+1 , (2.24)
||Pi+1 Pi ||
fi = (fi1 + fi+1 ). (2.25)
Torsional damper
The torsional damper works against the torsional spring to prevent any harmonic
motion from accumulating. Similar to the linear damper, it also models the internal
friction that resists bending in regular objects. Let vi1 , vib , be the norms of the
velocity components of vi1 , and, vi , on the direction of ti1 , and let vi+1 , via be the
CHAPTER 2. MODELS FOR SUTURING 30
norms of the velocity components of vi+1 , and vi , on the direction of, ti+1 . We can
get ti1 and ti+1 from the previous section. Then,
Then, the torsional damper on the points Pi1 , Pi and Pi+1 can be computed by:
(vi1 vib ) (vi+1 via ) ktd ti1
fi1 = ( + ) , (2.30)
||Pi1 Pi || ||Pi+1 Pi || ||Pi1 Pi ||
(vi1 vib ) (vi+1 via ) ktd ti+1
fi+1 = ( + ) , (2.31)
||Pi1 Pi || ||Pi+1 Pi || ||Pi+1 Pi ||
fi = (fi1 + fi+1 ). (2.32)
Swivel damper
Point Pi1 has a velocity relative to the center point Pi . So far, two components of that
relative velocity have been dampened. There still remains a component perpendicular
to those two. Without the dampening, point Pi1 could infinitely orbit the line formed
by extending the edge connecting point Pi+1 and point Pi (See Figure 2.8).
Let s be the unit vector of the swivel dampers of point Pi1 and Pi+1 , then,
s = ei1 ei . (2.33)
Figure 2.8: Swivel Damper. The linear damper and the torsional damper are working
in the plane formed by Pi1 Pi and Pi Pi+1 . The swivel damper is orthogonal to the
linear damper and the torsional damper.
if their common node is dragged by the needle or suture. We add a torsional spring
and torsional damper as described in the previous sections to each pierced vertex in
our model to solve this issue.
We build our 3D models of pre-wound skin or soft tissue in 3D graphics applications
such as Autodesk 3ds max, and then export out the model as VRML file. Our
simulator imports these VRML files to build the virtual objects. In this way, we can
simulate different kinds of cuts for suturing tasks.
after a time step. We choose the post-step constraint enforcement process after each
time step computation to eliminate the large stretch as defined in [36].
The essential idea and implementation are the following: We set a threshold for
each spring and add a post-step process after each deformation computation. We
define a normalized threshold lmax = lrest for each spring, where is a constant, lrest
is the rest length of the spring. Each time when a spring is overstretched, we bring
the two mass nodes at endpoints of the spring together along the axis while preserving
the position of the center point of the spring. For the case when one of the two node
is grabbed by the user, or slipping on the needle or the suture, we only move the other
node to insure the appropriate elongation. We iterate over any overstretched springs
and shrink them.
We can have several ways to determine when to end the iteration: we can chose
to terminate it after a predefined number of loops, until convergence is reached, or
time is up. The predefined number is shown to be sufficient for our case. Because
this process is only about displacements and no forces are involved, stability is not an
issue.
(a) (b)
Figure 2.9: (a) A needle hold by a needle driver. (b) A needle driver commonly used
in the surgery.
Figure 2.10: The model of the needle driver. Triangle AOB is the open triangle of
the needle driver.
DesktopTM .
Figure 2.11: Needle model - arc T E represents the needle during simulation. Point
O is the needle arc center. Point T and E are the tip point and the end point of the
needle respectively. r is the radius of the arc T E. y is the unit tangent vector of arc
T E at point T .
For any point P on the needle, we can obtain its position if the angle from tip
to p is given. OP can be derived from the following equation:
OP = OT cos() + r sin()y. (2.37)
where
(OT OE) OT
y =
||OE||||OT ||||OT ||
Figure 2.12 shows a needle is grabbed by the needle driver in the simulation.
We use the following method to determine the position and orientation of the need
when grasped by the needle driver: after the needle is grabbed, we use gimbal angles of
SensAble PHANTOM Omni
R
as explained in [37] and [38] to identify the orientation
of the needle. Once we map all the gimbal angles to OpenGL coordinate angles, we
use ZXY convention of fixed angle rotations to computer the needle rotation matrix
CHAPTER 2. MODELS FOR SUTURING 36
Figure 2.12: A suture is attached on the end ponit of a needle during the simulation
RZXY (,,)
= RY ()RX ()RZ () (2.38)
c 0 s 1 0 0 c s 0
=
0 1 0 0 c s s c 0
s 0 c 0 s c 0 0 1
Chapter 3
Suturing Simulation
3.1 Introduction
Suturing is the most difficult task in surgery, which requires fine manipulation and
close coordination of both hands. Virtual surgery training environments offer many
benefits comparing to traditional training methods, including cost reduction, decreas-
ing patient risk, flexibility, and the possibility of self-placed learning. Unfortunately,
there is few such complete systems available and almost all haptic surgical simula-
tors have their own limit applications. Sensory feedback including visual feedback
and force feedback is a crucial requirement to make surgery simulations more realis-
tic. Mechanical knowledge of the soft tissue and the suture is required to compute
feedback forces.
In this chapter, we present a suturing simulator based on the suture model de-
scribed in the previous chapters. We model both the soft tissue and the suture material
based on physics models. With the assistance of two Phantom Omnis, our simulator
can provide smooth force feedback and allow the user to perform different suturing
patterns during the training.
Section 3.2 covers the collision detection and management. Section 3.3 describes
the process of suturing. Section 3.4 illustrates the stitch evaluation. Section 3.5 gives
the experiment results.
37
CHAPTER 3. SUTURING SIMULATION 38
Figure 3.1: Needle model - arc T E represents the needle during simulation. Point O
is the needle arc center. Point T and E are the tip point and the end point of the
needle respectively. r is the radius of the arc T E. y is the unit tangent vector of arc
T E at point T .
First, we check needle drivers open triangle with each needle segment to see if
there is an interaction. If an intersection happens, we assume the intersection point
is point G on the needle instead of point H during simulation. We can easily get the
point G by which is the angle between OT and OH.
CHAPTER 3. SUTURING SIMULATION 39
This bounding box is always following the movement of the needle. Whenever a
mesh node (vertex) is found inside the bounding box, we put all its adjacent polygons
as candidates to detect if they are colliding with the needle tip. The collision detection
tests the straight-line path of the needle tip during a single time step against each
triangle.
Figure 3.3: Schematic of a suturing pattern. Node C and N are top constraints. Node
D and E are bottom constraints
We name the constraints in a numerical order along the suture. More than one
constraints are not allowed to reside on the same suture node at the same time. To
implement the collision detection between the suture and the soft tissue, first we need
to find out if the suture nodes should be inside or outside of the soft tissue. We
achieve this by counting how many constraints have passed this suture node because
all constraints start from the needle and have to pass from the needle to the suture
in order. If the number is even, the suture node should be outside the soft tissue.
Otherwise, it should be inside.
For example, node A and B are two mass node of a suture. Figure 3.4 shows that
two constraints have passed the suture node A, therefore, A should be outside of the
tissue. There are three constraints which have passed node B, so B should be inside.
Using this method, we know that suture node C should be outside, therefore we must
CHAPTER 3. SUTURING SIMULATION 41
move node C to the outside of the soft tissue during the collision management.
(a) (b)
Figure 3.5: (a) Triangles before subdivisions. (b) Triangles after subdivisions
The needle is an independent object held by a needle driver under the user control
as described in chapter 2. When the needle tip collides with a triangle, the pierced
triangle is subdivided simply into three triangles, with a new vertex at the piercing
point, and then the pierced triangles original edges are subdivided using the edge mask
in the loop subdivision scheme. When the mesh is pierced, a new vertex is generated
at the point where it is pierced; this new vertex is the pierced vertex. When the
pierced vertex is on the needle, it cannot move except to slide on the needle. Once
CHAPTER 3. SUTURING SIMULATION 42
the vertex has been passed to the suture, the mesh will pull the suture and slide along
the suture .
Because the torsional spring and the damper should be configured on two con-
nected springs as a pair, we have to deal with two connected springs at the same
time. From Figure 3.5 (b), for example, suppose point O is the pierced node on the
soft tissue surface. We add torsional springs and dampers to spring F O and OR as a
pair, and the same to spring DO and OP , spring EO and OQ.
Tear-Into
To simulate the tearing, we use the same cutting subdivision algorithms as described
in [27] and [28].
CHAPTER 3. SUTURING SIMULATION 43
(a) (b)
Figure 3.6: (a) Tear-into the soft tissue. C is the top start constraint and D is a
groove constraint (b) Tear-through the soft tissue. C is the top start constraint and
D is the bottom start constraint.
First, we divide the tearing of one polygon into two state: Start State and Termi-
nation State. Two cases are also defined to each of these two states: Tear Through
Vertex and Tear Through Edge depends on the intersection point between the tearing
path and the teared polygon. For our case, the start state of first tearing polygon and
the termination state of the last tearing polygon are always tear through vertex (See
Figure 3.7).
(a) (b)
Figure 3.7: (a) Start state of the first tearing polygon. (b) Terminiation state of the
last tearing polygon
Secondly, to determine the middle polygons states along the tearing path, we need
CHAPTER 3. SUTURING SIMULATION 44
to find out the intersection points between each of these polygons and the tearing path.
In order to get rid of the side affect of the deformability of soft tissue, we simply map
the home positions of each mass node on the top surface to the XZ plane to find
out the intersections points between the mapped tearing path and each mapped edge,
then map the virtual intersection points back to the real surface. Figure 3.8 shows
that C is the top start constraint and N is the top end constraint. C 0 and N 0 are the
mapped nodes to C and N respectively.
Figure 3.8: Map the surface to XZ plane to find out the intersection points
There are two cases should be considered in this condition depends on if the tearing
path crosses the wound or not. Figure 3.6 (a) shows half part of a tearing across the
wound. Figure3.9 shows the polygon subdivision of a tearing not across the wound.
For the former case, we use the groove constraint to set the depth of the tearing groove
(point D in Figure 3.6 (a)). For the case not cross the wound, we just manually set
a default tearing depth.
Tear-Through
In this condition, we must find out both the bottom intersection points along the
bottom tearing path and the top intersection point along the top tearing path. We
use the same mapping method as in tear into case to map the top surface and the
bottom surface of the soft tissue separately. Then subdivide the bottom surface and
the top surface at the same time. After the subdivision, we use groove polygons to
CHAPTER 3. SUTURING SIMULATION 45
Figure 3.9: Surface polygon subdivision in tear-into condition where the tearing path
is not across the wound
connect the bottom and the top up. Figure 3.6 (b) shows a tear-through case.
Figure 3.10: Plot about the force acting on a pierced node when the suture tears the
tissue from this node
3.6.1 Suturing
The following scenarios show the details of different steps in one suturing procedure.
Figure 3.11 to Figure 3.12 show the changes of the soft tissue surface before the needle
pierces the surface and the after. As you can see from the wireframe pictures, polygon
changes show the subdivision algorithm discussed in the following sections.
Figure 3.13 to Figure 3.14 show the scenes when the constraint is sliding on the
needle and on the suture.
Figure 3.15 shows a simple continuous suture pattern implemented in our simula-
tor.
CHAPTER 3. SUTURING SIMULATION 47
(a) (b)
Figure 3.11: Before the needle pierces tissue. (a) Screen shot (b) Wire frame
(a) (b)
Figure 3.12: After the needle pierces the tissue. (a) Screen shot (b) Wire frame
3.6.2 Knotting
Knotting is always a key component for suturing, which will be discussed in details
in Chapter 4. Figure 3.16 shows a simple suturing pattern with a knot.
3.6.3 Tearing
For the tearing experiments, we manually set the end point of the suture to be always
outside of the suture to prevent the suture from sliding out the soft tissue from the
insertion points.
Figure 3.17 and Figure 3.18 are screen shots of tear-into case. Figure 3.17 shows
CHAPTER 3. SUTURING SIMULATION 48
(a) (b)
Figure 3.13: Constraint slipping on the needle. (a) Screen shot (b) Wire frame
(a) (b)
Figure 3.14: Constraint slipping on the suture. (a) Screen shot (b) Wire frame
that two needle insertion are too close from each other and the tearing path does not
cross the wound. Figure 3.18 shows that the needle insertion points are too close to
the edge of the wound, and the tearing path crosses the wound.
Figure3.19 and Figure3.20 are screen shots of tear-through case. Figure 3.19 shows
that tearing path crosses the wound. Figure 3.20 shows that tearing path does not
cross the wound.
CHAPTER 3. SUTURING SIMULATION 49
(a) (b)
Figure 3.15: A simple continuous pattern. (a) Screen shot (b) Wire frame
(a) (b)
Figure 3.16: A single stitch with a knot. (a) Screen shot (b) Wire frame
CHAPTER 3. SUTURING SIMULATION 50
(a) (b)
Figure 3.17: Tear-into - tearing path not across the wound. (a) Before tearing (b)
After tearing
(a) (b)
Figure 3.18: Tear-into - tearing path across the wound. (a) Before tearing (b) After
tearing
CHAPTER 3. SUTURING SIMULATION 51
(a) (b)
Figure 3.19: Tear-through - tearing path across the wound. (a) Before tearing (b)
After tearing
(a) (b)
Figure 3.20: Tear-through - tearing path not across the wound. (a) Before tearing
(b) After tearing
Chapter 4
4.1 Introduction
The application of knots can ascend to the Paleolithic era. We use all kinds knots in
our everyday lives such as fastening our shoes or clothes, wrapping gifts, animal han-
dling, fishing, sailing, climbing, carving, and even for decoration etc. In the medical
field, they are essential to the suturing in todays surgery procedures. The real-time
simulation of deformable linear objects (DLOs) is required in many areas, such as sur-
gical training systems and rock climbing or sailing training systems to teach users how
to tie and untie a knot. It also related to the cloth-like deformable objects simulation,
an area has attracted much attention in Computer Graphics recently.
As described in Chapter 2, first we compute the total force acting at each point,
which is the sum of the friction force, the linear spring, the linear damper, the torsional
spring, the torsional damper, and the swivel damper. Secondly, once the total force
at each of the nodes has been calculated, with the interval time dt, we can obtain
the velocity and position of each point. Knotting and unknotting procedures are all
about how to deal with collision detection and collision management. The remainder
of the chapter is as the follows: Section 4.2 covers how the force propagates along
the suture. Section 4.3 illustrates the collision detection and managements methods
used in this research. Section 4.4 describes the haptic feed-back during knotting and
unknotting. Section 4.5 covers the experiments of knotting and unknotting.
52
CHAPTER 4. KNOTTING AND UNKNOTTING 53
Figure 4.1: Linear Spring. Point Pi and Pi+1 are two consecutive mass points. li is
the current segment length between Pi and Pi+1 . lmin and lmax are the minimum and
maximum length of the spring.
Let li be the segment length between Pi and Pi+1 . To analyze the force propagation
when the user grasps the suture, we need to compute the forces acting at each point
from the grabbed point to the start point and to the end point of the suture. We
define different scenarios as follows:
Figure 4.2: Condition A - no force propagation. Point Pi and Pi+1 are two consecutive
mass points. Pi+1 is the grasped point. li is the current segment length between Pi
and Pi+1 . fh is the user haptic input force.
Let fp be the component of the input force fh along the segment direction, and fp
is the input force propagated to point Pi from point Pi+1 . fp and fm can be obtained
from the following equations:
where
ei fh
em = ei .
||ei fh ||
ei can be obtained from equation 2.14. Using the same method as above, we can
derive the user input force propagated at each point of the suture.
Figure 4.3: Condition B - pulling one point. Point Pi and Pi+1 are two consecutive
mass points. Pi+1 is the grasped point. lmax is the max segment length between Pi
and Pi+1 . fh is the user haptic input force. fp is the force that be propagated. fm is
the force creating the movtion.
Figure 4.4: Condition C - pulling two points. Pk and Pi are the two grasped points. fhk
and fhi are the user haptic input forces. fpk and fpi are the forces that be propagated.
fmk and fmi are the forces creating the movtion.
tected to be at a distance d < 2r from each other, then, an equal (but opposite)
displacement vector is applied to each segment along. This displacement is just long
enough to take the segments out of collision, with a slight safety margin. Hence,
each node is shifted away by r d/2 + /2.
If a collision occurred, during real time simulation, we need to compute new ve-
locities of mass points which are involved in the collision. Similarly to the method
presented in [40], we apply impulses to the end points of these two segments. Lets
take a look again at the picture of two contact segments (See Figure 4.7). Let assume
point C with relative position a along the segment Pa Pb interacts with point E with
relative position b along the segment Pc Pd . Let i be the impulse, then, i = nt.
where n is the repulsion force that we can obtain from equation 2.9. Then we can
CHAPTER 4. KNOTTING AND UNKNOTTING 57
Figure 4.6: Collision management of two suture segments. d is the distance between
the center lines of the two contact segments. r is the radius of the segment. is the
adjust constant.
CHAPTER 4. KNOTTING AND UNKNOTTING 58
Figure 4.7: Two suture segments Pa Pb and Pc Pd are sliding on each other, where point
C is the contact point; va , vb , vc , and vd are the velocities of points Pa , Pb , Pc , and
Pd respectively.
Figure 4.8: Virtual coupling. Point P is the real position of the end factor and point
Q is the grabbed point. K is the spring. B is the damper working against the spring.
as possible. We can also adjust the K and B to satisfy the out put requirements for
different haptic devices.
In order to study the details inside our suture model, we took the 15th node as an
example and plot the spring force, spring damper, torsional spring, torsional damper,
and swivel damper acting on it when the suture swings freely (see Figure 4.9 to Figure
4.13 ).
Figure 4.9: Plot of the spring force acting on one mass node
CHAPTER 4. KNOTTING AND UNKNOTTING 60
Figure 4.10: Plot of the spring damper acting on one mass node
Figure 4.11: Plot of the torsional spring acting on one mass node
CHAPTER 4. KNOTTING AND UNKNOTTING 61
Figure 4.12: Plot of the torsional damper acting on one mass node
Figure 4.13: Plot of the swivel damper acting on one mass node
CHAPTER 4. KNOTTING AND UNKNOTTING 62
To demonstrate how the friction force changes when the friction constant is changed,
we plot the friction forces when the suture is colliding itself and changed the friction
constant (see Figure 4.14). Figure4.15 to Figure 4.18 are the friction force plots when
= 0.1, 0.5, 1.0, 2.0
Figure 4.14: Screen shot of suture colliding. The user is gasping the suture and
making it collide over itself. This is to demonstrate how friction force changes when
the friction constant is changed.
Because the maximum exertable face for PHANTOM Omni is 0.75lbf (3.3N), we
can not output the forces to the Haptic devices from virtual coupling spring directly.
Therefore, we chose a constant equal to 0.003 to scale the forces before we feed them
to PHANTOM Omnis. We plot the forces which we send to PHANTOM Omni during
each haptic update frame for one-hand pulling and two-hand knotting cases. Taking
the magnitudes of the forces as y-axis and each haptic update frame as x-axis, we
obtain the forces plots as in Fig. 4.19 to Fig 4.23
4.5 Experiment
4.5.1 Setup
Our simulation was implemented on a PC with dual 3.2G IntelrPentiumr4 CPUs
and 512 MB memory. For physics-based models, the most challenging part is how to
determine its parameters. If parameters are inappropriate, it may impact the whole
CHAPTER 4. KNOTTING AND UNKNOTTING 63
Figure 4.22: Output force plot of left hand when pulling the suture with two Phantom
Omis
Figure 4.23: Output force plot of right hand when pulling the suture with two Phan-
tom Omis
CHAPTER 4. KNOTTING AND UNKNOTTING 67
systems stability or even over its limits. After many experiments, we chose our suture
parameters as in Table 4.1:
With the parameters above, we can obtain around 500Hz 1000Hz update rate
for both Phantom Omnis. Users can feel the output forces of smooth quality.
Model 1
This model contains only a linear spring and a linear damper. It is the least realistic
model. The two connected segments can bend to any angle effortlessly (see Figure
4.24).
CHAPTER 4. KNOTTING AND UNKNOTTING 68
Figure 4.24: Suture model 1. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom Omnis.
Model 2
This model is almost the same as model 1, but also contains a torsional spring. The
torsional spring adds a lot more realistic behaviour to the suture, but also, because it
uses a nonlinear function acos, it creates some harmonic wave motions (see Figure
4.25).
Figure 4.25: Suture model 2. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a knot with two Phantom Omnis.
CHAPTER 4. KNOTTING AND UNKNOTTING 69
Model 3
Compared to model 2, a torsional damper has been added to this model. This damper
stops the harmonic motion presented in model 2. But this model creates another
class of instability where it is very sensitive to the suture and creates a self-excitation
phenomenon (see Figure 4.26).
Figure 4.26: Suture model 3. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom Omnis.
Model 4
This model includes a swivel damper to fix the problem of perpetual orbiting (the
self excitation mentioned in the above). The result is a suture that looks more like a
real suture (see Figure 4.27).
Model 5
This model has all the components of model 4. The only difference is that the linear
springs force computed quadratically on the difference between its current length
and rest length, instead on linearly. This makes the suture appear a lot less stretchy,
which is more realistic since the real sutures stretch very little. The sutures non-
linear response also makes it a lot more responsive to movements (see Figure 4.28).
CHAPTER 4. KNOTTING AND UNKNOTTING 70
Figure 4.27: Suture model 4. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom Omnis.
Figure 4.28: Suture model 5. Left: the user is manipulating the suture with one
Phantom Omin. Right: the user is tying a know with two Phantom Omnis.
CHAPTER 4. KNOTTING AND UNKNOTTING 71
Comparing the results from above five different models, we can draw a conclusion
that model 4 is the most ideal model for our surgical training environment.
5.1 Introduction
In simulating complex interaction betweem deformable objects, such as the one used
in a typical surgical simulators, achieving the smooth force feedback through haptic
devices has been a challenging task. To offer the user a smooth haptic sensation, we
have to guarantee the haptic rendering rate to be around 1000Hz. In most cases,
the main issue associated with the unstable behavior is due to the computational
demand associated with the model of deformable objects. Such models offer compu-
tational complexities which then render the overall system to a low servo rate and
a computational time delay. Regardless of the mechanical bandwidth of the haptic
device, in most cases, the computational overhead has been a key factor in defining
the upper bound for the fast haptic rendering system. With the demand of creating
more complex and realistic scenes for the user interaction, there exists opportunities
for the haptic system engineers to design and experiment new computational envi-
ronment which can blend the traditional computational mechanics models with more
dedicated hardware utilities.
In this chapter, we present some results regarding utilizing GPU processing units
73
CHAPTER 5. GPU IN DEFORMABLE OBJECT SIMULATION 74
for computing the deformation of two experimental objects. We present a suture sim-
ulation model with GPU and a 2D deformable cloth model with the nVidia CUDA
techniques. In all of these models, a simplified concentrated system has been used.
Both of these models were implemented and numerical solved at CPU and then GPU
level. We conducted experimental studies to compare the GPU-based suture models
and the CPU implementation. We experimented with the implicit model of the 2D
mesh which offer similar computational challenges associated with any Finite-Element
modeling appraoches. We also proposed a method for computing the inverse of a ma-
trix with truncated Numan series and the nVidia CUDA technology. The experiments
results show that we could take advantages of GPUs tremendous parallel computa-
tional power in performing vector and matrix algebra, and make it possible to achieve
high sampling rate and smooth haptic feedback when considering complex interaction
with deformable objects.
This model consists of a sequence of lumped points laying on the centerline of the
CHAPTER 5. GPU IN DEFORMABLE OBJECT SIMULATION 75
suture. This model can represent the mechanical properties of a real object, such as
stretching, compressing, bending, and twisting. Not only external forces including the
friction force, the gravity, and the user input force, can be included in this model, but
also the model can include the internal forces including the linear spring, the linear
damper, the torsional spring, the torsional damper, and the swivel damper.
One important issue about the dynamic simulation in the context of haptic ren-
dering is the real time efficiency. However, one of the computational challenges is the
increased number of vector and scalar products to increase the mechanics-based real-
ism in the haptic rendering. In addition, to increase the realism in the mechanics-based
representation, one also needs to increase a number of the linear elements associated
with the suture model. As a result, even for inclusion of a single model of the suture
in the scene, it can be seen that a desirable haptic rate can not be guaranteed and
the user can feel the output force feedback to be less smooth. Here, We utilize a GPU
implementation for addressing the computational issues of the suture that offers a
suitable parallel matrix and vector computation capabilities.
By changing the number of segment (element) of the suture, we record the expected
computational time. We implemented the same computational implementation on
both CPU-based and GPU-based environment. To compare the performance, we
recorded the time for each computation cycle. Because the variable response time
at every cycle and other related implementation overheads we have recorded both
the maximum and minimum update rates during a sample haptic manipulation of
the suture. In all of these experiments, the suture is held and manipulated by the
user with a haptic device from SensAble Technologies Inc. (Omni device). Table 5.1
demonstrate sample results of this experiment for different number of suture elements:
Table 5.1: GPU and CPU performance comparison of the suture model
Segment Number GPU Max GPU Min CPU Max CPU Min
(ms) (ms) (ms) (ms)
10 0.424 0.265 0.153 0.088
20 0.453 0.276 0.284 0.167
30 0.463 0.263 0.408 0.224
40 0.435 0.262 0.534 0.296
50 0.428 0.261 0.637 0.362
60 0.427 0.263 0.765 0.445
70 0.433 0.256 0.888 0.505
80 0.436 0.258 1.017 0.575
90 0.430 0.259 1.130 0.640
100 0.436 0.258 1.670 0.717
the introduction of explicit and implicit methods. Explicit methods, such as Eulers
method or the midpoint method, face some implementation difficulties with some
classes of ordinary differential equations (ODEs). In some cases, an ODE can become
stiff, in which case explicit methods can results in instability. On the other hand,
the implicit method can offer stable solution to general class of ODEs but with the
added computational complexities. More details please see Appendix C.
[41] presents an implicit Eulers method to simulate cloth-like objects. It proposes
an approach to finding a balance between system stability and efficiency and therefore
enables robust interactive animation or real-time design and seeming of cloth. Un-
fortunately, the method requires computation of the inverse of a large sparse matrix.
If the configuration of the cloth changes during the each cycle of simulation (i.e. a
time variant model), we need to compute the inverse of the matrix in real-time, which
can result in a very computationally intensive procedure especially for a very large
2D model of the cloth or shell type objects. In this section, we also present a method
using the truncated Nuemann series to approximate the inverse of a very large matrix,
and then implement it on nVidia CUDA technology.
coupled and connected together by the cloth. The motion of one particle is always
affected by all the others. For a given time step, explicit integrators actually move
the particles out-of-sync with each other, and put each particle slightly in the wrong
place. However, they do become coupled again when the forces and constraints are set
up prior to the next physics step. The forces and constraints are also slightly wrong
because the particles are in the wrong place, which will cause a small correction
during the next physics step. This small correction is to try to put the particles in
the right place. But in this viscious cycle, the next physics step overcorrects and
the particles again are in the wrong place. Then, the cycle repeats. Explicit method
guarantees a certain order of accuracy, but loses stability. The possible size of time
step is restricted, which will result in a loss of computational efficiency.
In some cases, this viscious cycle actually runs well and the simulation doesnt
crash, although the results are always wrong. In other cases (e.g., stiff ODEs), the
cycle doesnt work at all. The corrective forces work against the overshot positions,
which will cause an unstable simulation. once particle positions and velocities grow
without limit, overflow happens in just a few physics steps.
On the other hand, implicit integrators treat the unknown variables as coupled,
which are solved together as a system at each time step. The big advantage is that
implicit schemes are stable for any time step size. However, they require the solution
of a generally non-linear set of equations at each time step.
Implicit methods is based on taking a backward Euler step. As it is highligted in
[41] and [42] the main computational form can be written as:
dt2 dt
(I H)4n+1 v = (Fn + dtHvn ) . (5.1)
m m
F
where: I is the identity matrix; m is the mass of each mass node; H = x
is actually
the negated Hessian matrix of the system.
We simulate the 2D surface model as a lumped mesh system shown in Figure
5.4 For implicit Eulers method, we need to calculate the inverse of the stiff matrix
which is also a negative Hessian matrix. For example, according to the connectivity
CHAPTER 5. GPU IN DEFORMABLE OBJECT SIMULATION 81
relationship between nodes, the Hessian matrix of figure 5.4 can be written as:
2 1 0 0 1 0 0 0 . 0 0 0 0 0 0 0 0
1 5 1 0 1 1 1 0 . 0 0 0 0 0 0 0 0
0 1 3 1 0 0 1 0 . 0 0 0 0 0 0 0 0
H = k . . . . . . . . . . . . . . . . . (5.2)
0 0 0 0 0 0 0 0 . 0 1 0 0 1 3 1 0
0 0 0 0 0 0 0 0 . 0 1 1 1 0 1 5 1
0 0 0 0 0 0 0 0 . 0 0 0 1 0 0 1 2
A = D L LT (5.3)
where D is a diagonal matrix, the minus signs before L and LT are just a technical
CHAPTER 5. GPU IN DEFORMABLE OBJECT SIMULATION 82
We note that:
1 1 1 1
D 2 (L + LT )D 2 = I D 2 AD 2 (5.6)
1 1
(I D 2 AD 2 ) = (I D1 A) (5.7)
1 1
If (I D1 A) < 1, then we can expand (I D 2 AD 2 ) in Neumann series.
Lets define (A) to be the spectral radius of A, such that,
(A) = max |i |
1in
and
1 1
(I D 2 AD 2 ) = (I D1 A)
1 1
If (I D1 A) < 1, then we can expand (I D 2 AD 2 ) in Neumann series. One ap-
proach to generate a polynomial pre-conditioner is to use a few terms of the Neumann
series. In this thesis, we only use the first order Neumann polynomial:
W D1 + D1 (L + LT )D1 (5.8)
= 2D1 D1 AD1 (5.9)
Function Type Qualifiers as: device qualifier which declares a function is executed
on the device and callable from the device only; global qualifier which declares a
function as being a kernel which is executed on the device and callable from the host
only; host qualifier which declares a function is executed on the host and callable
from the host only.
The complete computation can be divided into two parts: the first part is to
calculate the inverse of the Hessian matrix; second part is to compute the velocity
and position of each node. Since for a given physical construction of the cloth, the
construction of the Hessian matrix remains unchanged, (we discard the non-linear part
of the force during the simulation), we can pre-calculate the inverse of the Hessian
matrix off-line. The remaining of the computation is done by GPU at real-time.
We developed two CUDA kernels for the implicit computation: inverseMatrix() -
to calculate the inverse of the Hessian matrix; implicitDeformation() - to compute the
force, velocity, and position of each mass node. The flow chart of the main program
is the same as Figure 5.2. The flow chart of how to call inerseMatrix() is shown as
the follows:
Figure 5.5 shows a typical experiment. The sphere is a obstacle placed on the
floor. When the simulation starts, the cloth will fall down because gravity and collide
with the sphere. Figure 5.6 shows when the cloth starts colliding with the obstacle.
Figure 5.7 shows the cloth is sliding on the sphere.
Figure 5.8 (a) shows the screen shot when the cloth is manipulated over a sphere
object. Figure 5.8 (b) shows a typical plot of haptic force feedback.
Table 5.2: GPU and CPU performance comparison of the cloth model
Node Number GPU Max GPU Min CPU Max CPU Min
(ms) (ms) (ms) (ms)
16 * 16 4.01 3.94 58.10 57.37
32 * 16 5.50 5.18 121.66 119.87
32 * 32 10.19 9.83 237.50 234.68
48 * 32 16.33 15.95 370.52 369.71
48 * 48 27.49 27.21 590.31 586.52
64 * 48 42.37 41.72 750.31 742.37
64 * 64 78.47 77.05 5045.23 5042.98
CHAPTER 5. GPU IN DEFORMABLE OBJECT SIMULATION 88
Figure 5.8: Force plot when the user grabs the cloth
Chapter 6
6.1 Conclusion
In this thesis, we developed a knotting and suturing model based on the VTE. we
present a physics-based approach to real-time simulation of DLOs with visual and
force feedback. In our suture model, which can represent the mechanical properties
of a real thread such as stretching, compressing, bending, and twisting, we simulate
not only external forces, but also internal forces including the friction force during
knotting and unknotting. We also present how forces propagate along the suture when
the user pulls it with one or two hands. We developed a simulator to allow users to
grasp and smoothly manipulate a virtual thread, and to tie an arbitrary knot.
We also present a physics-based haptic simulation designed to teach basic sutur-
ing techniques for simple skin or soft tissue wound closure. The pre-wound suturing
target, skin or deformable tissue, is modeled as a modified mass-spring system. The
suturing material is designed as a physics-based deformable linear object. Tools in-
volved in the live suturing procedures are also simulated. Collisions between the soft
tissue and the needle, and between the soft tissue and the suture are analyzed. In
addition to the detail steps of one typical suturing procedure, modeling approaches
on the evaluation of a stitch are also discussed. For example, if the needle insertion
points are too close from each other or from the edge of the wound, the suture will tear
the soft tissue instead of suturing the incision together when the tension applied on
89
CHAPTER 6. CONCLUSION AND FUTURE WORKS 90
the pierced nodes beyond a pre-set threshold. Experiment results show that our sim-
ulator can run on a standard personal computer and allow users to perform different
suturing patterns with smooth haptic feedback.
In addition, we did a study of GPU application in deformable object simulation.
We all know that one of the most challenging aspects of developing haptic interactive
applications is to guarantee the haptic rendering rate of 1000Hz. This requirements
in general can offer the user a smooth haptic sensation. With the demand of creating
more complex and realistic scenes for the user interaction, there exists opportunities
for the haptic system engineers to design and experiment new computational envi-
ronment which can blend the traditional computational mechanics models with more
dedicated hardware utilities. In this thesis, we present some results regarding utilizing
GPU processing units for computing the deformation of two experimental objects. We
present a suture simulation model with GPU and a 2D deformable cloth model with
nVidia CUDA techniques. We conducted experimental studies to compare the GPU-
based suture models and with the CPU implementation. We experimented with the
implicit model of the 2D mesh which offer similar computational challenges associated
with any Finite-Element modeling approaches. Here, we have proposed a method for
computing the inverse of a matrix with truncated Numan series and nVidia CUDA
technology.
Thirdly, the current subdivision method can cause many unwanted small triangles
if the user put the needle back and forth through the soft tissue at the same area,
which will tremendously impact the stability of the system. To solve this, we may
need to keep track of the topology of the movements of the needle, for example, if
the user pull the needle back, the subdivided triangle should go back to its original
un-subdivided configuration. Also using the edge flipping technique might be another
solution.
Fourthly, although a lot of surgical training system have been designed out, how to
evaluate these virtual training system is still an issue. Could virtual training system
be used to measure surgical skills and could trainees really improve their surgical
skill after such training are still two questions need to be answered. For the suturing
simulator developed in this thesis, we still need to continue the research on how to
evaluate the users suture skills during the training and how to evaluate the correctness
and robustness of this system. To solve this, a user study may need to be considered
in the future.
Finally, for the GPU application in the deformable object simulation, one of the
promising areas that such distributed computational power can have a greater impact
is the utilization of point-based haptic rendering and the notion of Level-of-Details
[44] [45]. For example, in the study of this thesis, the Hessian matrix can be very
large sparse matrix. One approach for saving memory is to implement the matrix as
doubly-linked lists. However, the challenge is on how to construct doubly-linked lists
suitable for GPU parallel computing can be a subject of future studies. Self-collision
detection for the cloth is not done in this project. As a result, the cloth behaviors
can be on various cases not realistic because all the triangles could intersect with
each other. Self collision detection can be another possibility where GPU may offer
a benefit. In our study, we have discarded the non-linear part of the force filter and
used a post correction of angular momentum. In addition, we have assumed that the
matrix H does not change during simulation. However, if the 2D model of the cloth
configuration changes during cutting or tearing, one needs to compute the inverse
matrix calculation as the cloth configuration changes. This can be another topic of
future investigation.
Appendix A
92
APPENDIX A. PHANTOM OMNI SPECIFICATIONS 93
94
APPENDIX B. THE PROCESS OF SUTURING 95
Figure B.1: Subdivision process when a portion of the mesh is pierced by the needle.
a) Original mesh. b) After initial subdivision by being pierced by the needle at the
highlighted point. c) After final subdivision of original triangles edges. Note the new
vertices in c) are moved a short distance away from the pierced vertex.
When the edges are subdivided, the subdivision scheme ensures that the new ver-
tices are a short distance from the edge, away from the piercing point. This prevents
the newly-created triangles from being too small. Without the edge subdivision, a
triangle pierced too close to one of the edges will look highly unrealistic in large de-
formations. The spring lengths of the new edges are 0.9 times the length of the edge
at creation, to place the mesh under tension. The spring constants of the new edges
are:
lmax
k= kmesh
ledge
lmax is the longest edge in the mesh (computed at initialization), ledge is the length of
the new edge, and kmesh is the spring constant of the mesh. For simulation purposes,
the spring constant is limited to a range from kmesh to 4 kmesh , for stability. The
mass of each vertex in the mesh is unity, so the new vertices also have a mass of unity.
a (nt mf )
where mf is the summed spring forces of the mesh at the vertex, and nt is the tangent
of the needle at that point. The term a is a constant chosen to balance the mesh force
against the distance traveled on the needle. A constant friction force is applied to the
slip. This equation uses the quasi-static assumption also used in the mesh: distance
moved is proportional to the force applied in that timestep. Once a pierced vertex
has passed the end of the needle, it is passed to a point on the suture very close to
the needle.
Vertices slipping off of the tip from their initial position on the needle ignore
friction: our model subdivides a triangle immediately when the needle touches the
deformable model, but a normal needle would not actually pierce the surface of tissue
until some force has been applied. Therefore, we allow a vertex to slip off the tip of
the needle very easily if it has not yet slid farther onto the needle, in the same way
that a needle that has not yet pierced tissue does not drag the tissue around.
Pierced vertices cannot slip past each other on the needle. A list of pierced vertices,
sorted by location on the needle, is kept in the needle. If a vertex is about to slip past
another vertex, the slipping vertex is not moved, and the interdicting vertex adds the
slip value to its next slip calculation.
Where pt is the previous tension and nt is the next tension, expressed as vectors,
and mf is the summed spring forces at that vertex. The first term is comparing the
tension on either side of the pierced tissue: if there is greater tension on one side, then
the suture is being pulled in that direction and the tissue will slide the other way. The
second term is comparing the direction of the suture on each side of the constraint
with the internal mesh forces at the pierced point. If the suture doubles back on itself
through the pierced point, the difference between the two suture directions is small
and likely in a direction nearly perpendicular to the summed mesh force, reducing
the second term to almost zero. This matches with real-world experience: if a thread
passes through an object and doubles back on itself, it is more difficult to pull through
material than if the thread goes straight through.
Figure B.2: Calculating the slip; gray indicates the suture, with arrows showing the
magnitude and direction of the tension (a missing arrowhead indicates zero tension).
Black indicates the shape of the mesh and the arrow shows the vector representing
the summed mesh force. In a), the suture will not slip, because the tensions are equal
in each direction, and the mesh force agrees equally with each direction of the suture.
Part b) shows a normal case where one end of the suture is being pulled by the user
while the other has no force; both the mesh force and the tension difference will cause
the pierced vertex to slip away from the tensioned suture. Part c) shows a case where
the mesh force will cause little effect on slippage, due to the directions of the suture
being nearly identical; the suture will slip due to the difference in tension magnitude
in each direction only
APPENDIX B. THE PROCESS OF SUTURING 98
The terms a and b are constants chosen to balance the spring constants in the
mesh against the tension value of the suture. A positive slip indicates sliding along
the suture away from the needle. Soft constraints may not slip through each other
or through hard constraints (since pierced pieces of tissue cannot slip through each
other); if this happens, the moving constraint is not moved, and its slip value is
added to the interdicting constraints next slip calculation, to move the interdicting
constraint out of the way. Soft constraints exist at any point between the discrete
nodes of the suture, so slipping is smooth in all cases.
Where T is tension, l0 is the standard link length, li is the length of link i, j is the
index of the left constraint, and k is the index of the right constraint.
Tension is calculated along each section of rope between soft or hard constraints.
The tension is applied in the direction of the suture at the constraints. Each constraint
can have different tension values in each direction, and the summed tension at the
constraint is applied to any object the constraint is attached to, such as the needle or
deformable model.
This method is similar to computing tension as a spring-like force, but the tension
is not proportional to the actual strain of the suture, but rather the total distance
APPENDIX B. THE PROCESS OF SUTURING 99
it has been stretched between two contacts of interest. This is the closest the model
can approach modeling stiff suture material: true suture material is quite stiff, and
effectively does not stretch at all. Using this model, when the trainee pulls a suture
a given amount, the suture will achieve a particular tension, which will pull in a
predictable manner.
A pierced vertex on the suture is simulated the same as any other mesh node,
by integrating the forces from each edge spring and the home spring, but with two
additional forces: the tension force on the suture in each direction at the pierced
vertex. In most cases, the tension force will be moderate or small, because the suture
will slip further through the pierced vertex if the tension is large. But if the suture is
blocked from slipping through the vertex or both ends of the suture are being pulled,
the tension forces can pull the pierced vertex a significant distance. The user can pull
a cut closed with a taut suture. The soft constraint on the suture is moved to the
pierced vertexs new location after the vertex is simulated.
Appendix C
C.1 Introduction
In real time dynamic simulations, system stability is one of the most important issues.
It is really frustrating that your simulation crashes because your simulation step size
is too big. In some cases such as deformable object simulations in surgical training
systems or cloth simulations in game developments, which demand very high com-
putation, there is no place left at all because you the step size is already so small.
Therefore we must find a new simulation scheme which both could guarantee system
stability and is not limited by simulation step size.
Generally speaking, the big part of the dynamic simulation is about how to solve
the differential equations, which describe the relationship between an unknown func-
tion and its derivatives. Most of those methods used by todays researchers could be
put into two categories: explicit method and implicit method. This section will give
out the introduction of explicit and implicit methods. More details will be discussed
in the following sections.
The basic idea of explicit integration is that the integrators are written in a way
that all unknown values (e.g., all particle velocities, positions) can be updated in a
loop independently. Lets take an example as in the case of cloth simulations, the
100
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 101
particle positions are treated as being decoupled and are not considered to affect each
other. But in the real word, it is apparently not so: the particles in a cloth are coupled
and connected together by the cloth. The motion of one particle is always affect by all
of others. For a given time step, explicit integrators actually move the particles out-
of-sync with each other, and put each particle slightly in the wrong place. However,
they do become coupled again when the forces and constraints are set up prior to
the next physics step. The forces and constraints are also slightly wrong because
the particles are in wrong place, which will cause a small correction during the next
physics step. This small correction is to try to put the particles in the right place. But
in this viscious cycle, the next physics step overcorrects and the particles again are in
the wrong place. Then, the cycle repeats. Explicit method guarantees a certain order
of accuracy, but loses stability. The possible size of time step is restricted, which will
result in a loss of computational efficiency.
In some cases, this viscious cycle actually runs well and the simulation doesnt
crash, although the results are always wrong. In other cases (e.g., stiff ODEs), the
cycle doesnt work at all. The corrective forces work against the overshot positions,
which will cause an unstable simulation. once particle positions and velocities grow
without limit, overflow happens in just a few physics steps.
On the other hand, implicit integrators treat the unknown variables as coupled,
which are solved together as a system at each time step. The big advantage is that
implicit schemes are stable for any time step size. However, they require the solution
of a generally non-linear set of equations at each time step.
The equation of motion for the system can be represented by a matrix equation:
M A + CV + KX = Fexternal
where: Fexternal is external forces such as the user input force, the weight of object,
an explosion blast force due to pressure, etc.
M is the system mass matrix,
C is the damping matrix,
K is the stiffness matrix which represents the connection of mass points as in
spring-mass cloth systems,
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 102
x = f (x, t),
f (x, t) is xs velocity,
x is the state of the system,
x is xs time derivative.
The equation above defines a vector field over x. Typically, for initial value prob-
lems, we are given x(t0 ) = x0 at some starting time t0 , and wish to follow x over time
thereafter.
In 2D case, for example. x(t) draws out a curve that describes the motion of a
point p in the plane. At any point x, the function f can be evaluated to provide a
2-vector, therefore, f defines a vector field on the plane. The moving point p must
have velocity vector x when it moves through point x.
The function f is written of both x and t, but the derivative function may or may
not depend directly on time. If it does, then not only the point p but the the vector
field itself moves, so that ps velocity depends not only on where it is, but on when it
arrives there. In that case, the derivative x depends on time in two ways: first, the
derivative vectors themselves wiggle, and second, the point p, because it moves on a
trajectory x(t), sees different derivative vectors at different times.
Numerical solutions take discrete time steps starting from the initial value x(t0 ).
To take a step, we use the derivative function f to calculate an approximate change
x in x over a time interval t, then increment x by x to obtain the new value.
In this procedure, the derivative function f is considered as a black box: we provide
numerical values for x and t, receiving in return a numerical value for x. Numerical
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 104
We can imagine a picture of a 2D vector field to visualize Eulers method. The moving
point p will follow a polygonal path instead of the real integral curve in the vector
field. Each segment of the polygonal path is determined by evaluating the function f
at the beginning, and scaling by h.
The advantage of Eulers method is that it is simple and very easy to implement,
but it is not accurate and will cause unstable problems in some cases. Consider the
case of a 2D function f whose integral curves are concentric circles. The moving point
p governed by f is supposed to orbit forever on whichever circle it started on. Instead,
with each Euler step, p will move on a straight line to a circle of larger radius, so
that its path will follow an outward spiral. Reducing the step size will slow the rate
of this outward drift, but will never eliminate it.
To demonstrate its un-stability, let us take an example of a 1D function:
f = kx,
which should make the moving point p decay exponentially to zero. For sufficiently
small step sizes we can get reasonable behavior, but when h > 1/k, we have |x| > |x|,
so the solution oscillates about zero. Beyond h = 2/k, the oscillation diverges, and
the system blows up.
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 105
Finally, Eulers method has low efficiency. Derivative evaluation is pretty much
CPU-time consuming, which will eat up almost all of CPU-time for most numerical
solution methods. Therefore the computational cost per step is determined by the
number of evaluations per step. Although Eulers method only requires one evaluation
per step, in order to keep the system stability and accuracy, we must restrict the step
size to very small, that means we must increase the number of simulation for a given
time interval. More sophisticated methods, even some requiring as many as four or
five evaluations per step, can greatly outperform Eulers method because their higher
cost per step is more than offset by the larger step sizes they allow.
To improve on Eulers method, we need to look more closely at the error that it
produces. The key to understanding it is the Taylor series: Assuming x(t) is smooth,
we can approximate its value as an infinite sum involving the value and derivatives
at the start point:
h2 hn n x
x(t0 + h) = x(t0 ) + hx(t0 ) + x(t0 ) + ... + + ... (C.2)
2! n! tn
Comparing equation C.1 and C.2, we can get that the Euler formula is the first two
terms of Taylor series. This means that Eulers method would be correct only if all
derivatives beyond the first were zero, i.e. if x(t) were linear. The error term, the
difference between the Euler step and the full, un-truncated Taylor series, is dominated
h2
by the leading term, 2!
x(t0 ). Therefore, we can describe the error as O(h2 ). The error
is proportional to the square root of time step size. If we decrease the step size to
h/2, it will produces only about one fourth the error comparing with a step size of h.
Theoretically, we can compute x with as little error as want by choosing a suitable
small h. This could be not practical as a great many time steps night be required.
h2
x(t0 + h) = x(t0 ) + hx(t0 ) + x(t0 ) + O(h3 ) (C.3)
2!
If we were able to evaluate x as well as x, we could achieve O(h3 ) accuracy instead
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 106
h2
of O(h2 ) simply by retaining the term of 2!
x(t0 ). Recall that:
x = f (x(t), t) (C.4)
For simplicity in what follows, we will assume that the derivative function f does
depend on time only indirectly through x, so that x = f (x(t)). The chain rule then
gives:
f
x = x = f 0 f (C.5)
x
Evaluating f 0 would often be complicated and expensive. we only approximate the
second-order term just in terms of f , and substitute the approximation into equation
C.3, which will give us with O(h3 ) error. To do this, we perform another Taylor
expansion of the function of f ,
h2 h
x + O(h3 ) = h(f (x0 + f (x0 ))) f (x)
2 2
Substituting the right hand side into equation C.3 gives the update formula:
h
x(t0 + h) = x(t0 ) + h(f (x0 + f (x0 )))
2
This formula first evaluates an Euler step, then performs a second derivative evalu-
ation at the midpoint of the step, using the midpoint evaluation to update x. The
midpoint method is correct to within O(h3 ), but requires two evaluations of f .
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 107
By evaluating f a few more times, we can eliminate higher and higher orders of
derivatives. The most popular procedure for doing this is a method called Runge-
Kutta of order 4 and has an error per step of O(h5 ). (The Midpoint method could be
called Runge-Kutta of order 2.) The formula for computing x(t0 + h) is listed below:
k1 = hf (x0 , t0 ) (C.6)
k1 h
k2 = hf (x0 + , t0 + ) (C.7)
2 2
k2 h
k3 = hf (x0 + , t0 + ) (C.8)
2 2
k4 = hf (x0 + k3 , t0 + h) (C.9)
1 1 1 1
x(t0 + h) = x0 + k1 + k2 + k3 + k4 (C.10)
6 3 3 6
Both xa and xb differ from the true value of x(t0 + h) by O(h2 ). That means that xa
and xb differ from each other by O(h2 ). As a result, we can write that a measure of
the current error e is:
e = |xa xb |
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 108
This gives us a convenient estimate to the error in taking an Euler step of size h.
Suppose that we are willing to have an error of as much as 104 per step, and that the
current error is only 108 . Since the error goes up as h2 , we can increase the stepsize
to
104 1
( ) 2 h = 100h
108
Conversely, if we currently had an error of 103 , and could only tolerate an error of
104 , we would have to decrease the stepsize to
104 1
( ) 2 h = 0.316h
103
Adaptive stepsizing is a highly recommended technique.
large enough, then the particle will never move too far away from y(t) = 0, since the
ky(t) term always brings y(t) back towards zero.
Lets assume that there is no restriction on the x-coordinate, and that we want the
user to be able to pull the particle arbitrarily along the x-axis. So lets suppose our
differential equation over time interval is:
! !
d x(t) x(t)
X(t) = = (C.11)
dt y(t) ky(t)
We also assume that the particle does not start exactly with y0 = 0.
Whats happening here is that the particle is strongly attracted to the line y = 0, and
less strongly towards x = 0. If we solve the ODE far enough forward in time, we
expect the particles location to converge towards (0, 0) and then stay there once it
arrives.
Now suppose we use Eulers method to solve the equation. If we take a step of size h,
we get ! !
x0 x0
Xnew = X0 + hX(t0 ) = +h (C.12)
y0 ky0
This yields ! !
x0 hx0 (1 h)x0
Xnew = = (C.13)
y0 hky0 (1 hk)y0
ynew = (1 hk)y0
In other words, if |1 hk| > 1, Eulers method will not converge to an answer: each
step will result in a larger value of ynew than the last. Technically, Eulers method is
unstable for |1 hk| > 1. Thus, we better have 1 hk > 1 or hk < 2 if we hope to
converge. The largest step we can hope to take is less than 2/k.
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 110
Now, if k is a large number, we will have to take very small steps. This means that
the particle slides towards (0, 0) excruciatingly slowly. Even though the particle may
nearly satisfy y0 = 0, we have to take such small steps that the particles progress
along the x-axis is pretty much nonexistent. Thats the embodiment of a stiff ODE.
In this case, the stiffness arises from making k very large in order to keep the particle
close to the line y = 0. Even if we use a more sophisticated explicit method such as
fourth-order Runge-Kutta, we may do a little better in the size of our steps, but we
will still have major problems.
That is, we are going to evaluate f at the point we are aiming at, rather than where
we came from. So, we are looking for a Xnew such that f points directly back at
where we came from. Unfortunately, we can not in general solve for Xnew , unless f
happens to be a linear function. To cope with this, we will replace f (Xnew ) with a
linear approximation, again based on f s Taylor series.
Lets define X by X = Xnew X0 and rewrite equation C.16 as:
or just
X = hf (X0 + X). (C.18)
(Note that since f (X0 ) is a vector, the derivative f 0 (X0 ) is a matrix). Using this
approximation, we can approximate X with
or
X hf 0 (X0 )X = h(f (X0 ) (C.21)
Rewriting this as
I
( f 0 (X0 ))X = f (X0 ) (C.22)
h
where I is the identity matrix, we can solve for X as
I
X = ( f 0 (X0 ))1 f (X0 ) (C.23)
h
Computing Xnew = X0 + X is clearly more work than using an explicit method,
since we have to solve a linear system at each step. For many types of problems, the
matrix f 0 will be sparse for example, if we are simulating a spring-lattice, f 0 will have
a structure which matches the connectivity of the particles. As a result, it is usually
possible to solve equation C.23 in linear time (i.e. time proportional to the dimension
of X).
Lets apply the implicit method to equation C.11. We have that f (X(t)) is
!
x(t)
f (X(t)) = . (C.24)
ky(t)
I
Then the matrix h
f 0 (X0 ) is
! !
1 1+h
I +1 0 0
f 0 (X0 ) = h
= h
(C.26)
h 0 1
+k 0 1+hk
h h
What is the limit on the stepsize in this case? The answer is: there is no limit! In
this case, if we let h grow to infinity, we get
! ! !
h
1+h
x 0 x 0 x 0
lim X = lim h
= 1 = . (C.30)
h> h>
1+hk
ky 0 k
ky 0 y 0
This means that we achieve Xnew = X0 + (X0 ) in a single step! For a general stiff
ODE, we wont be able to take steps of arbitrary size, but we will be able to take
much larger steps using an implicit method than using an explicit method. The extra
cost of solving a linear equation is more than made up by the time saved by taking
large timesteps.
! !
d x(t) v(t)
= . (C.32)
dt v(t) f (x(t), v(t))
which is a first-order system. However, applying the backward Euler method to above
equation results in a linear system of size 2n 2n where n is the dimension of x. A
fairly simple transformation allows us to reduce the size of the problem to solving an
nn linear system instead. We can do this simply by introducing more variables. The
n n system that needs to be solved is derived as follows. Let us simplify notation
by writing x0 = x(t0 ) and v0 = v(t0 ). We also define x = x(t0 + h) x(t0 ) and
v = v(t0 + h) v(t0 ). The backward Euler update, applied to equation C.32, yields:
! !
x v0 + v
=h . (C.33)
v f (x0 + x, v0 + v)
Taking the bottom row of equation C.35 and substituting x = h(v0 + v)yields
f f
v = h(f0 + h(v0 + v) + v) (C.36)
x v
Letting I denote the identity matrix, and regrouping, we obtain
f f f
(I h h2 )v = h(f0 + h v0 ) (C.37)
v x x
which we then solve for v. Given v, we trivially compute x = h(v0 + v).
APPENDIX C. EXPLICIT AND IMPLICIT EULER INTEGRATION 114
The above discussion assumes that the function f has no direct dependence on time;
in the case that f varies directly with time (for example, if f describes time-varying
external forces, or references moving points or coordinate frames that are not variables
of x) then equation C.37 needs an additional term to account for this dependence:
f f f f
(I h h2 )v = h(f0 + h v0 + ) (C.38)
v x x t
Bibliography
[4] M. Saha and P. Isto. Motion planning for robotic manipulation of deformable
linear objects. In Proceedings 2006 IEEE International Conference on Robotics
and Automation, pages 24782484, 2006.
[5] D. Pai. Strands: Interactive simulation of thin solids using cosserat models. In
Proceedings of Eurographics02, pages 347352, 2006.
[7] D. Q. Cao, D. Liu, and C. H.-T. Wang. Three dimensional nonlinear dynamics
of slender structures: Cosserat rod element approach. International Journal of
Solids and Structures, 43:760783, 2006.
115
BIBLIOGRAPHY 116
[9] J. Phillips, A. Ladd, and L.E. Kavraki. Simulated knot tying. In IEEE Interna-
tional Conference on Robotics and Automation, pages 841846, 2002.
[10] B. Kahl and D. Henrich. Manipulation of deformable linear objects: Force-based
simulation approach for haptic feedback. In 12th International Conference on
Advanced Robotics (ICAR 2005), 2005.
[11] F. Wang, E. Burdet, A. Dhanik, T. Poston, and C. L. Teo. Dynamic thread for
real-time knot-tying. In Proceedings of the First Joint Eurohaptics Conference
and Symposium on Haptic Interfaces for Virtual Environment and Teleoperator
Systems, 2005.
[12] M. LeDuc, S. Payandeh, and J. Dill. Toward modeling of a suturing task. In
Graphics Interface (GI), pages 273279, 2003.
[13] J. Brown, K. Montgomery, J-C. Latombe, and M. Stephanides. A microsurgery
simulation system. In Medical Image Computing and Computer Aided Interven-
tions, 2001.
[14] R.W. Webster, D.I. Zimmerman, B.J. Mohler, M.G. Melkonian, and R.S. Haluck.
A prototype haptic suturing simulator. In J.D. Westwood, H.M. Hoffman, G.T.
Mogel, and D. Stredney, editors, Medicine Meets Virtual Reality, pages 567569,
2001.
[15] P. Marshall, S. Payandeh, and J. Dill. Suturing for surface meshes. In Proceedings
of the 2005 IEEE International Conference on Control Applications, pages 2530,
2005.
[16] P. Marshall, S. Payandeh, and J. Dill. A study on haptic rendering in a simu-
lated surgical training environment. In Proceedings of the Symposium on Haptic
Interfaces for Virtual Environment and Teleoperator Systems (HAPTICS06),
volume 00, page 35, 2006.
[17] J. Berkley, G. Turkiyyah, D. Berg, M. Ganter, and S. Weghorst. Real-time finite
element modeling for surgery simulation: An application to virtual suturing. In
IEEE Transactions on Visualization and Computer Graphics, volume 10, pages
314325, 2004.
[18] J. Berkley, S. Weghorst, H. Gladstone, G. Raugi, D. Berg, and M. Ganter.
Banded matrix approach to finite element modeling for soft tissue simulation.
Virtual Reality: Research, Development,and Application, 4:203212, 1999.
[19] M. LeDuc, S. Payandeh, and J. Dill. Toward modeling of a suturing task. In In
Graphics Interface03 Conference, pages 273279, 2003.
BIBLIOGRAPHY 117
[22] L. Moody, C. Baber, and T.N. Arvanitis. The role of haptic feedback in the
training and assessment of surgeons using a virtual environment. In EuroHaptics
2001, 2001.
[25] M. Bro-Nielsen and S. Cotin. Real-time volumetric deformable models for surgery
simulation using finite element and condensation. In EUROGRAPHICS96, vol-
ume 15, pages 5766, 1996.
[28] J.J. Cha and S. Payandeh. Interactive cross cutting. In 2007 IEEE International
Conference on Robotics and Automation (ICRA 07), pages 25762581, 2007.
[33] T. S. SyRENSEN and J. Mosegaard. Haptic feedback for the gpu-based surgical
simulator. In Medicine Meets Virtual Reality 14, 2006.
[34] E. Moncls, I. Navazo, and Pere-Pau Vzquez. Mtcut: Gpu-based marching tetra
cuts. In Ik Soo Lim and David Duce, editors, EG UK Theory and Practice of
Computer Graphics, 2007.
[35] J.E. Colgate, M.C. Stanley, and J.M. Brown. Issues in the haptic display of tool
use. In Intelligent Robots and Systems 95, 1995.
[37] Inc. SensAble Technologies. Open haptics toolkit version 2.0 programmers guide,
2005.
[38] Inc. SensAble Technologies. Openhaptics toolkit version 2.0 api reference, 2005.
[39] J.Brown, J.Latombe, and K.Montgomery. Real-time knot tying simulation. The
Visual Computer: International Journal of Computer Graphics, pages 165179,
2004.
[43] H. F. Shi and S. Payandeh. Real-time knotting and unknotting. In 2007 IEEE
International Conference on Robotics and Automation (ICRA 07), pages 2570
2575, 2007.
BIBLIOGRAPHY 119
[44] M. Gross and H. Pfister. Point-based graphics. In The Morgan Kaufmann Pub-
lishing, 2005.
[47] H. F. Shi and S. Payandeh. On suturing simulation with haptic feedback. In Hap-
tics: Perception, devices and scenarios, Proceedings of 6th International Confer-
ence, Eurohaptics 2008, pages 599608, 2008.