Skip to main content
NIHPA Author Manuscripts logoLink to NIHPA Author Manuscripts
. Author manuscript; available in PMC: 2011 Jun 1.
Published in final edited form as: Int J Rob Res. 2010 Jun 1;29(7):813–830. doi: 10.1177/0278364909357228

The Path-of-Probability Algorithm for Steering and Feedback Control of Flexible Needles

Wooram Park, Yunfeng Wang, Gregory S Chirikjian
PMCID: PMC2998900  NIHMSID: NIHMS195291  PMID: 21151708

Abstract

In this paper we develop a new framework for path planning of flexible needles with bevel tips. Based on a stochastic model of needle steering, the probability density function for the needle tip pose is approximated as a Gaussian. The means and covariances are estimated using an error propagation algorithm which has second order accuracy. Then we adapt the path-of-probability (POP) algorithm to path planning of flexible needles with bevel tips. We demonstrate how our planning algorithm can be used for feedback control of flexible needles. We also derive a closed-form solution for the port placement problem for finding good insertion locations for flexible needles in the case when there are no obstacles. Furthermore, we propose a new method using reference splines with the POP algorithm to solve the path planning problem for flexible needles in more general cases that include obstacles.

Keywords: flexible needles, path planning, stochastic model, path-of-probability algorithm, error propagation, port placement, feedback control

1 Introduction

Flexible needles with bevel tips, which were designed for minimally invasive medical treatments, approximately follow a circular arc when they are inserted into soft tissue without twisting [33]. Based on this physical phenomenon, we can steer a flexible needle; a flexible needle is rotated with the angular speed ω(t) around its tangent while it is inserted with translational speed υ(t) in the tangential direction. These inputs, ω(t) and υ(t), can generate various trajectories of a needle. One of the most important tasks related to flexible needles is controlling them to reach the desired tip pose1. In other words, we aim to obtain ω(t) and υ(t) that generate the needle trajectory hitting the target pose.

We have reported path planning methods for flexible needles in recent years including [21,22,24]. The method is based on the observation that needle trajectories form an ensemble of paths due to uncertainty in the insertion conditions even when we insert the needle repeatedly with the same inputs. In order to capture the statistical behavior of the needle, a stochastic model for the steering of flexible needles with bevel tips has been developed in [22]. The method in [22] adopts the unicycle nonholonomic kinematic model developed in [33], and includes white noise weighted by coloring constants to capture the nondeterministic behavior of the needle insertion. The stochastic model, which is reviewed in detail in Section 2.2, is modified in such a way that allows for closed-form evaluation of probability densities that describe the time evolution of the distribution of needle tip pose. The benefit of the closed-form method is that it enables fast path planning. In order to estimate the parameters that serve as the input to this closed-form probability density, the kinematic covariance propagation method developed in [31] is used. In [21] we used this probability density function (PDF) with the parameter estimation method in [31] for path planning of the needle. Like the work by Mason and Burdick [20], this path planning algorithm is an extension of the path-of-probability (POP) algorithm presented in [12].

In this paper, we improve our existing computational methods, develop new components, and incorporate them for a better path planning method for flexible needles. First we improve the computational accuracy and efficiency in estimation of the covariance of the probability density function. Second we solve the port placement problem to find the optimal starting pose of the flexible needle. Third, we modify the POP algorithm so that it can be used for feedback control, and demonstrate it using simulation of the needle insertion. Finally, we develop a method to use the POP algorithm with splines that can be applied for more general choice of the target pose of the needle in the presence of obstacles.

A number of recent works have been reported on the motion/path planning of steerable flexible needles [2,10,11]. Alterovitz et al. [2] developed a 2D motion planning algorithm for Dubins cars which have only two steering inputs (left/right turn), and then applied it to steerable needles. Considering uncertainty in needle motion, their method finds the optimal steering plan which gives the maximum probability that the needle will reach the desired target. Duindam et al. [11] presented a path planning method for 3D flexible needle steering. They discretize the control space enabling an analytical expression for the needle trajectory and then find a locally optimal trajectory in a 3D environment with obstacles. An inverse kinematics technique has been applied to the planning problem in [10].

There exist some methods for steering nonholonomic systems [18]. Since some of them use the concept of optimal control, those methods are computationally intensive. Furthermore, since the needle system is not small-time locally controllable [22], small changes in the goal pose can lead to large changes in the optimal path. We also note that Brockett’s theorem says that some nonholonomic systems can not be stabilized to a desired pose using a continuous feedback law [3]. The POP algorithm used for needle path planning in this paper has the following benefits when compared to existing methods based on optimal path following or optimal control: (1) At each time step we can make a choice about what control input to use, independent of the previous step, which means that this control is discontinuous and the limitations imposed by Brockett’s theorem do not apply; (2) The path that we generate is not the path of minimal length, or optimal, and so the solution is not as sensitive to small changes in the desired position as methods based on optimal control. Of course, this means that our paths may be slightly longer, but we believe that they are also more robust to perturbations.

Throughout this paper, a relatively heavy derivation of equations is performed for faster path planning. In this paper, we use the path-of-probability algorithm as a feedback control scheme. Therefore, it is important to compute each intermediate insertion plan without a significant time lag for planning. For fast computation, we use covariance propagation and the closed-form covariance matrix formula. The use of splines also enables the fast computation of baseline trajectories for needle path planning. We verify with simulations that the equations derived in this paper are useful for both path planning and feedback control of flexible needles.

2 Mathematical Methods

2.1 Review of Rigid-Body Motions

The special orthogonal group, SO(3), is the space of rotation matrices contained in ℝ3×3, together with the operator of matrix multiplication. Any element of SO(3) can be written using the ZXZ Euler angles α, β and γ as [7]

R=Rz(α)Rx(β)Rz(γ),

where 0 ≤ α ≤ 2π, 0 ≤ βπ, and 0 ≤ γ ≤ 2π and

Rx(θ)=(1000cosθsinθ0sinθcosθ),Rz(θ)=(cosθsinθ0sinθcosθ0001).

The Euclidean motion group, SE(3), represents rigid-body motions in 3D space. It is the semi-direct product of ℝ3 with SO(3). The elements of SE(3) can be written as [7]

g=(Rt0T1), (1)

where R ∈ SO(3), t ∈ ℝ3 and 0T denotes the transpose of the 3D zero vector.

Given a time-dependent rigid-body motion g(t), the quantity

g1g.=(RTR.RTt.0T0)se(3) (2)

(where a dot represents the time derivative) is a spatial velocity as seen in the body-fixed frame, where se(3) is the Lie algebra associated with SE(3). We identify se(3) with ℝ6 in the usual way via the mappings : se(3) → ℝ6 and : ℝ6se(3), given by

ξ=(g1g.)=((RTR.)RTt.)=(ωv)R6

and

ξ^=(ωv)^=(ω^v0T0)se(3).

The mappings : so(3) → ℝ3 and : ℝ3so(3) are given by

ω^=(ω1ω2ω3)^=(0ω3ω2ω30ω1ω2ω10)andω^=ω.

The vector ξ contains both the angular and translational velocity of the motion g(t) as seen in the body-fixed frame of reference.

