专利名称:用于测定物体的空间位置和取向的系统的制作方法
背景技术:
本发明一般地涉及一种用于测定物体或对象的空间位置和角度取向(即姿态)的系统。
如现有技术中已经知道的那样,有些系统可测定物体(或对象)的空间位置和角度取向。一种这样的系统包括无源式回射器,作为附加到物体上的点标记或测量用靶,而第二种系统包括有源辐射源,作为附加的点标记。这两种技术都是通过将高对比度的标记图像投射到彼此隔开的传感器上,并使用数学处理测定每一个点标记的三维坐标来进行操作的。然后,将这些三维坐标用作离散点,或者如果它们的几何排列是已知的,则可以考虑为一套,这导致了物体在空间中有关三维坐标系统的位置和角度取向的测定(即,6个自由度x,y和z以及间距、偏转和旋转角度取向),其中,该坐标系中心位于空间中的预定点上,典型地,在关于传感器固定的点上。
测定物体的空间位置和矢量角或角度取向有几种用途。例如,当定点装置的终端处于和标记相关的已知位置上时,定点装置能认出物体。这种定点装置可以在逆向工程应用中用作手持数字化定点。操作员将该定点装置移至一制造的部件上的各种已知位置,并从对测定的定点装置的终端位置进行分析而测定制造过程的精确度。这种应用需要高度精确的系统。
在另外一种应用,例如图像引导的外科手术中,跟踪关于该病人的手术器具状态。某些手术器械具有粘贴到它们上的标记。这种信息可以用于允许外科医生看见器械在MR或CT扫描器上指出的地方,以及在手术器械的终端后边的东西。这种应用也需要高度精确的系统。
在一种发射标记(即有源标记)系统中,使用多个电荷耦合装置(CCD)传感器测量由标记发射的能量。在每一个传感器周期为一个点标记供给能量,以发射红外线能量。在每一个传感器周期中,集中在传感器上的发射的能量被收集(即,结合)并移动到传感器处理电路。为了测定标记的3D位置,必须在至少三个传感器轴上测量到标记(即,包括至少3个正交平面)。对于一种使用发射标记的系统有许多的优点,包括有高度反差图像产生在传感器上,控制每一个标记的激励,以提供正确和自动的标记识别,以及使用高速线性传感器的能力。高速线性传感器相对比较昂贵,并且在单个传感器周期中只能跟踪一个标记。
在一种回射标记(即无源标记)系统中,给予能量源能量,以沿回射标记的一般取向发射红外线能量。然后,使用多个CCD传感器,以测量由标记反射的能量。在每一个传感器周期中,将集中在传感器上的反射能量收集(即,集中)到一起,并转移到传感器处理电路。为了测定标记的3D位置,必须在至少三个传感器轴上测量标记(即,包括最小量的3个正交平面)。对于回射标记系统具有许多优点,包括利用无线电标记,以及能够使用不昂贵的低速分区阵列传感器。但是,这些系统遇到与有效识别标记有关的问题。
希望使用一种成本低廉的分区阵列传感器,它能够在单个传感器周期中跟踪多个标记。如在现有技术中已知的,有一些系统利用单个分区阵列传感器和不昂贵的部件。DeMenthon(专利号5,227,985)揭示了一种系统,它使用单个传感器和矩阵技术来测定物体的姿势。这种系统限于非共面标记,并且建立在射影法基础上,以从2D图像中提取6D信息。这种方法对于医疗应用不具备足够的精确度。如在现有技术中已知的,对于这种类型的系统,深度测量中的错误大,这是要禁止的。对于深度精确度,三角测量法具有射影法明显的优点。三角测量法,也称为立体测量技术,由于执行实时计算所需的昂贵的硬件而受到抵制。通过分区阵列传感器的多个标记三角测量法另外不存在标记识别差的问题,这一点典型地通过人的介入而得到解决。以前的系统在存在偏离的IR源和导致不理想和不期望的标记反射出的真实状态下工作恶劣。以前的系统在存在多个相互靠近的物体的情况下也可能工作恶劣。
发明概述根据本发明,提供了一种用于测定多个物体中的每一个物体的空间位置和取向的系统。每一个物体具有至少三个标记,它们具有预定的相对几何关系。标记适合于响应激励信号和/或从可激励能量源撞击到这种无源标记上的反射能量而发射能量。设置一公共能量检测器,用于测量由激励标记发射的能量和由无源标记反射的能量。提供一公共处理器。该处理器具有存储器。存储器中存储有每一个物体的标记的预定的相对几何关系。处理器将它所存储的有关物体的标记的预定的几何关系与由能量检测器测得的能量进行比较,以识别发射/反射所测得的能量的物体。
通过这样的安排,利用单个标记放置方法,通过有力的积极标记识别,在实时中可以使用非常简单的操作顺序,跟踪物体。由此,可以同时跟踪多个物体。
根据本发明的另一个特点,每一个物体必须具有标记,它们具有已知并且固定的相对几何关系,而且在所有标记对中必须具有唯一的线段长度,其中,唯一一词是指阈值差,该值建立在系统的精确度上(即,物体的标记的几何关系中的差是可以测量的)。如果在被跟踪的所有物体中相似的段对具有唯一相对角度,则可以同时跟踪多个物体,其中仍然是,唯一一词是指建立在系统精确度基础上的阈值差。根据应用的需要,标记几何关系可以是共线或共面的。
另外,通过这样的安排,将系统设置得适合于跟踪具有已知相对几何关系的3个或更多的标记的物体的姿势,这种几何关系服从单个的定位规则,这不限于是非共面或非共线的。系统能够使用成本低廉、低速的分区阵列传感器,它可以在单个传感器周期中跟踪多个标记,由此增加每一个标记的出现取样率。
根据本发明的另一个方面,系统使用传感器的立体测量安排,由此为诸如外科应用之类的高性能应用提供适当的精确度。
另外,该系统能够使用成本低廉的数字信号处理器,并使处理计算步骤简单,它将自动和确定地识别物体的三维(3D)中的不连续的标记,并在存在许多错误标记和多个相互接近的物体的情况下工作。这种系统适合于使用单个传感器周期图像,而不是使用预言性方法,以闭式方案(closed formsolution)实时地测定一个或多个物体的姿势,以连续跟踪给予几个传感器周期图像的物体的姿势。
另外,这种系统适合于自动认可和跟踪各种在跟踪之前已知的物体。
附图概述参照下面联系附图的描述,本发明的其它特点将更加容易显见,其中这些附图是
图1是根据本发明的测定一对刚体的空间位置和取向的系统的方框图;图2是示出适用于图1的系统中的一对物体;
图3是存储在图1的系统中使用的处理器的存储器中的图表的图;图4、5、6、6A-6B、7、7A-7C、8和8A-8B是流程图,通过图解说明图1的系统操作的顺序,其中图7示出图7A-7C之间的关系,而图8示出图8A和8B之间的关系;图9A、9B到18说明在执行图1的系统的各个阶段时,图3的存储器中的元件的详细例子。
较佳实施例独立的描述现在参照图1,提供一系统10,用于测定一个或多个(这里提供了一对刚体11a、11b)刚体的空间位置和取向。这里,在图2中更加详细地示出和描述的刚体11a、11b是不同的手术器械。这里,刚体11a具有多个,这里是两个无源回射标记12a、12c,与一个有源发射标记12b,3个标记都粘贴在刚体11a上。这里,每一个能量回射标记12a、12c包含一个球体,球体能够粘贴到物体11a上,并覆盖有现有技术中可以买到和已知的回射材料。标记12a、12b、12c以预定的固定相对几何关系粘贴到物体11a上。预定的固定相对几何关系是由下面描述的简单的定位确定的。
再参照图1,系统10包含公共能量测量系统14,用于测量由粘贴到物体11a上的有源标记12b发射的能量,以及由粘贴到物体11a上的无源标记12a、12c反射的能量。公共测量器系统14分别包括一对隔开的,安装在左边和安装在右边的传感器装置14L和14R。每一个传感器装置14L、14R各自包含二维电荷耦合装置(CCD)传感器18L、18R(图1);聚焦透镜22L、22R,如图所示;和多个光能发射源24L、24R(这里,是红外线能量发射二极管)如图所示。
每一个传感器装配14R和14L具有其本身的u,v,zs坐标,该坐标分别按照它相关的定向红外线能量源24L、24R排列。光发射源24L、24R均匀地分布在每个传感器装置14R和14L zs轴的圆周上。通过处理器部分26,将电能给予多个光发射源24L、24R。处理器部分26包括处理器28、主机30、显示器32和控制器34。处理器28通过线36上的信号,将能量给予光发射源24L、24R。多个光发射源24L、24R进行工作,以产生入射取向的红外线能量束,其传播取向对准一般对应于每一个与定向能量源24L、24R相关的传感器装置14L、14R的定向轴zs。由定向红外线能量源产生的入射定向能量的尺寸、形状和强度对应于其相关的传感器装置14L、14R的测量体积的视场,并且足以在测量体积上提供入射定向能量束。
每一个传感器装置14L、14R都能够在线39L、39R上产生输出信号,这些信号表示传感器装配上聚焦的能量强度。在每一个传感器周期中,其上聚焦的能量被收集(即集合),然后转移到处理器28。这里,将传感器装置14L、14R安装到固定的坐标系,并相互分开预定距离,这里是500mm。这里,传感器装置14L、14R分别具有一个视场,该视场足以观察大致1立方米的公共测量体积,其中心沿zs轴离原点大约1.9m处,这是透镜22L和22R的中间。
如上面提到的,每一个传感器装置14L和14R分别具有其本身有关的透镜22L、22R,用于聚焦来自能量回射标记12a和12c的反射能量以及来自能量发射标记12b的发射能量,以在分别与传感器装配14R、14L相关的透镜22L、22R上产生来自标记12a、12b、12c的发射或反射能量的能量图像。
将处理器28耦合到传感器装配14L和14R上,并测定每一个传感器装置14L和14R上聚焦的能量图像的二维u、v位置。然后,利用每一个传感器装配14L、14R上相同的标记12a、12b、12c的聚焦的能量图像的u、v位置,产生左和右传感器能量源位置表50L、50R(图3和9A、9B),并设置左-源和右-源计数器51L、51R,下面将对此进行描述。
将处理器28耦合到主机30,以使物体11a、11b的空间位置显示在显示器32上,或进一步由主机30处理。如上面提到的,处理器28被耦合到定向能量源24L、24R,以使处理部分26能够在适当的时候激励定向能量源24R和24L。并将处理器28耦合到控制器34,以便使处理器28能够给控制器34发信号以在需要的时候通过线27激励能量发射标记12b。
下面将对于物体11a描述系统10的操作,应该知道,对于其它刚体,诸如物体11b,操作的顺序大致上是相同或相等的。由此,如图所示,有源标记12b通过电缆27(图1)被馈送到控制器34。这里,如上面提到的,能量发射标记12b包括一标记12b的红外线能量发射二极管,它在被赋予由控制器34通过电缆27馈送的电能时,发射红外线光能。这种红外线能量发射二极管是能够买到的,并且是现有技术中已知的。
现在,更详细地参照图2,刚体11a和11b分别具有粘贴到它们上的标记12a-12c和12d-12f。首先应该知道,标记12a和2c是回射的,以及标记12b是有源的无关紧要。这种配置仅仅是范例,而下面描述的方法不依赖于标记的类型。每一个物体11a、11b分别具有以预定(即,已知的)和固定相对几何关系,粘贴到其上的标记12a、12b、12c和12d、12e、12f。另外,标记12a、12b和12c的相对几何关系和物体11b的标记12c、12d和12f必须能够检测出不同来。由此,如图2所示,物体11a的标记12a、12b和12c分别由线段SLab,SLbc和Slac分开。另外,如图所示,线段SLab,SLbc和Slac交叉,形成角θab,θbc和θac。类似地,物体11b的标记12d、12e和12f分别由线段SLde,SLef和Sldf分开。另外,如图所示,线段SLde,SLef和Sldf交叉,形成角θde,θef和θdf。另外,线段长度SLab必须和线段长度Slac和线段长度SLbc不同,并且线段长度SLbc和线段Slac不同。在本较佳实施例中,变化Δ是5.0mm。由此,如果线段SLab的长度是SLab,线段SLbc的长度至少是SLab±Δ,而线段Slac的长度至少是SLab±Δ。即,线段SLab、SLbc和Slac的长度必须相差Δ。另外,有3个标记的物体将具有3个线段。但是,通常,线段的数量等于N*(N-1)/2,其中N是标记的总数。物体11a有一对线段SLab、SLbc,它们的长度和物体11b上的一对线段Slde、Slef相等;如果物体11a上的线段SLab、SLbc之间的相对角θab不同于物体11b上的线段Slde、Slef之间的相对角θde,仍然能够跟踪它们。根据应用的需要,标记几何关系可以是在同一线上、不在同一线上,共面或非共面的。如果在物体11a、11b中被跟踪的相同的一对线段具有唯一的相对角,可以同时跟踪一对物体11a、11b,其中唯一这个词仍然是指建立在相同10的精确度上的阈值差。即,将标记12a-12c、12d-12f分别放置在物体11a、11b上,为每-个物体11a和11b提供能够由处理器28承认和跟踪的唯一的签名或指纹。
在讨论系统10的操作前,首先应该注意处理器28具有存储器40(图3),该存储器存储3组表格,42-48;50L,50R和52;以及56-62。第一组表格(即刚体确定表格42-48)定义了每一个物体11a、11b的标记12a-12d、12e-12f的标记的预定的几何关系;第二组表格(即传感器产生的数据表,50L、50R和52)容纳每一次传感器14L、14R扫描时产生的信息,因此这些表50L、50R和52不和专门的物体有关系;还有,在刚体11a、11b被识别和跟踪时由处理器产生的第三组表格(即,处理表56-62)。这些表格(和计数器51L、51R和53,下面将描述)在处理器28内,并在处理器28的操作程序中由其使用。
刚体定义表42-48刚体定义表包含标记位置表42;标记线段表44;标记线段点(·)产生表46和标记线段组表48。这些刚体定义表,42-48是所有物体11a、11b的,并包含一已知的信息,该信息是关于分别粘贴到刚体11a、11b上的标记12a-12c和12d-12f的几何关系的,由此为每一个物体11a、11b提供唯一的,可由处理器28识别和跟踪的签名或指纹。这些刚体定义表42-48在处理器28的识别和此后的跟踪操作一开始之前初始化。
标记位置表42每一个刚体11a、11b具有它的标记位置表42,如为图11中的物体11a示出的。标记位置表42包含与例如刚体11a相关的每一个标记12a、12b和12c的3D位置(X’,Y’,Z’)。参照图11,为物体11a示出标记位置表42,应该知道,表42对于物体11b具有类似的表。图中示出标记12a、12b和12c的3D位置。
线段长度表,44每一个刚体11a和11b具有与其相关的标记线段长度表44(图12),该表44包含物体11a、11b的线段长度组。认为线段是连接物体11a的标记12a、12b、12c和物体11b的标记12d、12e和12f中的一对标记的直线。由此,如上面结合图2所述,物体11a具有线段SLab、SLbc和SLac,而物体11b具有线段SLde、Slef和SLdf。物体的所有的线段就是每一对标记的所有的组合。由此,对于物体有N*(N-1)/2个线段,其中N是粘贴到物体的标记的数量。
参照图12,为物体11a示出标记线段长度表44。图中示出线段长度SLab、SLbc和SLac。
标记线段组表,48每一个刚体11a、11b具有与其相关的标记线段组表48(图13),它包含标记线段组。在表48中对于每一个标记都有一个条目。每一个标记条目将包含2个或更多连接到该标记的线段。对于N个标记的物体,将有N-1根线段连到每一个标记。图13示出刚体11a的线段组。每一个标记12a、12b、12c具有其相关的2个线段(即,线段1和线段2,在图13中)。由此,如在图2和13中指出的,对于物体11a,将标记12a贴到线段SLab和SLac;将标记12b贴到线段SLab和SLbc。将标记12c贴到线段SLac和SLbc。应该知道,对于标记11b有类似的表。
线段点(·)和表,46每一个刚体具有与其相关的线段点(·)积表46(图14),该表46包含每一个线段的组合之间产生的点(·)积的列表。当将线段看作对X、Y、X系统10坐标系进行变换的矢量时,将点(·)和用于测定线段长度SL之间的角θ当N是刚体中线段的数量时,将有N*(N-1)/2个线段对的组合。例子图14示出物体11a的一组点(·)积。这里,对于线段长度SLab和SLbc之间的角θab的点(·)积显示是3600。同样的,线段长度SLab和SLac之间的角θa,c的点(·)积是0,而线段长度SLbc和SLac之间的角θb,c的点(·)积显示是2500。应该知道,对于物体11b存在类似的表。
传感器产生数据表,50L,50R和52传感器产生数据表50L、50R和52包含左边和右边传感器能量源位置表50L、50R;和原3D标记表52。
左边和右边传感器能量源表50L、50R在存储器40中,对于每一个分区阵列CCD传感器18L、18R(图1、图9A、图B)有一个传感器能量源表50L和50R。对于在CCD传感器18L、18R上测得的每一个能量点,有一个条目。左边源和右边源计数器51L、51R分别包含在左右传感器18L、18R上分别测得的能量点的数量。每一个条目将具有一个U值和一个V值,它们对应于能量点沿有关的传感器18L、18R的U轴和V轴的质心。在较佳实施例中,将有左右传感器能量源表50L、50R(图3)。这里,有四个能量源S1-S4,S5-S8,它们分别由每一个传感器18L、18R测得,如图9A和9B中指出的。注意,如图9A和9B指出的,能量源S1-S4,S5-S8在传感器18L、18R的u,v坐标中。
原3D标记表52在存储器40中有单个原3D标记表52(图3、10),它包含每一个测定的但是不合格的标记位置(原标记)。每一个条目有一个X、Y和Z(即X、Y、Z系统10的坐标系)值,对应于位置传感器的坐标系,其原点在图像传感器18L、18R之中间点。原标记计数器53包含测得的原标记的数量。参照图10,给出对于4个原标记的例子。在这个例子中,测得物体11a的标记12a、12b和12c,和一个偏离为未知的标记。此时,不知道这些标记R1-R4分别关于物体11a和11b的标记12a-12c和12d-12f的分配。将利用一系列的操作来测定这些标记对物体11a或物体11b的对应。
处理表56-62处理表是线段原标记对照表56;合格线段表58;测量的标记位置表60;和计算的刚体位置和取向(姿势)表62。这些处理表56-62由处理器28,为每一个刚体11a、11b制定,并在识别(鉴别)和跟踪刚体时由处理器28产生。
线段原标记对照表,56每一个刚体具有一个与其相关的线段原标记对照表56(图3、15),它包含所有对分开距离接近于刚体定义的线段长度的原标记12a、12b和12c。接近词定义为线段和测试中的线段之间的长度差,它小于某些预定值(即,能够由系统10测量的距离)。在较佳实施例中,该值是1.5mm。下面的例子(图15)说明了与物体11a预定的线段长度SLab、SLbc、SLac匹配的标记对。原标记对数据由处理器28根据一种方法测得,这种方法将结合图6描述。但是,这样说就足够了,即,在本实施例中,由左右传感器14L、14R(图9A、图9B)测得的两组4个原能量数据S1-S8由处理器28转换为4个原标记R1-R4(在系统10的X、Y、Z坐标系中),并存储在3D原标记表52(图10中)。由此,由于有4个原标记R1-R4,故有6个线段长度(即,SL12、SL13、SL14、SL23、SL24和SL34)。这里,在本例子中,原标记R1和R2分开线段长度SL12,该线段长度接近于线段SLab的长度。原标记(R1,R4),(R2,R3)分开接近于线段SLac的长度。原标识(R2、R4)和(R1、R3)R分开接近于线段SLac长度的如图15所示,这种数据存储在线段原标记对照表56中。
合格线段表,58对于每一个刚体11a、11b有一个合格线段表58(图3、16)。该表58在线段检验阶段产生,将结合图7描述。但是,这么说就足够了,即,对于刚体的每一根线段有一个条目。图16的例子示出物体11a的线段SLab、SLbc和SLac都是合格的。
测量标记位置表60每一个刚体11a、11b具有与其相关的测量的标记位置表60(图3、17),它包含已经鉴别、验证、并绘制到物体实际标记12a-12c,12d-12过的原标记R1-R4的3D位置。图17中给出的例子示出物体11a的标记12a、12b和12c的测量位置,其中实际标记12a对应于原标记R2,实际标记12b对应于原标记R4而实际标记12c对应于原标记R1。
计算的刚体位置和取向表,62每一个刚体具有与其相关的计算刚体位置和取向表62(图3,18),该表62包含刚体的变换。这是根据标记位置表42(图11),从测量标记位置表60(图17)测定的姿势。换句话说,该姿势是将标记位置表42转移到系统10的相同的空间X、Y、Z坐标系的变换。图18所示的例子说明了物体11a的姿势。
总的操作的顺序可以从下面的流程图4中所说明的工作中,同时和实时地测定物体或目标的姿势或取向。在步骤401中,激励能量源24L和24R(图1)和有源标记12b。参照图1,这些能量源通过透镜系统22L、22R聚焦,并将图像投射在DDC传感器18L、28R上。该图像从传感器18L、18R扫描,并由处理器28分析在某一个阈值以上的所有强度。在步骤402,2传感器能量源的位置存储在左右传感器能量源位置表50L、50R(图3、9A、9B)中。位置以像素为单位。将传感器的水平轴称为U,并将竖直轴称为V。在本较佳实施例中,使用左右传感器18L、18R。分别将左能量源和右能量源计数器51L、51R设置为分别在左右传感器18L、18R上测得的能量源的数量。在结合图9A和9B描述的例子中,有四个分别由传感器18L、18R测得的能量源S1-S4,S5-S8;由此,在该例子中,每一个计数器51L、51R中的计数是4。
在步骤403中,为以后的操作顺序对适当的表格(即,表52、56)和计数器51L、51R和53初始化。清除原3D标记表52、原标记计数器53和线段原标记对照表56。在步骤404中,由处理器26分析存储在左右传感器能量源位置表50L、50R中的能量源,并产生原3D标记表52。将原标记计数器S3设置为测得的原标记数量。此时,不知道这些标记是什么。有一些可能是来自一个成数个被跟踪的物体的标记,另外的可能是反射,还有一些可能是由标记测量方法引起的人工产物。由立体视图产生3D位置的三角测量法是现有技术中熟知的技术,以下将在产生原3D标记表52部分描述其一种方法。
在步骤405和406中,计算所有原3D标记组合的对之间的距离,即线段长度SL12、SL13、SL14、SL23、SL24和SL34。对被跟踪的每个物体11a、11b,将计算的长度与线段长度表44(图12)进行比较。为每一个物体11a、11b在线段原标记对照表56(图15)中设置匹配。这些步骤在图6中联系产生线段原标记对照表56(图15)详细描述。
在步骤407中,通过比较物体11a、11b线段长度SL之间的相对角度,检验每一个物体11a、11b在线段原标记对照表56(图15)中的可能的线段推测。这些步骤将在下面联系图7的线段验证进行详细描述。在步骤408中,通过使用物体的标记线段设置表48(图13)与物体的线段原标记对照表56(图15)的交点法,测定在上面给出的例子中的原3D标记R1-R4和各个物体11a、11b的实际标记12a-12c、12d-12f之间的对应关系。将原3D标记绘制到物体的测量标记位置表60(图17)中。这些步骤将在下面联系图8的标记对应提取详细描述。
在步骤409中,通过包含在物体测量标记位置表60(图17)中的标记测定物体的取向(姿势)。从离散的标记测定刚体的6个自由度的方法是现有技术中熟知的,这里将不作描述。最后,在步骤410中,将所有物体的姿势存储在表62(图18)中,并且可以显示。该姿势还可以根据要求,进行存储、传送到另一个计算机或进一步进行处理。通过使用下面的例子和详细的描述,上述顺序将更加容易显见。
原3D标记表,52的产生分析存储在左右传感器能量源位置表50L、50R中的能量源S1-S4,S5-S8(图9A和9B),并测定原3D标记R1-R4(图10)。将原标记计数器53设置为测得的原标记的数量。现在参照图5,描述由两个立体图像产生3D位置的方法。下面的方法是现有技术中熟知的,并且可以使用其它方法。
在步骤501中,开始将原标记计数器53设置为0。在步骤502、503、504和505中为每一个左传感器能量源14L和每一个右传感器能量源14R产生参数线议程式。一条线位于传感器18L、18R中的一个传感器上的一点(即在V=U=Zs,或传感器坐标系统原点处)和能量源S1-S4中的一个之间。由此,从传感器18L到每一个测得的能量源S1-S4有4条线(即,左边的线)。类似地,从传感器18R到每一个测得的能量源S5-S8有4条线。在步骤506、507和512到515中,处理一条双环路,它将使每一个左边的线与每一个右边的线成对。该环路反复的数量将等于左边能量源52L*右边能量源52R。在上述例子中,有4个左边能量源S1-S4,和4个右边能量源S5-S8(图9A和9B),这将对计算表52取16次反复(图10)。
在步骤508和509中,测定左边直线和右边直线之间的最小距离。如果该距离小于预定的最小值,则认为直线相交,并已经发现可能的3D标记R1-R4。由于此时它还未知是否是一个正确的标识,故认为该标记是原标记。在图10所示的例子中有4个这样的匹配。最小距离是系统精确度的函数,并保持尽可能小,以减小错误的标记的数量。在步骤510和511中,在原3D标记表52(图10)中设置左右线之间的3D中点。原标记计数器53增量。
在完成步骤501到515时,原标记计数器53包含测得的原标记的数量,并且完成原3D标记表52(图10)。从这一点起,可用3D标记作出所有以后的决定,而且不再需要2D传感器能量位置。对于这个例子,有4个测得的原3D标记R1-R4。在这时不知道每一个标记是什么。
产生所有刚体的线段原标记对照表,56(图15)在总的看法中,接着的程序将执行如下。将表52(图10)中的所有原3D标记(即R1-R4)之间可能的线段与每一个物体11a和11b的图12的表44中的所有线段长度SLab、SLbc、SLac和SLde、Slef、SLdf比较。如果发现有匹配,则将原3D标记对加到该物体的线段原标记对照表56(图15)中。测试中的相同的原线段可能与几个刚体匹配。同样,一个刚体的线段可以具有几个匹配的原测试线段。这些将在后面的操作,即线段验证(图7)中被滤去。
通过使用一个例子,和流程6,所有刚体的产生线段原标记对照表,56,可以使上述内容显见。在步骤601、602和613到616中。控制两个加深处理环路。最外面的两个环路由计数器N和L标指(但图中未示),但是包含在处理器26中,用于使所有原3D标记R1-R4的组合配对。有N’*(N’-1)/2条线段(成对的),其中N’等于例如原标记R1-R4。这里,N’=4。每一次反复外面两个环路时计算原3D标记N和L之间的线段长度(步骤603)。该长度称为试验长度,并用于以下部分。
在步骤604、611和612中,由计数器J控制处理环路在所有被跟踪的刚体中的顺序,该计数器J图中未示,但是包含在处理器28中。在步骤605、609和610中,由图中未示但是包含在处理器28中的计数器K控制处理环路在所有物体11a、11b中的一个的所有线段的顺序,其中这里以物体J统一表示。在步骤606、607和608中执行线段的匹配。将物体J的线段K与试验线段比较。如果差小于预定值,则认为线段是匹配的线段。当发生匹配时,原3D标记对的指标计数器N和L值被放置在物体J的线段K的线段原标记对照表56(图15)中下一对可用线段中。图中未示但包含在处理器28中的计数器的“总的原对数”对于线段K增加。预先定义的值是系统精确度的函数,并保持实际地尽可能小,以减小线段匹配数量,但是大得足以避免丢弃正确的线段。
在参照图15给出的例子中,对于物体11a,线段长度SLab具有单个匹配,为原3D标记对R1和R2。线段长度SLbc具有3个匹配,为原3D标记对R1和R4;R3和R4;以及R2和R3。线段长度SLac具有两个匹配为原3D标记对R2和R2;和R1和R3。很清楚,6个线段中的3个线段不是刚体11a的部分,必须通过线段验证(图7)消除。
线段验证通过比较物体11a、11b的线段长度SL之间的相对角度θ来验证每一个物体11a和11b的线段原标记对照表56(图15)中由原43D标记对定义的所有可能的线段。通过使用下面的例子,检查图7、7A-7C所示的流程图,这种方法将变得清楚。线段验证操作具有五个深入控制环路。
在步骤701、726和727中,通过计数器L控制处理环路,它在所有被跟踪物体中定序。在步骤701中,为被验证的刚体L清除合格线段表,58(图16)。在步骤702、724和725中由计数器J控制处理环路,它在所有物体L的线段长度SL中定序。如果线段J未合格,进入控制环路,如在合格线段表,58(图16)中所指出的。
如果合格线段表,58(图16)中的线段J未合格(即设定为FALSE(步骤703)),则在步骤704、720和721中由计数器N控制处理环路,它在物体L的线段原标记对照表56(图15)中对于线段J中所有原3D标记对定序。在步骤705中,为物体L的线段J的原3D标记对N计算矢量X,该矢量转换为系统10的坐标轴原点。在步骤706、718和719中,由计数器K控制处理环路,它在物体L中线段J之后的所有线段长度中定序。
在步骤707、716和717中由计数器M控制处理环路,它在物体L对于线段K的线段原标记对照表56(图15)中的所有原3D标记对定序。在步骤708到711中,为物体L的线段K的原3D标记对M计算变化到始点的矢量Y。测定矢量X和矢量Y之间的点(·)积。将该点(·)积与存储在物体L的线段点积表,46(图14)中的线段对J和K的实际点(·)积比较。如果差值小于预先定义的值,则发现匹配。预先定义的值是系统10精确度的函数,并保持实际尽可能小,以减小错误线段匹配的数量,但是大得足以避免不必要地丢弃正确线段。本较佳实施例使用的值是200。
当发现匹配时,认为两个线段都是有效的,并且认为线段原标记对照表,56(图15)中的线段J和K的原3D标记对N和M都是真的。在步骤712到715中,将原3D标记对N和M移动到原J和K中第一个位置。将图中未示的总的原对数计数器设置为1,并消除所有其它原3D标记对。线段J和K设置为合格线段表,58(图16)中的真值。当完成控制环路J的每一次反复时,将在步骤722执行一测试。如果在与所有以后的线段比较后线段J不合格,则认为它是坏线段。在步骤723中,为线段J消除所有原3D标记对,并将计数器总的原对数设置为0。对所有物体11a、11b(步骤725-728)重复这种处理。
现在将参照线段原标记对照表,56(图15)、线段点积表,46(图14),原3D标记表,52(图10),和图7的线段验证流程图,描述一个例子。下面的事件的顺序可以在流程图中进行跟踪。
L=物体11aJ=线段长度SLab线段长度SLab不合格。
N=SLab的对1(R1,R2)为对N(R1,R2)产生矢量K=线段长度SLbcM=线段长度SLbc的对1(R1,R4)为对M(R1,R4)产生矢量产生点积(·)。(R1,R2)·(R1,R4)=3599.9951117为SLab比较点积表,46(图14)SLbc=3600发现匹配删除线段长度SLbc的对2(R3,R4)和对3(R2,R3)。
设定线段长度SLbc为合格。
设定线段长度SLab为合格。
将M前进到下一对。
这是最后一对线段长度SLbc。
将K前进到线段长度SLac。
M=对1的线段长度SLac产生对M(2,4)的矢量产生点积(·),(R1,R2)·(R2,R4)=0.01304为线段长度SLab,SLac=0比较点积表,46(图14)发现匹配。
删除线段长度SLac的对2(R1,R3)将线段长度SLac设置为合格将线段长度SLab设置为合格将M前进到下一对这是最后一对线段长度SLab将K前进到下一个线段这是最后一对线段。
将N前进到下一对这是最后一对将J前进到下一个线段长度SLbc该线段是合格的。
将J前进到下一个线段。
这是最后一个线段。
将L前进到下一个物体。
这是最后一个物体完成,见表(步骤158)标记对应提取在线段原标记对照表,56(图15)中指出的原3D标记与物体实际标记之间的对应由交点法,使用物体的标记线段组表48(图13)测定。将原3D标记R1-R4绘制到物体的测量标记位置表,60(图17)中。这些步骤使用流程8、标记对应提取,通过一个例子在下面描述。
标记对应提取操作具有三个深入控制环路。在步骤801、825以及826中,由计数器K控制处理环路,它在所有被跟踪刚体中定序。在步骤802、823和824中由计数器N控制处理环路,它2在物体K的所有标记中定序。使用寄存器M1和M2测定集合交点。在步骤803中初始地设置为空的。在步骤804、812和813中由计数器J控制处理环路,它在所有贴到物体K的标记N的线段长度中定序。对于任何一给出的标记,将有B-1个连接线段,其中B是物体的标记的总数。
在步骤805中,为标记线段集合表,48(图13)中的物体K的标记N,将L设定为由J指出的线段数量。在步骤807到811中,如果在线段原标记对照表,56(图15)中有合格线段长度SL,则测试标记的集合交点。如果M1是空的,则将M1设置为这一对中的第一个标记,而将M2设置为这对中的第二个标记。如果M1不是空的,则进行一个测试,以测定M1是等于这一对中的第一个或第二个标记。如果M1不等于两个标记中的任何一个,则它不与集合相交,从而将设置为抵制。相等地,将测试M2是否等于这一对中的第一或第二个标记。如果M2不等于两个标记中的任何一个标记,则它不和集合相交,从而它将设置为剔除。这对所有连接到标记N的线段重复执行。
此时,M1和M2可以具有步骤814、815-817、818-820,以及821-822中测试的各种状态。如果M1是正确的标记,而M2是被剔除的,则由M1对照的原标记对应于标记N。如果M2是正确标记,而M1是剔除的,则由M2对照的原标记对应于标记N。由M1或M2对照的原3D标记位置可以拷贝到测量的标记位置表,60(图17)。如果M1和M2都剔除或空的,则对于标记N没有对应的原标记,而对于这个标记,将测量标记位置表,60(图17)设置为丢失。
例子完成一个例子,将使上面的陈述清楚。参照线段原标记对照表,56(图15),标记线段集合表,48(图13),原3D标记表,52(图10),测量标记位置表,60以及图8的标记对应提取流程图。下面的事件的定序可以在流程图中跟踪。
K=物体11aN=标记12a将M1和M2设置为空的。
将J设置为标记12a的标记线段集合表(图13)中第一线段。
将L设置为线段长度SLab,由J对照。
在线段原标记对照表,56(图16)中有合格的SLab线段。原标记对是R1,R2。
M1是空的,由此,设置M1=R1,M2=R2。
将J前进到标记12a的标记线段集合表,48(图13)中的第二个线段。
在线段原标记对照表,56(图15)中有合格的SLac线段。原标记对是R2、R4。
M1不是空的。
M1不等于R2或R4,由此将M1设置为抵制的。
M2不等于R2。
将J前进到标记12a的标记线段集合表,48(图13)中的第三线段。
这是标记N的最后一线段试验M1和M2。
M1被抵制,M2等于R2,由此原3D标记R2对应于实际标记N(12a)。
将3D拷贝到测量的标记位置表,60(图17)。
将N前进到标记12b。
对于标记12b和12c重复上述程序。通过将原标记R2映射到实际标记12a,将原标记R4映射到实际标记12b,和将原标记R1映射到实际标记12c重复该处理。
测定物体取向(姿势)
现在,我们具有所有测定刚体的位置所需要的信息。这在现有技术中是熟知的,并且这里不再描述。将姿势存储在计算的刚体位置和取向表,62(图18)中。其它实施例将在所附权利要求的主旨和范围内。
权利要求
1.一种用于测定多个物体中每一个物体的空间位置和取向的系统,其特征在于包含至少三个以预定的相对几何关系,附加到所述每一个物体的标记,所述标记适合于响应激励信号发射能量和/或反射从一可激励的能量源射到这一无源标记上的能量;能量检测器,用于测量由所述有源标记发射的能量和由所述无源标记反射的能量;具有存储器的处理器,所述存储器中存储所述每一个物体的所述标记的预定的相对几何关系;并且其中,所述处理器将所存储的每一个物体的标记的预定的几何关系与由所述能量检测器测得的能量进行比较,以识别发射/或反射所检测到的能量的物体。
全文摘要
本发明提供了一种用于测定多个物体中的每一个物体的空间位置和取向的系统。每一个物体具有至少3个标记,它们具有预定的相对几何关系。标记适合于响应激励信号和/或反射由可激励的能量源照射到这种无源标记上的能量。设置一公共能量检测器,用于测量由激励标记发射的能量以及由无源标记反射的能量。设置一公共处理器。处理器具有存储器。存储器中存储了每一个物体的标记的预定的相对几何关系。处理器比较所存储的每一个物体的标记的预定的几何关系与由能量检测器测得的能量,以识别发射或反射测得的能量的物体。通过这样的安排,可以使用非常简单的操作程序,利用简单的标记放置方法,通过有力的确定的标记识别,实时跟踪物体。由此可以同时跟踪多个物体。
文档编号G01B21/00GK1283272SQ98811823
公开日2001年2月7日 申请日期1998年12月2日 优先权日1997年12月5日
发明者S·E·莱斯 申请人:北方数字股份有限公司