拇指与手掌间自由度解算方法、装置及数据手套与流程

文档序号:26303009发布日期:2021-08-17 13:46阅读:118来源:国知局
拇指与手掌间自由度解算方法、装置及数据手套与流程

本发明实施例涉及计算机技术领域,尤其涉及一种拇指与手掌间自由度解算方法、装置、及数据手套。



背景技术:

人手是人体与外界进行交流的主要器官,能够传递多种姿态信息。人手作为信息输出器官,具有可传递信息种类多,信息量大,映射能力强等特点。也正是因为这些特点,手部穿戴设备才会备受关注,由此设计出了大量的智能穿戴设备。而在各类手部智能穿戴设备中,数据手套又由于最能充分利用手部姿态信息,故而具有极强的开发与研究潜力。

现有技术中,使用数据手套对手部运动进行解析和识别,主要技术可以分为两类:

(1)基于视觉的手势识别技术

基于视觉的手势识别技术是指,使用单个或者多个摄像头采集手部图片,经过合适的图像信号处理,并使用模式识别算法,对人手的姿态信息进行识别。视觉手势识别技术优势明显,其主要硬件组成部分为摄像头,硬件开发难度小,软件识别算法是该技术的核心,系统成本低,具有极高的性价比。

(2)基于硬件的手势识别技术

基于硬件的手势识别技术是指,在人手关键部位安装传感器及外部结构,以实现对人手的空间定位并提供触觉反馈功能。常见的数据手套使用的传感器为光纤传感器、柔性传感器等。它具有极高的空间使用灵活度,二次开发成本低,稳定性高,响应快。

现有技术的缺点:

(1)基于视觉的手势识别技术:虽然视觉手势识别只需要摄像头支持即可完成,但却需要复杂的算法作为支持,复杂的特征提取以及识别运算将花费大量时间和资源。而且视觉手势识别依靠摄像头,摄像头布置区域有限,若不在该范围内就不能起到作用,并且可能会造成个人隐私暴露。

(2)基于硬件的手势识别技术:基于光纤传感器的数据手套虽然舒适度高,反应灵敏,但是成本极高,只能粗略对手指弯曲进行识别,无法识别手部的地理空间坐标,在多次使用后,会产生疲劳损伤,极大影响角度的测量精度。柔性传感器其原理与光纤数据手套基本一致,也只能检测手指的弯曲情况,对于手势识别精度不够。



技术实现要素:

鉴于此,为解决现有技术中数据手套对于复杂的手势识别精度不够,或者算法过于复杂等的技术问题,本发明实施例提供一种拇指与手掌间自由度解算方法、装置、及数据手套。

第一方面,本发明实施例提供一种拇指与手掌间自由度解算方法,该方法应用于一种数据手套;该方法包括:

从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数,其中,第一四元数和第二四元数分别为:当确定数据手套处于第一预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;第三四元数和第四四元数分别为:当确定数据手套处于第二预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第三四元数和第二惯性传感器采集的第四四元数;

获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数;

根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数;

根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数。

在一个可能的实施方式中,第一惯性传感器和第二惯性传感器均还用于采集三轴角速度数据;从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数,具体包括:

根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻;

并根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻;

获取在第一时刻,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;并获取在第二时刻,第一惯性传感器采集的第三四元数,以及第二惯性传感器采集的第四四元数。

在一个可能的实施方式中,根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数,具体包括:

根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数;

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

在一个可能的实施方式中,根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数,具体包括:

根据第一四元数和第二四元数,计算第一偏置四元数;

根据第六四元数和第一偏置四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数。

在一个可能的实施方式中,根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数,具体包括:

根据第三四元数和第四四元数,计算第二偏置四元数;

根据第五四元数和第二偏置四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

在一个可能的实施方式中,根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻,具体包括:

获取在数据手套处于第一预设初始化姿态下,第一惯性传感器在第t时刻采集的三轴角速度数据,以及第二惯性传感器在第t时刻采集的三轴角速度数据;

根据第一惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的拇指合角速度数据;以及根据第二惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的手掌合角速度数据;

当在t时刻的拇指合角速度数据和手掌合角速度数据均小于预设阈值时,确定第t时刻为第一时刻,其中,t为正整数,t依次递进取值,初始取值为1。