Let ei, i = 1, …, 6 denote the standard basis for ℝ6. The basis given by a set of matrices Ei = êi, i = 1, …, 6 produce elements of SE(3), when linearly combined and exponentiated. Specifically we have [7]

E1=(0000001001000000);E2=(0010000010000000);E3=(0100100000000000);E4=(0001000000000000);E5=(0000000100000000);E6=(0000000000010000).

The element of SE(3) can be obtained by the exponential mapping as [7,24]

g=g(x1,x2,,x6)=exp(i=16xiEi).

Therefore the vector x = (x1 x2 ··· x6)T can be obtained from g ∈ SE(3) by

x=(logg).

If Xse(3) is an arbitrary element of the form

X=(Ωv0T0),andx=(X)=(ωv),

then Adg (the adjoint) is defined by the expression

(gXg1)=Adgx,whereAdg=(R0TRR). (3)

The matrix T is skew-symmetric, and T = t, when g ∈ SE(3) is given as in (1).

2.2 Nonholonomic Stochastic Needle Model

In a reference frame attached to the needle tip with the local z axis denoting the tangent to the “backbone curve” of the needle, and x denoting the axis orthogonal to the direction of infinitesimal motion induced by the bevel (i.e., the needle bends in the yz plane), the nonholonomic kinematic model for the evolution of the frame at the needle tip was developed in [33] as:

ξ=(g1g.)=[κ0ω(t)00v(t)]T, (4)

where κ is the curvature of the needle trajectory. The frames, parameters and inputs for the needle are shown in Fig. 1.

Figure 1.

Figure 1

The definition of parameters and frames in the nonholonomic needle model [22,33].

It is useful to note that the needle model (4) is a reachable system [22] and two inputs can control the needle. Inspired by the fact that there may be control errors, we can add uncertainty in the control inputs. This can be simply implemented by adding white noise to the inputs. This addition of white noise in the formulation simultaneously enables us to search the reachable work space with probability, and consider the possible uncertainty that occurs in the actual needle insertion.

In order to reduce the complexity of the model inputs, we set the constant insertion speed as υ(t) = υ0 ≥ 0. Therefore, the needle is inserted with the constant speed υ0 ≥ 0 and is rotated with the angular velocity ω(t) simultaneously. The path planning problem, which is the main goal of this paper, is to determine ω(t) so that the needle trajectory reaches the desired pose (position and orientation).

If everything were certain, and if this model were exact, then g(t) could be obtained by simply integrating the ordinary differential equation in (4). However, when we insert the needle repeatedly, we will get trajectories that are sightly different from each other due to uncertainty in the needle insertion system.

One simple way to capture the stochastic phenomenon is to add a noise term to the input as

ω(t)=ω0(t)+λw(t), (5)

where λ is the noise parameter, and w(t) is the Gaussian white noise. Thus, a nonholonomic needle model with noise is

(g1g.)dt=[κ0ω0(t)00v0]Tdt+[00λ000]TdW (6)

where dW = W(t+dt) − W(t) = w(t)dt is the non-differentiable increment of a Wiener process W(t). This noise model is a stochastic differential equation (SDE) on SE(3). As shorthand, we write this as

(g1g.)dt=h(t)dt+HdW(t). (7)

Corresponding to this SDE is the Fokker-Planck equation that describes the evolution of the probability density function of the ensemble of tip positions and orientations at each value of time, t [8,22,24]:

ρ(g;t)t=i=16hi(t)Eirρ(g;t)+12i,j=16DijEirEjrρ(g;t) (8)

where Dij=k=1mHikHkjT and ρ(g; 0) = δ(g). In (8) the ‘right’ Lie derivative Eir is defined for any differentiable function f(g) as

Eirf(g)=(ddtf(gexp(tEi)))|t=0. (9)

For a small amount of diffusion, the solution for the Fokker-Planck equation, (8), can be approximated by a shifted Gaussian function [24,30]:

ρ(g;t)=(2π)3det((t))1/2exp(12yT(t)1y), (10)

where y = log(μ(t)−1g), and μ(t) ∈ SE(3) and Σ(t) ∈ ℝ6×6 are the mean and the covariance of the probability density function, ρ(g; t), respectively. In Section 3, the method for computing the mean and covariance will be proposed. This approximation is based on the fact that for small diffusion the Lie derivative is approximated as [24]

Eirf(g)fxi.

Using this, the Fokker-Planck equation (8) becomes a diffusion equation in ℝ6. Therefore, we have the solution for the diffusion equation as (10).

We need to carefully deal with the Gaussian expression in (10) when the covariance matrix Σ(t) is close to singular, because (10) needs the inverse of the covariance matrix. In order to overcome this, we smear the Gaussian distribution in (10). In other words, the modified distribution can be obtained by convolving the Gaussian distribution in (10) with a new Gaussian with zero mean. This can be implemented by adding small numbers on the diagonal of the covariance matrix as

(t)=(t)+(ε1I3×3O3×3O3×3ε2I3×3), (11)

where I3×3 and O3×3 are 3 × 3 identity and zero matrices, respectively. εi is a small positive number that reflects the amount of smearing.

2.3 Path-of-Probability Algorithm for Flexible Needles

For path planning, we modify the path planning method for needle steering that appeared in [22,24]. This algorithm was adapted from the path-of-probability algorithm introduced in [12]. A similar trajectory planning method can be also found in [20].

In this algorithm, we find the whole trajectory by serially pasting together several intermediate paths. Fig. 2. shows the concept of this algorithm. We aim to find a path that starts at g0 = I4×4 and ends at ggoal using M intermediate steps. The homogeneous transformation matrix, gi ∈ SE(3) (i = 1, 2, …, M), represents the position and orientation of the ith frame with respect to the (i − 1)th frame as shown in Fig. 2. Suppose that the (i − 1) intermediate steps (g1, g2, ···, gi−1 ∈ SE(3)) have already been determined. The intermediate step, gi is determined to maximize the probability that the remaining steps reach the goal. In Fig. 2, the shaded ellipses depict the probability density functions when we consider the remaining (Mi) steps. In other words, when we consider (Mi) intermediate steps after gi, the expected final pose will be in the dark area which has higher probability than the bright area. Comparing the two simplified cases in Fig. 2, if the previous intermediate steps (g1, g2, ···, gi−1) are the same for both cases, we should choose gi shown in Fig. 2(b), because it yields a higher probability that the final pose is the goal pose.

Figure 2.

Figure 2

The path-of-probability algorithm at the ith step. (a) Evaluation of one candidate move, gi, with low resulting probability of reaching goal, (b) an candidate move, gi, resulting in high probability of reaching the goal.

The determination of the intermediate steps can be formulated as

gi=argmaxgSρ((g1gi1g)1ggoal;τi), (12)

where τi is the remaining time to hit the goal and S is the set of possible intermediate poses. Now let us adapt this to the needle insertion problem. If ttotal is the time spent for the insertion from g0 to ggoal and we have M intermediate steps with a constant insertion speed, each intermediate step takes Δt = ttotal/M. Therefore, we can define τi = (Mi)ttotal/M in (12). Technically, the formula (12) can not be used for determining the final intermediate step, gM, because there is no remaining path when we determine gM. The final step can be determined so that the needle tip position is placed as close to the goal position as possible.

