2. 浙江大学 流体动力与机电系统国家重点实验室, 浙江 杭州 310027
2. State Key Laboratory of Fluid Power and Mechatronic Systems, Zhejiang University, Hangzhou 310027, China
作为一种微创手术技术, 针穿刺广泛应用于活检、脊柱硬膜外注射、近距放射治疗、麻醉和消融等临床实践[1-2].通常情况下, 如近距放射治疗、麻醉和活检等手术要求mm级的针穿刺精度, 当手术涉及婴儿、眼睛和耳朵等时, 要求针穿刺精度达到mm级[3].此外, 穿刺针在穿刺过程中需要绕开血管和骨骼等障碍物而到达靶点[4], 否则导致严重的并发症, 因此需要严格控制针穿刺的路径.传统的刚性穿刺针由于难以发生较大弯曲, 不能绕过障碍物到达靶点;斜尖柔性穿刺针具有很好的可操控性, 能够绕过障碍物到达靶点[5].医生依靠自身的感觉以及三维解剖结构经验, 操控超柔性穿刺针沿特定路径进针极具挑战.最具潜力的机器人辅助针穿刺操控技术由于能够精确控制进针量和针尖方向, 成为近年来研究的热点[6-7].路径规划和避障技术是机器人辅助针穿刺操控技术的两大核心问题, 多年来, 虽然有大量的相关文献对针刺路径规划问题展开了研究, 但是由于柔性穿刺针是一个非完整系统以及存在组织变形导致靶点偏移和组织结构复杂等诸多因素[8], 柔性穿刺针路径规划和避障技术一直没有得到解决.Webster等[8-9]通过实验证明, 在理想条件下, 斜尖柔性针沿着固定半径的圆弧路径进行穿刺, 通过改变斜尖的方向可以改变圆弧曲线的方位.此后, 大量的相关文献都基于Webster等[8, 10-13]的结论来进行斜尖柔性穿刺针运动学、路径规划和避障技术研究.Webster等[8, 11]基于自行车模型, 给出斜尖柔性针的正向运动学模型, 但没有给出逆向运动学模型.Park等[13]利用随机路径(path-of-probability, POP)算法对柔性穿刺针的路径规划算法进行研究, 但是所存在的局限性将整个穿刺路径进行了等量分段处理.Duindam等[10]利用几何学方法对柔性穿刺针的逆向运动学进行分析, 但是提供的模型都是针对特定分段数的路径, 并且为了减少自由度, 易于计算, 规定了少数操控量(旋转角度)的值.现有方法只能求出部分可行路径, 现有方法的局限性在一定程度上限制了路径规划和避障技术的研究和与应用.
相对上述方法, 本文的几何逼近法由于没有对穿刺针进行等分段、固定分段数和指定某些操控量等特殊处理, 能够遍及所有逆解.提供的运动学模型虽然是基于斜尖柔性穿刺针的特性所建立的, 但是很容易拓展到其他具有类似特点的路径规划问题中.
1 坐标系统 1.1 针尖坐标系斜尖柔性针进行穿刺时, 针尖运动完全受控于针体在针座处的运动, 且针座与针尖运动之间无扭转迟滞效应.Duindam等[10]将三维条件下的穿刺针比作固定速率、常俯仰率、零偏转角和回转角可控的飞机.如图 1所示, 建立针尖坐标系, 坐标原点O建立在针轴线与针尖斜面的交点处, Z轴为进针方向, X轴位于针尖偏转平面内且指向偏转方向, Y轴根据右手法则确定.图中, vt为针尖进针速度(等于针体在基座处的进针速度);ωt为针尖旋转速度(通常小于针体在基座处的旋转速度);α为回转角;β为俯仰角;γ(等于0) 为偏转角;r为圆弧路径固定半径.
传统刚性针穿刺将针夹持在针座上, 通过针座的进给和旋转运动带动穿刺针进行穿刺[14-17].采用该穿刺方法进行柔性穿刺针穿刺, 会使得柔性针在体外发生折曲, 无法刺入体内.与传统的刚性针穿刺过程不同, 如图 2所示, 柔性穿刺针在非常靠近针座处的驱动力作用下以及在针座的支撑下刺入组织内部[8-9, 18].图 2中, vb为针体在针座处的进针速度, ωb为针体在针座处的旋转速度.这种穿刺过程由于驱动力作用点非常靠近针座, 且针座在整个穿刺过程中不运动, 可以将非常柔性的穿刺针刺入组织内.根据柔性穿刺针穿刺过程的特点可知, 整个穿刺路径由多段同面或异面圆弧曲线相切形成[19].假定整个穿刺路径由n(n为正整数)段圆弧组成, 第i(i=1, …, n)段圆弧路径长度为Δli.整个针穿刺过程如下:首先将针尖以特定的姿态定位于皮肤表面, 其次将针尖绕针轴线旋转α1, 最后进针深度Δl1, 重复进行后两步动作到刺中目标靶点T[8-11].在针穿刺过程中, 针尖的坐标系是一个动态的更替建立过程, 即针尖在每段路径的始端时留下针尖坐标系, 到达末端时产生新的针尖坐标系, 这样不断的重复下去, 形成了如图 2所示的坐标系统.动态建立坐标系统的最大优点是可以实时地捕获针尖的位姿信息.
正向运动学是已知操控量(穿刺针初始位姿、绕针轴旋转的角度αi和进针量Δli), 求取针穿刺路径.首先, 穿刺针绕针轴旋转αi, 即坐标系Oi-1-Xi-1Yi-1Zi-1绕Zi-1轴旋转αi形成坐标系Oi-1′-Xi-1′Yi-1′Zi-1′;其次, 穿刺针进针深度Δli, 这时由于穿刺针发生了弯曲变形, 将坐标变换分两步进行,如图 3所示.1) 坐标系Oi-1′-Xi-1′Yi-1′Zi-1′平移(hi, 0, di)形成坐标系Oi-1″-Xi-1″Yi-1″Zi-1″;2) 坐标系Oi-1″-Xi-1″Yi-1″Zi-1″绕Yi-1″轴旋转βi形成新的坐标系Oi-XiYiZi;不断地重复这两步, 形成了整个针穿刺过程的坐标描述.对于给定的均匀假体及穿刺针, r是确定的, 有βi=Δli/r, hi= r(1-cos βi), di=rsin βi.
综上所述, 第i段路径的齐次坐标变换矩阵如下式所示(s代表sin, c代表cos):
$ \begin{array}{l} {^{i- 1}_i}\boldsymbol{T}\left( {{\alpha _i}, \Delta {l_i}} \right) = {\rm{Rot}}(Z, {\alpha _i}){\rm{Trans}}({h_i}, 0, {d_i}){\rm{Rot}}(Y, {\beta _i}) = \\ \left[\begin{array}{l} {\rm{c}}{\alpha _i}{\rm{c}}\frac{{\Delta {l_i}}}{r}\;\;\;\;-{\rm{s}}{\alpha _i}\;\;\;\;{\rm{c}}{\alpha _i}{\rm{s}}\frac{{\Delta {l_i}}}{r}\;\;\;\;r{\rm{c}}{\alpha _i}(1-{\rm{c}}\frac{{\Delta {l_i}}}{r})\\ {\rm{s}}{\alpha _i}{\rm{c}}\frac{{\Delta {l_i}}}{r}\;\;\;\;\;{\rm{c}}{\alpha _i}\;\;\;\;\;\;{\rm{s}}{\alpha _i}{\rm{s}}\frac{{\Delta {l_i}}}{r}\;\;\;\;\;r{\rm{s}}{\alpha _i}(1-{\rm{c}}\frac{{\Delta {l_i}}}{r})\\ - {\rm{s}}\frac{{\Delta {l_i}}}{r}\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;{\rm{c}}\frac{{\Delta {l_i}}}{r}\;\;\;\;\;\;\;\;\;\;\;r{\rm{s}}\frac{{\Delta {l_i}}}{r}\\ \;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1 \end{array} \right]. \end{array} $ | (1) |
在初始时刻, 针尖坐标系O0-X0Y0Z0相对于全局坐标系O-XYZ的齐次变换矩阵记为0gT.在针尖穿刺完第i段路径后, 针尖相对于全局坐标系的位姿可用下式表示:
$ \begin{array}{l} {}_i^{\rm{g}}\mathit{\boldsymbol{T}} = {}_i^{\rm{g}}\mathit{\boldsymbol{T}}{}_0^1\mathit{\boldsymbol{T}}\left( {{\alpha _1}, \Delta {l_1}} \right)...{}_i^{i-1}\mathit{\boldsymbol{T}}\left( {{\alpha _i}, \Delta {l_i}} \right) = \\ {}_0^{\rm{g}}\mathit{\boldsymbol{T}}\mathop \Pi \limits_{k = 1}^i {}_k^{k-1}\mathit{\boldsymbol{T}}\left( {{\alpha _k}, \Delta {l_k}} \right){\rm{;}}\;i = 1, 2, \ldots, n. \end{array} $ | (2) |
当ii-1Tαi, Δli的Δli用小于Δli的相应进针量Δlim代替时, 可以求得针穿刺轨迹上第i段路径上的任意一点处针尖的位姿.
式(2) 中, 当i=n时, ngT表示针尖刺到目标靶点时的位姿, 假设ngT用下式表示:
$ {}_n^{\rm{g}}\mathit{\boldsymbol{T}} = \left[\begin{array}{l} {n_x}\;\;\;{o_x}\;\;\;{a_x}\;\;\;{t_x}\\ {n_y}\;\;\;{o_y}\;\;\;{a_y}\;\;\;{t_y}\\ {n_z}\;\;\;{o_z}\;\;\;{a_z}\;\;\;{t_z}\\ 0\;\;\;\;\;0\;\;\;\;\;0\;\;\;\;1 \end{array} \right]. $ | (3) |
在临床应用中, 往往已知病灶点在病人体中的位置以及人体解剖结构, 需要得到一组操控量, 以使穿刺针绕过障碍物精确地到达病灶点.本文不考虑穿刺避障问题, 即在已知靶点的位置而没有障碍物的情况下来求取针穿刺的逆向运动学(操控量).通常, 病灶点是一个体积元, 为了提高针穿刺的容许误差, 选择的靶点位置应该尽量靠近病灶点的中心位置.在靶点T的位置已知, 即ngT中的tx、ty和tz已知的情况下, 式(2)(i=n时)是一个非线性的不定方程组, 直接求解运动学逆解非常困难;随着n的增加, 求解更加困难.通常情况下, 式(2)(i=n时)的逆解是一个多解的情况, 即因为多解, 路径规划有开展的可能性.本文不直接求解逆解, 通过保证针穿刺过程中的针尖对靶点的可达性来确保针尖可以到达目标靶点.如图 4所示, 在针穿刺过程中, 针尖在穿刺路径上的每一点处, 相对靶点都有一个可达空间;当靶点T超出可达空间后, 针尖无法到达靶点.为了使针尖刺中靶点, 只需要保证靶点在穿刺过程中的每一步都在可达空间内即可.如图 4所示, 随着针尖从Si点运动到Si+1点, 可达空间由Ai缩小为Ai+1.在保证针尖实时可达性的前提下, 随着针穿刺的进行, 针尖的可达空间将收敛于靶点, 即针尖刺中了靶点.于是, 穿刺针逆向运动学问题转化成针尖的实时可达性问题.从图 4可以看出, 随着针尖旋转位置Si+1点向右移动, 可达空间Ai+1逐渐缩小并逼近靶点.因为可能使得靶点离开可达空间, 为了保证针尖的可达性, 需要确定每一次进针的最大进针量(临界值), 即每一次进针量都基于当前针尖的状态存在一个最大值.只要针穿刺过程中的每一次进针量都基于当前针尖状态取不超过进针临界值, 均可以使得靶点位于针尖的可达空间内.综上所述, 本文中针穿刺逆向运动学的求解过程是一个实时保证针尖可达性的过程, 从而使得针尖逐渐逼近靶点.根据可达空间逐渐收敛于靶点的特点, 将该逆向运动学求解的方法称为几何逼近法, 该逆向运动学模型称为几何逼近模型.
进针前, 首先将针尖以特定的姿态定位于组织表面上的进针点处(简称进针点), 该过程称为定位针尖初始姿态.在利用几何逼近法求取逆向运动学时, 对定位针尖初始姿态和进针两个过程分别进行研究.其中, 对定位针尖初始姿态过程的研究将得到针尖定位于进针点处时的初始坐标系O0-X0Y0Z0相对于全局坐标系O-XYZ的齐次坐标变换矩阵0gT, 进针过程的研究将得到针尖坐标系Oi-XiYiZi相对于针尖初始坐标系O0-X0Y0Z0的齐次坐标变换矩阵i0T.由于针尖与靶点的距离超过2r, 针尖坐标系处于任何位姿状态, 靶点都位于针尖可达空间内, 即任意进针都能够保证针尖对靶点的可达性, 仅仅通过可达性条件不能约束针尖逐渐逼近靶点.本文主要针对进针点与靶点之间的距离小于等于2r的情况进行研究, 这通常是符合大多数临床应用实践的.当针尖从距离靶点2r外经过任意路径穿刺到距离靶点2r处时, 通过几何分析可知, 此时针尖坐标系Z轴的方向与靶点所成角度都一定不超过π/2, 因此针尖从距离靶点2r外, 经过任意路径穿刺到距离靶点2r处时, 都满足针尖对靶点的可达性要求.
2.2.1 定位针尖初始姿态过程通常情况下, 进针点位置不受几何逼近法的约束, 需要根据实际情况进行路径规划确定, 因此直接将进针点位置作为已知量.如图 5所示, 在全局坐标系O-XYZ下, 进针点Or的位置Pa: (a, b, c)和靶点T的位置PT: (tx, ty, tz)已知.如图 5所示, 建立参考坐标系Or-XrYrZr, Zr轴由进针点指向靶点.首先将全局坐标系O-XYZ的原点平移至点O′得到坐标系O′-X′Y′Z′;其次将坐标系O′-X′Y′Z′绕X′轴旋转αr得到坐标系O″-X″Y″Z″;最后将坐标系O″-X″Y″Z″绕Y″轴旋转βr, 得到参考坐标系Or-XrYrZr.靶点T在参考坐标系Or-XrYrZr中的位置PTr为(0, 0,
$ \begin{array}{l} {}_{\rm{r}}^{\rm{g}}\mathit{\boldsymbol{T}} = {\rm{Trans}}({\mathit{\boldsymbol{P}}_{\rm{a}}}){\rm{Rot}}(X, {\alpha _{\rm{r}}}){\rm{Rot}}(Y, {\beta _{\rm{r}}}) = \\ \left[\begin{array}{l} \;\;\;\;\;\;{\rm{cos}}{\beta _{\rm{r}}}\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{sin}}{\beta _{\rm{r}}}\;\;\;\;\;\;\;a\\ \;\;{\rm{sin}}{\alpha _{\rm{r}}}{\rm{sin}}{\beta _{\rm{r}}}\;\;\;\;\;{\rm{cos}}{\alpha _{\rm{r}}}\;\;\;\;\;-{\rm{sin}}{\alpha _{\rm{r}}}{\rm{cos}}{\beta _{\rm{r}}}\;\;b\\ -{\rm{cos}}{\alpha _{\rm{r}}}{\rm{sin}}{\beta _{\rm{r}}}\;\;\;\;{\rm{sin}}{\alpha _{\rm{r}}}\;\;\;\;\;\;{\rm{cos}}{\alpha _{\rm{r}}}{\rm{cos}}{\beta _{\rm{r}}}\;\;\;\;c\\ \;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;1 \end{array} \right]. \end{array} $ | (4) |
式中:
$ \begin{array}{l} {\alpha _{\rm{r}}} = {\rm{Atan}}2{\rm{ }}({t_z}-c, {t_y}-b)-\frac{\pi }{2}, \\ {\beta _{\rm{r}}} = {\rm{Atan}}2{\rm{ }}({t_x} - a, \sqrt {{{({t_y} - b)}^2} + {{({t_z} - c)}^2}} ). \end{array} $ |
约定:所有的Atan2(y, x)取值为[0, 2π).
如图 6所示, 给出针尖初始坐标系O0-X0Y0Z0与参考坐标系Or-XrYrZr之间的变换关系.参考坐标系Or-XrYrZr绕着Zr轴旋转γs得到坐标系Or′-Xr′Yr′Zr′, 坐标系Or′-Xr′Yr′Zr′绕Yr′轴旋转βs, 得到针尖初始坐标系O0-X0Y0Z0.针尖初始坐标系O0-X0Y0Z0与参考坐标系Or-XrYrZr之间的齐次变换矩阵如下式所示(s代表sin, c代表cos):
$ \begin{array}{l} {}_0^{\rm{r}}\mathit{\boldsymbol{T}}\left( {{\gamma _{\rm{s}}}, {\beta _{\rm{s}}}} \right) = {\rm{Rot}}(Z, {\gamma _{\rm{s}}}){\rm{Rot}}(Y, {\beta _{\rm{s}}}) = \\ \left[\begin{array}{l} {\rm{c}}{\beta _{\rm{s}}}{\rm{c}}{\gamma _{\rm{s}}}\;\;\;\;-{\rm{s}}{\gamma _{\rm{s}}}\;\;\;\;\;{\rm{s}}{\beta _{\rm{s}}}{\rm{c}}{\gamma _{\rm{s}}}\;\;\;\;0\\ {\rm{c}}{\beta _{\rm{s}}}{\rm{s}}{\gamma _{\rm{s}}}\;\;\;\;{\rm{c}}{\gamma _{\rm{s}}}\;\;\;\;\;\;\;{\rm{s}}{\beta _{\rm{s}}}{\rm{s}}{\gamma _{\rm{s}}}\;\;\;\;\;0\\ -{\rm{s}}{\beta _{\rm{s}}}\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;{\rm{c}}{\beta _{\rm{s}}}\;\;\;\;\;\;\;\;0\\ \;\;\;0\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;1 \end{array} \right]. \end{array} $ | (5) |
结合式(4)、(5), 可以得到针尖初始坐标系O0-X0Y0Z0与全局坐标系O-XYZ之间的齐次变换矩阵, 如下所示:
$ {}_0^{\rm{g}}\mathit{\boldsymbol{T}} = {}_{\rm{r}}^{\rm{g}}\mathit{\boldsymbol{T}}{}_0^{\rm{r}}\mathit{\boldsymbol{T}}({\gamma _{\rm{s}}}, {\beta _{\rm{s}}}). $ | (6) |
针尖的可达性不受γs取值的影响, 即γs∈[0, 2π).对于βs来说, 随着βs的增大, 靶点逐渐靠近针尖可达空间的边界, 因此需要控制βs的取值.当靶点位于针尖可达空间A0的边界上时, βs取得最大值, 如图 7所示, βsmax为βs能够取得的最大值, 故βs∈[0, βsmax].图 7中, 靶点T位于针尖可达空间的边界上.可达空间的轴线L是针尖初始坐标系O0-X0Y0Z0的Z0轴方向, 相切于穿刺圆弧轨迹
$ {\beta _{{\rm{smax}}}} = {\rm{arcsin}}\sqrt {\frac{{{{({t_x}-a)}^2} + {{({t_y}-b)}^2} + {{({t_z}-c)}^2}}}{{2r}}} . $ | (7) |
1) n=1, 此时βs=βsmax.
当βs=βsmax时, 靶点T在针尖可达空间的边界上, 因此只有当针尖沿着如图 7所示的
$ \begin{array}{l} \Delta {l_1} = 2r\cdot{\beta _{{\rm{smax}}}} = \\ 2r\cdot{\rm{arcsin}}\sqrt {\frac{{{{({t_x}-a)}^2} + {{({t_y}-b)}^2} + {{({t_z}-c)}^2}}}{{2r}}} . \end{array} $ | (8) |
综上所述, 当n=1时, 穿刺路径只有一段圆弧, 此时逆向运动学可以用下式表示:
$ \left. \begin{array}{l} {\gamma _{\rm{s}}} \in \left[{0, 2\pi } \right], \\ {\beta _{\rm{s}}} = {\rm{arcsin}}\frac{{\sqrt {{{({t_x} -a)}^2} + {{({t_y} -b)}^2} + {{({t_z} -c)}^2}} }}{{2r}}, \\ {\alpha _1} = \pi, \\ \Delta {l_1} = 2r\cdot{\rm{arcsin}}\frac{{\sqrt {{{({t_x} - a)}^2} + {{({t_y} - b)}^2} + {{({t_z} - c)}^2}} }}{{2r}}. \end{array} \right\} $ | (9) |
2) n>1, 此时βs < βsmax.
当Δli-1 < Δli-1max(Δli-1max是第i-1次进针量Δli-1能取的最大值)时, 即如图 8所示的第i-1次进针后针尖坐标系Oi-1-Xi-1Yi-1Zi-1所处的状态.第i-1次进针后靶点T在针尖的可达空间Ai-1的内部, 所以αi∈[0, 2π), 即αi可以在[0, 2π)上任意取值.第i次进针极限情况如下:首先针尖绕Zi-1轴旋转αi, 然后进针Δlimax使针尖坐标系变成图 8所示的坐标系Oi-XiYiZi.在第i次进针Δlimax后, 靶点T位于针尖可达空间Ai的边界上.
图 8中, 向量
针尖刺中靶点时的针尖坐标系On-XnYnZn相对于坐标系Oi-1-Xi-1Yi-1Zi-1的位置和姿态可以用以下齐次矩阵表示:
$ \begin{array}{l} {}_n^{i- 1}\mathit{\boldsymbol{T}} = {(_{\rm{r}}^{\rm{g}}\mathit{\boldsymbol{T}}_0^{\rm{r}}\mathit{\boldsymbol{T}}{}_{i- 1}^0\mathit{\boldsymbol{T}})^{- 1}}_{\rm{n}}^{\rm{g}}\mathit{\boldsymbol{T}} = {}_0^{i - 1}\mathit{\boldsymbol{T}}{}_{\rm{r}}^0\mathit{\boldsymbol{T}}{}_{\rm{g}}^{\rm{r}}\mathit{\boldsymbol{T}}{}_{\rm{n}}^{\rm{g}}\mathit{\boldsymbol{T}} = \\ \left[\begin{array}{l} {w_{xi-1}}\;\;\;{v_{xi-1}}\;\;\;{u_{xi-1}}\;\;\;{t_{xi - 1}}\\ {w_{yi - 1}}\;\;\;{v_{yi - 1}}\;\;{u_{yi - 1}}\;\;\;{t_{yi - 1}}\\ {w_{zi - 1}}\;\;\;{v_{zi - 1}}\;\;{u_{zi - 1}}\;\;\;\;{t_{zi - 1}}\\ 0\;\;\;\;\;\;\;0\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;1 \end{array} \right]\;. \end{array} $ | (10) |
由式(10) 可得, 靶点T在针尖坐标系Oi-1-Xi-1Yi-1Zi-1中的位置PTi-1为(txi-1, tyi-1, tzi-1).
要使得穿刺针沿着圆弧路径
$ \left. \begin{array}{l} {\alpha _{i-{\rm{max}}}} = {\rm{Atan}}2{\rm{ }}({t_{yi-1}}, {t_{xi-1}}), \\ {\alpha _{i - {\rm{min}}}} = {\rm{Atan}}2{\rm{ }}( - {t_{yi - 1}}, - {t_{xi - 1}}). \end{array} \right\} $ | (11) |
当αi的取值向αi-max靠近时, Δlimax越大, 因此, 第i次进针允许量越大;相反, 当αi的取值向αi-min靠近时, Δlimax越小, 因此, 第i次进针允许量越小.为了使得第i次进针允许量较大, 通常αi在αi-max附近取值较合适.
如图 8所示, 在Δli=Δlimax的情况下, 针尖坐标系Oi-XiYiZi相对于坐标系Oi-1-Xi-1Yi-1Zi-1的位置和姿态可以用下面的齐次矩阵表示(s代表sin, c代表cos):
$ \begin{array}{l} {^{i- 1}_i}T\left( {{\alpha _i}, \Delta {l_{i{\rm{max}}}}} \right) = \\ \left[\begin{array}{l} {\rm{c}}{\alpha _i}{\rm{c}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;-{\rm{s}}{\alpha _i}\;\;{\rm{c}}{\alpha _i}{\rm{s}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;r{\rm{c}}{\alpha _i}\left( {1-{\rm{c}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right)\\ {\rm{s}}{\alpha _i}{\rm{c}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;\;{\rm{c}}{\alpha _i}\;\;\;{\rm{s}}{\alpha _i}{\rm{s}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;\;r{\rm{s}}{\alpha _i}\left( {1-{\rm{c}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right)\\ - {\rm{s}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;\;\;\;0\;\;\;\;\;\;\;{\rm{c}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\;\;\;\;\;\;\;\;\;\;\;\;\;r{\rm{s}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}\\ 0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1 \end{array} \right] = \\ \left[\begin{array}{l} {\mathit{\boldsymbol{n}}_{i-1, i}}\;\;\;\;{\mathit{\boldsymbol{o}}_{i-1, i}}\;\;\;\;{\mathit{\boldsymbol{a}}_{i-1, i}}\;\;\;\;\;\;\;{\mathit{\boldsymbol{p}}_{i - 1, i}}\\ 0\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;0\;\;\;\;\;\;\;\;\;\;\;\;1 \end{array} \right]. \end{array} $ | (12) |
图 8中, 点O是圆弧轨迹
$ \frac{{\left| {{\mathit{\boldsymbol{a}}_{i-1, i}} \times \overrightarrow {{O_i}T} } \right|}}{{\left| {{\mathit{\boldsymbol{a}}_{i-1, i}}} \right|\left| {\overrightarrow {{O_i}T} } \right|}} = \overrightarrow {\frac{{{O_i}T}}{{2r}}} . $ | (13) |
式中:
$ \begin{array}{l} {\mathit{\boldsymbol{a}}_{i-1, i}} = \left( {{\rm{cos}}{\alpha _i}{\rm{sin}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}, {\rm{sin}}{\alpha _i}{\rm{sin}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}, {\rm{cos}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right), \\ \overrightarrow {{O_i}T} = \left( {{t_{xi-1}}-r{\rm{cos}}{\alpha _i}\left( {1 - {\rm{cos}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right), {t_{yi - 1}} - } \right.\\ \left. {r{\rm{sin}}{\alpha _i}\left( {1 - {\rm{cos}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right), {t_{zi - 1}} - r{\rm{sin}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r}} \right). \end{array} $ |
将式(13) 化简, 可得
$ \begin{array}{l} 4{t_{zi-1}}r{\eta _i}{\rm{sin}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r} + 2{\varepsilon _i}{\eta _i}{\rm{cos}}\frac{{\Delta {l_{i{\rm{max}}}}}}{r} = {\eta ^2}_i + \\ {\varepsilon ^2}_i + 4{t^2}_{zi-1}{r^2}-4{r^4}. \end{array} $ | (14) |
式中:
$ \begin{array}{l} {\varepsilon _i} = 2{r^2}-2{t_{xi-1}}r{\rm{cos}}{\alpha _i}-2{t_{yi - 1}}r{\rm{sin}}{\alpha _i}, \\ {\eta _i} = {\varepsilon _i} - 2{r^2} + {t^2}_{xi - 1} + {t^2}_{yi - 1} + {t^2}_{zi - 1}. \end{array} $ |
可得
$ \left. \begin{array}{l} \Delta {l_{i{\rm{max}}1}} = \left\{ {{\rm{arcsin}}\left[{\frac{{{\eta ^2}_i + {\varepsilon ^2}_i + 4{t^2}_{zi-1}{r^2}-4{r^4}}}{{\sqrt {4{\eta ^2}_i(4{t^2}_{zi-1}{r^2} + {\varepsilon ^2}_i)} }}} \right] - } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\;\left. {{\varphi _i} + 2k\pi } \right\}r, \\ \Delta {l_{i{\rm{max}}2}} = \left\{ {\pi - {\rm{arcsin}}\left[{\frac{{{\eta ^2}_i + {\varepsilon ^2}_i + 4{t^2}_{zi-1}{r^2}-4{r^4}}}{{\sqrt {4{\eta ^2}_i(4{t^2}_{zi-1}{r^2} + {\varepsilon ^2}_i)} }}} \right] -} \right.\\ \;\;\;\;\;\;\;\;\;\;\left. {{\varphi _i} + 2k\pi } \right\}r;\\ k = 0, \pm 1, \pm 2, \ldots, \Delta {l_{i{\rm{max}}}} \in (0, \pi r]. \end{array} \right\} $ | (15) |
式中:
$ {\varphi _i} = {\rm{arctan}}\frac{{{\varepsilon _i}}}{{2{t_{zi-1}}r}}. $ |
当Δlimax=max{Δlimax1, Δlimax2}时, Zi轴与图 8所示的方向相反, 即针尖背离靶点, 不合要求, 因此,
$ \Delta {l_{i{\rm{max}}}} = {\rm{min}}\{ \Delta {l_{i{\rm{max}}1}}, \Delta {l_{i{\rm{max}}2}}\} . $ | (16) |
当i=n时, 针尖刺中靶点, 所以Δln-1=Δln-1max;当i < n-1时, Δli < Δlimax.由式(10) 可得, 靶点T在针尖坐标系On-1-Xn-1Yn-1Zn-1中的位置PTn-1为(txn-1, tyn-1, tzn-1).如图 8所示, 第n次进针时, 穿刺针只能沿着圆弧路径
$ {\alpha _n} = {\rm{Atan}}2({t_{yn-1}}, {t_{xn-1}}). $ | (17) |
圆弧
$ \Delta {l_n} = 2r\cdot{\rm{arcsin}}\frac{{\sqrt {{t^2}_{xn-1} + {t^2}_{yn-1} + {t^2}_{zn-1}} }}{{2r}}. $ | (18) |
综上所述, 当n>1时, 逆向运动学如下所示:
$ \left. \begin{array}{l} {\gamma _{\rm{s}}} \in [0, 2\pi );\\ {\beta _{\rm{s}}} \in [0, {\beta _{s{\rm{max}}}});\\ {\alpha _i} \in [0, 2\pi ), \;\;\;\;\;\;i = 1, 2, \ldots, n-1;\\ \Delta {l_i} \in (0, \Delta {l_{i{\rm{max}}}}), {\rm{ }}i = 1, 2, \ldots, n-2;\\ \Delta {l_{n-1}} = \Delta {l_{n - 1{\rm{max}}}};\\ {\alpha _n} = {\rm{Atan}}2{\rm{ }}({t_{yn - 1}}, {t_{xn - 1}});\\ \Delta {l_n} = 2r\cdot{\rm{arcsin}}\frac{{\sqrt {{t^2}_{xn - 1} + {t^2}_{yn - 1} + {t^2}_{zn - 1}} }}{{2r}}. \end{array} \right\} $ | (19) |
为了验证正逆向运动学模型的有效性, 开展仿真实验对该模型进行验证.实验研究表明, 弯曲半径r与穿刺速度、穿刺力、组织材料特性、穿刺针的材料特性、穿刺针的直径和穿刺针针尖形状等因素相关[20].依据所测的实验数据, 将表 1列出的r、Pa和PT等参数作为仿真参数.如表 1所示, 进针点和靶点的位置不变, r分别取100和150 mm, 分别对进针点与靶点之间的距离|OrT|等于2r和小于2r的情况进行验证.
如图 9~11所示, 分别对n=1, 3, 5三种情况进行验证, 每种情况进行了m=3次验证.图中, 小圆圈表示每段圆弧路径的圆心, 星号表示每段圆弧路径的端点.如表 2所示, 给出|OrT| < 2r, n=3和m=2时, 根据逆向运动学模型得到的操控量.表中, ‘-’表示不存在对应的变量取值.
从图 9~11可以看出, 在给定进针点位置、靶点位置和穿刺针弯曲半径的条件下, 通过正逆向运动学模型都能够精确地生成针穿刺路径, 以刺中靶点.运动学模型求解的是从进针点到靶点的所有可行路径.通过以上理论推导过程可知, 模型得到的是进针过程中操控量的取值范围, 对应取值范围中操控量的所有取值都符合, 采用运动学模型能够求出从进针点到靶点的所有可行路径.虽然上面只分别对|OrT|=2r和OrT < 2r两种情况进行了3组实验数据验证, 但是根据需要, 可以采用所提供的几何逼近模型遍及所有满足条件的逆解, 因此利用本文提供的正逆向运动学模型能够准确地实现三维空间针穿刺轨迹预测.
4 结语本文利用D-H参数法, 建立斜角柔性穿刺针的正向和逆向运动学模型, 提出几何逼近法来计算从进针点到靶点的所有可行路径.传统机器人学中的解析法和投影法难以解决柔性穿刺针的逆向运动学问题, 相比之下, 几何逼近模型不仅求解简单, 而且能够求出所有逆解, 这为机器人辅助针穿刺路径规划及操控技术研究提供了理论基础.
[1] | HEVERLY M, DUPONT P, TRIEDMAN J. Trajectory optimization for dynamic needle insertion[C] //Proceedings of the 2005 IEEE International Conference on Robotics and Automation. Spain: IEEE, 2005: 1658-1663. |
[2] | ASADIAN A, PATEL R V, KERMANI M R. Dynamics of translational friction in needle-tissue interaction during needle insertion[J]. Annals of Biomedical Engineering, 2014, 42(1): 73–85. DOI:10.1007/s10439-013-0892-5 |
[3] | ABOLHASSANI N, PATEL R, AYAZI F. Effects of different insertion methods on reducing needle deflection[C]//Proceedings of the 29th Annual International Conference of the IEEE Engineering in Medicine and Biology Society. France: IEEE, 2007: 491-494. |
[4] | REED K B, MAJEWICZ A, KALLEM V, et al. Robot-assisted needle steering[J]. IEEE Robotics and Automation Magazine, 2011, 18(4): 35–46. DOI:10.1109/MRA.2011.942997 |
[5] | ALTEROVITZ R, GOLDBERG K, OKAMURA A. Planning for steerable bevel-tip needle insertion through 2D soft tissue with obstacles[C]//Proceedings of the 2005 IEEE International Conference on Robotics andAutomation. Spain: IEEE, 2005: 1652-1657. |
[6] | GLOZMAN D, SHOHAM M. Image-guided robotic flexible needle steering[J]. IEEE Transactions on Robotics, 2007, 23(3): 459–467. DOI:10.1109/TRO.2007.898972 |
[7] | MISRA S, REED K B, SCHAFER B W, et al. Mechanics of flexible needles robotically steered through soft tissue[J]. The International Journal of Robotics Research, 2010, 29(13): 1640–1660. DOI:10.1177/0278364910369714 |
[8] | WEBSTER R J, KIM J S, COWAN N J, et al. Nonholonomic modeling of needle steering[J]. The International Journal of Robotics Research, 2006, 25(5/6): 509–525. |
[9] | WEBSTER Ⅲ R J, MEMISEVIC J, OKAMURA A M. Design considerations for robotic needle steering[C] //Proceedings of the 2005 IEEE International Conference on Robotics and Automation. Spain: IEEE, 2005: 3599-3605. |
[10] | DUINDAM V, XU Ji-jie, ALTEROVITZ R, et al. Three-dimensional motion planning algorithms for steerable needles using inverse kinematics[J]. The International Journal of Robotics Research, 2010, 29(7): 789–800. DOI:10.1177/0278364909352202 |
[11] |
赵燕江, 张永德, 邵俊鹏. 柔性针的运动学建模及实验研究[J].
机器人, 2010, 32(5): 666–673.
ZHAO Yan-jiang, ZHANG Yong-de, SHAO Jun-peng. Kinematic modeling and experimental study of flexible needle[J]. Robot, 2010, 32(5): 666–673. |
[12] | ALTEROVITZ R, BRANICKY M, GOLDBERG K. Motion planning under uncertainty for image-guided medical needle steering[J]. The International Journal of Robotics Research, 2008, 27(11/12): 1361–1374. |
[13] | PARK W, WANG Y, CHIRIKJIAN G S. The path-of-probability algorithm for steering and feedback control of flexible needles[J]. The International Journal of Robotics Research, 2009, 29(7): 813–830. |
[14] | DE LORENZO D, KOSEKI Y, DE MOMI E, et al. Experimental evaluation of a coaxial needle insertion assistant with enhanced force feedback[C]//33rd Annual International Conference of the IEEE EMBSE. Boston: IEEE, 2011: 3447-3450. |
[15] | GLOZMAN D, SHOHAM M. Medical Image Computing and Computer-Assisted Intervention-MICCAI 2004[M]. Berlin: Springer, 2004: 137-144. |
[16] | ABOLHASSANI N, PATER R, AYAZI F. Needle control along desired tracks in robotic prostate brachytherapy[C]//IEEE International Conference on Systems, Man and Cybernetics. Montreal: IEEE, 2007: 3361-3366. |
[17] | MISRA S, REED K B, DOUGLAS A S, et al. Needle-tissue interaction forces for bevel-tip steerable needles[C]//Proceedings of the 2nd Biennial IEEE/RAS-EMBS International Conference on Biomedical Robotics and Biomechatronics. Scottsdale: IEEE, 2008: 224-231. |
[18] |
杜海艳, 张永德, 赵燕江, 等. 斜尖针穿刺软组织建模及针尖轨迹预测[J].
仪器仪表学报, 2015, 36(8): 1744–1751.
DU Hai-yan, ZHANG Yong-de, ZHAO Yan-jiang, et al. Modeling of bevel-tipped needle inserting into soft tissue and estimation of needle tip trajectory[J]. Chinese Journal of Scientific Instrument, 2015, 36(8): 1744–1751. |
[19] |
郑浩峻, 姚望, 高德东, 等. 机器人辅助柔性针穿刺路径的悬臂梁预测模型[J].
清华大学学报:自然科学版, 2011, 51(8): 1078–1083.
ZHENG Hao-jun, YAO Wang, GAO De-dong, et al. Projecting beam model for robot-assisted flexible needle insertion[J]. Journal of Tsinghua University: Science and Technology, 2011, 51(8): 1078–1083. |
[20] |
高德东, 朱侗, 王珊, 等. 基于悬臂梁模型的针挠曲预测[J].
医用生物力学, 2015, 30(6): 535–539.
GAO De-dong, ZHU Tong, WANG Shan, et al. Needle deflection prediction based on projection beam model[J]. Journal of Medical Biomechanics, 2015, 30(6): 535–539. DOI:10.3871/j.1004-7220.2015.06.535 |