激光平面定位系统及其实现方法
技术领域
本发明涉及一种互动游戏的平面定位系统,尤其涉及一种用于互动游戏的激光平面定位系统;此外,本发明还涉及该激光平面定位系统的实现方法。
背景技术
随着体感游戏、空中鼠标相关概念的出现,产生了许多基于此类概念而应用的新技术,比如,基于微机电系统技术的陀螺仪通过积分等算法获得平面鼠标的相对移动,基于光点成像技术的平面定位技术,基于加速度传感器的动作识别分析技术等等。
以上相关技术解决了目前平面定位的多种应用需要,但随着新的系统需求,之前的多种方案已经存在了下述缺陷:
基于微机电系统技术的陀螺仪通过积分等算法获得平面鼠标的相对移动定位方面,由于获得的定位是一个相对量,用户获得平面定位绝对位置的方法是对相对量的累加,在误差存在的情况下,累加得到的累积误差也会相应的扩大,在一段时间后,控制器的实际指向与主机获得的平面定位存在较大的差距。在射击类体感游戏中,如果控制器的实际指向与平面定位差距较大的情况下,将会使射击体感大打折扣。
为了克服累积误差的问题,相关机构提出了基于光点成像技术的平面定位技术。它的主要原理是通过CMOS光学组件拍摄外部人造特殊光点的移动来确定平面定位的具体位置。该技术的主要优点是能够无累积误差的确定平面定位的绝对位置,适合于射击类等指向性要求较高的系统中。但随之也有一些限制,比如抗光干扰性比较差,算法复杂,需要为算法提供的运算资源较大等。
目前,激光笔已经应用比较广泛,比如与幻灯片配合使用,可以在展示相关信息时提供必要的辅助引导。但它的缺陷主要是不能对指向的目标进行直接的操作。
发明内容
本发明要解决的技术问题是提供一种激光平面定位系统,能提高平面定位的指向性性能,使平面定位指向与实际的指向保持一致,且简化平面指向定位的实现算法,节约处理器和内存等资源消耗。为此,本发明还提供该激光平面定位系统的实现方法。
为了解决上述技术问题,本发明通过如下技术方案实现:
本发明提供一种激光平面定位系统,该系统包括:
一个或多个激光发射器,每个激光发射器安装于一个移动控制设备上;
一个光感阵列,其位于主机显示器上,该光感阵列的布局与该主机显示器平行对应;
该移动控制设备与主机通过有线或无线的方式建立连接;该移动控制设备中的激光发射器通过将激光束投影到主机显示器上的光感阵列上,通过光感阵列获得平面定位的具体位置。
当该系统中包含有多个激光发射器时,每个激光发射器发出的激光颜色不同,以使该光感阵列可区分不同的激光发射器。
所述移动控制设备与主机可实现双向传输,该主机可发送命令控制该移动控制设备,该移动控制设备可将按键、摇杆以及其它传感器信息上传到主机。
所述光感阵列外贴于主机显示器表面或集成于主机显示器内部。
所述光感阵列的点阵数量,根据定位精度的不同,可调整为与主机显示器相同或不同;所述光感阵列可以调整对光强的灵敏度,只有达到一定强度以上的光强才能被光感阵列确定为有效投影;在同时存在多个激光发射器的情况下,所述光感阵列按照预先设定的光源频率进行光点扫描。
此外,本发明还提供一种上述激光平面定位系统的实现方法,包括如下步骤:
(1)移动控制设备与主机建立连接;
(2)主机根据内部设置和需要,通过发送命令控制移动控制设备激光发射器的开关和激光颜色;
(3)主机根据光感阵列按照已知的外部移动控制设备激光发射频率扫描外部光点投影;
(4)根据扫描到的光点分析目前外部激光投影的光强,根据该光强值调整光感阵列的灵敏度;
(5)采集获得激光投影的光感阵列的每一个感光点的位置和感光的颜色信息;
(6)分析同一种颜色感光点的点数大小,根据经验值将无效光点滤除;
(7)按照重心法或中心点法求平面定位的坐标。
步骤(2)中,所述控制激光颜色具体为:主机根据移动控制设备的多少以及激光发射器可变波长的范围,来控制具体移动控制设备激光发射的波长大小。
步骤(3)中,对于单个移动控制设备的系统,光感阵列只扫描这个固定波长的投影点。
步骤(4)中,所述根据该光强值调整光感阵列的灵敏度,调整的结果尽量使灵敏度降低。
步骤(6)中,通过实际的激光发射器的性能获得大概在光感阵列上的投影光点大小范围,超过该范围的光点作为无效光点滤除。
本发明的有益效果在于:本发明提出了一个全新的平面定位方法,通过将激光束投影到显示屏幕上的光感元器件阵列上,通过感光的光感元件位置直接获得平面定位的具体位置。与现有的平面定位方法相比,有以下优点:指向性强、抗干扰能力强、算法简单等。本发明在极少占用系统的内存资源、处理器资源的情况下,很好的解决了平面定位的指向性问题,能够使控制器的实际指向与定位点保持一致,并且不会随时间的累积而产生相应的累积误差。
附图说明
图1是本发明激光平面定位系统的实现方法的流程示意图;
图2是本发明实施例1包含单个激光发射器的激光平面定位系统的结构示意图;
图3是本发明实施例2包含两个激光发射器的激光平面定位系统的结构示意图;
图4是本发明光感阵列感光点坐标示意图。
图5是本发明中心法激光点定位示意图;
图6是本发明重心法激光点定位示意图。
其中,1是移动控制设备,2是激光发射器,3是主机显示器,4是光感阵列。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
实施例1如图2所示,本发明提供一种激光平面定位系统,该系统中包含一个激光发射器2,一个光感阵列(接收模块)4;激光发射器2安装于移动控制设备1上,光感阵列4位于主机显示器3端;移动控制设备1与主机端通过有线或无线的方式建立连接,可实现输出的双向传输,即主机可以发送命令控制移动控制设备1,比如:控制激光发射器2的开关或改变激光颜色(波长),移动控制设备1可以将按键、摇杆以及其它传感器信息上传到主机;光感阵列4的布局与主机显示器3平行对应,可以外贴于主机显示器3表面或与集成于主机显示器3内部;光感阵列4的点阵数量可与主机显示器3相同,也可不同,具体体现在定位的精度的不同;为了排除外界其它光源对光感阵列4的干扰,光感阵列4可以调整对光强的灵敏度,只有达到一定强度以上的光强才能被光感阵列4确定为有效投影。
实施例2如图3所示,本发明提供一种激光平面定位系统,该系统中包含两个激光发射器2,一个光感阵列4;每个激光发射器2安装于一个移动控制设备1上,光感阵列4位于主机显示器3端;当系统中包含有多个激光发射器2时,每个激光发射器2发出的激光颜色(波长)不同,以便光感阵列4可以区分不同的发射设备(激光发射器2);在同时存在多个外部移动控制设备1的情况下,光感阵列4可以按照预先设定的光源频率进行光点扫描。该实施例2除了具有两个激光发射器和两个移动控制设备之外,其他与实施例1相同。
如图1和图2所示,本发明实现的是一个通过激光平面的指向系统,该系统中移动控制设备1中的激光发射器2的激光发射头发出的激光束投影到主机显示器3,通过主机显示器3上的光感阵列4直接获取激光投影位置,并将该信息传递给主机进行平面定位。
如图1所示,本发明提供的一种激光平面定位系统的实现方法,包含如下步骤:
(1)移动控制器与主机建立连接,该连接可以是有线的连接,也可以是无线连接;
(2)主机根据内部设置和需要,通过发送命令控制移动控制设备激光发射器的开关和激光颜色(波长);
(3)主机根据光感阵列按照已知的外部移动控制设备激光发射频率扫描外部光点投影,对于单个外部移动控制设备的系统,光感阵列只扫描这个固定波长的投影点;
(4)根据扫描到的光点分析目前外部激光投影的光强,根据该光强值调整光感阵列的灵敏度,调整的结果尽量使灵敏度降低,因为激光在光感阵列上的光强一般会比周围的干扰光源的光强大许多;
(5)采集获得激光投影的光感阵列的每一个感光点的位置和感光的颜色信息,每个激光投影可能不止占据一个阵列点,往往会占据多个,后续的定位需要由多个点综合计算得到;
(6)分析同一种颜色感光点的点数大小,根据经验值将无效光点滤除,由于激光束的集聚性,在障碍物上的投影大小也相对稳定,可以通过实际的激光发射器的性能获得大概在光感阵列上的投影光点大小范围,超过该范围的光点作为无效光点滤除;
(7)按照重心法或中心点法求平面定位的坐标,该部分已经在申请号为200910057410.9,发明名称为“基于红外光点定位方法”的专利申请中得到了具体的描述。
本发明方法的具体实现方式如下:
移动控制设备与主机之间信息交互可以通过有线或无线的方式,有线方式比如USB总线等,无线方式比如Bluetooth,ZigBee,RF4CE,以及目前一般的2.4GHz无线通讯。主机和移动控制设备之间支持双向数据传输,主机可以通过命令的方式控制移动控制设备,移动控制设备可以将相关的按键信息、摇杆、其它辅助传感器信息发送给主机,比如,下面是一个主机到移动控制设备的数据传输格式(见表1)和一个移动控制设备到主机的数据传输格式(见表2):
表1主机到移动控制设备
命令头 |
激光开关控制 |
激光波长选择 |
0x01 |
0:关,1:开 |
0~0xffff:波长范围选择 |
表2移动控制设备到主机
数据头 |
按键信息 |
摇杆信息 |
激光器状态信息 |
辅助传感器数据 |
0x10 |
2个字节的按键信息 |
2个字节的摇杆状态信息 |
3个字节激光器开关及波长信息 |
6字节的辅助传感器数据 |
其中,波长范围的选择与实际采用的激光发射器可变波长的范围有关,根据实际设计的系统来定,比如,激光发射器的发射波长范围为可见光的全范围,波长范围的选择中的0~0xffff中,“0”对应的是可见光与紫外线交界的点,“0xffff”对应的是可见光与紫外线交界的点。
辅助传感器可以是加速度传感器、陀螺仪等,在某些游戏中可以起到辅助控制的作用。
为了能够更好的体现指向性,系统对光感阵列和主机显示器的位置关系有一定的要求,一般情况下,要求光感阵列与主机显示器从平面位置上能够重合。比如,如果光感阵列可以以透明薄膜的方式贴于显示器表面,光感阵列大小与显示器大小相当,或者光感阵列直接集成于显示器内部。
对应含单一移动控制设备的系统,可以采用固定波长的激光发射器,主机也不需要选择移动控制设备激光发射的波长,但对于同一系统中包含多个移动控制设备的情况下,激光发射器需要采用可变波长技术,否则很难分辨出点位点与具体移动控制设备的对应关系。主机会根据移动控制设备的多少以及可变波长的范围,来控制具体移动控制设备激光发射的波长大小。一般情况下,为了能够更好的区分不同的移动控制设备,会将多激光发射器之间的波长间隔尽量拉大。
因为激光对光感阵列投影的光强一般会比外界自然光的光强大,所以在抗干扰方面会比其它光学定位方法要稳定,为了进一步增强抗干扰的能力,本方法会结合光点大小进行辅助分析。对应某一类型的激光发射器,发射的光束在光感阵列上的投影点大小会相对固定,根据实际的测试结果获得光点大小的范围,超过该范围的光点作为干扰去除。比如,通过对一类激光发射器中不同远近,不同角度方向照射光感阵列获得的光点大小分别如下:35、29、33、30、41、35、36、36、30,最大的点为41,最小的点为29,扩充一定的余量,可以认为光点大小在25~45之间的点为有效的投影点。
主机可以直接从感光阵列中读到每一个感光点的坐标,如图4所示,A点坐标(X=4,Y=2),B点坐标(X=N-2,Y=M-1)。
最后是具体平面定位位置的计算,通常可以采用重心法或中心点法,具体的实施过程可以参考申请号为200910057410.9,发明名称为“基于红外光点定位方法”的专利申请。
重心法参考图6,通过以下公式得到激光点定位:
Posit1X=(P1(x)+P2(x)+…+Pn(x)/n
Posit1Y=(P1(y)+P2(y)+…+Pn(y)/n
Posit1X:激光点定位点坐标X;
Posit1Y:激光点定位点坐标Y;
P1(x)、P2(x)、…、Pn(x):激光点中像素点坐标X;
P1(y)、P2(y)、…、Pn(y):激光点中像素点坐标Y;
n:激光点中包含的像素点个数。
中心法参考图5,通过以下公式获得激光点定位:
Posit1X=(Xmax+Xmin)/2;
Posit1Y=(Ymax+Ymin)/2;
Posit1X:激光点定位点坐标X;
Posit1Y:激光点定位点坐标Y;
Xmax:坐标X上的激光点最大值;
Xmin:坐标X上的激光点最小值;
Ymax:坐标Y上的激光点最大值;
Ymin:坐标Y上的激光点最小值。