Instead of pursuing a continuous function ω(t) as a steering input, we consider a discretized input in the similar way in [11]. In this strategy we control the flexible needle by alternating pure rotation around the z-axis and pure short insertion along the z-axis. By modifying (12), the rotation angle at the ith step can be determined by

θi=argmaxθ[02π)ρ((g1gi1R(θ)μ(Δt))1ggoal;(Mi)ttotal/M), (13)

where

R(θ)=(Rz(θ)00T1),

and μt) ∈ SE(3) is the sample mean of the SDE (6) at the time t = Δt = ttotal/M. When determining θi using (13), the ith insertion actually has not been performed. In order to evaluate the probability density function in (13), we need an estimate for pure short insertion after rotation. Since our needle insertion system has stochastic behavior, the mean path is a reasonable choice for the estimate. Then the theoretical intermediate step can be defined as gi = (θi) ◦ μt). The whole trajectory will be g = g0g1 ◦ ··· ◦ gM.

Generally speaking, path planning is performed off-line, and then a system is controlled based on the path planning results. However, one distinctive feature of the path planning method presented here is that we can use it during feedback control of the needle steering. After having the ith intermediate insertion plan gi = (θi) ◦ μt), the mechanical control system rotates the needle by θi and pushes it for t = Δt. The needle may not exactly follow the control input because of uncertainty in the mechanical system and the interaction between the needle and the tissue. Therefore, we need to measure the actual intermediate step gim. The modified rotation plan can then be formulated as

θi=argmaxθ[02π)ρ((g1mgi1mR(θ)μ(Δt))1ggoal;(Mi)ttotal/M), (14)

where gkm is the actual insertion based on the control input gk = (θk) ◦ μt).

For the purpose of simulation, we use the model for the actual intermediate step as

gim=R(θi+εi)h(Δt), (15)

where εi is the error in the rotation angle, and ht) is the actual insertion which can be simulated by integrating the SDE (6) up to t = Δt. The integration can be implemented using the numerical method in [14]. Practically, the mean path μt) can be replaced with the trajectory which can be obtained by integrating (6) with zero noise, λ = 0.

In the case when there are no obstacles, the POP method uses global foresight (i.e., the relative probability of reaching the end goal) to plan local motions, and in this sense it is not greedy. For needle insertion, the nonholonomic constraints are built into the propagation of probability density functions, and decisions are made at each stage to maximize the ability of the remaining moves to reach the goal. It is true that if we use a method that propagates probabilities under the assumption of no obstacles in the case when there actually are obstacles, then this will lead to problems. The full scenario in the presence of obstacles or narrow passages would require us to propagate probabilities while taking into account corresponding obstacle boundary conditions. This is possible in principle, but difficult to do in practice. Therefore, we have sought a middle ground in which obstacles that are relatively sparse compared to the support of the probability density function are considered. In a sense, if the probabilities can propagate without significantly overlapping the obstacles, then the needle never knows/cares that there are the obstacles.

3 Diffusions with Drift and Covariance Propagation

In this section, we consider how the error probability associated with the stochastic differential equation evolves as a function of time. Specifically we derive an equation for the time-varying covariance matrix of the probability density function for the needle tip pose. The covariance matrix is defined in an integral form. We derive the closed-form solution for the covariance matrix for the case of needle trajectories constructed from piecewise circular arcs. For more general cases, we consider the second order propagation formula for the covariance matrix which can be computed faster than the integral form.

3.1 Diffusions with Drift

In addition to (8), we have another expression for the Fokker Planck equation of (7):

ρ(g;t)t=i=1dhi(t)Eilρ(g;t)+12i,j=1dDijEilEjlρ(g;t). (16)

The differential operators Eil are the Lie derivatives:

Eilf=ddτ[f(exp(τXi)g)]τ=0. (17)

Our goal here is to obtain an approximate functional form of f(g, t) that is efficient to compute in the case when ||D|| ≪ 1. In the case when D = O, the above SDE becomes the matrix ODE

g.=gAwhereg(0)=eandA=i=16hi(t)Ei, (18)

with Ei denoting the standard basis for se(3). Let the solution to the above ODE be denoted as m(t) ∈ SE(3). In the case when A is constant, m(t) = exp(At). More generally, if A and its integral commute then the solution can also be written as a matrix exponential:

[0tA(τ)dτ,A(t)]=Om(t)=exp(0tA(τ)dτ). (19)

However, if the above condition does not hold, then m(t) cannot be written as a single matrix exponential. In practice, if a baseline path is a circular arc or helix, then (19) will hold, because A will be constant.

In order to achieve the goal stated above, it will be useful to convert (16), which has potentially large values of hi, into an alternative form where all of the coefficients are small. An intuitive way to do this is to seek the new function F(g, t) such that

ρ(g;t)=F(m1(t)g,t). (20)

Here the notation m−1(t) is shorthand for [m(t)]−1. In other words, we will substitute (20) into (16) with the expectation that the large drift term will disappear and what remains can be described as a diffusion in a small neighborhood about m−1(t) ◦ g.

To begin, we observe that the Lie algebra se(3) can be mapped bijectively to IR6 using the ∨ operation, where ∨: Eiei. Therefore, it is sometimes convenient to use the notation Eil=Eeil. Note that by the use of various notational substitutions,

i=16hiEilρ=(i=16hiEi)lρ=Ei=16hieilρ. (21)

This means that

i=16hiEilρ(g;t)=ddτ[F(m1exp(τA)g,t)]τ=0=ddτ[F([m1exp(τA)m][m1g],t)]τ=0=ddτ[F([exp(τm1Am)][m1g],t)]τ=0=[m1Am]lF(p,t)|p=m1g (22)
=EAdm1hlF(p,t)|p=m1g (23)
=i,k=16hiekTAdm1eiEklF(p,t)|p=m1(t)g. (24)

Here (22)–(24) are just different ways of writing the same thing, each of which can be convenient in different contexts, where pSE(3) is a dummy variable, hi = hi(t), A = A(t) is defined in (18), and m = m(t). In the case when hi are all constant, we have m−1 Am = A. Therefore, in that case (22)–(24) can be avoided and

i=16hiEilρ(g,t)=i=16hiEilF(k,t)|k=m1g. (25)

In the general case, the result in (24) can also be used to write

EjlEklρ=EAdm1ejlEAdm1eklF|m1(t)g=p,q=16[epTAdm1ejEpl][eqTAdm1ekEql]F|m1(t)g=p,q=16[epTAdm1ejEpl][eqTAdm1ekEql]F|m1(t)g.

Direct substitution and using the fact that the 6×6 identity matrix can be written as I=k=16ekekT then gives

j,k=16DjkEjlEklρ=p,q=16(Adm1DAdmT)pqEplEqlF|m1(t)g. (26)

When making the substitution (20) into (16) the left side of the equation becomes

ρ(g,t)t=F(m1(t)g,t)t.