在一个可能的实施方式中,根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻,具体包括:

获取在数据手套处于第二预设初始化姿态,第一惯性传感器在第h时刻采集的三轴角速度数据,以及第二惯性传感器在第h时刻采集的三轴角速度数据;

根据第一惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的拇指合角速度数据,以及根据第二惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的手掌合角速度数据;

当在h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,确定第h时刻为第二时刻,其中,h为正整数,h依次递进取值,初始取值为1。

在一个可能的实施方式中,获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数之后,方法还包括:

分别对第一四元数、第二四元数、第三四元数、第四四元数、第五四元数以及第六四元数进行归一化处理。

在一个可能的实施方式中,根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数,具体包括:

根据第一参考四元数和第五四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度;

根据第五四元数、第二参考四元数以及屈伸自由度,计算在第k时刻,数据手套中拇指与手掌间的旋转自由度。

在一个可能的实施方式中,第一预设初始化姿态包括:合并位初始姿态;第二预设初始化姿态包括:旋转初始位姿态。

第二方面,本发明实施例提供一种拇指与手掌间自由度解算装置,该装置对应一种数据手套,该装置包括:

提取单元,用于从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数,其中,第一四元数和第二四元数分别为:当确定数据手套处于第一预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;第三四元数和第四四元数分别为:当确定数据手套处于第二预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第三四元数和第二惯性传感器采集的第四四元数;

获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数;

处理单元,用于根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数;

根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数。

第三方面,本发明实施例提供一种数据手套,该数据手套至少包括:手套本体、安装于手套拇指上的第一惯性传感器、安装于手掌中的第二惯性传感器、处理器和存储器;

第一惯性传感器用于实时采集与拇指对应的三轴角速度数据和四元数;

第二惯性传感器用于实时采集与手掌对应的三轴角速度数据和四元数;

处理器用于执行存储器中存储的拇指与手掌间自由度解算程序,以实现如第一方面任一实施方式所介绍的拇指与手掌间自由度解算方法。

第四方面,本发明实施例提供一种计算机存储介质,该计算机存储介质存储有一个或者多个程序,一个或者多个程序可被如第三方面所介绍的数据手套执行,以实现如第一方面任一实施方式所介绍的拇指与手掌间自由度解算方法。

本发明实施例提供的一种拇指与手掌间自由度解算方法,从第一惯性传感器和第二惯性传感器分别采集的四元数中分别提取第一四元数至第四四元数。其中第一四元数至第四四元数为预设初始化姿态下的四元数。获取任意时刻(文中为第k时刻)第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数。根据第一四元数至第六四元数,计算与第五四元数对应的第一参考四元数和第二参考四元数。最终根据第五四元数、第一参考四元数和第二参考四元数,计算任意时刻数据手套中拇指与手掌之间的屈伸自由度和旋转自由度。通过该种方式,利用拇指和手掌分别对应的惯性传感器采集不同初始化姿态下的四元数,结合任意时刻的拇指与手掌分别对应的惯性传感器采集的四元数,计算出任意时刻拇指对应的第一参考四元数和第二参考四元数。从而实现对数据手套的实时校准。进而解算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数。相较于传统技术而言,本申请提供的技术方案不需要复杂的算法做支持,也不需要提取复杂的特征,避免复杂的特征提取和识别花费大量时间和资源的情况发生,实时性更高,稳定性更强。而且,测算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数更有利于提高手势识别精度,便于识别复杂的手势动作。

附图说明

图1为本发明实施例提供的一种拇指与手掌间自由度解算方法流程示意图;

图2为本发明提供的计算旋转自由度的图形原理示意图;

图3为本发明实施例提供的一种拇指与手掌间自由度解算装置结构示意图;

图4为本发明实施例提供一种数据手套结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。

图1为本发明实施例提供的一种拇指与手掌间自由度解算方法流程示意图,如图1所示,该方法应用于一种数据手套。数据手套至少包括手套本体、安装于手套拇指上的第一惯性传感器、安装于手掌中的第二惯性传感器、处理器和存储器。在执行该方法之前,需要被试者佩戴数据手套,按照预设初始化姿态,调整手势,并且停留一定时间。例如,2秒钟。然后,执行本申请的如下方法。该方法步骤包括:

