具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示意性示出了根据本发明实施例的物体抓取方法的流程图。
如图1所示,该实施例的物体抓取方法包括操作S110~操作S150。
在操作S110,获取第一目标物体的第一物体位姿,其中,第一目标物体包括从N个待抓取物体中确定出的物体。
例如首先拍照或激光雷达扫描的方式获得N个待抓取物体的点云数据。接着,采用目标检测算法(如分类算法或模板匹配算法)对点云数据进行处理确定出第一目标物体。其中,可以从点云数据中获得第一物体位姿。
在操作S120,计算第一物体位姿与M个第二物体位姿中至少一个第二物体位姿之间的位姿距离,其中,M个第二物体位姿包括N个待抓取物体中M个抓取失败物体的物体位姿,M或N为大于或等于1的整数,M小于或等于N。
例如物体位姿可以用旋转平移矩阵[x,y,z,α,β,γ]表示,其中,x,y,z代表了三个自由度的位移,α,β,γ代表了三个自由度的空间旋转。位姿距离可以是计算表示第一物体位姿的矩阵,与通过任一个第二物体位姿的矩阵之间的欧式距离。第一物体位姿可以包括第一物体位置和第一物体姿态,用于表征物体所在位置及朝向。
抓取失败物体例如是指历史上对该些物体进行了抓取,但是没有抓取成功,仍然在N个待抓取物体之中。抓取失败可以指夹具对某个待抓取物体进行了接触,并施加了外力,执行了正常的抓取操作,但是该物体没有产生位移或旋转,或仅产生了较小的位移或旋转,没有离开当前位置。抓取失败还可以指没有将某待抓取物体从待抓取位置抓取到目标位置。
在操作S130,判断计算获得的任一个位姿距离是否小于第一距离阈值。若是,则执行操作S140。若否,则执行操作S150。
在操作S140,在计算获得的任一个位姿距离小于第一距离阈值的情况下,停止抓取第一目标物体。
第一距离阈值D1可用于表征物体的第一移动幅度。针对不同的物体类型,可以定义不同的第一距离阈值D1。例如对于体积小的物体,可能移动幅度较小时也可以尝试抓取。对于体积大的物体,可能在产生较大的移动幅度后才可以尝试抓取。
在一些实施例中,可以预设不同类型的物体一一对应不同的第一距离阈值D1。例如在获取第一目标物体时,可以确定出第一目标物体的类型,然后基于类型获得对应的第一距离阈值D1,最终将每个位姿距离与该第一距离阈值D1进行对比。物体类型可以是按照体积、长度、高度等进行分类,也可以是具体的物体名字、种类、型号。需要说明的是,本发明中所称的待抓取物体可以是规则物体,即其形状能用公式表达的物体,如矩形、圆形等。也可是不规则物体。
相关技术中,例如机械臂通过吸盘吸取物体时,若物体被吸取区域的表面情况不佳导致吸盘无法抽真空,则可能导致吸取失败。再比如机械臂通过夹具夹取物体时,例如夹取重的金属部件,如汽车曲轴时,由于曲轴互相堆叠,部分曲轴可能卡得比较紧,虽然能成功夹住,但抓不起来。从视觉计算结果来看,上述抓取失败物体的抓取优先级比较高(例如都是先抓高处物体再抓低处物体),所以每次都优先抓取这些物体。从运动的角度来讲,抓取规划是成功的,但实际抓取却是失败。当出现上述情况时,机器人总是反复去抓取同一物体,导致整体的抓取效率下降,耗费了时间和抓取资源。
与相关技术中机械臂抓取物体失败后,依然不断的重复尝试抓取的方式相比,可以首先获取第一目标物体的第一物体位姿,然后将M个抓取失败物体的物体位姿作为参照,在第一物体位姿与M个第二物体位姿中至少一个第二物体位姿之间的位姿距离小于第一距离阈值的情况下,可以确定第一目标物体可能会抓取失败,从而停止抓取,以避免重复尝试而导致的时间和资源的耗费,提高了整体抓取效率。
在操作S150,在计算获得的任一个位姿距离大于或等于第一距离阈值的情况下,抓取第一目标物体。
在位姿距离大于或等于第一距离阈值D1时,可以确定第一目标物体未尝试抓取过,或者虽然抓取失败,但是移动幅度符合条件,可以再次尝试抓取。因此,通过计算第一物体位姿与每个第二物体物资之间的位姿距离,并与第一距离阈值进行对比。一方面,能够过滤掉曾经抓取失败,且物体位姿没有变化的物体。另一方面,无论是对于未抓取过,还是可以尝试重复抓取的物体,都可以执行抓取操作,不会产生遗漏。从而提高了单次抓取成功率和整体抓取效率。
根据本发明的实施例,操作S150中抓取第一目标物体包括:基于第一目标物体的第一抓取位姿抓取第一目标物体,其中,第一抓取位姿与第一物体位姿相同或不同。
物体位姿和抓取位姿例如是物体的固有属性。物体位姿可定义在任意位置,如可在物体中心也可不在物体中心,可以在物体之上也可在物体之外。在定义下来后,对于该物体而言,物体位姿就是唯一确定的。在实际应用中,物体位姿定义在何处,可以由软件(如Mech-Vision软件)设定,如拿到曲轴模型后,Mech-Vision能够在加载进来的曲轴上编辑物体位姿。
抓取位姿可以根据相机或雷达位置、机械臂的抓取方式等因素确定,抓取位姿的数量可以为一个或多个。以曲轴为例,一般曲轴前部、中部和尾部各有一个凹槽处可抓取,则抓取位姿将被定义在这三个抓取位置处。由于物体位姿可以根据实际情况设定,所以物体位姿与抓取位姿可以相同或不同。抓取位姿可以与物体位姿同时获取,也可以在其之后或之前获取。应知的,曲轴的前部和尾部可以根据实际坐标系灵活定义,中部位于前部和尾部之间。
因此,在确定抓取第一目标物体后,则控制机械臂按照第一抓取位姿抓取第一目标物体,例如第一目标物体为曲轴时,第一抓取位姿可以在中部凹槽位置,那么机械臂抓取曲轴的中部凹槽。
一种可选的实施方式是,基于第一目标物体的第一抓取位姿抓取第一目标物体包括控制吸盘在第一抓取位姿吸取第一目标物体。
对于板状物体、箱体(如集装箱)、轻型物体(如中小型快递盒)等物体,可以使用吸盘吸取。
另一种可选的实施方式是,基于第一目标物体的第一抓取位姿抓取第一目标物体包括控制夹爪在第一抓取位姿夹取第一目标物体。
对于规则或不规则物体,其中具有适于抓取的凹槽,可以使用匹配的夹爪进行夹取。
在一些实施例中,机械臂的末端可以装配有多个类型的夹具,如同时装配有吸盘和夹爪。可以通过分类算法确定物体的具体类型,然后基于类型选择适配的夹具。也可以在物体的表面进行图像识别,来确定出物体上的部分区域适于使用某种夹具。如可以对曲轴的凹槽进行目标检测,在检测到凹槽后,既可以确定适于使用夹爪。
图2示意性示出了根据本发明实施例的将第三物体位姿写入失败记录队列的流程图。其中,失败记录队列中记录有M个第二物体位姿。
如图2所示,在执行操作S110之前,例如在获取第一目标物体的第一物体位姿之前,在失败记录队列中未记录有M个第二物体位姿的情况下,可以执行操作S210~操作S230。
在操作S210,获取第二目标物体的第三物体位姿,以及第二抓取位姿,其中,第三物体位姿与第二抓取位姿相同或不同。
在操作S220,基于第二抓取位姿对第二目标物体进行抓取。
在操作S230,在抓取第二目标物体失败的情况下,第二目标物体为抓取失败物体,将第三物体位姿作为第二物体位姿写入失败记录队列。
这里的队列指的是一种数据结构,一种特殊的线性表。失败记录队列用于保存抓取失败物体的物体位姿。例如,在失败记录队列中没有记载数据时,此时计算位姿距离没有意义,所以会直接获得第二目标物体的第三物体位姿和第二抓取位姿。若抓取成功,则继续直接抓取下一个目标物体。若抓取失败,则将第三物体位姿写入失败记录队列,在抓取下个目标物体时,计算位姿距离,并与第一距离阈值进行比较。
图3示意性示出了根据本发明实施例的将第一物体位姿写入失败记录队列的流程图。
在执行操作S150之后,如图3所示,还可以执行操作S310~操作S340。
在操作S310,判断第一目标物体是否抓取成功。若是,则结束本次操作。若否,则执行操作S320。
在操作S320,判断失败记录队列中当前记录的数量M是否等于N-1。若是,则执行操作S330。若否,则执行操作S340。
根据本发明的实施例,在执行操作S320之前,可以将失败记录队列的最大记录数量设置为小于或等于N-1。
再次以曲轴为例,N个待抓取曲轴装在一个物流箱内,在抓取完后,则换下一个物流箱进行曲轴抓取。若没有对失败记录队列的最大记录数量进行限制,那么在机械臂连续运行的情况下,可能其他物流箱的抓取失败曲轴的物体位姿仍然在队列里记录。实际上,在抓取当前物流箱内的曲轴时,其他物流箱内的曲轴的物体位姿是没有意义的,换言之,计算得到的位姿距离与第一距离阈值之间的比较结果没有意义。因此,可以将最大记录数量设置为小于或等于N。
在一些实施例中,可以基于N个待抓取物体的抓取完成,清空失败记录队列中的记录数据,而不设置最大记录数量。
在操作S330,若M等于N-1,则将M个第二物体位姿中最早记录的第二物体位姿从失败记录队列中删除。
以N为3举例,存在3个待抓取物体。若最大记录数量为3,3个待抓取物体皆抓取失败时,每个待抓取物体的物体位姿与失败记录队列中的物体位姿之间的位姿距离可能都会小于第一距离阈值,那么机械臂可能对任一个待抓取物体都会停止抓取,而导致抓取工作无法进行。
若最大记录数量为2,3个待抓取物体皆抓取失败时,可以有一个被挤出队列。具体而言,如果抓取三个物体A、B、C,且每次规划都能成功去抓取,但每次抓取都失败了,若最大记录个数设为2,实际的效果为:抓取失败A之后记A的物体位姿。抓取失败B之后记录有A、B的物体位姿。抓取失败C之后,A就出队列了,记录有B、C的物体位姿。此时A就能够尝试抓取了。从而可以通过机械臂不断地给物体施加外力,通过改变物体的位置或姿态来提高抓取成功率。
在操作S340,在抓取第一目标物体失败的情况下,第一目标物体为抓取失败物体,将第一物体位姿作为第二物体位姿写入失败记录队列。
根据本发明的实施例,每抓取一个物体失败时,即可以将其物体位姿写入失败记录队列,来作为后续抓取物体的参考。例如,若第一目标物体为抓取失败物体,那么下次在抓取规划之前,先计算位姿距离,并与第一距离阈值进行比较,确定是否能够抓取。避免第一目标物体没有发生移动,导致第二次抓取仍然失败的情况发生。
图4示意性示出了根据本发明实施例的确定出第一目标物体的流程图。
如图4所示,该实施例的确定出第一目标物体可以包括操作S410~操作S430。
在操作S410,从N个待抓取物体中确定出S个待定目标物体,其中,S为大于或等于1的整数,S小于或等于N。
在操作S420,确定S个待定目标物体的抓取优先级。
在操作S430,将S个待定目标物体中优先级最高的物体作为第一目标物体。
例如在抓取一个物流箱内的N个曲轴时,曲轴之间层叠摆放。对N个曲轴进行拍照,获取的是最上层的若干个曲轴的点云数据。首先对最上层的若干个曲轴进行目标检测,并将其作为S个待定目标物体,S小于或等于最上层的曲轴数量。然后,进一步进行计算,确定其中一个物体为第一目标物体。例如可以将抓取成功率最高的物体置为优先级最高的第一目标物体,并可以按照抓取成功率大小进行优先级排列(仅为示例)。
根据本发明的实施例,基于抓取优先级的排序,将S个待定目标物体中每个物体的物体位姿写入优先级队列,其中,优先级队列用于确定S个待定目标物体的抓取顺序。
一种可选的方式是,将S个待定目标物体中每个物体的物体位姿与抓取位姿对应地写入优先级队列。物体位姿用于确定物体,抓取位姿用于抓取物体。在抓取失败时,将物体位姿写入失败记录队列。优先级队列中各个物体位姿的优先级顺序即为抓取顺序。可以控制机械臂基于抓取顺序,按照物体位姿对应的抓取位姿进行抓取。
图5示意性示出了根据本发明实施例的优先级队列与失败记录队列的示意图。
如图5所示,优先级队列中可以包括第一物体位姿,以及S-1个待定目标物体位姿。失败记录队列中包括第二物体位姿1~M。机械臂按照图5中的优先级排序执行抓取。由于第一物体位姿的优先级最高,所以首先抓取第一目标物体。在进行抓取规划之前,可以先将第一物体位姿与失败记录队列中的M个第二物体位姿一一进行对比。下面结合图6进一步说明。
图6示意性示出了根据本发明的另一实施例的物体抓取方法的流程图。
如图6所示,该实施例的物体抓取方法可以包括操作S110和操作S150,还可以包括操作S610~操作S660。
在操作S110,获取第一目标物体的第一物体位姿。
在操作S610,计算第一物体位姿与第i个物体位姿之间的位姿距离。其中,i初始值为1,i小于或等于M。
在操作S620,判断第一物体位姿与第i个物体位姿之间的位姿距离是否小于第二距离阈值。若是,则执行操作S630。若否,则执行操作S640。其中,第二距离阈值D2小于第一距离阈值D1。
第二距离阈值D2可用于表征物体的第二移动幅度。针对不同的物体类型,可以定义不同的第二距离阈值D2。在一些实施例中,可以预设不同类型的物体一一对应不同的第二距离阈值D2。例如在获取第二目标物体时,可以确定出第二目标物体的类型,然后基于类型获得对应的第二距离阈值D2,最终将每个位姿距离与该第二距离阈值D2进行对比。
在操作S630,在计算获得的任一个位姿距离小于第二距离阈值的情况下,将第一物体位姿从优先级队列中删除。
参照图5,将第一物体位姿从优先级队列中删除,即待定目标物体位姿1的优先级变为最高,且优先级队列中还记录有S-1个物体位姿。由于每次抓取规划之前,可能会确定出S个待定目标物体,并依次进行抓取。第二距离阈值D2的作用在于确定第一目标物体是否有尝试抓取的可行性。若第一目标物体的移动幅度小于第二移动幅度,可以认为抓取成功率很低,不应当分配抓取优先级,放弃在该次抓取。
在操作S640,判断第一物体位姿与第i个物体位姿之间的位姿距离是否小于第一距离阈值D1。若是,则执行操作S650。若否,则执行操作S660。
在操作S650,在计算获得的任一个位姿距离大于或等于第二距离阈值,且小于第一距离阈值的情况下,降低第一物体位姿在优先级队列中的优先级顺序。
在位姿距离大于或等于第二距离阈值,且小于第一距离阈值的情况下,认为第一物体位姿可能曾经抓取失败过,但是有一定的移动幅度,此时第一目标物体可能会受到其他物体的影响,如压在第一目标物体之上。在抓取了其他物体后,再次尝试抓取第一目标物体,则会有较大的抓取成功率。参照图5,可以将第一物体位姿插入到待定目标物体位姿1~S-1中任两个之间,例如可以将第一物体位姿插入到待定目标物体位姿1与待定目标物体位姿2之间,即下调了一个优先级顺序。
将第一物体位姿降低多少个优先级,可根据实际运行情况进行确定。以曲轴为例,可以观察大约抓取多少个曲轴之后,能够使得物流箱中的曲轴有所松动,则降级顺序设为这个数值较为合适。因为,能排在前面的曲轴一般都为较易抓取的曲轴,之所以降低其抓取优先级是因为其卡得太紧实际抓不起来。但当该曲轴有所松动(即物体位姿发送改变)之后,还是可以首先抓该曲轴。
在一些实施例中,参照图5,若待定目标物体位姿1~S-1由于抓取成功或抓取失败的原因,皆已经从优先级队列中删除。即使将第一物体位姿的优先级顺序降低到待定目标物体位姿S-1之后,在优先级队列中仅有第一物体位姿的情况下,与第i个第二物体位姿的位姿距离依然大于或等于第二距离阈值,且小于第一距离阈值,可以设置若无法降低第一物体位姿的优先级,那么则将其删除。
在操作S660,判断i是否小于M。若是,则令i=i+1,并执行操作S610。若否,则执行操作S150。
参照图5,将第一物体位姿与第二物体位姿1~M中每个物体位姿进行比较,获得位姿距离,来确定第一物体位姿是否可以抓取。在确定可以抓取之后,再规划抓取的位姿、路径、角度、选取夹具等因素。例如,先获得第一物体位姿,在确定可以抓取之后,再获得第一抓取位姿,并确定抓取路径、角度、夹具等,可以节省计算资源。
在操作S150,抓取第一目标物体。
根据本发明的实施例,停止抓取第一目标物体可以分为在优先级队列中删除或者在优先级队列中降低优先级顺序两种实行措施。可以灵活处理有些场景中曲轴卡得很死,无论如何都不会松动,此时只要尝试去抓取但未抓起来就再也不尝试的情况。或者另一些场景中,随着曲轴的抓取,未被抓起的曲轴可能受抓取的影响存在松动的情况,因此对于尝试但未成功抓起的曲轴仅将其降低优先级,当抓取进行到一定程度后,可重新再尝试抓取。从而能够适配于抓取过程中的复杂多变的工况,提高整体抓取效率。
基于上述物体抓取方法,本发明还提供了一种物体抓取装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本发明实施例的物体抓取装置700的结构框图。
如图7所示,该实施例的物体抓取装置700包括位姿获取模块710、位姿距离模块720和物体抓取模块730。
位姿获取模块710例如可以执行操作S110,用于获取第一目标物体的第一物体位姿,其中,第一目标物体包括从N个待抓取物体中确定出的物体。
位姿距离模块720例如可以执行操作S120,用于计算第一物体位姿与M个第二物体位姿中至少一个第二物体位姿之间的位姿距离,其中,M个第二物体位姿包括N个待抓取物体中M个抓取失败物体的物体位姿,M或N为大于或等于1的整数,M小于或等于N。
物体抓取模块730例如可以执行操作S140,用于在计算获得的任一个位姿距离小于第一距离阈值的情况下,停止抓取第一目标物体。
物体抓取模块730还可以执行操作S150,用于在计算获得的任一个位姿距离大于或等于第一距离阈值的情况下,抓取第一目标物体。其中,抓取第一目标物体包括:基于第一目标物体的第一抓取位姿抓取第一目标物体,其中,第一抓取位姿与第一物体位姿相同或不同。
物体抓取模块730还可以用于控制吸盘在第一抓取位姿吸取第一目标物体。或控制夹爪在第一抓取位姿夹取第一目标物体。
物体抓取装置700还可以包括失败记录队列模块,其中记录有M个第二物体位姿,在获取第一目标物体的第一物体位姿之前,在失败记录队列中未记录有M个第二物体位姿的情况下,失败记录队列模块用于:获取第二目标物体的第三物体位姿,以及第二抓取位姿,其中,第三物体位姿与第二抓取位姿相同或不同。基于第二抓取位姿对第二目标物体进行抓取。在抓取第二目标物体失败的情况下,第二目标物体为抓取失败物体,将第三物体位姿作为第二物体位姿写入失败记录队列。
物体抓取装置700还可以包括第一写入模块,用于在抓取第一目标物体失败的情况下,第一目标物体为抓取失败物体,将第一物体位姿作为第二物体位姿写入失败记录队列。还用于将失败记录队列的最大记录数量设置为小于或等于N-1。在将第一物体位姿作为第二物体位姿写入失败记录队列之前,还包括:若M等于N-1,则将M个第二物体位姿中最早记录的第二物体位姿从失败记录队列中删除。
物体抓取装置700还可以包括目标确定模块,用于从N个待抓取物体中确定出S个待定目标物体,其中,S为大于或等于1的整数,S小于或等于N。确定S个待定目标物体的抓取优先级。将S个待定目标物体中优先级最高的物体作为第一目标物体。
物体抓取装置700还可以包括第二写入模块,用于基于抓取优先级的排序,将S个待定目标物体中每个物体的物体位姿写入优先级队列,其中,优先级队列用于确定S个待定目标物体的抓取顺序。还用于在计算获得的任一个位姿距离小于第二距离阈值的情况下,将第一物体位姿从优先级队列中删除,其中,第二距离阈值小于第一距离阈值。还用于在计算获得的任一个位姿距离大于或等于第二距离阈值,且小于第一距离阈值的情况下,降低第一物体位姿在优先级队列中的优先级顺序。
本发明的实施例的物体抓取装置700与相关技术中机械臂抓取物体失败后,依然不断的重复尝试抓取的方式相比,可以首先获取第一目标物体的第一物体位姿,然后将M个抓取失败物体的物体位姿作为参照,在第一物体位姿与M个第二物体位姿中至少一个第二物体位姿之间的位姿距离小于第一距离阈值的情况下,可以确定第一目标物体可能会抓取失败,从而停止抓取,以避免重复尝试而导致的时间和资源的耗费,提高了整体抓取效率。
图8示出了根据本发明实施例的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图8所示,该计算设备可以包括:处理器(processor)802、通信接口(Communications Interface)804、存储器(memory)806、以及通信总线808。
其中:
处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。
通信接口804,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器802,用于执行程序810,具体可以执行上述物体抓取方法实施例中的相关步骤。
具体地,程序810可以包括程序代码,该程序代码包括计算机操作指令。
处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(nonvolatile memory),例如至少一个磁盘存储器。
程序810具体可以用于使得处理器802执行上述任意方法实施例中的物体抓取方法。程序810中各步骤的具体实现可以参见上述物体抓取实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。
各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。
因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。