When m(t) = exp(At) where Ase(3) is constant, it can be shown that for m−1(t) ◦ g near the identity that

ρt=F(k,t)t|k=m1(t)g+i=16hi(EilF)(k·t)|k=m1(t)g. (27)

A detailed derivation of (27) is given in [8]. Substituting (25), (26) and (27) into (16) then gives

F(k·t)t|k=m1(t)g=12j,k=16Djk(t)(EjlEklF)(k,t)|k=m1(t)gwhereD(t)=Adm1D0AdmT. (28)

In other words, the drift term can be canceled, and we can study the diffusion (with time-varying diffusion matrix, D(t)) around the identity.

When motions are very close to the identity and m−1(t) ◦ g = exp X, then the exponential coordinates {xi} are convenient, and Ejr/xj. The SE(3)-covariance defined in [30,31] then is computed as

(t)=0tAdm1DAdmTdt. (29)

3.2 Closed-Form Expression for Σ(t) for Circular Arc Trajectory

In this subsection, for the circular arc trajectory m(t), we derive a closed-form expression for (29). Obviously, the advantage of the closed-form covariance is that we can compute it very quickly at any time of interest.

The circular arc needle trajectory m(t) is given by

m(t)=(10000cos(κt)sin(κt)(cos(κt)1)/κ0sin(κt)cos(κt)sin(κt)/κ0001)(Rp0T1).

We compute the inverse of m(t) as

m1(t)=(RTRTp0T1)=(10000cos(κt)sin(κt)(cos(κt)1)/κ0sin(κt)cos(κt)sin(κt)/κ0001)(RTq0T1).

The adjoint matrix is

Adm1=Adm1=(RT03×3q^RTRT).

Since D0 = HHT, D0 can be written as

D0=(D11D12D21D22),

where D12 = D21 = D22 = 03×3 and

D11=(00000000λ2).

λ is the noise parameter in (6). Therefore we have

Adm(t)1D0Adm(t)T=(RTD11RRTD11Rq^q^RTD11Rq^RTD11Rq^)=(0000000λ2S2λ2CSλ2κS(1C)000λ2CSλ2C2λ2κC(1C)000λ2κS(1C)λ2κC(1C)λ2κ2(1C)200000000000000).

where C = cos(κt) and S = sin(κt). Therefore, the covariance in (29) can be given as:

(t)=0tAdm(τ)1D0Adm(τ)Tdτ=(0000000abe000bcd000edf00000000000000), (30)

where

a=λ22(t1κsin(κt)cos(κt)),b=λ22κsin2(κt),c=λ22(t+1κsin(κt)cos(κt)),d=λ2κ2(1cos(κt)12sin2(κt)),e=λ2κ(1κsin(κt)12κsin(κt)cos(κt)12t),f=λ2κ2(32t2κsin(κt)+12κsin(κt)cos(κt)).

3.3 Second Order Error Propagation

Basically, the covariance (29) is the result of the first order error propagation. In this subsection, we compute the covariance using second order error propagation.

If a unique value μ ∈ SE(3) exists for which

SE(3)[log(μ1(t)g)]ρ(g;t)dg=0,

then μ(t) is called the mean of a PDF ρ(g, t). In addition, the covariance about the mean is defined as [31]

(t)=SE(3)log(μ1(t)g)[log(μ1(t)g)]Tρ(g;t)dg.

Suppose that for small values of t, the quantities μ(t) and Σ(t) corresponding to ρ(g; t) can be obtained (even if ρ(g; t) is not known in closed form). Then these can be propagated over longer times. In other words, due to the Markovian nature of the above model, solutions can be “pasted together” using the fact that the following convolution equalities hold:

ρ(g;t1+t2)=ρ(g;t1)ρ(g;t2),

where convolution on SE(3) is defined as in [6]. Even if these convolutions are too time-consuming to compute explicitly, the fact that these expressions hold means that propagation formulas for the mean and covariance can be used.

Wang and Chirikjian [31] derived the formulas for the second order propagation. If a PDF, ρi(g) has mean μi and covariance Σi for i = 1, 2, then with second order accuracy, the mean and covariance of (ρ1 * ρ2)(g) are respectively [7]

μ12=μ1μ2and12=A+B+F(A,B), (31)

where A=Ad(μ21)1AdT(μ21), B = Σ2 and F (A, B) is given in the appendix. Consequently, we can obtain the mean and covariance for a relatively large t with given mean and covariance for a small t by this propagation formula. These can then be substituted into (10) to obtain a closed-form estimate of the probability density that the needle will reach any particular pose at any value of time.

The covariance propagation (31) requires covariances for short needle insertion as inputs, and returns covariances for long needle insertion as outputs. In the previous work in [21], we sampled needle trajectories and then computed the covariance from the samples in order to obtain the inputs. Using the closed-form covariance in (30), we can calculate the input covariances very fast, because the sampling process is not required and the evaluation of (30) is very quick.

4 Path Planning Using the POP Algorithm

In this section, we use the POP algorithm to generate needle trajectories. We consider two distinct situations. The first situation is that there is no obstacle and we should determine the insertion position and orientation under the assumption that the needle trajectory is close to a perfect circular arc. Second, we consider the case where the insertion position and orientation are given and the needle trajectory may not be close to a circular arc.

4.1 Choosing the Needle Insertion Location and Orientation

The choice of the insertion position and orientation for a flexible needle with a bevel tip can make path planning very simple and fast. It also can influence the amount that the needle needs to be inserted in order to reach a target. This is similar to the port placement problem studied in [1,4,26]

If the tangent to the needle is denoted as the local e3 direction, the bevel causes the needle to rotate at a rate κυ(t) around the local e1 axis, where υ(t) is the insertion speed. If υ(t) = 1 and ω(t) = 0, the points on the circular arc needle trajectory will be parameterized in the frame of reference attached at the point of needle insertion as

x1(t)=0,x2(t)=0tsin(0τkds)dτ=1κ[cos(κt)1],x3(t)=0tcos(0τκds)dτ=1κsin(κt),

where 0 ≤ tT. Let x(t) = [x1(t), x2(t), x3(t)]T. A frame of reference at every point on the curve is defined by the pair (R(t), x(t)) where R(t) = Rx(κt).

The needle insertion pose can be chosen such that the initial needle tip position can be any position on the boundary surface of the volume into which the needle is to be inserted, and the orientation is arbitrary except for the constraint that the needle tip must be initially pointing toward the volume into which it is being inserted. For simplicity, it is assumed here that the only bounding surface being considered for insertion is planar. This means that a transformation of the insertion frame will be of the form

(A,b)=(Ab0T1)whereA=Rz(α)Rx(β)Rz(γ)andb=[b1,b2,0]T.

The allowed range of angles is 0 ≤ α ≤ 2π, 0 < β < π/2, and 0 ≤ γ ≤ 2π. Note that the range of β is half of the usual allowed for Euler angles.

If the needle is angled and its initial position is changed before insertion, then the resulting end pose of the needle tip after pushing in for time t = T, will be

(Rtip,xtip)=(A,b)(R(T),x(T)),orRtip=ARx(κT)andxtip=Ax(T)+b.

