一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于传感器信息融合的虚拟键盘及键盘输入方法

2022-09-02 22:53:04 来源:中国专利 TAG:


1.本发明属于虚拟键盘技术领域,涉及一种基于传感器信息融合的虚拟键盘及键盘输入方法。


背景技术:

2.作为传统的计算机输入方法,键盘在日常生活中被广泛应用。传统键盘体积大、不便于携带、对使用环境有一定的要求,限制了键盘使用范围。目前市场上的实体键盘主要分为三类,机械键盘,薄膜键盘和静电容键盘,薄膜键盘主要是由上方的正极电路,最下方的负极电路和中间的绝缘材料组成,按压时,上方与下方薄膜接触,电路导通。机械键盘采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。而静电容键盘与薄膜键盘相类似,利用电容容量的变化来判断按键的开和关,在按下按键后,导电胶内的空气电容容量发生改变,从而实现触发,整个过程无物理接触点就可以实现敲击动作。对于传统键盘而言,虽然其优点各不相同,但都存在体积大、不便于携带,对使用环境有一定的要求的缺点,限制了键盘使用范围。特别是机械键盘,虽然手感较佳,但是使用时噪声也相对最大,容易给他人造成不便,静电容键盘虽然声音较小,具有静音特性,但由于其工艺特点,静电容键盘的价格往往较高,性价比较低。


技术实现要素:

3.为了解决现有技术存在的不足,本发明的目的是提供一种基于传感器信息融合的虚拟键盘。本发明设计的虚拟键盘,可以模拟用户的打字过程,实现键盘输入功能。本发明适用于不便于使用传统键盘的场合,如实现对手机等移动设备的快速输入。
4.本发明所提出的虚拟键盘,以标准的打字手势为模范,通过将廉价的六轴姿态传感器安装在手上的特定位置来收集手指的运动数据,完成对手指位置和动作的捕捉识别,并辅以安装在食指外侧和手腕外侧的曲率传感器,通过检测弯曲程度来分别感知食指和手腕水平方向位置变化,以提高手指的定位精度,采用小样本学习的方法获取字母与手指姿态之间的关系。使用前,由用户使用常规键盘完成一段文字的输入,由计算机收集位于指尖的六轴姿态传感器、曲率传感器以及所敲击的字母数据,通过算法建立传感器信息与字母之间的内联关系。使用时,用户可以按照自己的输入习惯运动手指,由计算机分析指尖陀螺仪姿态以及曲率传感器信息,进而推断盲打字母以替代传统键盘输入。
5.本发明提出一种虚拟键盘系统,所述虚拟键盘系统由pc上位机、数据采集板卡、六轴姿态传感器以及曲率传感器组成。
6.所述pc上位机安装有pc端软件,用于接收数据采集板卡回传的数据信息,并对所述数据信息进行处理;
7.所述数据采集板卡采集左或者右手手指上的六轴姿态传感器数据以及食指和手腕的曲率传感器数据,并且将数据交织后传送给pc上位机;
8.所述六轴姿态传感器安装于双手手指尖端,共10个,用于测量手指弯曲角度及运
动速度;
9.所述曲率传感器有2个,第一曲率传感器安装于食指靠近虎口侧面,用于测量食指敲击对应两列按键时的偏移量;第二曲率传感器安装于小指侧手腕外侧,用于测量手腕摆动偏移程度。
10.所述六轴姿态传感器集成了陀螺仪,加速度计和微处理器,能够快速求解各手指对应传感器的实时运动姿态,输出手指x、y、z三个方向的姿态角度及加速度数据;以沿食指指尖向前的方向定义为y轴方向,与手掌平行且垂直于y轴的方向定义为x轴方向,与xy平面垂直向上的方向为z轴方向。
11.所述第一曲率传感器是覆盖有可变电阻薄膜的传感器,当食指在敲击指法对应的不同列按键时,食指会沿着食指根部关节进行旋转,食指与虎口处的角度会发生变化,引起第一曲率传感器发生弯曲,不同弯曲角度会改变第一曲率传感器电阻值,所述电阻值的变化用于量化食指在水平方向上的偏移量,即食指在x方向上的水平旋转角度。
12.所述第二曲率传感器是覆盖有可变电阻薄膜的传感器,当手腕外侧进行摆动时,手掌与手臂的角度会发生变化,引起第二曲率传感器发生弯曲,不同弯曲角度会改变第二曲率传感器的电阻值,检测手腕的摆动偏移程度。
13.第一曲率传感器获得的食指x方向的水平旋转角度信号和陀螺仪获得的手指y轴前后位置信号,两种传感器信号联合组成特征向量组确定判断食指按键键值。
14.上述虚拟键盘系统进行输入时,所述输入方法包括:
15.步骤一、输入时,六轴姿态传感器中的陀螺仪传感器采集手指的弯曲角度和运动速度并发送给数据采集板卡并进行处理;
16.步骤二、所述曲率传感器利用数据采集板卡自带的模拟数字转换器adc接口来测量其自身因弯曲产生的电阻变化,并将所述电阻变化后通过adc接口传输给数据采集板卡,经过滤波算法后,实现对弯曲程度的读取;
17.步骤三、数据采集板卡取出结构体中保存的数据,读取滤波后的adc电压数据,将两种数据结合并加上传感器标识(sensor0,sensor1

sensor9)后,通过串行外设接口spi发送给pc上位机;
18.步骤四、pc上位机接受数据后,根据数据中的传感器标识进行分类归纳,完成对每个手指运动姿态及定位的识别,判断用户敲击的键值,并与预先准备的字典库比较,对字符进行输出。
19.在上述虚拟键盘正式使用前需进行指法学习,学习时采用常规计算机键盘输入一段文字,所述文字包含26个字母,每个字母敲击时六轴姿态传感器所测量的不同手指的角度数据和曲率传感器测量的弯曲度数据,并将所述角度数据和弯曲度数据作为后续识别的标准和阈值,进行判定。计算机记录敲击前后两个字母的时间间隔内的六轴姿态传感器测量的每个手指角度以及曲率传感器曲率。
20.为抑制陀螺仪的漂移,训练与识别过程中采用状态机表示键盘信息,将左手或右手5个手指指尖六轴姿态传感器信息以及第一曲率传感器信息为一组,以当前敲击键bi为状态si,下一次b
i 1
敲击为状态s
i 1
。训练时,记录键值bi、b
i 1
以及状态的变化s
δ
=s
i-s
i 1
,生成实际输入字符和键值、状态变化相关的字典库,字典库可以如表1所示。应用时,根据当前按键值bi查找所有可能后继键对应的s
δ
值最小值,即为随后输入的按键值。
21.表1字符、键值、状态变化字典库
22.起始敲击键值从起始到结束的两个键值之间的状态差结束敲击键值a连续两次敲击a的敲击间隔的状态差s
δ
aa从敲击a到敲击b两次敲击间隔的状态差s
δ
ba从敲击a到敲击c两次敲击间隔的状态差s
δ
ca从敲击a到敲击d两次敲击间隔的状态差s
δd………
z从敲击z到敲击y两次敲击间隔的状态差s
δ
yz连续两次敲击z的敲击间隔的状态差s
δz23.所述六轴姿态传感器还能通过测定的加速度数据判定按键敲击,设定当手指的加速度大于阈值t(一般设置为0.6g,1g为重力加速度)时,开始检测手指的运动方向,识别传感器的加速度数据,在该手指的加速度迅速减小至0值的附近后,又产生一个反向的迅速增大的加速度,则判定该手指在加速度减少到0值时,进行了一次敲击,加速度波形例如图4所示,同时记录下这个敲击瞬间五个手指的空间倾斜角度以及食指的曲率。
24.步骤一中,所述数据采集板卡根据食指-中指-无名指-小拇指-大拇指从高到低的优先级顺序依次接收五个六轴姿态传感器发送过来的数据,若接收数据寄存器非空,则进入中断函数,六轴姿态传感器的每一条数据是包含相同的头尾的固定格式的数据帧,中断函数首先会寻找数据帧开头,再对所述数据帧中的加速度数据和角度数据进行读取,分别存入加速度数据和角度数据结构体中。所述数据结构体中每一个都有三个变量,分别保存x、y、z三个轴的数据。
25.步骤二中,所述滤波利用了滑动平均的方法,取n个采样值求平均,储存区中设置n个暂存区;每新采集一个数据,就将数据存入暂存区中的第n个位置,同时使其他数据前移一个位置,使得n个数据始终是最新更新的数据,减小原序列的上下波动。
26.数据采集板卡的主函数为一个循环函数,会循环检测六轴姿态传感器是否有数据发送给数据采集板卡,如果检测有接收到数据,则进行步骤三的操作。
27.所述的字符输出操作过程中还包括纠错处理,所述纠错处理利用纠错算法对用户敲击的每个单词进行纠错,收集用户敲击这个单词所产生的传感器数据,从时间间隔和敲击强度这两个维度,对出错误概率进行量化,首先会将单词在字典库中进行查找,如果存在则表示未发生错误,如果单词不存在,判定为敲击错误,此时会将单词各字母的敲击强度数据排序,同时对个字母敲击间隔时间进行排序,然后判断单词中的可能存在的错误点,例如某字母敲击强度过低,时间间隔果断,则可能存在重复敲击,对这些错误点分别采取替换、删除、增加字符的方式进行纠错,并将纠错产生的单词,在字典库中进行查找,最后按照各单词在字典库中的出现频率进行排序,将出现次数最多的单词输出。
28.本发明的有益效果包括:本虚拟键盘使用前会先进行指法学习,保证使用过程中符合用户习惯,没有额外的学习成本,使用虚拟键盘时左、右手可以分开放置,且无需支架支撑键盘的放置,降低使用键盘是用对空间的要求。左右手分离的结构更有利于用户调整手臂摆放姿势,降低疲劳程度。虚拟键盘可以做成手套等形式,便于折叠携带。虚拟键盘无机械敲击过程,不产生噪声,使用更加安静。
附图说明
29.图1是本发明虚拟键盘传感器安装正视图。
30.图2是本发明使用的标准打字手势图。
31.图3是本发明虚拟键盘食指侧第一曲率传感器安装侧视图。
32.图4是本发明六轴姿态传感器敲击加速度波形图。
33.图5是本发明训练阶段字典库产生流程图。
34.图6是本发明虚拟键盘系统结构图。
35.图7是本发明虚拟键盘手腕侧第二曲率传感器安装位置图。
具体实施方式
36.结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
37.图1是本虚拟键盘的传感器在手上的安装位置示意图。图中沿食指指尖向前为y轴方向,与手掌平行且垂直y轴为x轴方向,与xy平面垂直向上的方向为z轴方向。图中传感器1到传感器5是六轴姿态传感器,该传感器集成了高精度的陀螺仪,加速度计和微处理器,可以快速求解出各手指当前的实时运动姿态,并输出x、y和z三个方向的姿态角度以及加速度数据。
38.当手指敲击按键时,手指会有一个绕着手指中间关节上下摆动的动作,而手指顶端到手指中间关节处的半径最大,所以摆动的路程最远,运动的幅度最明显,故将六轴姿态传感器安置在手指顶端位置。如果将传感器放在手指顶端的侧面,会阻挡相邻手指的运动,对敲击造成干扰,所以将传感器安装在手指顶端的指甲位置,当手指进行敲击输入时,会有一个从落下到抬起的敲击动作,通过六轴姿态传感器,可以将敲击这一动作量化为传感器的加速度数据。
39.本虚拟键盘主要用于敲击26个字母按键,图2为标准的键盘打字手势。从图中可以看出,敲击时每个手指都有其对应的各个按键区域,每个手指所敲击的字母都可以分为上中下三行,而且只有左手和右手的食指需要同时兼顾到两列字母的敲击。为了确定食指敲击的准确位置,需要增加一个对食指的左右偏移量的检测。
40.当手指敲击自己所属的那一列区域的三行时,手指是以手指中间关节处为圆心进行旋转从而引起手指的弯曲。且离手指中间关节处越远的点,运动的幅度越大,所以需要把六轴姿态传感器按图1安装在每个手指顶端指甲位置,这样使得每一次敲击的加速度和角度变化量都是最大。
41.当进行敲击时,可以将上中下三行的按键变化量化为传感器沿x轴旋转所产生的角度的变化(如图3)。每一行按键都有其对应的角度变化范围,根据实际敲击的角度变化,就可以判断敲击的按键所处的行,同时每个手指上的传感器都有自己的标识,这样就可以通过读取传感器的标识,来判断出传感器处在哪一个手指上,然后跟据图2中每个手指负责的区域,判断敲击按键的列区间。如此,除了食指外的所有手指,都判断敲击时行列的准确位置,进而确定手指敲击的按键所对应的字母。
42.同时手指敲击每一行时,位于手指顶端的传感器的加速度变化对应的方向也不
同,当敲击最上面一行按键时,手指保持伸直状态,此时传感器为水平姿势,敲击的动作主要引起z轴加速度的变化。当敲击最下面一行时,传感器沿y轴竖直向下,敲击动作主要引起y轴的加速度变化。敲击中间一行时,传感器保持倾斜姿态,敲击会使得z和y轴的加速度都发生变化,此时判断敲击,需要考虑这两个方向的加速度变化。综合这三种情况,可以直接对z轴和y轴加速度进行平方和开根运算,从而将两维变化转换为一维变化。减少处理的数据量,快速实时处理数据。图4为合并后的敲击加速度波形图,在箭头指向的波形处,产生幅度巨大的波谷和波峰,加速度先向下减小,到拐点时,转变方向,反向增大。根据这个特点,可以为敲击的判定提供依据。
43.图1中的传感器6为弯曲度传感器。它是由一种可变电阻组成的薄膜覆盖在传感器的表面,不同的弯曲角度会改变传感器的电阻值,从而可以对弯曲做出反应。根据传感器的阻值变化即可判断弯曲程度。根据图2中的打字手势,每只手的食指都有两列的按键区域,所以增加弯曲度传感器来测量食指敲击两列按键时的偏移量。从而提升食指敲击按键的准确性。食指在这两列移动时,会沿着手指根部关节进行旋转,形成并拢和张开两种状态。有两处角度发生变化,一处是食指内侧,和中指形成的夹角的变化,一处是食指外侧,食指与虎口处的角度变化,食指与中指之间的夹角过小,如果将弯曲度传感器放置在这里,会使弯曲度传感器发生对折,对传感器造成破坏,所以将弯曲度传感器放在食指外侧如图3,紧贴食指,当并拢状态,弯曲度传感器保持竖直,当张开状态,传感器向外侧弯曲,从而引起电阻变化,这样就可以食指敲击两列字母时所产生的偏移程度量化为弯曲度传感器的数值的变化,并根据偏移的程度来判断食指处于具体哪一列。除了标准打字手势的每个手指控制其对应列的打字方法外,也有一部分人是只使用食指来进行敲击打字,通过旋转手腕来偏移食指完成对不同列字母的敲击,图1的传感器7为弯曲度传感器,且位于手腕外侧如图7,可以将手腕的摆动偏移程度转换为传感器的数值,再用于判断食指处于哪一列,之后再跟据陀螺仪的数据,确定敲击的位置。
44.本虚拟键盘使用前需要进行指法学习,学习时使用者带上本设备,采用常规计算机键盘输入一段文字,文字包含全部26个英文字母,这个过程中,本虚拟键盘以此次敲击为标准,记录每个字母敲击时六轴姿态传感器所测量的不同手指的角度数据和曲率传感器测量的弯曲度数据,并将这些数据作为之后识别的标准和阈值,进行判定。同时六轴姿态传感器的加速度数据用来感知手指的敲击,手指敲击过程会有一个迅速下落,停顿再抬起的动作,由此可以设置当手指的加速度大于阈值t(t可以设置为0.6g,1g为重力加速度)时,开始检测手指的运动方向,识别传感器的加速度数据,在该手指的加速度迅速减小至0值的附近后,又产生一个反向的迅速增大的加速度,则判定该手指在加速度减少到0值时,进行了一次敲击,同时记录下这个敲击瞬间五个手指的空间倾斜角度以及食指的曲率。
45.为了抑制陀螺仪存在的漂移带来的影响,在学习以及后续使用识别的过程中,将采用状态机来表示按键信息,将敲击时所保存的左手(或右手)的五个手指顶端的六轴姿态传感器数据以及食指外侧第一曲率传感器的数据合并为一组数据,记为一个状态,在训练时,如图5将当前敲击的状态的保存记为si,下一次敲击时,再将敲击的状态保存记为s
i 1
,同时将两次敲击的字母以及两次敲击的状态变化s
δ
=s
i-s
i 1
对应起来,在所有的字母组合都完成训练后,将对应的状态变化s
δ
以及引起这个状态变化的两个连续敲击的按键值保存起来作为字典库(如表1)。使用时,以上一个按键敲击瞬间各传感器数据为一个状态,以及
本次敲击的状态,求出此次敲击产生的状态变化量,同时读取上一次敲击的所输出的按键值,在字典中遍历此按键值所有可能后继按键的组合,并找出其中状态变化量最接近此次的状态变化,则它所对应的按键值,即为当前输入的按键值。
46.图6是本虚拟键盘一只手的系统结构图,由传感器实时感知手指姿态和运动数据,并发送给数据采集板卡mcu,其中六轴姿态传感器通过串口将数据发送给数据采集板卡,数据采集板卡拥有五个串口,分别对应每个手指顶端的六轴姿态传感器。依据食指-中指-无名指-小拇指-大拇指从高到底的优先级顺序依次接收五个六轴姿态传感器发送过来的数据,六轴姿态传感器的每一条数据是包含相同的头尾的固定格式的数据帧,在数据采集板卡接收数据寄存器非空,进入中断函数之后,首先会寻找数据帧的开头,然后读取数据帧中包含的加速度数据和角度数据,再将它们分别存入相应的加速度数据和角度数据结构体中。每个结构体都有三个变量,分别保存x,y和z三个轴的数据。
47.而曲率传感器是通过数据采集板卡的adc接口来传输数据,用adc感知曲率传感器自身因弯曲产生的电阻变化,从而实现对弯曲程度的读取。直接采样的弯曲度传感器数据包含很多噪声,不利于数据的处理。为了去掉这些噪声的影响,需要进行滤波。本虚拟键盘采用了滑动平均的滤波方法,此方法取n个采样值求平均,储存区中开辟n个数据的暂存区。每新采集一个数据便存入暂存区中第n个位置,同时将其他数据前移一个位置,使得这n个数据始终是最新更新的数据。从而使得原序列的上下波动变小。
48.数据采集板卡的主函数由一个循环函数组成,一旦检测到姿态传感器有数据发送给数据采集板卡,则将结构体中保存的数据取出,同时读取一次滤波后的adc电压数据,将两种数据结合,并加上传感器标识(sensor0,sensor1

sensor9)后,通过spi发送给pc端上位机。
49.上位机接收到数据之后,会根据数据中的传感器标识进行分类归纳,从而完成对每个手指的运动姿态以及定位的识别,判断出用户所敲击的按键值,同时为了提高本虚拟键盘输出的精确度,还要对第一次判断的按键值进行纠错,纠错算法会对用户敲击的每个单词进行纠错,收集用户敲击这个单词所产生的传感器数据,从时间间隔和敲击强度这两个维度,对出错误概率进行量化,然后对单词中的可能存在的错误点,采取替换,删除,增加字符等方式进行纠错。并将纠错产生的单词,在字典库中进行查找,最后按照各单词在字典库中的出现频率进行排序,将出现次数最多的单词输出。
50.设输入的单词为x,首先会将单词x放在词库中搜索,查找词库是否有相同的单词,如果有,则判断此次输入正确,直接将单词x输出。如果未在词库中找到单词x,则进入纠错,首先会将单词x敲击时的敲击强度数据和敲击时间数据取出,然后分别按照敲击强度和两个字母敲击时间间隔来排序单词x的每个字母,找出敲击强度最低的字母,并将这个字母删掉后的组成的新单词重新放到词库中查找;找出时间间隔最长的位置,将26个字母轮流放进去重新组合,并将生成的新单词放入词库中查找;在时间间隔最短的位置进行删减字母,组合成新单词放入词库中查找;再将每个字母敲击时所用手指找出,用这个手指可能敲击的其他字母对该字母进行替换,把组合成新单词放入词库中查找;将所有能在词库中找到的单词都放入单词缓存区,最后根据单词缓存区中每个单词在词库中出现的频率进行排序,输出频率最高的单词s作为纠错后的单词。
51.本发明的保护内容不局限于以上实施例。在不背离本发明构思的精神和范围下,
本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献