步骤110,从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数。

具体的,第一惯性传感器主要是采集拇指的四元数和三轴角速度数据。第二传感器则是用于采集手掌的四元数和三轴角速度数据。当然,惯性传感器还可以采集三轴加速度数据,将在下文进行说明。

其中,第一四元数和第二四元数分别为:当确定数据手套处于第一预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;第三四元数和第四四元数分别为:当确定数据手套处于第二预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第三四元数和第二惯性传感器采集的第四四元数。

可选地,在一个具体的例子中,第一预设姿态,可以包括合并位初始姿态。第二预设初始化姿态包括:旋转初始位姿态。

其中,右手佩戴的惯性数据手套,五指呈伸直合并状态,作为拇指的合并位初始姿态;四指合并伸直,拇指尽量远离食指,同时保持与手掌面平行,作为拇指的旋转初始位姿态。

可选地,在从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数,具体可以通过如下方式获取:

根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻;

并根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻;

获取在第一时刻,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;并获取在第二时刻,第一惯性传感器采集的第三四元数,以及第二惯性传感器采集的第四四元数。

进一步可选地,在确定第一时刻和第二时刻时,可以通过如下方式获取:

获取在数据手套处于第一预设初始化姿态下,第一惯性传感器在第t时刻采集的三轴角速度数据,以及第二惯性传感器在第t时刻采集的三轴角速度数据;

根据第一惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的拇指合角速度数据;以及根据第二惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的手掌合角速度数据;

当在t时刻的拇指合角速度数据和手掌合角速度数据均小于预设阈值时,确定第t时刻为第一时刻,其中,t为正整数,t依次递进取值,初始取值为1。

类似的,获取在数据手套处于第二预设初始化姿态,第一惯性传感器在第h时刻采集的三轴角速度数据,以及第二惯性传感器在第h时刻采集的三轴角速度数据;

根据第一惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的拇指合角速度数据,以及根据第二惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的手掌合角速度数据;

当在h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,确定第h时刻为第二时刻,其中,h为正整数,h依次递进取值,初始取值为1。

实际上,在计算t时刻的拇指合角速度数据,例如计算拇指合角速度数据时,可以采用公式1计算:

其中,gtx(t)、gty(t)、gtz(t)分别为t时刻拇指的x轴、y轴、z轴的角速度数据。

类似的道理,在计算t时刻的手掌合角速度数据时,可以通过公式2计算获得:

其中,sp_gyro(t)为手掌和角速度数据,gpx(t)、gpy(t)、gpz(t)分别为t时刻手掌的x轴、y轴、z轴的角速度数据。

若拇指合角速度st_gyro(t)与手掌合角速度p_gyro(t)均小于预设阈值时,则确定拇指和手掌均处于静止状态。在拇指和手掌均处于静止状态时,才能确定当前时刻为第一时刻。类似的道理,在确定第h时刻时采用类似公式1和公式2的公式计算,如果能够确定h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,则可以确定第h时刻为第二时刻。

步骤120,获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数。

在第k时刻,被试者可以控制数据手套的拇指与手掌呈任意角度。

步骤130,根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数。

具体的,可以根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数;

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数,具体包括:

根据第一四元数和第二四元数,计算第一偏置四元数;

根据第六四元数和第一偏置四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数。

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数,具体包括:

根据第三四元数和第四四元数,计算第二偏置四元数;

根据第五四元数和第二偏置四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

步骤140,根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度。

具体的,本方案的目的是解算拇指相对手掌的两个自由度的角度数据。那么,就需要在步骤110获得拇指合并位和旋转位初始位的四元数(第一至第四四元数),然后根据计算获得与手掌四元数的偏置四元数。后期,手套的任意位置的动作,解算的主要是拇指与手掌的相对角度,而手掌带动整个手的运动,不同时刻的手掌和拇指的四元数都不同,但是通过偏置四元数,可以得到相对手掌拇指合并位的参考四元数和旋转位的参考四元数。也即是第一参考四元数和第二参考四元数。

具体的计算过程包括:

以采集到合并位静止时的拇指指端第一惯性传感器采集的第一四元数为q11=[q0,q1,q2,q3],手掌对应的第二惯性传感器采集的第二四元数为q0=[q00,q01,q02,q03];采集到旋转位静止时的拇指指端第一惯性传感器采集的第三四元数为q12=[q10,q11,q12,q13],手掌对应的第二惯性传感器采集的第四四元数为q0’=[q00’,q01’,q02’,q03’]为例进行说明。

采集到q11、q0、q12以及q0’后,可以进行一个归一化处理。

其中,以对q11进行归一化处理为例进行说明,具体如下:

q0(t)_n=q0(t)/norm(t)(公式4)

q1(t)_n=q1(t)/norm(t)(公式5)

q2(t)_n=q2(t)/norm(t)(公式6)

q3(t)_n=q3(t)/norm(t)(公式7)

其中norm(t)为t时刻四元数的模,q0(t)_n、q1(t)_n、q2(t)_n、q3(t)_n分别为归一化后得到的t时刻的姿态四元数,则归一化后合并位的拇指四元数为nq11=[q0_n,q1_n,q2_n,q3_n];同理得到其他三个归一化后的四元数分别为

nq12=[q10_n,q11_n,q12_n,q13_n]

nq0=[q00_n,q01_n,q02_n,q03_n]

nq0’=[q00’_n,q01’_n,q02’_n,q03’_n]

类似的道理,对于任意k时刻的拇指端的四元数q_finger和手掌端的四元数q_plam,分别规范化(归一化)得到nq_finger和nq_plam,便于下文后续使用。

根据第一四元数和第二四元数,计算第一偏置四元数,也即是计算拇指合并位四元数nq11=[q0_n,q1_n,q2_n,q3_n]与手掌四元数nq0=[q00_n,q01_n,q02_n,q03_n]的偏置四元数具体参见如下公式:

q1=(nq0)-1(nq11)(公式8)

其中(nq0)-1为nq0的逆。

根据第三四元数和第四四元数,计算第二偏置四元数,也即是计算拇指旋转位四元数nq12与手掌四元数nq0’的偏置四元数,具体参见如下公式:

q2=(nq0’)-1(nq12)(公式9)

在计算完成第一偏置四元数和第二偏置四元数后,则需要计算第一参考四元数和第二参考四元数了。也就是计算k时刻,拇指处于合并位初始姿态下的第一参考四元数,以及拇指处于旋转初始位姿态下的第二参考四元数。

具体过程包括:

nq11=(nq_plam)×q1(公式10)

其中,nq11为第一参考四元数,nq_plam为第六四元数,q1为第一偏置四元数。

nq22=(nq_plam)×q2(公式11)

其中,nq22为第二参考四元数,nq_plam为第六四元数,q2为第二偏置四元数。

最终,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度时,主要是根据第一参考四元数和第五四元数计算得到。

具体的,利用四元数的点积可以计算四元数之间的角度差,所以拇指与手掌的屈伸角度可以通过四元数nq11和nq_finger之间的夹角可得:

stretchangle=cos-1(θ)×2(公式13)

其中,stretchangle为数据手套中拇指与手掌间的屈伸自由度。

计算数据手套中拇指与手掌间的旋转自由度时,还需要利用勾股定理。即利用勾股定理,根据第五四元数、第二参考四元数以及屈伸自由度,计算在第k时刻,数据手套中拇指与手掌间的旋转自由度。

angle=cos-1(α)×2(公式15)

具体参见图2所示。angle可以看做是δaoa^'中∠aoa^',平面aob看做与手掌面垂直的手腕面,我们想要得到拇指与手掌的旋转角度,可看作是求∠aob。

根据三角形的余弦定理,可计算得到

由于a’b垂直于平面aob,则计算可得:

a’b2=oa2×cos2(stretchangle)(公式17)

ab2=aa’2-a’b2(公式18)

ob2=oa2×sin2(stretchangle)(公式19)

则根据余弦定理可求得:

∠aob=180-∠bao-∠abo(公式22)

extenangle=∠aob(公式23)

最终,根据公式13至公式23求取出extenangle,也即获得了在第k时刻,数据手套中拇指与手掌间的旋转自由度。其中,k为大于1的正整数。之所以让k为大于1的正整数,是因为考虑到当初初始化状态,起码给出数据手套采集初始状态的数据,然后进行后续计算。通常而言,k的数值应该是大于t和h的数值。