This means that

xtip=RtipRx(κT)x(T)+b. (32)

The pairs (Rtip, xtip), (A(α, β, γ), b) and (R(T), x(T)) respectively have six, five and one degrees of freedom. Whereas (Rtip, xtip) is the specified goal (where we might not care about the roll degree of freedom in Rtip), The five insertion pose parameters α, β, γ, b1, b2 and the needle insertion time, T, are what we have control over. Therefore, the inverse kinematics problem is determining α, β, γ, b1, b2, T for given (Rtip, xtip). As explained below, this can be done in closed form.

To begin, observe that

Rx(κT)x(T)=(01κ[1cos(κT)]1κsin(κT)).

This means that the third component in the positional equation in (32) can be written as

x3tip=1κ(r32tip·[1cos(κT)]+r33tip·sin(κT)). (33)

If we let z = tan(κT/2) then

cos(κT)=1z21+z2andsin(κT)=2z1+z2

and (33) is written as the quadratic equation:

az2+bz+c=0,

where a, b, and c are each functions of κ, x3tip, and r32tip. This sort of trick is common in kinematics [19,25,27].

Solving this quadratic equation for z using the above formulas for cos(κT) and sin(κT) together with the two-argument inverse tangent function allows us to recover T as

T=1κAtan2(2z1+z2,1z21+z2).

If we do not care about the roll at the tip, then writing Rtip = Rz(αtip)Rx(βtip)Rz(γtip) means that

r32tip=sinβtipcosγtipandr33tip=cosβtip,

where 0 ≤ γtip ≤ 2π can be used to parameterize a whole family of solutions to the “position-plus-pointing” problem. In other words, since the desired 3D position and the desired 2D pointing direction are specified, γtip is a free variable. In the case when there are no obstacles, we can choose a solution from this one-dimensional set that minimizes T. The optimal value γtip = 0 can be obtained based on the geometric observation that the minimum T occurs when the plane on which the circular arc needle trajectory is placed is perpendicular to the xy plane.

After this solution is obtained, T is known, and back-substitution into the first two components of (32) yields b1 and b2. And the needle insertion orientation is calculated simply as

A=RtipRx(κT).

Fig. 3 shows two examples of port placement and the path planning result by the POP algorithm. For a target position and direction which is denoted by Gtarget, a pair of insertion position and orientation which is denoted by Gstart is obtained using the port placement method. If there is no error in the insertion mechanism, the ideal input is ω(t) = 0, because the port placement method was based on the pure insertion without twisting. However, in practice, the error cannot be avoided perfectly. As mentioned in Section 2.3, the POP method deals with this error by reflecting the error from the previous intermediate step to the choice of the current intermediate step during the consecutive determination of intermediate steps. In the simulation shown in Fig. 3, the errors in the rotation angles and the intermediate pure push are assumed to be non-zero. Therefore, the needle tends to get off the path that we aim for, but the POP algorithm keeps correcting the error to have the needle to get back to the planed path. For the examples in Fig. 3, the errors in rotation angles are sampled from the normal distribution whose mean and variance are zero and λ2, respectively. This error model is based on the initial setting in (5). The pure push with error is simulated by integrating the SDE (6).

Figure 3.

Figure 3

Two examples of port placement.

We implemented the POP algorithm with 10 intermediate steps. We used κ = 0.157 (cm−1) which corresponds to a circular arc with radius = 6 (cm). We choose this for better demonstration. The noise parameter is set as λ = 0.1, which means the angular speed of needle rotation is perturbed by adding a Gaussian with standard deviation = 0.1 (rad/s). This assumption of small perturbation is consistent with observation of repeated insertion in [33]. The smearing factors are set as ε1 = 0.001 and ε2 = 0.0001 in the simulation examples. This implies that the zero-mean artificial distribution for smearing has the rotational standard deviation = 0.032 (rad) and the translational standard deviation = 0.01(cm). These values do not significantly distort the initial distribution because they imply that the corresponding distribution is fairly tightly focused.

The POP algorithm also works for the case where the actual insertion position and orientation are not exactly the same as the ones planed by the port placement method. The discrepancy will occur because of the uncertainty of the needle positioning system. Fig. 4 shows a few examples. In Fig. 4(a) for various starting positions near the optimal location, the paths generated by the POP algorithm hit the target successfully. Fig. 4(b) shows an example of the POP algorithm handling the cases where there are errors in the orientation at the insertion location. For various starting orientations near the optimal orientation, the POP algorithm produces the paths that hit the target successfully.

Figure 4.

Figure 4

Paths generated by the POP algorithm in the case where there are errors in the insertion pose. (a) Positional errors, (b) orientational errors.

4.2 Path-of-Probability Algorithm with Splines

For convenience, let us define a baseline trajectory as a trajectory that can be obtained by integrating (6) with zero noise, λ = 0. This baseline trajectory plays a crucial role in the path-of-probability algorithm, because this algorithm searches the workspace density around the baseline trajectory using the probability density function in (10). Note that even though the mean path, μ(t) in (10) is not exactly the same as this baseline trajectory, the two paths can be treated as the same in practice when the noise is small.

The POP algorithm shows better performance with target positions and orientations that are close to the baseline trajectory. If we use the port placement method in the previous subsection, the target pose is close to the baseline trajectory that is a circular arc. However this is a very limiting case. In this subsection, we will develop a method for more general cases.

Suppose the start and target poses are given, and the circular arc trajectory by pure insertion is far from the target pose. In order to solve this, we need to start with a new baseline trajectory that is close to the target pose. In other words, we need a better ω0(t) in (6) so that the baseline trajectory closely reaches the desired pose. Note that the new baseline trajectory does not have to hit the desired pose exactly, because we will apply the POP method to the new baseline trajectory to reach the desired pose accurately.

4.2.1 Generating Baseline Trajectory using Splines

Now we will generate a spline that connects the start and final positions with the given pointing directions at both locations. Then we will obtain a baseline trajectory that roughly follows the spline. We expect that the baseline trajectory will reach the desired pose fairly close.

A polynomial spline can be written as

x(t)=k=0NpktkR3, (34)

where pk ∈ ℝ3 are the coefficients for the spline and t is the spline parameter. For boundary conditions, we have

x(0)=x0,x(tf)=xf,

and

x.(0)=u0u0,x.(tf)=ufuf, (35)

where x0 and xf are the starting and final positions, respectively, and u0 and uf are the unit vectors for the starting and final pointing directions, respectively. is the derivative of x with respect to the spline parameter t. The magnitudes of the direction vectors, u0 and uf, are free parameters, since only the directions are given. Therefore, we need to determine pk, u0 and uf to have a spline.

The Frenet-Serret apparatus, which is defined for an arc-length-parameterized space curve, can be adapted to one that is parameterized by an arbitrary parameter t as:

u(t)=x.(t)/||x.(t)||;b(t)=(x.(t)×x¨(t))/||x.(t)×x¨(t)||;n(t)=b(t)×u(t),

where u(t), b(t) and n(t) are the tangent, binormal and principal normal vector, respectively. Then R(t) = [b(t); n(t); u(t)] is a rotation matrix that varies along the arclength of the curve constituting the Frenet frames.

