具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
激光雷达传感器在自动驾驶、智能机器人等领域有着广泛的应用。例如,当激光雷达安装在机器人上时,激光雷达能够根据当前环境生成激光点云数据,创建当前环境的地图,并利用激光点云数据进行定位,确定机器人的位姿。但是,目前基于激光雷达的定位方法的定位精度并不高。
基于此,本发明实施例提供一种定位方法、装置及设备,能够提高定位的精度。
具体地,下面结合附图,对本发明实施例作进一步阐述。
其中,应当理解的是,本发明提供的下述实施例之间,只要不冲突,均可相互结合以形成新的实施方式。
图1示出了本发明实施例提供的一种定位方法的流程示意图。该定位方法可以应用于定位设备。如图1所示,该定位方法包括:
步骤110、获取激光雷达上一次扫描周围环境的第一点云数据。
其中,激光雷达可以单线激光雷达或者多线激光雷达。激光雷达可以设置在移动平台上,从而随着移动平台的运动而运动。移动平台可以为移动的物体,例如车辆、机器人、飞行器等等,本实施例不对移动平台的结构作具体限定。
其中,获取激光雷达的周围环境的激光点云数据的方式,可以为:激光雷达向周围环境发射一束或者多束激光进行扫描,并在接收到周围环境反射的激光后,根据该激光所携带的数据描绘出周围环境,从而激光雷达生成激光点云数据,从而能够获取激光雷达生成的激光点云数据。其中,激光点云数据为三维数据。
其中,上一次扫描是指激光雷达完成一次扫描,例如激光雷达旋转360°,此时,激光雷达生成一帧激光点云数据。则第一点云数据是指激光雷达在上一次扫描中获取的激光点云数据。例如,激光雷达从第0秒到第1秒旋转了10圈,则激光雷达完成了10次扫描,生成10帧激光点云数据,激光雷达在第0秒时从0°开始旋转,在第50毫秒时旋转到180°,在第100毫秒时旋转到360°,则激光雷达从第0秒到第100毫秒完成了上一次扫描,则第一点云数据为激光雷达从第0秒到第100毫秒获取的激光点云数据。
步骤120、对第一点云数据进行预处理,预处理包括运动畸变去除、滤波以及去除动态物体。
其中,对第一点云数据进行预处理,具体可以为:先对第一点云数据进行运动畸变去除,然后对第一点云数据进行滤波,确定滤波后的第一点云数据中的动态物体,并去除动态物体。通过对第一点云数据进行预处理,能够得到更有效的环境信息。
步骤130、根据预处理后的第一点云数据,更新局部地图。
其中,局部地图为激光雷达在历史扫描中获取的周围环境的地图。例如,历史扫描可以为激光雷达在某个环境首次启用的时刻,当激光雷达在该个环境首次启用时,激光雷达对该环境进行识别,生成该环境的激光点云数据,则将此时的激光点云数据作为局部地图。
在本实施例中,激光雷达上一次扫描周围环境获取的第一点云数据并不是激光雷达首次扫描周围环境获取的激光点云数据,即在上一次扫描之前,激光雷达就已经对周围环境进行过扫描,生成了激光点云数据(即局部地图),因此能够获取到周围环境的局部地图。则在步骤130中,获取到局部地图后,通过第一点云数据对局部地图进行更新。
具体地,步骤130可以包括:
步骤131、根据预处理后的第一点云数据和局部地图,计算预处理后的第一点云数据和局部地图之间的变换矩阵;
步骤132、根据预处理后的第一点云数据和局部地图之间的变换矩阵,将预处理后的第一点云数据和局部地图变换到相同坐标系下;
步骤133、对变换后的第一点云数据和局部地图进行合并和滤波,以得到更新后的局部地图。
在步骤131中,可以通过获取激光雷达完成上一次扫描时的平移速度,计算激光雷达在上一次扫描时的位姿,从而根据激光雷达在上一次扫描时的位姿计算得到预处理后的第一点云数据和局部地图之间的变换矩阵。
其中,相同坐标系可以为第一点云数据的坐标系,也可以为局部地图的坐标系,还可以为世界坐标系,等等。则在步骤132中,将预处理后的第一点云数据和局部地图变换到相同坐标系下,具体可以为:根据预处理后的第一点云数据和局部地图之间的变换矩阵,对预处理后的第一点云数据进行旋转和平移,将预处理后的第一点云数据变换到局部地图坐标系下,从而使预处理后的第一点云数据和局部地图在相同坐标系下。
在步骤133中,具体可以为:将在相同坐标系下的第一点云数据和局部地图进行合并,然后在保持局部地图尺寸固定的情况下,对第一点云数据和局部地图合并后的地图进行修剪,并通过统计滤波和体素滤波对修剪后的地图进行处理,从而得到更新后的局部地图。通过统计滤波和体素滤波对地图进行处理,能够使得地图更加准确。
步骤140、获取激光雷达当前扫描周围环境的第二点云数据。
其中,当前扫描是指与上一次扫描相邻的下一次扫描。第二点云数据是指激光雷达在当前扫描中获取的激光点云数据。例如,激光雷达从第0秒到第100毫秒完成了上一次扫描,生成第一点云数据,激光雷达从第100毫秒到第200毫秒完成了当前扫描,生成第二点云数据。又例如,激光雷达在第一帧内完成了上一次扫描,生成第一点云数据,激光雷达在第二帧内完成了当前扫描,生成第二点云数据。
需要说明的是,步骤130和步骤140可以同时执行,也可以先后执行,例如,先执行步骤130再执行步骤140,或者,先执行步骤140再执行步骤130。
步骤150、对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿。
具体地,步骤150包括:
步骤151、根据第二点云数据和更新后的局部地图,基于迭代最近点算法确定第二点云数据和更新后的局部地图之间的变换关系;
步骤152、根据第二点云数据和更新后的局部地图之间的变换关系,确定激光雷达在当前扫描时的位姿。
其中,用迭代最近点(Iterative Closest Point,ICP)算法进行第二点云数据和更新后的局部地图的匹配,从而计算得到第二点云数据和更新后的局部地图之间的变换关系。ICP算法具体实施方式可以为:一、在第二点云数据中选取点;二、在局部地图中找出点对应的点,并使得点与点之间的距离最小(例如可以遍历局部地图,计算点与第二点云数据中各个点的距离,通过不断比较,找到距离点最近的点);三、计算旋转矩阵R和平移矩阵T,使得误差函数最小;四、对点使用上一步求得的旋转矩阵R和平移矩阵T进行旋转和平移变换,得到新的对应点集;五、计算点与点的平均距离d;六、若平均距离d小于给定的阈值或者大于预设的最大迭代次数,则停止迭代计算,否则返回第二步,直到满足收敛条件为止。
在本实施例中,记第二点云数据为源点云Ps={xi|i∈[1,Ns]},更新后的局部地图为参考点云Pr={yi|i∈[1,Nr]},其中,Ns和Nr为整数。首先,Ps中的点xi在Pr中搜索最近点得到yi,从而得到点对(xi,yi);当点对(xi,yi)的距离小于预设阈值时,将该点对保留,直至保留的点对个数达到预设值ne,则可以按照以下步骤求旋转矩阵R和平移向量t:
计算源点云和参考点云中参与配对的点的各自的几何中心:
计算协方差矩阵W:
对协方差矩阵W进行奇异值分解,求出矩阵U和V:
W=UDV
计算旋转矩阵R:
R=USVT
其中,S是一个三阶的对角矩阵,其对角元素为{1,1,detU,detV},其中,detU和detV分别为矩阵U和V的行列式。
计算平移向量t:
t=xc-RTyc
在步骤152中,在计算得到平移向量t后,结合激光雷达在上一次扫描时的位姿,得到激光雷达在当前扫描时的位姿。例如,假设平移向量
激光雷达在上一次扫描时在世界坐标系中的坐标为(1,1,1),则激光雷达在当前扫描在世界坐标系中的坐标为(1+x,1+y,1+z),从而得到激光雷达在当前扫描时的位姿。
需要说明的是,在本实施例中,上一次扫描和当前扫描可以为激光雷达在扫描过程中的任意两次相邻的扫描,从而通过输出激光雷达的位姿不断追踪激光雷达的运动轨迹。
本发明实施例通过获取激光雷达上一次扫描周围环境的第一点云数据,对第一点云数据进行预处理,预处理包括运动畸变去除、滤波以及去除动态物体,根据预处理后的第一点云数据,更新局部地图,获取激光雷达当前扫描周围环境的第二点云数据,对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿,能够通过第一点云数据对局部地图进行补充,完善局部地图的几何观测信息,从而能够提高定位的精度。
图2示出了本发明另一实施例提供的一种定位方法的流程示意图。如图2所示,该方法包括:
步骤210、获取激光雷达上一次扫描周围环境的第一点云数据。
其中,步骤210与上述实施例中的步骤110的实施方式相同,此处不再赘述。
步骤221、确定上一次扫描中的起始时刻以及除起始时刻以外的其他时刻。
其中,起始时刻为激光雷达在进行上一次扫描时的开始时刻,而其他时刻为上一次扫描中除了起始时刻的若干其他时刻。例如,假设激光雷达从第0秒到第100毫秒完成了上一次扫描,则起始时刻为第0秒,第1毫秒、第2毫秒……第100毫秒等为其他时刻。当然,各个其他时刻之间的时间间隔可以根据实际情况决定,例如,可以为1毫秒,也可以为10毫秒等等。
步骤222、计算其他时刻和起始时刻之间的时间间隔。
其中,计算各个其他时刻和起始时刻之间的时间间隔。
步骤223、根据时间间隔以及激光雷达在其他时刻时的旋转速度和平移速度,对第一点云数据进行运动畸变去除。
其中,激光点云数据不是瞬时获得的,在激光雷达进行激光测量时伴随着移动平台的运动。当激光雷达处于移动状态下时,其扫描周期内的扫描运动将不仅仅包含激光雷达旋转部分的旋转运动,还有其相对被测物体因其固定的移动平台所产生的平移及旋转运动。因此,需要将激光雷达移动状态下这些运动考虑其中,矫正激光雷达在一个扫描周期内的点云数据,使其扫描平面的点云数据更为准确地反映真实情况,从而提高激光雷达点云数据的准确度。
其中,其他时刻的旋转速度是指其他时刻的瞬时的旋转速度,其他时刻的平移速度是指其他时刻的瞬时的平移速度。则在步骤223中,获取激光雷达在各个其他时刻的旋转速度和平移速度,将旋转速度乘以对应的时间间隔,得到需要校正的角度,平移速度乘以对应的时间间隔,得到需要校正的位移,对各个其他时刻的激光点云进行校正后,从而进行运动畸变去除,并将校正后的所有激光点云重新封装成一帧激光点云数据,得到第一点云数据。
步骤224、对运动畸变去除后的第一点云数据进行滤波。
其中,为了减少数据处理量,则对运动畸变去除后的第一点云数据进行滤波。具体可以为:将第一点云数据的空间按照预设长宽高的体素栅格进行划分,用栅格内的重心表示栅格内的所有点,各个栅格的重心组成滤波后的第一点云数据。其中,重心的计算方法可以为:对栅格内的每个点的坐标求和,然后除以点的个数。可选地,预设长宽高可以为1m、0.6m和0.2m。
步骤225、确定滤波后的第一点云数据中的动态物体,并去除动态物体。
其中,为了减少环境中的运动物体的干扰,提高第一点云数据中有效环境信息的比例,则去除第一点云数据中的动态物体。确定滤波后的第一点云数据中的动态物体,具体可以包括:对滤波后的第一点云数据进行聚类,以确定第一点云数据中的物体;若第一点云数据中的物体的长宽高均小于预设长宽高阈值时,则将物体确定为动态物体。
其中,可以对滤波后的第一点云数据进行欧式聚类,欧式聚类是指当距离某个类的点的距离小于预设聚类半径时,则将该点归为该类,如果不存在满足条件的类,则将该点视为新的类,依次遍历,直至所有点都有对应的类。可选地,预设聚类半径可以为1.1m。
其中,将聚类后得到的每个类作为一个物体,从而确定第一点云数据中的物体。确定各个物体的长、宽、高,并分别比较物体的长、宽、高和预设长、宽、高阈值,当物体的长、宽、高均小于预设长、宽、高阈值时,则确定该物体为动态物体,从而去除第一点云数据中的动态物体。可选地,预设长、宽、高阈值可以为4m、3m、1.5m,这样设置可以去掉大多数行人和车辆。
步骤230、根据预处理后的第一点云数据,更新局部地图。
步骤240、获取激光雷达当前扫描周围环境的第二点云数据。
步骤250、对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿。
其中,步骤230至步骤250与上一实施例中的步骤130至步骤150的实施方式相同,此处不再赘述。
步骤261、根据激光雷达在上一次扫描的第一平移速度、激光雷达在当前扫描的第二平移速度,计算激光雷达的加速度。
其中,第一平移速度可以为激光雷达在上一次扫描中的任意时刻的瞬时平移速度,也可以为激光雷达在上一次扫描中的平均平移速度。同样的,第二平移速度可以为激光雷达在当前扫描中的任意时刻的瞬时平移速度,也可以为激光雷达在当前扫描中的平均平移速度。计算激光雷达的加速度,具体可以为:确定上一次扫描与当前扫描之间的时间差(一般为一个扫描周期),将第二平移速度与第一平移速度的差除以上一次扫描与当前扫描之间的时间差,计算得到激光雷达的加速度。
步骤262、若加速度大于预设加速度阈值,则根据第一平移速度以及上一次扫描和当前扫描之间的时间差,调整确定的在当前扫描时的位姿。
其中,预设加速度阈值用于判断步骤250中确定的激光雷达在当前扫描的位姿是否准确。由于运动物体的加速度有一定的限制,在短时间内,物体的速度无法大幅度上升或者下降,因此,当激光雷达的加速度没有超过预设加速度阈值时,认为激光雷达观测正常,即步骤250中确定的激光雷达在当前扫描的位姿准确,则正常输出激光雷达在当前扫描的位姿;当激光雷达的加速度超过预设加速度阈值时,则认为激光雷达观测无法用于求解正确的运动,即步骤250中确定的激光雷达在当前扫描的位姿不准确,则将第一平移速度乘以上一次扫描与当前扫描之间的时间差,作为激光雷达在当前扫描的位姿并输出。可选地,预设加速度阈值可以为8m/s2。
本发明实施例通过获取激光雷达上一次扫描周围环境的第一点云数据,对第一点云数据进行运动畸变去除、滤波以及去除动态物体,然后再根据第一点云数据,更新局部地图,获取激光雷达当前扫描周围环境的第二点云数据,对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿,根据激光雷达在上一次扫描时的第一平移速度、激光雷达在当前扫描时的第二平移速度,计算激光雷达的加速度,若加速度大于预设加速度阈值,则根据第一平移速度以及上一次扫描和当前扫描之间的时间差,调整激光雷达在当前扫描的位姿,能够对第一点云数据进行处理,以得到更有效的地图信息,再通过第一点云数据对局部地图进行补充,完善局部地图的几何观测信息,从而提高定位的精度,并且,还通过判断观测退化来调整当前扫描的位姿,从而得到更加准确的定位,提高了准确性和鲁棒性。
图3示出了本发明又一实施例提供的一种定位方法的流程示意图。该定位方法应用于载有激光雷达的扫地机器人。如图3所示,该方法包括:
步骤301、开启扫地机器人,扫地机器人速度为零,激光雷达第一次旋转360°扫描周围环境,生成第一帧激光点云数据,作为局部地图;
步骤302、记录扫地机器人的原点位姿,扫地机器人开始运动,同时激光雷达第二次旋转360°扫描周围环境,生成第二帧激光点云数据,作为第一点云数据;
步骤303、根据原点位姿以及扫地机器人生成第一点云数据时的平移速度,计算扫地机器人生成第一点云数据时的第一位姿;
步骤304、对第一点云数据进行预处理,预处理包括运动畸变去除、滤波以及去除动态物体;
步骤305、根据预处理后的第一点云数据,更新局部地图;
步骤306、激光雷达第三次旋转360°扫描周围环境,生成第三帧激光点云数据,作为第二点云数据;
步骤307、对第二点云数据和更新后的局部地图进行匹配,并结合第一位姿,计算生成第二点云数据时的第二位姿;
步骤308、将扫地机器人生成第一点云数据时的平移速度与扫地机器人生成第二点云数据时的平移速度的差除以扫地机器人生成第一点云数据和生成第二点云数据的时间差,计算得到扫地机器人的加速度;
步骤309、若加速度大于预设加速度阈值,则将扫地机器人生成第一点云数据时的平移速度乘以扫地机器人生成第一点云数据和生成第二点云数据的时间差,并结合第一位姿,计算得到第三位姿,并将步骤307得到的第二位姿的值调整为第三位姿的值,输出第二位姿。
步骤310、若加速度不大于预设加速度阈值,则直接输出步骤307得到的第二位姿。
本发明实施例能够对第一点云数据进行预处理,以得到更有效的地图信息,再通过第一点云数据对局部地图进行补充,完善局部地图的几何观测信息,从而提高定位的精度,并且,还通过判断观测退化来调整当前扫描的位姿,从而得到更加准确的定位,提高了准确性和鲁棒性。
图4示出了本发明实施例提供的一种定位装置的结构示意图。如图4所示,该装置400包括:第一获取模块410、预处理模块420、更新模块430、第二获取模块440和位姿确定模块450。
其中,第一获取模块410用于获取激光雷达上一次扫描周围环境的第一点云数据;预处理模块420用于对所述第一点云数据进行预处理,所述预处理包括运动畸变去除、滤波以及去除动态物体;更新模块430用于根据所述第一点云数据,更新局部地图;第二获取模块440用于获取所述激光雷达当前扫描周围环境的第二点云数据;位姿确定模块450用于对所述第二点云数据和更新后的所述局部地图进行匹配,以确定所述激光雷达在所述当前扫描时的位姿。
在一种可选的方式中,预处理模块420具体用于:确定所述上一次扫描中的起始时刻以及除所述起始时刻以外的第一时刻;计算所述第一时刻和所述起始时刻之间的时间间隔;根据所述时间间隔以及所述激光雷达在所述第一时刻时的旋转速度和平移速度,对所述第一点云数据进行运动畸变去除。
在一种可选的方式中,预处理模块420还用于对所述第一点云数据进行滤波;确定滤波后的所述第一点云数据中的动态物体,并去除所述动态物体。
在一种可选的方式中,预处理模块420还具体用于:对滤波后的所述第一点云数据进行聚类,以确定所述第一点云数据中的物体;若所述第一点云数据中的物体的长、宽、高小于预设长、宽、高阈值时,则将所述物体确定为所述动态物体。
在一种可选的方式中,更新模块430具体用于:根据所述预处理后的所述第一点云数据和所述局部地图,计算所述预处理后的所述第一点云数据和所述局部地图之间的变换矩阵;根据所述预处理后的所述第一点云数据和所述局部地图之间的变换矩阵,将所述预处理后的所述第一点云数据和所述局部地图变换到相同坐标系下;对变换后的所述第一点云数据和所述局部地图进行合并和滤波,以得到更新后的所述局部地图。
在一种可选的方式中,位姿确定模块450具体用于:根据所述第二点云数据和更新后的所述局部地图,基于迭代最近点算法确定所述第二点云数据和更新后的所述局部地图之间的变换关系;根据所述第二点云数据和更新后的所述局部地图之间的变换矩阵,确定所述激光雷达在所述当前扫描时的位姿。
在一种可选的方式中,该装置还包括:位姿调整模块。位姿调整模块用于:根据所述激光雷达在所述上一次扫描的第一平移速度、所述激光雷达在所述当前扫描的第二平移速度,计算所述激光雷达的加速度;若所述加速度大于预设加速度阈值,则根据所述第一平移速度以及所述上一次扫描和所述当前扫描之间的时间差,调整确定的所述在所述当前扫描时的位姿。
需要说明的是,本发明实施例提供的定位装置是能够执行上述定位方法的装置,则上述基于定位方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例通过获取激光雷达上一次扫描周围环境的第一点云数据,对所述第一点云数据进行预处理,所述预处理包括运动畸变去除、滤波以及去除动态物体,根据预处理后的第一点云数据,更新局部地图,获取激光雷达当前扫描周围环境的第二点云数据,对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿,能够通过第一点云数据对局部地图进行补充,完善局部地图的几何观测信息,从而能够提高定位的精度。
本发明实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述任意方法实施例中的定位方法。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的定位方法。
图5示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
其中,计算设备包括:处理器和存储器。存储器用于存放至少一可执行指令,当计算设备运行时,处理器执行可执行指令,使处理器执行根据上述任意方法实施例中的定位方法的步骤。
可选地,如图5所示,该云端服务器500可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。处理器502,用于执行程序510,具体可以执行上述任意方法实施例中的定位方法。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。云端服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
本发明实施例通过获取激光雷达上一次扫描周围环境的第一点云数据,对所述第一点云数据进行预处理,所述预处理包括运动畸变去除、滤波以及去除动态物体,根据预处理后的第一点云数据,更新局部地图,获取激光雷达当前扫描周围环境的第二点云数据,对第二点云数据和更新后的局部地图进行匹配,以确定激光雷达在当前扫描时的位姿,能够通过第一点云数据对局部地图进行补充,完善局部地图的几何观测信息,从而能够提高定位的精度。
在此提供的算法或显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。