最后,通过数据手套的解算,可将k时刻的拇指与手掌的屈伸和旋转两个自由度的角度值通过通信技术(例如5g)传输,控制仿生机械手拇指的两个自由度的角度执行具体的应用。

本发明实施例提供的拇指与手掌间自由度解算方法,从第一惯性传感器和第二惯性传感器分别采集的四元数中分别提取第一四元数至第四四元数。其中第一四元数至第四四元数为预设初始化姿态下的四元数。获取任意时刻(文中为第k时刻)第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数。根据第一四元数至第六四元数,计算与第五四元数对应的第一参考四元数和第二参考四元数。最终根据第五四元数、第一参考四元数和第二参考四元数,计算任意时刻数据手套中拇指与手掌之间的屈伸自由度和旋转自由度。通过该种方式,利用拇指和手掌分别对应的惯性传感器采集不同初始化姿态下的四元数,结合任意时刻的拇指与手掌分别对应的惯性传感器采集的四元数,计算出任意时刻拇指对应的第一参考四元数和第二参考四元数。从而实现对数据手套的实时校准。进而解算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数。相较于传统技术而言,本申请提供的技术方案不需要复杂的算法做支持,也不需要提取复杂的特征,避免复杂的特征提取和识别花费大量时间和资源的情况发生,实时性更高,稳定性更强。而且,测算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数更有利于提高手势识别精度,便于识别复杂的手势动作。

图3为本发明实施例提供的一种拇指与手掌间自由度解算装置,该装置包括:提取单元301和处理单元302。

提取单元301,用于从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数,其中,第一四元数和第二四元数分别为:当确定数据手套处于第一预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;第三四元数和第四四元数分别为:当确定数据手套处于第二预设初始化姿态下,并处于静止状态时,第一惯性传感器采集的第三四元数和第二惯性传感器采集的第四四元数;

获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数;

处理单元302,用于根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数;

根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数。

可选地,第一惯性传感器和第二惯性传感器均还用于采集三轴角速度数据;

处理单元302具体用于,根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻;

并根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻。

提取单元301具体用于,获取在第一时刻,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;并获取在第二时刻,第一惯性传感器采集的第三四元数,以及第二惯性传感器采集的第四四元数。

可选地,处理单元302具体用于,根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数;

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,处理单元302具体用于,根据第一四元数和第二四元数,计算第一偏置四元数;

根据第六四元数和第一偏置四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数。

可选地,处理单元302具体用于,根据第三四元数和第四四元数,计算第二偏置四元数;

根据第五四元数和第二偏置四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,提取单元301具体用于,获取在数据手套处于第一预设初始化姿态下,第一惯性传感器在第t时刻采集的三轴角速度数据,以及第二惯性传感器在第t时刻采集的三轴角速度数据;

处理单元302,具体用于,根据第一惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的拇指合角速度数据;以及根据第二惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的手掌合角速度数据;

当在t时刻的拇指合角速度数据和手掌合角速度数据均小于预设阈值时,确定第t时刻为第一时刻,其中,t为正整数,t依次递进取值,初始取值为1。

可选地,提取单元301具体用于,获取在数据手套处于第二预设初始化姿态,第一惯性传感器在第h时刻采集的三轴角速度数据,以及第二惯性传感器在第h时刻采集的三轴角速度数据;

处理单元302具体用于,根据第一惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的拇指合角速度数据,以及根据第二惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的手掌合角速度数据;

当在h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,确定第h时刻为第二时刻,其中,h为正整数,h依次递进取值,初始取值为1。

可选地,处理单元302还用于,分别对第一四元数、第二四元数、第三四元数、第四四元数、第五四元数以及第六四元数进行归一化处理。

可选地,处理单元302具体用于,根据第一参考四元数和第五四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度;

根据第五四元数、第二参考四元数以及屈伸自由度,计算在第k时刻,数据手套中拇指与手掌间的旋转自由度。

可选地,第一预设初始化姿态包括:合并位初始姿态;第二预设初始化姿态包括:旋转初始位姿态。

本实施例提供的拇指与手掌间自由度解算装置中各功能部件所执行的功能均已在图1对应的实施例中做了详细介绍,因此这里不再赘述。