Ideally, we need a spline which has a constant curvature κ, because the actual needle trajectory defined by (4), which must have a curvature of κ, will be made to follow the spline as closely as possible. However, it is computationally expensive to compute splines with a constant curvature. Alternatively, we consider the following two cost functions.

c1(p)=0tf||x.(t)||2dt,andc2(p)=0tf||κ(t)κ||2dt,

where κ(t) = ||(t) × (t)||/||(t)||3 is the curvature of the spline at t, κ is the curvature of the needle trajectory modeled in (4), and p is the vector consisting of each pk concatenated. By minimizing the first cost function c1, we have a spline with minimum length. The second cost function will push the needle to have constant curvature, κ. It is ideal to minimize the weighted sum of the two costs. However, it will be computationally costly because c2(p) is not a quadratic form with respect to p while c1(p) is. Since it is not a final goal to have an optimal spline with the boundary conditions and the desired curvature, we will try to obtain a “near-optimal” spline with a fast and simple computation and then use it for the POP algorithm.

Minimizing c1(p) with the boundary conditions is easy, because it is the minimization of a quadratic cost function subject to linear constraints. Stated generally, the cost and constraints can be respectively written as

c1(p)=12pTApaTp,

subject to

Cp=m.

Note that m is a function of u0 and uf. Using Lagrange multipliers, the modified cost becomes

c1(p,λ)=12pTApaTp+λT(Cpm).

The solution is the one for which

c1p=0andc1λ=0.

This can be written as

(ACTCO)(pλ)=(am) (36)

or

(pλ)=(ACTCO)1(am).

Then we can evaluate c2(p) with p from (36). This evaluation can be written as

c=c2(argmaxpc1(p)). (37)

As mentioned earlier, u0 and uf in (35) are the free parameters. Therefore, evaluation of (37) requires the given values for u0 and uf. In other words, the function c in (37) can be treated as a function of u0 and uf. Thus we can minimize the cost with respect to u0 and uf. A nonlinear minimization method is required, but the computation is quite fast, because we have only two arguments, and computation of (36) and evaluation of (37) are fast.

4.2.2 POP Method with Splines

Now we will find a baseline trajectory fit to the spline. Basically, we will fit the intermediate positions of the needle trajectory to the corresponding locations on the spline.

Suppose the needle is inserted for time T with the unit insertion speed (υ(t) = 1). Then the insertion length is T. If we consider the M intermediate steps for the POP method, we can divide the spline into M pieces such that all pieces have the same arc length. Using these dividing points on the spline, we make the needle trajectory fit the spline. Specifically, the rotation angle for the ith joint of the needle trajectory can be obtained by

θi=argmaxθ[02π)||qiri(θ)|| (38)

where qi ∈ ℝ3 is the ith dividing point on the spline and ri(θ) is the 3D position of the ith joint on the needle trajectory. Explicitly, ri(θ) is defined as

(Riri(θ)0T1)=R(θ1)h(Δt)R(θ2)h(Δt)R(θi1)h(Δt)R(θ)h(Δt),

where ht) ∈ SE(3) represents pure insertion without twisting for t = Δt = T/M. Using the rotation angles determined here, we can have the needle trajectory coarsely fit the spline. With this baseline trajectory, we apply the POP method to solve the path planning problem.

Fig. 5 shows an example of the POP method with a spline. The needle inserted at (0, 0, 0) along the z-axis (upward in the figure). Gtarget depicts the desired pose. The curve with circles in Fig. 5(a) shows a polynomial spline connecting the start and target positions with the desired pointing directions. The circles on the spline are the reference points from which the baseline trajectory is obtained. The baseline trajectory is shown in Fig. 5(b). Note that the baseline trajectory does not hit the target perfectly, but it reaches close. Finally the POP method gives a path hitting the target as shown in Fig. 5(c). 10 intermediate steps are used for the POP algorithm and the parameter values are κ = 0.157, λ = 0.1, ε1 = 0.001 and ε2 = 0.0001 as used in Section 4.1. Fig. 6 shows the additional path planning results when various targets are considered.

Figure 5.

Figure 5

A path produced by the POP algorithm with a spline. (a) A spline, (b) a baseline trajectory, (c) a path generated by the POP algorithm using the baseline trajectory from (b).

Figure 6.

Figure 6

Path planning using the POP algorithm with a spline for several desired targets.

The computation time for each path planning in this simulation is about 1.6 sec. We used a standard PC (Intel Core Duo processor 2.66GHz, 1GB memory) and Matlab programming. Since the whole trajectory consists of 10 intermediate insertions, this path planning can give the each intermediate insertion in about 0.16 sec. This fast computation is possible because of the closed-form formula for covariance matrix, the approximation of probability density function using a Gaussian, and the use of polynomial splines.

For a long general spline, we can apply the method above in a piecewise fashion. Suppose that we have a desired target (Gtarget) and two spherical obstacles and that an obstacle-avoiding spline connecting the starting and desired positions with the given pointing directions is obtained in some way as shown in Fig. 7(a). This spline may be a result of path planning for holonomic systems with obstacles or another method for needle path planning, even though we used (34) to generate the spline in this example. Next we choose two poses (G1 and G2) that the needle should pass through in order to avoid the obstacles. Then, we can obtain a path from O to G1 using the POP method with a spline. We repeat it from G1 to G2, and from G2 and Gtarget. The result is a trajectory from O to Gtarget via G1 and G2 as shown in Fig. 7(b). This example also demonstrates how we can apply our path planning approach to the environment with obstacles.

Figure 7.

Figure 7

(a) A long spline with a target and two obstacles, (b) a path generated by the POP algorithm with a spline in a piecewise fashion.

For more reliable avoidance, we can define obstacles with larger redundant area. Development of the systematic way to find a long spline that avoids obstacles is a subject of its own. We note that there is a huge literature for path planning of holonomic point robots using artificial potential fields or C-space methods among others. In principle, any such method could be used to generate the reference trajectory, and our method could be used on top. Therefore, while our specific implementation used a spline, this can be thought of as one instantiation of a more general approach.

As long as the probability flows along/near the spline without intersecting obstacles, the method works well. In principle, if there were narrow passages, the method would fail. The way around this would be to compute the evolution of probability densities that include obstacle boundaries after each push-twist move. This would be necessary if, for example, there is no port placement that can circumvent narrow passages. While it is possible to generate obstacle-avoiding probability flows for 3D searches (see [32]) that would preserve the non-greedy nature of POP even in cluttered environments, it would be computationally prohibitive for full 6D search. Therefore, we restrict our scope to exclude the case of narrow passages. This justifies the use of the port placement in Section 4.1, which gives significant freedom in the choice of insertion pose.

To see robustness of our algorithm and reflect the most recent stochastic needle model, we try to combine our planning method with the new needle model induced by the observation of real needle insertion. Consider the following needle model [23]:

(g1g.)dt=(κv00ω0(t)00v0)Tdt+(00λ1000κλ20000λ2λ300000)T(dW1dW2dW3) (39)

