具体实施方式
本发明的基于红外光点定位方法,一实施方式如图1所示,将被控设备(如电脑、数字电视、机顶盒等)同光学传感器通过有线或无线的方式相连,在移动控制设备(如遥控器、游戏手柄等)上设置一个或多个红外灯,移动控制设备的运动使得所述红外灯的红外光点在空间移动,光学传感器将采集的红外光点数据送到被控设备进行处理实现移动控制设备平面和空间的定位。
所述光学传感器上有一个滤光片,用以滤掉红外特定波段以外的干扰光线。
移动控制设备上还设置有至少一轴的运动传感器(比如加速度传感器),只有运动传感器检测到移动控制设备在运动时,才开启设置在移动控制设备上的红外灯及其它部分的电路(比如:无线通讯模块等),移动控制设备在静止状态下,设置在移动控制设备上的红外灯及其它部分的电路被完全关闭,以减少不必要的功耗,只有运动传感器检测到移动控制设备在运动时才将运动传感器数据传送给被控设备,用以对红外光点数据进行补偿,滤除干扰的影响,如果被控设备当前未收到所述运动传感器数据,则确定当前移动控制设备定位无效,从而使使移动控制设备定位的稳定性增强。
被控设备对红外光点数据进行处理实现移动控制设备平面和空间的定位,光点定位算法采用重心法或中心法,移动控制设备与被控设备之间的距离可以用两个红外灯光点之间的距离来推算,在光点平面定位的基础上实现空间定位。
工作状态下,所述移动控制设备上的红外灯按照一固定频率进行开关切换,以在满足移动控制设备定位需要的前提下,适当降低移动控制设备的功耗,比如,红外灯开关频率为100次/秒,其中每次红外灯打开点亮时间为4ms,关闭熄灭时间为6ms。
光学传感器按照固定的频率扫描红外光点(注:该扫描频率应该大于等于红外灯的开关频率,比如300帧/秒),如果扫描到红外光点,需要经过大小和形状有效性判断。比如,光学传感器像素为300×200,拍摄到的红外光点大小需要满足以下条件:
2000<Fp<20000
Fp:红外光点像素。
如图2所示,红外光点形状需要满足以下条件:
|(Ymax-Ymin)-(Xmax-Xmin)|<20
Xmax:坐标X上的红外光点最大值,
Xmin:坐标X上的红外光点最小值,
Ymax:坐标Y上的红外光点最大值,
Ymin:坐标Y上的红外光点最小值;
满足以上大小及形状条件的红外光点被保留下来,不满足条件的红外光点被滤除。如果采集到有效的红外光点,通过重心法或中心法得到红外光点定位。重心法参考图3,通过以下公式得到红外光点定位:
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:红外光点中包含的像素点个数。
中心法参考图2,通过以下公式获得红外光点定位:
Posit1X=(Xmax+Xmin)/2;
Posit1Y=(Ymax+Ymin)/2;
Posit1X:红外光点定位点坐标X;
Posit1Y:红外光点定位点坐标Y;
Xmax:坐标X上的红外光点最大值;
Xmin:坐标X上的红外光点最小值;
Ymax:坐标Y上的红外光点最大值;
Ymin:坐标Y上的红外光点最小值。
如果移动控制设备上有2个及以上红外灯且各红外灯之间具有一定的距离,移动控制设备与被控设备之间的距离远近可以通过这些红外灯在光学传感器成像红外光点之间的距离来计算,它们之间是满足线性关系的,比如:Dy=kDx,Dy:移动控制设备到被控设备之间的距离,Dx:光学传感器上红外光点间的距离,k:比例系数。而Dx又可以通过以下公式获得:
Posit1X:红外光点1定位点坐标X;
Posit1Y:红外光点1定位点坐标Y;
Posit2X:红外光点2定位点坐标X;
Posit2Y:红外光点2定位点坐标Y。
获得以上红外光点坐标定位后,结合运动传感器发送至被控设备的运动传感器数据和移动方向预测值,获得最终的定位点。运动幅度的大小可以被运动传感器采集到,根据该数据的大小,比较通过以上方法获得的红外光点坐标定位,分析以上定位是不是真实或由其它光源干扰所致,如果红外光点坐标定位的变化幅度与运动传感器获得的数据一致,则认为是有效的定位数据,如果相差很远,作为干扰将其定位变化忽略或作相应的补偿。移动方向预测在目前鼠标定位中有一定的应用,主要原理是根据以前若干次光点定位变化,预测出下一次光点运动的方向和运动大小,在之后的光点扫描中,可以有效地缩小光点搜索范围,提高算法的效率。
实施例一的具体流程如图4所示。
光学传感器被控设备端:
1、同被控设备相连的光学传感器按照一种固定的扫描速度(比如每秒300帧)扫描外部红外光点;
2、判断是否有红外光点被扫描到,如果没有,进行下一次扫描,如果发现红外光点,执行步骤3;
3、分析红外光点的大小和形状,满足条件的红外光点作为有效的红外光点被保留下来,不满足条件的红外光点被滤除。以免外部其它干扰光源对定位产生不利的影响;
4、计算红外光点平面定位位置(对于多红外光点的情况,还要计算红外光点间的距离,以便分析移动控制设备与被控设备之间的远近距离,在相关游戏中可以实现空间的定位)。比如通过计算每个红外光点的重心位置确定为红外光点的定位位置或通过计算红外光点的中心位置确定为红外光点的定位位置等;
5、获取移动控制设备传过来的运动传感器数据,如果被控设备当前未收到运动传感器数据,则确定本次红外光点的定位无效,当前移动控制设备定位无效,一旦确定红外光点的定位无效,将回到步骤1;如果被控设收到运动传感器数,则确定本次红外光点的定位有效,执行下面的步骤6;
6、将运动传感器数据、移动方向预测值(主要指一般的移动具有一定的趋势性,根据以前的运动规律估计下一次运动的方向和大小)等要素综合后,补偿目前红外光点的平面或空间定位,实现移动控制设备定位,并使移动控制设备定位更具稳定性。
移动控制设备端:
1、移动控制设备获取运动传感器数据;
2、移动控制设备根据运动传感器数据判断是否有有效运动产生,如果确定移动控制设备目前处于静止状态,关闭设置于移动控制设备的红外灯和其它相关电路(比如:无线通讯模块等),回到步骤1,如果确定移动控制设备处于运动状态,开启红外灯和其它相关电路(比如:无线通讯模块等),红外灯按照一定的频率(比如100次/秒)开关闪烁,如图6所示;
3、如果确定移动控制设备处于运动状态,移动控制设备将获得的运动传感器数据传送给被控设备。
实施例二的具体流程如图5所示。
光学传感器被控对象端:
1、光学传感器以其最快的扫描速度(比如:500帧/秒)进行扫描外部红外光点,如图7所示;
2、通过获得的外部红外灯闪烁信息,计算红外灯开关的频率、开启和关闭的具体时间;
3、调整光学传感器的扫描频率与红外灯开关频率相同,并确定扫描的起始时间为红外灯开启稳定点亮状态(比如:如果把红外灯点亮的时间分成3T等份,扫描时刻在红外灯点亮后的1/3T时刻左右);
4、光学传感器按照调整后的扫描起点时间和扫描频率进行扫描;
5、分析在该扫描频率下是否能够扫描到有效的红外光点,如果没有,回到步骤1重新进行光学传感器扫描和红外灯闪烁的同步处理,如果扫描到了有效的红外光点,执行下面的步骤;
6、计算红外光点平面定位位置(对于多光点的情况,还要计算光点间的距离,以便分析移动控制设备与被控设备之间的远近距离,在相关游戏中可以实现空间的定位)。主要的方法有多种,比如通过计算每个红外光点的重心位置确定为红外光点的定位位置或通过计算红外光点的中心位置确定为红外光点的定位位置等。
7、被控设备获取移动控制设备传过来的运动传感器数据,如果被控设备当前未收到运动传感器数据,则确定本次红外光点的定位移动无效,当前移动控制设备定位无效,一旦确定红外光点的定位无效,将回到步骤1;如果被控设收到运动传感器数,则确定本次红外光点的定位移动有效,执行下面的步骤8;
8、将运动传感器数据、移动方向预测值(主要指一般的移动具有一定的趋势性,根据以前的运动规律估计下一次运动的方向和大小)等要素综合后,补偿目前红外光点产生的平面或空间定位,实现移动控制设备定位,并使移动控制设备定位更具稳定性。
移动控制设备端:
1、移动控制设备获取运动传感器数据;
2、移动控制设备判断是否有有效运动产生,如果确定移动控制设备目前处于静止状态,关闭红外灯和其它相关电路,回到步骤1,如果确定移动控制设备处于运动状态,开启红外灯和相关电路,红外灯按照一定的频率(比如100次/秒)的方式闪烁,如图6所示;
3、如果确定移动控制设备处于运动状态,移动控制设备将获得的运动传感器数据传送给被控设备。
实施例二与实施例一的区别在于光学传感器扫描要与红外灯的开关闪烁进行同步,比如,红外灯开关闪烁频率为100次/秒,其中每次开关闪烁红外灯开启点亮时间为4ms,关闭熄灭时间为6ms。光学传感器在同步前按照其最大的扫描速度(比如500次/秒)扫描外部红外光点,当扫到几个有效红外灯闪烁脉冲后,计算出红外灯的闪烁频率和开启/关闭时间,之后按照与红外灯的开关频率相匹配的扫描速度进行同步扫描。
本发明的基于红外光点定位方法,通过将红外灯设置于移动控制设备,将光学传感器设置于被控设备端,移动控制设备的运动使得红外灯的红外光点在空间移动,光学传感器将红外光点数据采集处理后送到被控设备实现定位,使移动控制设备端的信息处理量大大降低,有利于移动控制设备功耗控制和成本控制;通过按照一定的频率间歇性的开启和关闭设置于移动控制设备的红外灯,设置于被控设备端的光学传感器采用同红外灯开关频率相匹配的扫描频率采集红外光点的位置,可以较好的保证定位的要求并且降低了因红外灯产生的功耗;通过在移动控制设备设置至少一轴的运动传感器,分析目前移动控制设备的状态,只有当移动控制设备处于运动状态时才开启红外灯和其它部分的电路,稳定状态下关闭红外灯和其它部分的电路,使功耗得到降低,同时只有当移动控制设备处于运动状态时才将运动传感器数据传给被控设备,如果被控设备当前未收到所述运动传感器数据,则确定当前移动控制设备定位无效,从而可以增强定位的有效性和稳定性。