本发明实施例提供的一种拇指与手掌间自由度解算装置,从第一惯性传感器和第二惯性传感器分别采集的四元数中分别提取第一四元数至第四四元数。其中第一四元数至第四四元数为预设初始化姿态下的四元数。获取任意时刻(文中为第k时刻)第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数。根据第一四元数至第六四元数,计算与第五四元数对应的第一参考四元数和第二参考四元数。最终根据第五四元数、第一参考四元数和第二参考四元数,计算任意时刻数据手套中拇指与手掌之间的屈伸自由度和旋转自由度。通过该种方式,利用拇指和手掌分别对应的惯性传感器采集不同初始化姿态下的四元数,结合任意时刻的拇指与手掌分别对应的惯性传感器采集的四元数,计算出任意时刻拇指对应的第一参考四元数和第二参考四元数。从而实现对数据手套的实时校准。进而解算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数。相较于传统技术而言,本申请提供的技术方案不需要复杂的算法做支持,也不需要提取复杂的特征,避免复杂的特征提取和识别花费大量时间和资源的情况发生,实时性更高,稳定性更强。而且,测算出数据手套中拇指与手掌间的屈伸自由度和旋转自由度两个参数更有利于提高手势识别精度,便于识别复杂的手势动作。

图4为本发明实施例提供的一种数据手套的结构示意图,图4所示的数据手套400至少包括:手套本体(图中未显示)、安装于手套拇指上的第一惯性传感器401、安装于手掌中的第二惯性传感器402、至少一个处理器403、存储器404、至少一个网络接口405和其他用户接口406。拇指与手掌间自由度解算数据手套400中的各个组件通过总线系统407耦合在一起。可理解,总线系统407用于实现这些组件之间的连接通信。总线系统407除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统407。

其中,用户接口406可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。

可以理解,本发明实施例中的存储器404可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的存储器404旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器404存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4041和应用程序4042。

其中,操作系统4041,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4042,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4042中。

在本发明实施例中,通过调用存储器404存储的程序或指令,具体的,可以是应用程序4042中存储的程序或指令,处理器403用于执行各方法实施例所提供的方法步骤,例如包括:

从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数;

获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数;

根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数;

根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数。

可选地,根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻;

并根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻;

获取在第一时刻,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;并获取在第二时刻,第一惯性传感器采集的第三四元数,以及第二惯性传感器采集的第四四元数。

可选地,根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数;

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,根据第一四元数和第二四元数,计算第一偏置四元数;

根据第六四元数和第一偏置四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数。

可选地,根据第三四元数和第四四元数,计算第二偏置四元数;

根据第五四元数和第二偏置四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,获取在数据手套处于第一预设初始化姿态下,第一惯性传感器在第t时刻采集的三轴角速度数据,以及第二惯性传感器在第t时刻采集的三轴角速度数据;

根据第一惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的拇指合角速度数据;以及根据第二惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的手掌合角速度数据;

当在t时刻的拇指合角速度数据和手掌合角速度数据均小于预设阈值时,确定第t时刻为第一时刻,其中,t为正整数,t依次递进取值,初始取值为1。

可选地,获取在数据手套处于第二预设初始化姿态,第一惯性传感器在第h时刻采集的三轴角速度数据,以及第二惯性传感器在第h时刻采集的三轴角速度数据;

根据第一惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的拇指合角速度数据,以及根据第二惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的手掌合角速度数据;

当在h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,确定第h时刻为第二时刻,其中,h为正整数,h依次递进取值,初始取值为1。

可选地,分别对第一四元数、第二四元数、第三四元数、第四四元数、第五四元数以及第六四元数进行归一化处理。

可选地,根据第一参考四元数和第五四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度;

根据第五四元数、第二参考四元数以及屈伸自由度,计算在第k时刻,数据手套中拇指与手掌间的旋转自由度。

可选地,第一预设初始化姿态包括:合并位初始姿态;第二预设初始化姿态包括:旋转初始位姿态。

上述本发明实施例揭示的方法可以应用于处理器403中,或者由处理器403实现。处理器403可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器403可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器404,处理器403读取存储器404中的信息,结合其硬件完成上述方法的步骤。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

还需要说明的是,上文中详细介绍了处理器403和存储器404所执行的功能,间接介绍了第一惯性传感器401和第二惯性传感器402的功能。