with the parameters

λ1=0.0219,λ2=0.04937,λ3=0.0043,κ=0.062. (40)

The model with three noise parameters was developed using the 3D position information of 100 needle trajectories that were detected by stereo vision [23]. The parameters were determined so that the needle model (39) best fits the 100 needle trajectories. Fig. 8 shows the path planning results using the needle model (39) and the parameter values (40), when various targets are considered.

Figure 8.

Figure 8

Path planning using the POP algorithm with a spline for several desired targets. In this path planning, the new needle model (39) and parameters (40) from [23] are used.

5 Conclusion

In this work, we proposed a new framework for path planning of flexible needles. This method primarily uses the path-of-probability algorithm with a closed-form probability density function. Based on the stochastic model for needle insertion, we approximate the probability density function for the needle tip pose with a shifted Gaussian distribution and obtain the mean and covariance for the probability density function using the second order error propagation theory. We derived the closed-form expression for the first order error propagation and used it to compute the inputs for the second order error propagation formula. This method enables fast computation of the covariance without sampling.

A nice feature of our planning method is that we can compute the insertion plan for intermediate steps in a serial manner. The insertion plan for the ith intermediate step can be determined without considering the specific plan for the intermediate steps after the ith step. This is possible because we consider the probability of the future insertion. For a given insertion plan for the 1st, 2nd, ···, (i − 1)th steps, the insertion plan for the ith intermediate step can be determined by maximizing the probability that the remaining insertion reaches the target. Using this feature, we demonstrated that the path planning method presented here can be applied to feedback control of the flexible needle. According to the insertion plan for the ith intermediate step, we insert the needle and then measure the actual insertion that will be slightly different from the planed one. Based on the measured insertion, we move on to the determination of the insertion plan for the next step. In this process, the error in the actual ith insertion will be corrected in the plan for the (i + 1)th insertion.

In a simple case where there is no obstacle and we have full freedom to choose the insertion location and orientation, we solved the port placement problem and the POP algorithm provided a needle path. The simulation demonstrated that the planning method works when there are errors in the actual intermediate insertions as well as in the initial pose due to uncertainty. For more general case, a new method to use splines with the POP algorithm was developed. A spline is used to find a baseline needle path which the POP algorithm is applied to.

The computation efficiency is significantly improved compared to the previous work in [21]. In the previous work, one drawback was that we need to perform a 1D search for the roll angle of the target pose. The roll angle of the needle at the moment the needle hits the target is not important, because any roll angle at that moment can be achieved by twisting the needle after hitting the target. However, the mathematical formulation in (10) needs 6D full information including roll angles of the target pose. In this paper, we could avoid this difficulty by determining the reasonable value for the roll angle. In the port placement problem, the roll angle is determined so that the circular arc needle path has shortest length. When we use a spline with the POP algorithm, we can define the spline with the positions and pointing directions at the starting and target locations. Then the Frenet-Serret frame by the spline gives the appropriate roll angles. Therefore we do not need to perform a 1D search for the roll angle. The actual time consumption for the example in Fig. 5 is 1.6 sec, when we use a standard PC (Intel Core Duo processor 2.66GHz, 1GB memory) and Matlab programming. This calculation includes the computation of covariances and a spline as well as path generation by the POP algorithm.

The example in Fig. 7 shows that our method can be extended to the environment with obstacles. Suppose that we prepare a spline that avoids all obstacles. We can do this using classical ways of path planning with obstacle avoidance. Then we pick the important points on the spline which the needle will pass through. The piecewise approach shown in Fig. 7 can make the needle reach the target avoiding the obstacles. As future work, we plan to develop a more systematic method to incorporate obstacle-avoiding splines and the POP algorithm.

In many ways, our approach based on the path-of-probability method is similar to methods that use reachable sets (see e.g. [13]). The level curves of our probability densities can be viewed as boundaries of reachable sets associated with perturbations of each baseline trajectory. As in [13], the whole insertion which we seek is divided into several intermediate insertions. The planner (or controller) determines the intermediate insertions in a serial manner. For given current needle state and goal position, the next intermediate insertion is chosen based on a criterion.

In [13], from a set of proposed trajectories which are helices, one helix is selected that terminates closest to the goal position. A set of deterministic helical paths are considered and an optimal helix is selected. Actual insertion for Δt is performed, and it may be slightly different from the planned trajectory. The feedback controller computes the next insertion considering the actual needle state.

In contrast, our planner chooses an intermediate insertion using probability density functions (PDFs). In this method, we compute the PDF for the possible next insertions. This PDF comes naturally based on our stochastic modeling. The method in [13] assumes the deterministic path and compensates the insertion error after the actual insertion is performed. However, in our method, when the next insertion is considered, the possible noise in the actual insertion is also considered and is reflected in the choice of the next intermediate insertion. Furthermore, in our method, the desired direction of the needle can also be specified. The ability to specify the desired direction of the needle can be useful in medical procedures with flexible needles, although most path planning methods for flexible needles neglect this feature.

Acknowledgments

This work was supported by NIH Grant R01EB006435 “Steering Flexible Needles in Soft Tissue.” The authors would like to thank Kevin Wolfe and Michael Kutzer for providing comments and proofreading.

Appendix

We review the second order propagation formulas. The entire work including derivation appears in [31].

If a PDF, ρi(g), has mean μi and covariance Σi for i = 1, 2, then to second order, the mean and covariance of (ρ1 *ρ2)(g) are respectively [7]

μ12=μ1μ2and12=A+B+F(A,B),

where A=Ad(μ21)1AdT(μ21), B= Σ2. Here

F(A,B)=C(A,B)/4+(AB+(AB)T+BA+(BA)T)/12.

A″ is computed as

A=(A11tr(A11)I303A12+A12T2tr(A12)I3A11tr(A11)I3),

where Aij are 3 × 3 matrices holding

A=(A11A12A12TA22).

B″ is defined in the same way with B replacing A everywhere in the expression. The blocks of C are computed as

C11=D11,11C12=(D21,11)TD11,12=C21C22=D22,11D21,21(D21.12)TD11,22

where Dij,kl = D(Aij, Bkl), and the matrix-valued function D(A′, B′) is defined relative to the entries in the 3 × 3 blocks A′ and B′ as

d11=a33b22+a31b32+a23b23a22b33,d12=a33b21a32b31a13b23+a21b33d13=a23b21+a22b31+a13b22a12b32,d21=a33b12a31b32a21b13+a21b33d22=a33b11+a31b31+a13b13a11b33,d23=a23b11a21b31a13b12+a11b32d31=a32b12+a31b22+a22b13a21b23,d32=a32b11a31b21a12b13+a11b23d33=a22b11+a21b21+a12b12a11b22.

Footnotes

1

In this paper, pose denotes the 6 degrees-of-freedom (DOF) of a reference frame in 3D space. It consists of 3 positional DOF and 3 orientational DOF.

