本文针对机械臂末端安装激光测距仪的手术机器人的手眼标定,设计了基于平面模板标定的方法,给出了平面模板的数学模型并推导了求解方法。针对实际系统中存在的测量误差,提出了一种新的关于单平面数据优选的算法,可有效地剔除测量误差大的数据,提高标定精度;在此基础上,进一步提出使用立体正交平面改进标定精度的方法,应用非线性优化方法提高手眼标定精度。为验证精度,使用激光测距仪从不同角度、位置对空间中的某些固定点和一个长方体的表面进行测量。结果表明,单平面方法标定的精度为(1.37±0.24)mm,使用立体正交平面得到的标定精度为(0.37±0.05)mm;测量三维空间点的平均 FRE 为 0.24 mm,平均 TRE 为 0.26 mm;角度的测量偏差最大为 0.4°。通过实验验证了本文方法的有效性,同时结果表明本方法的标定精度较高,能够满足手术机器人准确定位的需求。
引用本文: 曾柏伟, 孟繁乐, 丁辉, 刘文博, 吴迪, 王广志. 一种基于平面的手术机器人手眼标定方法. 生物医学工程学杂志, 2017, 34(2): 200-207. doi: 10.7507/1001-5515.201605050 复制
引言
随着科技的发展,手术机器人在临床治疗中得到越来越广泛的应用[1-3],其中用于术中定位定向引导的手术机器人得到广泛关注[4]。该类手术机器人在颅脑神经外科手术中应用较多,比如 NeuroMate[5]和 Rosa[4]等手术机器人在立体定向脑电图的电极植入、深部脑刺激、活检和肿瘤切除等手术中已有一定的应用[6-7]。在这些应用中,当前大部分的医院使用立体定向头架或者光学跟踪导航系统。其中头架能引导钻孔且精度高,但是使用时需要患者在清醒的状态下用四个固定钉透过头皮将头架固定到颅骨上,然后患者戴着头架进行核磁成像(magnetic resonance imaging,MRI)或者计算机断层成像(computed tomography,CT)扫描,完成后患者继续戴着头架回到手术室进行手术,这个过程给患者带来较大的痛苦[8]。光学跟踪导航系统需要在头皮上粘贴标志点,通过三维(three-dimensional,3D)定位探针拾取标志点,利用点配准方法实现患者坐标系到术前影像坐标系的配准,但是它存在标志点移位和在头皮上钻孔时不好准确控制方向的问题[9]。
为了解决上述问题,本研究组采用一种无框架无标志点的方法,构建一套定位定向引导的手术机器人系统。在使用时首先需要将机械臂坐标系和患者的影像坐标系进行注册配准,从而将术前影像中规划的手术引导路径映射到机械臂坐标系中,以完成准确的定位定向。本文利用激光测距方法进行三维测量,可以将激光测距仪(laser range finder,LRF)的激光束看成是一个可变长度的探针,它与光学跟踪导航系统的光学探针采集标志点具有相似性,符合医生的操作习惯。使用激光测距仪和机械臂结合的手术机器人,不仅具备立体定向头架的高精度和稳固定位定向引导的优点,还具有光学导航方法无框架的优势。为了定位在机械臂坐标系中患者的空间位置,需要将挂载在机械臂末端的激光测距仪测到的一维距离信息转换成机械臂坐标系下的三维空间点坐标,为此首先要对机械臂末端和激光测距仪之间的坐标变换关系进行标定,该问题被称为手眼标定问题[10-11]。
针对机械臂末端安装激光测距仪这类手眼标定问题,目前求解的方法主要是通过求解机械臂在特定几何约束下运动的闭式解[12-13]。卢科青等[14]提出使用一种标定面方向可调的标定块和高精度的三坐标测量机对激光束方向进行标定,该方法的主要缺点是需要昂贵的辅助标定设备且对标定块的加工精度要求高。王胜华等[15]提出定点变位姿手-眼标定方法,该方法多次改变机器人位姿对同一目标点进行测量,利用机器人运动方程和最小二乘原理求解,该方法的优点是原理和实施都很简单,但主要问题在于实际操作中对同一目标点从多个位姿进行测量,难免引入人为判断误差,标定结果的鲁棒性难以保证。Zhou 等[16]使用专门设计的含有圆锥面和圆柱面的标定块,提出一种新的求解串联测量机和工具中心点(tool centre point,TCP)标定问题的方法,该方法主要适用于短量程的激光测距仪与机械臂末端关系标定。吴聊等[17]使用一种基于单个平面模板的标定方法,并对参数的控制策略提出了定性分析,但是该方法迭代优化环节,没有利用标定平面的共面性,实际标定结果的鲁棒性难以保证。袁康正等[18]应用基于平面和球面模板拟合的标定模型,提出一种近似最优测量姿态和最佳评价指数,来选择合适的测量姿态,减少非建模误差和测量误差对标定结果的影响,该方法虽然提高了抗噪声能力,但是其标定过程中由于需要对测量姿态的标定效率进行评估,导致实现起来较为复杂。
为此,本文针对安装了一维激光测距仪的多自由度机械臂的手眼标定问题,设计了采用平面模板进行标定的方法。针对实施存在的测量误差,提出一种新的关于单平面数据优选的算法来提高标定精度,并进一步提出使用立体正交平面改进标定精度的方法,应用非线性优化方法求解了手眼标定问题。
1 材料和方法
1.1 单平面模板标定方法的数学模型
本文将安装在多自由度机械臂末端的一维激光测距仪的手眼标定问题归纳为如图 1 所示的几何模型,其中 Plane 是一个用于标定的反射平面,称之为标定平面,要求平面具有良好的平整度,激光在平面上有良好的反射,使激光测距仪可以准确地测量反射点的距离,该平面相对于机械臂坐标系 的空间位置是固定的。假设机械臂末端坐标系为 ,激光测距仪的坐标系为 ,由于 的位置是可以任意指定的,为了便于计算,可以指定 的原点在激光束上,同时在不失一般性的情况下,选取 坐标轴的方向相对于 没有旋转只发生平移 r ,定义激光束的方向向量在 中为 v 。其中 r 和 v 就是待标定的手眼变换关系。
如图 1 所示,在初始位置,设标定平面的单位法向量在 下为 ,在 下激光测距仪发射出的激光束照射到标定平面上的点为 ,激光测距仪测量该点得到的距离值为 ,则在 下标定平面的平面方程可表示为:
${{n}}_{m0}^T{{{x}}_{m0}} + {b_0} = 0 $ |
其中, 为在初始位置从 的原点到标定平面的距离。
机械臂末端发生旋转和平移后,在第j 位置时,设在 下激光测距仪发射出的激光束照射到标定平面上的点为 ,激光测距仪测量该点得到的距离值为dj ,这时在 下的标定平面的单位法向量为 ,则在 下的标定平面有平面方程:
${{n}}_{mj}^T{{{x}}_{mj}} + {b_j} = 0$ |
其中,bj 为在第j 位置从 的原点到标定平面的距离。
在 下标定平面上的两点有如下关系:
${{{x}}_{m0}} = {{{R}}_{m0j}}{{{x}}_{mj}} + {{{t}}_{m0j}} $ |
其中, 为 下从第j 位置到初始位置的旋转矩阵, 为 下从第j 位置到初始位置的平移列向量。
根据 和 的关系,对于照射到标定平面上的点在 下可以表示成:
${{{x}}_{mj}} = {{r}} + {d_j}{{v}} $ |
由前面的式子整理后得到:
${{n}}_{m0}^T{{{R}}_{m0j}}{{r}} + {d_j}{{n}}_{m0}^T{{{R}}_{m0j}}{{v}} + {{n}}_{m0}^T{{{t}}_{m0j}}{\rm{ + }}{b_0} = 0$ |
在式(5)中的未知变量 r 和 v 是标定空间变换关系的关键变量,如果能够确定 r 和 v ,则可完成对机械臂末端和激光测距仪的空间变换关系的标定。同时在式(5)中 、 、 和 等变量也是待求解的,其中 与 可以通过读取机械臂的空间姿态而计算得到。在得到 和 后,可求解出 r 和 v ,从而完成手眼标定。
1.2 求解旋转分量 和平移分量
在图 1 中,记在初始位置,从 相对于 的旋转矩阵为 ,平移列向量为 。对于激光测距仪发出的激光光束照射在标定平面上的激光点,在 下记为 ,在 下记为 ,则该点从 到 的变换关系为:
$\left[ {\begin{array}{*{20}{c}}{{{{x}}_{b0}}}\\1\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{{{R}}_{b0}}}&{{{{t}}_{b0}}}\\{{0}}&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{{{x}}_{m0}}}\\1\end{array}} \right]$ |
机械臂末端发生旋转和平移后,在第j 位置时,激光点从 到 的变换关系为:
$\left[ {\begin{array}{*{20}{c}}{{{{x}}_{bj}}}\\1\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{{{R}}_{bj}}}&{{{{t}}_{bj}}}\\{{0}}&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{{{x}}_{mj}}}\\1\end{array}} \right]$ |
整理可得:
${{{x}}_{m0}} = {{R}}_{b0}^{ - 1}{{{R}}_{bj}}{{{x}}_{mj}} + {{R}}_{b0}^{ - 1}({{{t}}_{bj}} - {{{t}}_{b0}})$ |
比较式(3)和式(8)可得:
${{{R}}_{m0j}}{\rm{ = }}{{R}}_{b0}^{ - 1}{{{R}}_{bj}}$ |
${{{t}}_{m0j}} = {{R}}_{b0}^{ - 1}({{{t}}_{bj}} - {{{t}}_{b0}})$ |
其中 、 、 和 都可以通过机械臂控制器读取,故由式(9)(10)可以得到 和 。
1.3 手眼平移关系 和激光光束方向 的标定
假设机械臂的末端只有平移运动,即 ,代入式(5)中可以得到:
${{n}}_{m0}^T{{r}} + {d_j}{{n}}_{m0}^T{{v}} + {{n}}_{m0}^T{{{t}}_{m0j}}{\rm{ + }}{b_0} = 0$ |
当j=0 时,即还未产生相对的旋转和平移运动,这时的 ,则代入式(11)有:
${{n}}_{m0}^T{{r}} + {d_0}{{n}}_{m0}^T{{v}}{\rm{ + }}{b_0} = 0$ |
由式(11)—式(12)得:
$({d_j} - {d_0}){{n}}_{m0}^T{{v}} = - {{n}}_{m0}^T{{{t}}_{m0j}}$ |
接下来求解式(13),假设令 ,其中 为单位向量,即有等式 ,且有方向约束,其中 轴分量是沿着机械臂末端坐标系的 轴正方向,即 。这样对于式(13),最少通过2次测量(即初始位置和第j 位置)就可以求出 ,且同时可以求得p。将其结果代回式(13),可以得到 v 的一组约束。
接下来,用同样的方法,控制机械臂通过旋转平移复合运动到达一个新的初始位置,采集数据计算得到另外两组 v 的约束,最后由这三组关于 v 的方程解出激光束方向向量 v 。
为了降低采集数据的各种噪声和误差的影响,可以进一步增加采集数据的数量,对多次测量得到的数据,使用最小二乘法计算可得:
${{{n}}_{m0}} \!=\!\! -\! {\left[ {\sum\limits_j {{{{t}}_{m0j}}{{t}}_{m0j}^T{ 1} } } \right]^{ - 1}} \!\! \left[ {\sum\limits_j {{{{t}}_{m0j}}({d_j} - {d_0})} } \right] \! p $ |
其中,j≥2,即需控制机械臂末端至少平移两次。
在完成对 和 v 的求解后,式(5)中还有 r 和 是未知的。
由式(5)—式(12)得:
$\begin{aligned}\!\! {{n}}_{m\!0}^T({{{R}}_{m0j}} \! \! - \! \! {{I}}){{r}} \!\!+\!\! ({d_j}{{n}}_{m\!0}^T{{{R}}_{m\!0j}} \! \! - \! \! {d_0}{{n}}_{m\!0}^T){{v}} \! \! + \! \! {{n}}_{m\!0}^T{{{t}}_{m\!0j}} \! \! =\! \! 0 \;\;\;\;\;\end{aligned}$ |
在式(15)中只有 r 未知,由于每次测量只能求得一个关于 r 的约束方程,所以至少需要测量三次旋转平移数据,才能够将 r 完整解出。至此,可以求解全部待定参数,完成手眼标定。
1.4 单平面模板的改进方法
理想情况下,没有测量噪声和运动误差,标定板绝对平整,前面推导的公式具有闭式解,用单一的标定平面就可以得到精确的手眼标定结果。但是实际系统中存在机械臂的运动误差、激光测距仪的测量噪声、标定平面不平整等干扰,为提高手眼标定的精度,可以通过选取合适的数据、增加标定平面的数量和优化算法等改进其性能。
在获得标定平面数据后,每次先求得使用单平面数据得到的手眼标定参数,给定一个标准评价当前标定参数的精度;再选择一种原则,淘汰一些数据,期望利用剩下的数据求解手眼参数能得到更高精度,不断循环迭代,直到符合停止条件。依据这种思路,可以获得在单个标定平面情况下最优的手眼标定参数。
此外,本文进一步使用三个相互正交的平面分别对激光测距仪和机械臂末端的手眼关系进行标定,如图 2 所示。取三个平面标定结果的均值及机械臂末端在初始位置时各标定平面的法向量作为非线性优化方法的初值,使用三个标定平面的原始数据,将平面法向量和激光束方向向量的模以及平面法向量的 轴方向大于0等作为约束条件,将采样点的共面性和闭式解的二范数作为目标函数,如式(16)所示:
$f(x) = {f_1} + {f_2} + {f_3}$ |
其中,x 为自变量, 为与第一标定平面 P1 相关的目标函数, 为与第二标定平面 P2 相关的目标函数, 为与第三标定平面 P3 相关的目标函数,它们有类似的表达式。现只给出 的表达式:
${f_1} = {c_{11}}{f_{11}} + {c_{12}}{f_{12}} + {c_{13}}{f_{13}} + {c_{14}}{f_{14}}$ |
其中 、 、 和 是权重系数, 、 、 和 是第一标定平面 P1 的三组平移和一组旋转平移数据的最小二乘表达式,它们也有类似的表达式。接下来给出 的表达式:
${f_{11}} = \alpha {\left\| {{{n}}_{m0}^{11} + {{\left[ {\sum\limits_j {{{t}}_{m0j}^{11}{{({{t}}_{m0j}^{11})}^T} } } \right]}^{ - 1}}\left[ {\sum\limits_j {{{t}}_{m0j}^{11}(d_j^{11} - d_0^{11})} } \right]{p^{11}} } \right\|^2} + \beta {\left\| {{{{X}}^{11}} - {{X}}_{fit}^{11}} \right\|^2}$ |
其中 和 为权重系数。式(18)的第一部分是由式(14)变形得到,其突出对单点准确性的约束;第二部分则是对测量点共面性的描述, X 11 为测量得到的点组成的矩阵,即 , 是对 X 11 使用主成分分析方法得到的主平面上对应的点组成的矩阵[19],突出对平面平整性的约束。迭代优化过程是在约束条件下,求式(16)的最小化过程,可以选择合适的非线性优化算法,比如 L-M 算法[20],求解得到最终的手眼标定参数。使用三个相互正交平面的好处在于:一方面相比于使用单平面标定,它的抗噪声能力将会得到有效增强;另一方面相比于使用多于三个平面的情况,它是能够将三维空间各方向都进行有效约束的最少平面数组合,达到标定过程简便性与标定性能可靠性的有效平衡。
标定完成以后,可以利用安装在机械臂末端的激光测距仪进行三维表面测量和点云数据重建,当使用激光测距仪测量三维表面上的某个点,由它的距离值dj 和机械臂控制器中的读数 和 ,就可以从式(4)和(7)推导得到:
${{{x}}_{bj}} = {{{R}}_{bj}}\left( {{{r}} + {d_j}{{v}}} \right) + {{{t}}_{bj}}$ |
从而求得该点在 下的空间坐标值 。如果对某个物体的表面进行逐点的扫描测量,则可以得到该物体表面的一组点云数据。
2 结果
2.1 实验环境搭建
实验中选用的机械臂为 6R 型的串联机械臂(VS060A3,Denso Co. Ltd.,日本,重复精度 0.02 mm),采用 IL-600 激光测量头及其相应的放大与通信部件 [KEYENCE,日本,有效测量范围(600±400) mm,重复精度 0.05 mm] 进行测距。使用自制的连结件将激光测距仪固定在机械臂末端法兰盘上,将自制的立体正交平面(使用有机玻璃搭建而成,其表面覆有亚光灰白色贴膜)放置在一个合适的位置,通过控制机械臂进行规定的运动,使用计算机采集机械臂末端位姿和激光测距的数据,对采集得到的数据使用 Matlab8.3 进行处理。标定实验环境如图 3 所示。
2.2 手眼参数求解
使用图 3 所示意的实验环境采集标定数据,在实验中为了使得采集的数据较广泛地分布在标定平面上,将每个标定平面划分为 15 个面积近似的区块,三组平移和一组旋转平移运动都在每个区块内采集 1 次,则一个平面共采集 60 个数据点,三个平面总计有 180 个位姿和对应的距离数据,根据第 1.3 节中提到的标定方法,依次求得分别使用 P1、P2、P3 三个平面单独标定的参数值,即完成手眼标定参数求解。
为了剔除标定平面数据中噪声较大的点,对于单独的每个平面数据,每次迭代淘汰掉一个离主平面(由标定平面数据使用主成分分析方法重建得到)最远的点,直到数据太少不满足闭式解为止。
受机械臂末端工具标定常采用的四点法的启发[21],对在循环迭代中产生的每一组手眼标定参数进行评估。方法是将一块尺寸为 500 mm×500 mm 的平面划分为 10 个面积近似的区块,选取每个区块的中心作为目标点,对每个目标点从 5 个姿态进行测量,利用得到的手眼参数计算各姿态测量得到的空间坐标,并计算每一个目标点坐标值的标准差,求得 10 个目标点标准差均值,这些均值随迭代过程的变化如图 4 所示。选择使得标准差最小的那组手眼参数为该平面标定的最优手眼标定参数,列于表 1。
图 4 中 10 条不同颜色的曲线依次表示点 S(1)~S(10)。图 4 不同标定平面 P1、P2 和 P3 的数据依次在第 7、4 和 10 次迭代中取得最小值,其标准差整体上先减小后增大,说明随着迭代的进行噪声较大的点(远离主平面的点)不断被淘汰掉,手眼参数越来越接近真值,但是随着迭代进一步地继续,由于参与标定的数据越来越少,数据点的随机噪声对标定结果产生的影响越来越大,故标准差在不断地增加,直到数据太少不满足闭式解为止。图 4 的整体先减后增趋势表明需要多测量一些冗余数据以降低测量的随机噪声的影响,同时也需要对采集的数据进行优选,以提高手眼标定的精度。
最后将前面三组最优标定参数的均值作为初始值,利用 L-M 算法求解式(16),得到对于三个平面来说总体最优的标定参数,因为每一组采集的数据理论上对最终优化的结果具有同等的贡献,故式(17)其中权重参数 、 、 和 都设置为1,由于每一组的数据都是在同一个平面下采集的,故希望提高共面性的权重,为此式(18)中的权重参数在本次实验中为 。结果如表 1 所示。表 1 中的 、 和 是 v 在 下的XL 、YL 和ZL 各轴的分量, 、 和 是 r 在 下 、 和 各轴的分量。
2.3 精度验证实验与结果
为验证利用所标定的参数进行三维表面上目标点测量的精度,先使用前面四组手眼标定参数,对被测对象上同一目标点从不同方向进行照射测量,得到各次测量的空间位置并计算标准差,以评估表 1 中各个手眼标定参数的准确度。同时使用激光测距仪和高精度光学测量仪器(Optotrak Certus,Northern Digital Inc,加拿大,三维空间精度 0.1 mm)拾取相同目标点的空间坐标,并以 Optotrak Certus 光学测量仪的结果作为标准来评估手眼系统的测量精度。
2.3.1 手眼标定准确度实验 为评估手眼标定参数结果的准确度,在一块大小为 300 mm×400 mm 的平面上使用与 2.2 节相同的方法得到 10 个被测点,使用激光测距仪对每个测量点依次从 5 个不同方向(点所在平面的法向量方向,及与法向量近似成 45° 相互之间依次绕法向量方向相差 90° 的另外 4 个方向)测量,采集得到一组机械臂末端的位姿和激光测距仪的距离数据,再分别使用前面四组手眼标定参数,依据式(19)计算其在 下的空间坐标并计算同一点的重建坐标的标准差,结果如图 5 所示。对所有测量点使用三个单平面 P1、P2 和 P3 对应的手眼标定参数进行计算,可得单平面方法标定的精度为(1.37±0.24)mm,使用立体正交平面对应的手眼参数计算得到其标定精度为(0.37±0.05)mm。
比较图 5 中的前三组数据,发现使用单平面方法得到的标定参数经过前面迭代优选之后,其性能基本相当。而四组横向比较可以发现,使用立体正交平面优化计算的结果最好,能保证在单平面不是很好的情况下优化得到一个最优的结果,相比于单平面标定方法更加准确与稳定可靠。
2.3.2 测量三维点的精确度 为了验证使用机械臂结合激光测距仪所重建的三维点的精确度,对 2.3.1 节中同一块平面用相同方法确定 20 个测量点,使用本文方法和 Optotrak Certus 光学测量仪分别测量这 20 个点的空间位置,每个点测量 10 次,取其平均值,再以 Optotrak Certus 光学测量仪的测量结果为标准,将激光测距仪测量重建的结果(使用立体正交平面优化的手眼参数计算得到)刚性配准到 Optotrak Certus 光学测量仪的测量结果,使用留一法计算参考点的配准误差(fiducial registration error,FRE)和目标点配准误差(target registration error,TRE)。其结果如图 6 所示。
在图 6 中 FRE 均值为 0.24 mm,TRE 的均值为 0.26 mm。图 6 中不同点的 TRE 值相对于 FRE 有较大的波动,其波动标准差为 0.10 mm。
2.3.3 表面法向量的准确度 对一块 90 mm×55 mm×45 mm 的长方体铝块,在紧邻的三个平面上每个平面依次采集 15 个点,接着使用主成分分析法求出每个平面的法向量,进而求出相邻两个平面的夹角,并与铝块平面夹角的理论值(由高精密的加工精度保证)比较,结果如表 2 所示。由表 2 可知,最大的角度误差不超过 0.4°。
2.3.4 获取三维表面的点云 为验证所构建的系统进行三维测量的可行性,对一个基于 CT 扫描重建出的头颅三维表面进行多点扫描,得到离散的三维坐标点云。实验中通过编程控制机械臂运动,使激光测距仪对一个头模型的前额、两侧颞部和头顶进行扫描,并采集头模型内部的 13 个验证点,利用上述立体正交平面标定得到的参数,对拾取的各个测点依据式(19)计算得到在 下三维点的空间坐标值,并与 CT 扫描重建的模型表面在软件(Cloud Compare)中做了配准,其结果如图 7 所示。其中蓝色点云为激光测量数据,头模型为 CT 数据重建表面,点到面的距离均值为 0.3 mm,标准差为 0.2 mm。
对图 8 所示的模型内部 13 个已知位置的验证点,计算其配准到影像中对应点的误差,其最小值为 0.76 mm,最大值为 1.96 mm,均值为 1.23 mm,标准差为 0.43 mm。本实验结果说明了本文方法获取三维表面点云用于手术机器人注册配准的可行性,能够满足临床应用的精度需求。
3 讨论
在循环迭代求解参数的过程中,对同一个点从 5 个不同方向照射,重建得到该点的 5 个三维坐标点,计算标准差,用所得标准差作为指标对标定参数的优化情况进行评价。该方法的好处在于:不需要知道该点在 下的真实位置,在没有测量误差的情况下,求解的手眼标定参数越接近真值,则从 5 个不同方向对该点进行测量,计算得到的坐标值误差越小。因此可以根据重建点误差的大小判断手眼标定结果的好坏,从而剔除标定中测量误差大的点。
需要注意的是,对于手眼标定参数的求解,在理论上和具体实施中都可以不进行数据优选,直接对从标定平面中采集的点使用非线性优化的算法来求解。但为剔除一些可能存在的测量误差较大的点(比如激光束太过倾斜照射到标定板上),以便获得更好的标定结果,建议对覆盖手术机器人工作空间内的多个目标点从多个角度进行测量。即使对同一个点的测量结果存在一定的人为判断误差也没有关系,因为计算的是这些目标点从多个角度重建的空间坐标的标准差,求解的手眼标定参数越准确,则标准差越小。
在手眼标定准确度实验中使用的激光测距仪发出的光斑在有效测量范围之内平均直径约为 1.6 mm,在实验中的待测量点的直径约为 0.8 mm,尽管每次测量时尽量使得激光光斑和被测点的中心重合,但是必定会引入一定量的人为判断误差,约为点的半径,即 0.4 mm 左右。图 5 中标准差平均最小的一组为最后一组,其均值约为 0.375 mm。可以看出二者为同一量级。由此结果可以看出:如果手眼标定的参数足够准确,从不同方向照射对测量结果的影响很小。但是在实际应用中为了保证更加准确的测量结果,建议激光光束方向和点所在平面的法向量夹角越小越好,一方面有利于减少由于夹角太大导致光斑呈椭圆形带来的人为判读误差;另一方面根据激光测距仪的三角测距原理可知,光斑越大越偏离圆形,在提取光斑中心时的误差则越大,导致测量精度下降。
图 6 中的数据在采集时尽可能地使激光光束方向和待测点所在平面的法向量平行,不论是 FRE 和 TRE 都小于 0.3 mm,说明本方法重建的三维点精度可以满足手术中定位测量小于 1 mm 的要求。
在本研究的最后给出了一个三维扫描的点云并用于配准的例子,其验证点的配准误差不仅与标定的精度及配准有关,还与在图像中选取验证点的精度有关,由于模型的 CT 数据层厚为 0.8 mm,故在选取验证点时会有一定的人为误差。在具体实施采集数据中为了保证较高的精度,机械臂不能运动太快,所以扫描 1 000 个点左右的数据大概需要 10 min,因此考虑下一步的研究方向是提高每一次采集点的数量,比如使用基于双目立体视觉、线结构光或面结构光等方法,从而缩短数据采集时间,但是本文提出的这种方法在标定的简便性和易用性上依然具有优势。
4 结论
本文针对手术机器人注册配准遇到的手眼标定问题,对安装在六自由度机械臂末端的激光测距仪所构成的三维测量系统构建数学模型,利用平面作为标定靶,建立了手眼标定方程。根据实施中存在一定测量误差的情况,提出采用单平面优选数据提高精度和使用立体正交面改进标定精度的方法,应用非线性优化方法提高标定结果的鲁棒性。本文通过实验评估标定结果的准确性和精度,其能够满足手术中定位定向测量精度的要求,最后展示了使用该测量系统对头模型扫描的结果,可以正确获取表面的三维点云数据,验证了本文方法的有效性。
引言
随着科技的发展,手术机器人在临床治疗中得到越来越广泛的应用[1-3],其中用于术中定位定向引导的手术机器人得到广泛关注[4]。该类手术机器人在颅脑神经外科手术中应用较多,比如 NeuroMate[5]和 Rosa[4]等手术机器人在立体定向脑电图的电极植入、深部脑刺激、活检和肿瘤切除等手术中已有一定的应用[6-7]。在这些应用中,当前大部分的医院使用立体定向头架或者光学跟踪导航系统。其中头架能引导钻孔且精度高,但是使用时需要患者在清醒的状态下用四个固定钉透过头皮将头架固定到颅骨上,然后患者戴着头架进行核磁成像(magnetic resonance imaging,MRI)或者计算机断层成像(computed tomography,CT)扫描,完成后患者继续戴着头架回到手术室进行手术,这个过程给患者带来较大的痛苦[8]。光学跟踪导航系统需要在头皮上粘贴标志点,通过三维(three-dimensional,3D)定位探针拾取标志点,利用点配准方法实现患者坐标系到术前影像坐标系的配准,但是它存在标志点移位和在头皮上钻孔时不好准确控制方向的问题[9]。
为了解决上述问题,本研究组采用一种无框架无标志点的方法,构建一套定位定向引导的手术机器人系统。在使用时首先需要将机械臂坐标系和患者的影像坐标系进行注册配准,从而将术前影像中规划的手术引导路径映射到机械臂坐标系中,以完成准确的定位定向。本文利用激光测距方法进行三维测量,可以将激光测距仪(laser range finder,LRF)的激光束看成是一个可变长度的探针,它与光学跟踪导航系统的光学探针采集标志点具有相似性,符合医生的操作习惯。使用激光测距仪和机械臂结合的手术机器人,不仅具备立体定向头架的高精度和稳固定位定向引导的优点,还具有光学导航方法无框架的优势。为了定位在机械臂坐标系中患者的空间位置,需要将挂载在机械臂末端的激光测距仪测到的一维距离信息转换成机械臂坐标系下的三维空间点坐标,为此首先要对机械臂末端和激光测距仪之间的坐标变换关系进行标定,该问题被称为手眼标定问题[10-11]。
针对机械臂末端安装激光测距仪这类手眼标定问题,目前求解的方法主要是通过求解机械臂在特定几何约束下运动的闭式解[12-13]。卢科青等[14]提出使用一种标定面方向可调的标定块和高精度的三坐标测量机对激光束方向进行标定,该方法的主要缺点是需要昂贵的辅助标定设备且对标定块的加工精度要求高。王胜华等[15]提出定点变位姿手-眼标定方法,该方法多次改变机器人位姿对同一目标点进行测量,利用机器人运动方程和最小二乘原理求解,该方法的优点是原理和实施都很简单,但主要问题在于实际操作中对同一目标点从多个位姿进行测量,难免引入人为判断误差,标定结果的鲁棒性难以保证。Zhou 等[16]使用专门设计的含有圆锥面和圆柱面的标定块,提出一种新的求解串联测量机和工具中心点(tool centre point,TCP)标定问题的方法,该方法主要适用于短量程的激光测距仪与机械臂末端关系标定。吴聊等[17]使用一种基于单个平面模板的标定方法,并对参数的控制策略提出了定性分析,但是该方法迭代优化环节,没有利用标定平面的共面性,实际标定结果的鲁棒性难以保证。袁康正等[18]应用基于平面和球面模板拟合的标定模型,提出一种近似最优测量姿态和最佳评价指数,来选择合适的测量姿态,减少非建模误差和测量误差对标定结果的影响,该方法虽然提高了抗噪声能力,但是其标定过程中由于需要对测量姿态的标定效率进行评估,导致实现起来较为复杂。
为此,本文针对安装了一维激光测距仪的多自由度机械臂的手眼标定问题,设计了采用平面模板进行标定的方法。针对实施存在的测量误差,提出一种新的关于单平面数据优选的算法来提高标定精度,并进一步提出使用立体正交平面改进标定精度的方法,应用非线性优化方法求解了手眼标定问题。
1 材料和方法
1.1 单平面模板标定方法的数学模型
本文将安装在多自由度机械臂末端的一维激光测距仪的手眼标定问题归纳为如图 1 所示的几何模型,其中 Plane 是一个用于标定的反射平面,称之为标定平面,要求平面具有良好的平整度,激光在平面上有良好的反射,使激光测距仪可以准确地测量反射点的距离,该平面相对于机械臂坐标系 的空间位置是固定的。假设机械臂末端坐标系为 ,激光测距仪的坐标系为 ,由于 的位置是可以任意指定的,为了便于计算,可以指定 的原点在激光束上,同时在不失一般性的情况下,选取 坐标轴的方向相对于 没有旋转只发生平移 r ,定义激光束的方向向量在 中为 v 。其中 r 和 v 就是待标定的手眼变换关系。
如图 1 所示,在初始位置,设标定平面的单位法向量在 下为 ,在 下激光测距仪发射出的激光束照射到标定平面上的点为 ,激光测距仪测量该点得到的距离值为 ,则在 下标定平面的平面方程可表示为:
${{n}}_{m0}^T{{{x}}_{m0}} + {b_0} = 0 $ |
其中, 为在初始位置从 的原点到标定平面的距离。
机械臂末端发生旋转和平移后,在第j 位置时,设在 下激光测距仪发射出的激光束照射到标定平面上的点为 ,激光测距仪测量该点得到的距离值为dj ,这时在 下的标定平面的单位法向量为 ,则在 下的标定平面有平面方程:
${{n}}_{mj}^T{{{x}}_{mj}} + {b_j} = 0$ |
其中,bj 为在第j 位置从 的原点到标定平面的距离。
在 下标定平面上的两点有如下关系:
${{{x}}_{m0}} = {{{R}}_{m0j}}{{{x}}_{mj}} + {{{t}}_{m0j}} $ |
其中, 为 下从第j 位置到初始位置的旋转矩阵, 为 下从第j 位置到初始位置的平移列向量。
根据 和 的关系,对于照射到标定平面上的点在 下可以表示成:
${{{x}}_{mj}} = {{r}} + {d_j}{{v}} $ |
由前面的式子整理后得到:
${{n}}_{m0}^T{{{R}}_{m0j}}{{r}} + {d_j}{{n}}_{m0}^T{{{R}}_{m0j}}{{v}} + {{n}}_{m0}^T{{{t}}_{m0j}}{\rm{ + }}{b_0} = 0$ |
在式(5)中的未知变量 r 和 v 是标定空间变换关系的关键变量,如果能够确定 r 和 v ,则可完成对机械臂末端和激光测距仪的空间变换关系的标定。同时在式(5)中 、 、 和 等变量也是待求解的,其中 与 可以通过读取机械臂的空间姿态而计算得到。在得到 和 后,可求解出 r 和 v ,从而完成手眼标定。
1.2 求解旋转分量 和平移分量
在图 1 中,记在初始位置,从 相对于 的旋转矩阵为 ,平移列向量为 。对于激光测距仪发出的激光光束照射在标定平面上的激光点,在 下记为 ,在 下记为 ,则该点从 到 的变换关系为:
$\left[ {\begin{array}{*{20}{c}}{{{{x}}_{b0}}}\\1\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{{{R}}_{b0}}}&{{{{t}}_{b0}}}\\{{0}}&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{{{x}}_{m0}}}\\1\end{array}} \right]$ |
机械臂末端发生旋转和平移后,在第j 位置时,激光点从 到 的变换关系为:
$\left[ {\begin{array}{*{20}{c}}{{{{x}}_{bj}}}\\1\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{{{R}}_{bj}}}&{{{{t}}_{bj}}}\\{{0}}&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{{{x}}_{mj}}}\\1\end{array}} \right]$ |
整理可得:
${{{x}}_{m0}} = {{R}}_{b0}^{ - 1}{{{R}}_{bj}}{{{x}}_{mj}} + {{R}}_{b0}^{ - 1}({{{t}}_{bj}} - {{{t}}_{b0}})$ |
比较式(3)和式(8)可得:
${{{R}}_{m0j}}{\rm{ = }}{{R}}_{b0}^{ - 1}{{{R}}_{bj}}$ |
${{{t}}_{m0j}} = {{R}}_{b0}^{ - 1}({{{t}}_{bj}} - {{{t}}_{b0}})$ |
其中 、 、 和 都可以通过机械臂控制器读取,故由式(9)(10)可以得到 和 。
1.3 手眼平移关系 和激光光束方向 的标定
假设机械臂的末端只有平移运动,即 ,代入式(5)中可以得到:
${{n}}_{m0}^T{{r}} + {d_j}{{n}}_{m0}^T{{v}} + {{n}}_{m0}^T{{{t}}_{m0j}}{\rm{ + }}{b_0} = 0$ |
当j=0 时,即还未产生相对的旋转和平移运动,这时的 ,则代入式(11)有:
${{n}}_{m0}^T{{r}} + {d_0}{{n}}_{m0}^T{{v}}{\rm{ + }}{b_0} = 0$ |
由式(11)—式(12)得:
$({d_j} - {d_0}){{n}}_{m0}^T{{v}} = - {{n}}_{m0}^T{{{t}}_{m0j}}$ |
接下来求解式(13),假设令 ,其中 为单位向量,即有等式 ,且有方向约束,其中 轴分量是沿着机械臂末端坐标系的 轴正方向,即 。这样对于式(13),最少通过2次测量(即初始位置和第j 位置)就可以求出 ,且同时可以求得p。将其结果代回式(13),可以得到 v 的一组约束。
接下来,用同样的方法,控制机械臂通过旋转平移复合运动到达一个新的初始位置,采集数据计算得到另外两组 v 的约束,最后由这三组关于 v 的方程解出激光束方向向量 v 。
为了降低采集数据的各种噪声和误差的影响,可以进一步增加采集数据的数量,对多次测量得到的数据,使用最小二乘法计算可得:
${{{n}}_{m0}} \!=\!\! -\! {\left[ {\sum\limits_j {{{{t}}_{m0j}}{{t}}_{m0j}^T{ 1} } } \right]^{ - 1}} \!\! \left[ {\sum\limits_j {{{{t}}_{m0j}}({d_j} - {d_0})} } \right] \! p $ |
其中,j≥2,即需控制机械臂末端至少平移两次。
在完成对 和 v 的求解后,式(5)中还有 r 和 是未知的。
由式(5)—式(12)得:
$\begin{aligned}\!\! {{n}}_{m\!0}^T({{{R}}_{m0j}} \! \! - \! \! {{I}}){{r}} \!\!+\!\! ({d_j}{{n}}_{m\!0}^T{{{R}}_{m\!0j}} \! \! - \! \! {d_0}{{n}}_{m\!0}^T){{v}} \! \! + \! \! {{n}}_{m\!0}^T{{{t}}_{m\!0j}} \! \! =\! \! 0 \;\;\;\;\;\end{aligned}$ |
在式(15)中只有 r 未知,由于每次测量只能求得一个关于 r 的约束方程,所以至少需要测量三次旋转平移数据,才能够将 r 完整解出。至此,可以求解全部待定参数,完成手眼标定。
1.4 单平面模板的改进方法
理想情况下,没有测量噪声和运动误差,标定板绝对平整,前面推导的公式具有闭式解,用单一的标定平面就可以得到精确的手眼标定结果。但是实际系统中存在机械臂的运动误差、激光测距仪的测量噪声、标定平面不平整等干扰,为提高手眼标定的精度,可以通过选取合适的数据、增加标定平面的数量和优化算法等改进其性能。
在获得标定平面数据后,每次先求得使用单平面数据得到的手眼标定参数,给定一个标准评价当前标定参数的精度;再选择一种原则,淘汰一些数据,期望利用剩下的数据求解手眼参数能得到更高精度,不断循环迭代,直到符合停止条件。依据这种思路,可以获得在单个标定平面情况下最优的手眼标定参数。
此外,本文进一步使用三个相互正交的平面分别对激光测距仪和机械臂末端的手眼关系进行标定,如图 2 所示。取三个平面标定结果的均值及机械臂末端在初始位置时各标定平面的法向量作为非线性优化方法的初值,使用三个标定平面的原始数据,将平面法向量和激光束方向向量的模以及平面法向量的 轴方向大于0等作为约束条件,将采样点的共面性和闭式解的二范数作为目标函数,如式(16)所示:
$f(x) = {f_1} + {f_2} + {f_3}$ |
其中,x 为自变量, 为与第一标定平面 P1 相关的目标函数, 为与第二标定平面 P2 相关的目标函数, 为与第三标定平面 P3 相关的目标函数,它们有类似的表达式。现只给出 的表达式:
${f_1} = {c_{11}}{f_{11}} + {c_{12}}{f_{12}} + {c_{13}}{f_{13}} + {c_{14}}{f_{14}}$ |
其中 、 、 和 是权重系数, 、 、 和 是第一标定平面 P1 的三组平移和一组旋转平移数据的最小二乘表达式,它们也有类似的表达式。接下来给出 的表达式:
${f_{11}} = \alpha {\left\| {{{n}}_{m0}^{11} + {{\left[ {\sum\limits_j {{{t}}_{m0j}^{11}{{({{t}}_{m0j}^{11})}^T} } } \right]}^{ - 1}}\left[ {\sum\limits_j {{{t}}_{m0j}^{11}(d_j^{11} - d_0^{11})} } \right]{p^{11}} } \right\|^2} + \beta {\left\| {{{{X}}^{11}} - {{X}}_{fit}^{11}} \right\|^2}$ |
其中 和 为权重系数。式(18)的第一部分是由式(14)变形得到,其突出对单点准确性的约束;第二部分则是对测量点共面性的描述, X 11 为测量得到的点组成的矩阵,即 , 是对 X 11 使用主成分分析方法得到的主平面上对应的点组成的矩阵[19],突出对平面平整性的约束。迭代优化过程是在约束条件下,求式(16)的最小化过程,可以选择合适的非线性优化算法,比如 L-M 算法[20],求解得到最终的手眼标定参数。使用三个相互正交平面的好处在于:一方面相比于使用单平面标定,它的抗噪声能力将会得到有效增强;另一方面相比于使用多于三个平面的情况,它是能够将三维空间各方向都进行有效约束的最少平面数组合,达到标定过程简便性与标定性能可靠性的有效平衡。
标定完成以后,可以利用安装在机械臂末端的激光测距仪进行三维表面测量和点云数据重建,当使用激光测距仪测量三维表面上的某个点,由它的距离值dj 和机械臂控制器中的读数 和 ,就可以从式(4)和(7)推导得到:
${{{x}}_{bj}} = {{{R}}_{bj}}\left( {{{r}} + {d_j}{{v}}} \right) + {{{t}}_{bj}}$ |
从而求得该点在 下的空间坐标值 。如果对某个物体的表面进行逐点的扫描测量,则可以得到该物体表面的一组点云数据。
2 结果
2.1 实验环境搭建
实验中选用的机械臂为 6R 型的串联机械臂(VS060A3,Denso Co. Ltd.,日本,重复精度 0.02 mm),采用 IL-600 激光测量头及其相应的放大与通信部件 [KEYENCE,日本,有效测量范围(600±400) mm,重复精度 0.05 mm] 进行测距。使用自制的连结件将激光测距仪固定在机械臂末端法兰盘上,将自制的立体正交平面(使用有机玻璃搭建而成,其表面覆有亚光灰白色贴膜)放置在一个合适的位置,通过控制机械臂进行规定的运动,使用计算机采集机械臂末端位姿和激光测距的数据,对采集得到的数据使用 Matlab8.3 进行处理。标定实验环境如图 3 所示。
2.2 手眼参数求解
使用图 3 所示意的实验环境采集标定数据,在实验中为了使得采集的数据较广泛地分布在标定平面上,将每个标定平面划分为 15 个面积近似的区块,三组平移和一组旋转平移运动都在每个区块内采集 1 次,则一个平面共采集 60 个数据点,三个平面总计有 180 个位姿和对应的距离数据,根据第 1.3 节中提到的标定方法,依次求得分别使用 P1、P2、P3 三个平面单独标定的参数值,即完成手眼标定参数求解。
为了剔除标定平面数据中噪声较大的点,对于单独的每个平面数据,每次迭代淘汰掉一个离主平面(由标定平面数据使用主成分分析方法重建得到)最远的点,直到数据太少不满足闭式解为止。
受机械臂末端工具标定常采用的四点法的启发[21],对在循环迭代中产生的每一组手眼标定参数进行评估。方法是将一块尺寸为 500 mm×500 mm 的平面划分为 10 个面积近似的区块,选取每个区块的中心作为目标点,对每个目标点从 5 个姿态进行测量,利用得到的手眼参数计算各姿态测量得到的空间坐标,并计算每一个目标点坐标值的标准差,求得 10 个目标点标准差均值,这些均值随迭代过程的变化如图 4 所示。选择使得标准差最小的那组手眼参数为该平面标定的最优手眼标定参数,列于表 1。
图 4 中 10 条不同颜色的曲线依次表示点 S(1)~S(10)。图 4 不同标定平面 P1、P2 和 P3 的数据依次在第 7、4 和 10 次迭代中取得最小值,其标准差整体上先减小后增大,说明随着迭代的进行噪声较大的点(远离主平面的点)不断被淘汰掉,手眼参数越来越接近真值,但是随着迭代进一步地继续,由于参与标定的数据越来越少,数据点的随机噪声对标定结果产生的影响越来越大,故标准差在不断地增加,直到数据太少不满足闭式解为止。图 4 的整体先减后增趋势表明需要多测量一些冗余数据以降低测量的随机噪声的影响,同时也需要对采集的数据进行优选,以提高手眼标定的精度。
最后将前面三组最优标定参数的均值作为初始值,利用 L-M 算法求解式(16),得到对于三个平面来说总体最优的标定参数,因为每一组采集的数据理论上对最终优化的结果具有同等的贡献,故式(17)其中权重参数 、 、 和 都设置为1,由于每一组的数据都是在同一个平面下采集的,故希望提高共面性的权重,为此式(18)中的权重参数在本次实验中为 。结果如表 1 所示。表 1 中的 、 和 是 v 在 下的XL 、YL 和ZL 各轴的分量, 、 和 是 r 在 下 、 和 各轴的分量。
2.3 精度验证实验与结果
为验证利用所标定的参数进行三维表面上目标点测量的精度,先使用前面四组手眼标定参数,对被测对象上同一目标点从不同方向进行照射测量,得到各次测量的空间位置并计算标准差,以评估表 1 中各个手眼标定参数的准确度。同时使用激光测距仪和高精度光学测量仪器(Optotrak Certus,Northern Digital Inc,加拿大,三维空间精度 0.1 mm)拾取相同目标点的空间坐标,并以 Optotrak Certus 光学测量仪的结果作为标准来评估手眼系统的测量精度。
2.3.1 手眼标定准确度实验 为评估手眼标定参数结果的准确度,在一块大小为 300 mm×400 mm 的平面上使用与 2.2 节相同的方法得到 10 个被测点,使用激光测距仪对每个测量点依次从 5 个不同方向(点所在平面的法向量方向,及与法向量近似成 45° 相互之间依次绕法向量方向相差 90° 的另外 4 个方向)测量,采集得到一组机械臂末端的位姿和激光测距仪的距离数据,再分别使用前面四组手眼标定参数,依据式(19)计算其在 下的空间坐标并计算同一点的重建坐标的标准差,结果如图 5 所示。对所有测量点使用三个单平面 P1、P2 和 P3 对应的手眼标定参数进行计算,可得单平面方法标定的精度为(1.37±0.24)mm,使用立体正交平面对应的手眼参数计算得到其标定精度为(0.37±0.05)mm。
比较图 5 中的前三组数据,发现使用单平面方法得到的标定参数经过前面迭代优选之后,其性能基本相当。而四组横向比较可以发现,使用立体正交平面优化计算的结果最好,能保证在单平面不是很好的情况下优化得到一个最优的结果,相比于单平面标定方法更加准确与稳定可靠。
2.3.2 测量三维点的精确度 为了验证使用机械臂结合激光测距仪所重建的三维点的精确度,对 2.3.1 节中同一块平面用相同方法确定 20 个测量点,使用本文方法和 Optotrak Certus 光学测量仪分别测量这 20 个点的空间位置,每个点测量 10 次,取其平均值,再以 Optotrak Certus 光学测量仪的测量结果为标准,将激光测距仪测量重建的结果(使用立体正交平面优化的手眼参数计算得到)刚性配准到 Optotrak Certus 光学测量仪的测量结果,使用留一法计算参考点的配准误差(fiducial registration error,FRE)和目标点配准误差(target registration error,TRE)。其结果如图 6 所示。
在图 6 中 FRE 均值为 0.24 mm,TRE 的均值为 0.26 mm。图 6 中不同点的 TRE 值相对于 FRE 有较大的波动,其波动标准差为 0.10 mm。
2.3.3 表面法向量的准确度 对一块 90 mm×55 mm×45 mm 的长方体铝块,在紧邻的三个平面上每个平面依次采集 15 个点,接着使用主成分分析法求出每个平面的法向量,进而求出相邻两个平面的夹角,并与铝块平面夹角的理论值(由高精密的加工精度保证)比较,结果如表 2 所示。由表 2 可知,最大的角度误差不超过 0.4°。
2.3.4 获取三维表面的点云 为验证所构建的系统进行三维测量的可行性,对一个基于 CT 扫描重建出的头颅三维表面进行多点扫描,得到离散的三维坐标点云。实验中通过编程控制机械臂运动,使激光测距仪对一个头模型的前额、两侧颞部和头顶进行扫描,并采集头模型内部的 13 个验证点,利用上述立体正交平面标定得到的参数,对拾取的各个测点依据式(19)计算得到在 下三维点的空间坐标值,并与 CT 扫描重建的模型表面在软件(Cloud Compare)中做了配准,其结果如图 7 所示。其中蓝色点云为激光测量数据,头模型为 CT 数据重建表面,点到面的距离均值为 0.3 mm,标准差为 0.2 mm。
对图 8 所示的模型内部 13 个已知位置的验证点,计算其配准到影像中对应点的误差,其最小值为 0.76 mm,最大值为 1.96 mm,均值为 1.23 mm,标准差为 0.43 mm。本实验结果说明了本文方法获取三维表面点云用于手术机器人注册配准的可行性,能够满足临床应用的精度需求。
3 讨论
在循环迭代求解参数的过程中,对同一个点从 5 个不同方向照射,重建得到该点的 5 个三维坐标点,计算标准差,用所得标准差作为指标对标定参数的优化情况进行评价。该方法的好处在于:不需要知道该点在 下的真实位置,在没有测量误差的情况下,求解的手眼标定参数越接近真值,则从 5 个不同方向对该点进行测量,计算得到的坐标值误差越小。因此可以根据重建点误差的大小判断手眼标定结果的好坏,从而剔除标定中测量误差大的点。
需要注意的是,对于手眼标定参数的求解,在理论上和具体实施中都可以不进行数据优选,直接对从标定平面中采集的点使用非线性优化的算法来求解。但为剔除一些可能存在的测量误差较大的点(比如激光束太过倾斜照射到标定板上),以便获得更好的标定结果,建议对覆盖手术机器人工作空间内的多个目标点从多个角度进行测量。即使对同一个点的测量结果存在一定的人为判断误差也没有关系,因为计算的是这些目标点从多个角度重建的空间坐标的标准差,求解的手眼标定参数越准确,则标准差越小。
在手眼标定准确度实验中使用的激光测距仪发出的光斑在有效测量范围之内平均直径约为 1.6 mm,在实验中的待测量点的直径约为 0.8 mm,尽管每次测量时尽量使得激光光斑和被测点的中心重合,但是必定会引入一定量的人为判断误差,约为点的半径,即 0.4 mm 左右。图 5 中标准差平均最小的一组为最后一组,其均值约为 0.375 mm。可以看出二者为同一量级。由此结果可以看出:如果手眼标定的参数足够准确,从不同方向照射对测量结果的影响很小。但是在实际应用中为了保证更加准确的测量结果,建议激光光束方向和点所在平面的法向量夹角越小越好,一方面有利于减少由于夹角太大导致光斑呈椭圆形带来的人为判读误差;另一方面根据激光测距仪的三角测距原理可知,光斑越大越偏离圆形,在提取光斑中心时的误差则越大,导致测量精度下降。
图 6 中的数据在采集时尽可能地使激光光束方向和待测点所在平面的法向量平行,不论是 FRE 和 TRE 都小于 0.3 mm,说明本方法重建的三维点精度可以满足手术中定位测量小于 1 mm 的要求。
在本研究的最后给出了一个三维扫描的点云并用于配准的例子,其验证点的配准误差不仅与标定的精度及配准有关,还与在图像中选取验证点的精度有关,由于模型的 CT 数据层厚为 0.8 mm,故在选取验证点时会有一定的人为误差。在具体实施采集数据中为了保证较高的精度,机械臂不能运动太快,所以扫描 1 000 个点左右的数据大概需要 10 min,因此考虑下一步的研究方向是提高每一次采集点的数量,比如使用基于双目立体视觉、线结构光或面结构光等方法,从而缩短数据采集时间,但是本文提出的这种方法在标定的简便性和易用性上依然具有优势。
4 结论
本文针对手术机器人注册配准遇到的手眼标定问题,对安装在六自由度机械臂末端的激光测距仪所构成的三维测量系统构建数学模型,利用平面作为标定靶,建立了手眼标定方程。根据实施中存在一定测量误差的情况,提出采用单平面优选数据提高精度和使用立体正交面改进标定精度的方法,应用非线性优化方法提高标定结果的鲁棒性。本文通过实验评估标定结果的准确性和精度,其能够满足手术中定位定向测量精度的要求,最后展示了使用该测量系统对头模型扫描的结果,可以正确获取表面的三维点云数据,验证了本文方法的有效性。