这里再明确说明一下:

第一惯性传感器401用于实时采集与拇指对应的三轴角速度数据和四元数;

第二惯性传感器402用于实时采集与手掌对应的三轴角速度数据和四元数。

本实施例提供的数据手套可以是如图4中所示的数据手套,可执行如图1中拇指与手掌间自由度解算方法的所有步骤,进而实现图1所示拇指与手掌间自由度解算方法的技术效果,具体请参照图1相关描述,为简洁描述,在此不作赘述。

本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。

当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在数据手套侧执行的拇指与手掌间自由度解算方法。

处理器用于执行存储器中存储的拇指与手掌间自由度解算程序,以实现以下在数据手套侧执行的拇指与手掌间自由度解算方法的步骤:

从第一惯性传感器和第二惯性传感器分别采集的四元数中,提取第一四元数、第二四元数、第三四元数以及第四四元数;

获取第k时刻第一惯性传感器采集的第五四元数和第二惯性传感器采集的第六四元数;

根据第一四元数至第六四元数,计算与第五四元数分别对应的第一参考四元数和第二参考四元数;

根据第五四元数、第一参考四元数、第二参考四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度和旋转自由度,其中,k为大于1的正整数。

可选地,根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第一预设初始化姿态下,且处于静止状态的第一时刻;

并根据第一惯性传感器和第二惯性传感器分别采集的三轴角速度数据,确定数据手套处于第二预设初始化姿态下,且处于静止状态的第二时刻;

获取在第一时刻,第一惯性传感器采集的第一四元数,以及第二惯性传感器采集的第二四元数;并获取在第二时刻,第一惯性传感器采集的第三四元数,以及第二惯性传感器采集的第四四元数。

可选地,根据第六四元数、第一四元数以及第二四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数;

根据第五四元数、第三四元数以及第四四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,根据第一四元数和第二四元数,计算第一偏置四元数;

根据第六四元数和第一偏置四元数,计算在第一预设初始化姿态下,第五四元数对应的第一参考四元数。

可选地,根据第三四元数和第四四元数,计算第二偏置四元数;

根据第五四元数和第二偏置四元数,计算在第二预设初始化姿态下,第五四元数对应的第二参考四元数。

可选地,获取在数据手套处于第一预设初始化姿态下,第一惯性传感器在第t时刻采集的三轴角速度数据,以及第二惯性传感器在第t时刻采集的三轴角速度数据;

根据第一惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的拇指合角速度数据;以及根据第二惯性传感器在第t时刻采集的三轴角速度数据,计算在t时刻的手掌合角速度数据;

当在t时刻的拇指合角速度数据和手掌合角速度数据均小于预设阈值时,确定第t时刻为第一时刻,其中,t为正整数,t依次递进取值,初始取值为1。

可选地,获取在数据手套处于第二预设初始化姿态,第一惯性传感器在第h时刻采集的三轴角速度数据,以及第二惯性传感器在第h时刻采集的三轴角速度数据;

根据第一惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的拇指合角速度数据,以及根据第二惯性传感器在第h时刻采集的三轴角速度数据,计算在h时刻的手掌合角速度数据;

当在h时刻的拇指合角速度数据以及手掌合角速度数据均小于预设阈值时,确定第h时刻为第二时刻,其中,h为正整数,h依次递进取值,初始取值为1。

可选地,分别对第一四元数、第二四元数、第三四元数、第四四元数、第五四元数以及第六四元数进行归一化处理。

可选地,根据第一参考四元数和第五四元数,计算在第k时刻,数据手套中拇指与手掌间的屈伸自由度;

根据第五四元数、第二参考四元数以及屈伸自由度,计算在第k时刻,数据手套中拇指与手掌间的旋转自由度。

可选地,第一预设初始化姿态包括:合并位初始姿态;第二预设初始化姿态包括:旋转初始位姿态。

还需要说明的是,上文中详细介绍了处理器403和存储器404所执行的功能,间接介绍了第一惯性传感器401和第二惯性传感器402的功能。

这里再明确说明一下:

第一惯性传感器401用于实时采集与拇指对应的三轴角速度数据和四元数;

第二惯性传感器402用于实时采集与手掌对应的三轴角速度数据和四元数。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1