References

  • 1.Adhami L, Coste-Manière È, Boissonnat J-D. Planning and simulation of robotically assisted minimal invasive surgery. Proc. Medical Image Computing and Computer Assisted Intervention- MIC-CAI; Pittsburgh, PA. 2000. pp. 624–633. [Google Scholar]
  • 2.Alterovitz R, Branicky M, Goldberg K. Motion planning under uncertainty for image-guided medical needle steering. International Journal of Robotics Research. 2008;27:1361–1374. doi: 10.1177/0278364908097661. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 3.Brockett RW. Differential geometric control theory. Birkhauser; Boston: 1983. Asymptotic stability and feedback stabilization; pp. 181–191. [Google Scholar]
  • 4.Cannon J, Stoll J, Selha S, Dupont P, Howe RD, Torchiana D. Port placement planning in robot-assisted coronary artery bypass. IEEE Transactions on Robotics and Automation. 2003;19(5):912–917. doi: 10.1109/TRA.2003.817502. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 5.Chirikjian GS, Zhou S. Metrics on motion and deformation of solid models. ASME J Mechanical Design. 1998;120(2):252–261. [Google Scholar]
  • 6.Chirikjian GS, Ebert-Uphoff I. Numerical convolution on the Euclidean group with applications to workspace generation. IEEE Trans on Robotics and Automation. 1998;14(1):123–136. [Google Scholar]
  • 7.Chirikjian GS, Kyatkin AB. Engineering Applications of Noncommutative Harmonic Analysis. CRC Press; 2000. [Google Scholar]
  • 8.Chirikjian GS. Stochastic Models, Information Theory, and Lie Groups. Vol. 2. Birkhäuser; Boston: (to appear) [Google Scholar]
  • 9.Choset H, Lynch KM, Hutchinson S, Kantor G, Burgard W, Kavraki LE, Thrun S. Principles of Robot Motion: Theory, Algorithms, and Implementations. The MIT Press; Cambridge, MA: 2005. [Google Scholar]
  • 10.Duindam V, Xu J, Alterovitz R, Sastry S, Goldberg K. 3D motion planning algorithms for steerable needles using inverse kinematics. Workshop on Algorithmic Foundations of Robotics (WAFR); Guanajuato, Mexico. December, 2008; [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 11.Duindam V, Alterovitz R, Sastry S, Goldberg K. Screw-based motion planning for bevel-tip flexible needles in 3D environments with obstacles. IEEE International Conference on Robotics and Automation; May 2008; pp. 2483–2488. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 12.Ebert-Uphoff I, Chirikjian GS. Inverse kinematics of discretely actuated hyper-redundant manipulators using workspace densities. IEEE International Conference on Robotics and Automation,; April 1996.pp. 139–145. [Google Scholar]
  • 13.Hauser K, Alterovitz R, Chentanez N, Okamura A, Goldberg K. Robotics: Science and Systems. Seattle, WA: 2009. Feedback control for steering needles through 3D deformable tissue using helical paths. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 14.Higham DJ. An algorithmic introduction to numerical simulation of stochastic differential equations. SIAM Review. 2001;43(3):525–546. [Google Scholar]
  • 15.Kavraki LE, Švestka P, Latombe JC, Overmars MH. Probabilistic roadmaps for path planning in high-dimensional configuration spaces. IEEE Trans on Robotics and Automation. 1996 June;12(4):566–580. [Google Scholar]
  • 16.Kuffner JJ. Effective sampling and distance metrics for 3D rigid body path planning. IEEE International Conference on Robotics and Automation; 2004. pp. 3993–3998. [Google Scholar]
  • 17.LaValle SM. Planning Algorithms. Cambridge University Press; 2006. [Google Scholar]
  • 18.Laumond JP, editor. Lecture Notes in Control and Information Sciences. Vol. 229. Springer; New York: 1998. Robot Motion Planning and Control. [Google Scholar]
  • 19.Manocha D, Canny J. IEEE Trans Robot Automat. Vol. 10. 1994. Efficient inverse kinematics for general 6R manipulators; pp. 648–657. [Google Scholar]
  • 20.Mason R, Burdick JW. Trajectory planning using reachable-state density functions. IEEE International Conference on Robotics and Automation; Washington, D.C. May 2002.pp. 273–280. [Google Scholar]
  • 21.Park W, Wang Y, Chirikjian GS. Path planning for flexible needles using second order error propagation. Eighth International Workshop on Algorithmic Foundations of Robotics (WAFR); Guanajuato, Mexico. December, 2008. [Google Scholar]
  • 22.Park W, Kim JS, Zhou Y, Cowan NJ, Okamura AM, Chirikjian GS. Diffusion-based motion planning for a nonholonomic flexible needle model. IEEE International Conference on Robotics and Automation; 2005. pp. 4600–4605. [Google Scholar]
  • 23.Park W, Reed KB, Okamura AM, Chirikjian GS. Estimation of model parameters for steerable needles. IEEE International Conference on Robotics and Automation; 2010. (in review) [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 24.Park W, Liu Y, Zhou Y, Moses M, Chirikjian GS. Kinematic state estimation and motion planning for stochastic nonholonomic systems using the exponential map. Robotica. 2008:419–434. doi: 10.1017/S0263574708004475. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 25.Raghavan M, Roth B. Inverse kinematics of the general 6R manipulator and related linkages. ASME J Mech Design. 1993;115:502–508. [Google Scholar]
  • 26.Selha S, Dupont P, Howe RD, Torchiana DF. Optimal port placement in robot-assisted coronary artery bypass grafting. Proceedings of the Fourth International Conference on Medical Image Computing and Computer-Assisted Intervention; Utrecht, The Netherlands. October 2001. [Google Scholar]
  • 27.Sommese AJ, Wampler CW. The Numerical Solution of Systems of Polynomials Arising in Engineering And Science. World Scientific Publishing; Singapore: 2005. [Google Scholar]
  • 28.Souères P, Laumond JP. Shortest paths synthesis for a car-like robot. IEEE Trans on Automatic Control. 1996 May;41(5):672–688. [Google Scholar]
  • 29.Wang Y, Chirikjian GS. Second-order theory of error propagation on motion groups. Workshop on Algorithmic Foundations of Robotics (WAFR); New York City. August 2006; [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 30.Wang Y, Chirikjian GS. Error propagation on the Euclidean group with applications to manipulator kinematics. IEEE Transactions on Robotics. 2006;22(4):591–602. [Google Scholar]
  • 31.Wang Y, Chirikjian GS. Nonparametric second-order theory of error propagation on motion groups. Int J of Robot Res. 2008;27:1258–1273. doi: 10.1177/0278364908097583. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 32.Wang Y, Chirikjian GS. A new potential field method for robot path planning. IEEE International Conference on Robotics and Automation; 2000. pp. 977–982. [Google Scholar]
  • 33.Webster RJ, III, Kim JS, Cowan NJ, Chirikjian GS, Okamura AM. Nonholonomic modeling of needle steering. International Journal of Robotics Research. 2006;25:509–525. [Google Scholar]
  • 34.Zhou Y, Chirikjian GS. Probabilistic models of dead-reckoning error in nonholonomic mobile robots. IEEE International Conference on Robotics and Automation; Taipei, Taiwan. Sept 14–19, 2003.pp. 1594–1599. [Google Scholar]

RESOURCES