具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
如图1和图2所示,本发明的立体交互系统包括操作棒和被操作设备,该被操作设备包括可进行立体显示的感应屏幕,如为智能手机、平板电脑等。感应屏幕(以下简称为屏幕)上立体显示的可操作单元(以按钮为例,也可以是按键或其他图标)在用户看来,可能是凸出和凹入屏幕的。对于显示为凸出屏幕的被操作单元进行触控操作时,为了让用户感觉到更多的真实感,在操作棒的头部达到被操作单元表面,即发生虚拟碰触时,可以模拟该被操作单元被按压时的视觉变化,同时还可以给用户一定的力反馈,使用户所感受的操作棒对被操作单元的触控更加符合实际。而对于显示为凹入屏幕的被操作单元进行触控操作时,操作棒的头部达到被操作单元表面之前就会接触到屏幕,为了让用户感觉到更多的真实感,可以将操作棒的头部设计为可伸缩的,绘制操作棒的缩进部分并在屏幕上立体显示,同时计算该头部不伸缩时的三维位置,来判断是否会发生虚拟碰触,发生虚拟碰触后可以采用上述相同的方式进行被操作单元的随动显示和力反馈处理。
文中,三维位置信息可以是三维位置或者任何用于计算三维位置的信息如姿态、缩进长度等。三维位置可以用三维坐标表示如x,y,z坐标或用长度和方位角表示的极坐标。表示三维位置的坐标可以感应屏幕所在平面为参照系来确定,即是相对于感应屏幕的相对坐标。以智能手机为例,可以但不限于将屏幕的中点或某个端点作为坐标原点,垂直于屏幕的方向为Z轴,屏幕所在的平面为XY坐标轴表示的平面。
请参照图3a示出的结构示意图和图3b示出的各单元连接的示意图,该操作棒包括外壳101、可伸缩头部102、通信单元103、定位单元104、力反馈单元105和伸缩感应单元106,其中:
外壳101可以是便于握持的任何形状,如笔状等;
可伸缩头部102以可伸缩的方式与外壳101连接,可以采用现有的各种结构。文中将可伸缩头部用于碰触被操作单元的部位称之为接触部,较佳地,可伸缩头部102远离外壳的一端设计为一尖端,将该尖端作为操作棒的接触部,也可以称之为操作棒的触点。
通信单元103与定位单元104、力反馈单元105和伸缩感应单元106电连接,用于实现操作棒与被操作设备之间的信息交互。可以采用无线通信方式如蓝牙,无线USB等,也可以采用有线通信方式,如I2C,USB等。
定位单元104,用于实时检测操作棒在空间中的位置和姿态,并将检测到的三维位置信息传送给通信单元103发送。该定位单元可以包括作运动轨迹检测的传感器和作姿态检测的传感器。例如,现有的一些移动设备如iphone上,采用陀螺仪传感器得到运动轨迹数据(可作为操作棒在空间中的位置信息),同时采用加速度传感器来得到方位角数据(可作为操作棒的姿态信息)。该运动轨迹的初始位置可以设置为操作棒初始状态下定位单元(或其他部位)在参照系中的相对位置。定位单元检测到的三维位置信息可以是操作棒的三维位置和姿态的信息,根据该信息计算出的操作棒接触部的三维位置或中间结果等。定位单元也可以采用地磁传感器来实现。
力反馈单元105,用于根据通信单元接收的力反馈指令,执行模拟力反馈的动作。例如,可以采用电子机械装置作为力反馈单元,在收到力反馈指令后,模拟一个真实按钮被按压的震动,使得操作者能够身历其境的感受到3D界面的操作,以产生沉浸感。该电子机械模块可以是电动震动马达,人造肌肉膜或者是其他的模拟震动装置。
伸缩感应单元106,用于实时检测操作棒头部的缩进长度(即可伸缩头部的缩进距离)并将检测到的缩进长度的信息传送给通信单元103发送。本实施例的伸缩感应单元采用压力传感的方式实现,相应地,可伸缩头部102包括操作棒头和抵顶于该伸缩感应单元和操作棒头之间的弹性部件如弹簧,当可伸缩头部的缩进长度变化时,该弹性部件对伸缩感应单元105的压力产生变化,伸缩感应单元105可以将压力转化为相应的电信号并传送给通信单元103发送。这样,根据该电信号的大小即可以确定操作棒头部的缩进长度。需要说明的是,伸缩感应装置的结构并不局限于此,可以有很多种的实现方式,如光电检测等。
上述操作棒还可以包括如电池、充电装置等辅助装置,这里不再一一介绍。
如图4所示,被操作设备包括感应屏幕10、通信装置20和图像处理装置30。其中:
感应屏幕10,可显示被操作单元的立体图像。文中也简写为屏幕。
通信装置20,用于实现交互控制装置与操作棒之间的信息交互。
交互控制装置30,包括:
第一位置确定单元301,用于根据实时获取的操作棒接触部的三维位置信息确定操作棒接触部的三维位置。在所述操作棒不接触屏幕时,可以根据接收的操作棒接触部的三维坐标信息得到;或者,根据接收的操作棒上另一部位的三维坐标信息、操作棒的方位角信息及接触部到该另一部位的固有距离计算得到。在操作棒接触屏幕时,可根据操作棒头部的缩进长度、操作棒的方位角及操作棒与感应屏幕的碰触位置计算得到,其中,操作棒头部的缩进长度又可以根据操作棒发来的缩进长度的信息确定。需要说明的是,操作棒碰触屏幕前,操作棒接触部的三维位置是实际位置,操作棒碰触屏幕后,操作棒接触部的三维位置是虚拟位置,文中其他地方不再特别说明。
虚拟碰触检测单元302,用于根据操作棒接触部的三维位置和所显示的被操作单元表面的三维位置,实时判断操作棒是否与被操作单元发生虚拟碰触,如是,激活图像处理装置中的视差调整单元,并可通过通信装置向操作棒发送力反馈指令。此外,还可以根据被操作单元表面的深度变化,判断操作棒是否完成了对被操作单元的点击操作,如是,则生成对该被操作单元的点击命令。
实际碰触检测单元303,用于在检测到操作棒接触感应屏幕时,激活图像处理装置中的图像绘制单元,并将操作棒和感应屏幕的碰触位置通知第一位置确定单元和第二位置确定单元。
第二位置确定单元304,用于根据操作棒接触部的三维位置,再结合操作棒与感应屏幕的碰触位置和操作棒可伸缩头部的模型,计算出操作棒缩进部分的虚拟三维位置。
实时获取的操作棒缩进部分的三维位置信息和操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分的虚拟三维位置。例如,根据实时获取的操作棒头部的缩进长度、操作棒的方位角及操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分上至少一点(如接触部)的虚拟三维位置,再结合操作棒与感应屏幕的碰触位置和操作棒可伸缩头部的模型,计算出操作棒缩进部分的虚拟三维位置。其中,接触部的虚拟三维位置也可以根据实时获取的操作棒的三维位置和姿态的信息得到或计算得到;操作棒头部的缩进长度根据操作棒发来的缩进长度的信息确定。
图像处理装置40,又包括:
深度计算单元401,用于根据被操作单元的立体图像的视差确定被操作单元表面相对于屏幕的深度,并通知虚拟碰触检测单元。
视差调整单元402,用于通过对被操作单元的立体图像的视差调整,模拟被操作单元被按压时的深度变化。例如,将实时获取的操作棒接触部相对于屏幕的深度作为被操作单元表面的深度,并根据该深度来调整被操作单元在立体图像上的视差。
图像绘制单元403,用于根据操作棒缩进部分的虚拟三维位置,实时绘制操作棒缩进部分的图像,并将绘制的该图像显示在感应屏幕上。较佳地,绘制的是立体图像,例如,将设定或跟踪得到的用户观看屏幕时左、右眼的三维位置作为左、右相机,将感应屏幕作为零视差面,绘制出所述操作棒缩进部分的左图像和右图像。
上述图像处理装置可能还需要对要显示的立体图像进行其他的图像处理,这里只对与本实施例相关的单元进行说明。
下面介绍一下操作棒对在屏幕上立体显示的被操作单元的触碰操作的处理流程,如图5所示,包括:
步骤310,根据被操作单元的立体图像的视差确定被操作单元表面相对于屏幕的深度;
本实施例是通过立体图像中左图像和右图像的视差形成立体显示效果。图6a和图6b分别是具有视差d的像素点P在立体显示时表现为凹入和凸出屏幕的示意图,其中,视差d是像素点P在立体图像的左图像和右图像上的坐标之差,根据像素点的视差d以及用户左、右眼的三维位置,就可以很容易的计算出像素点P相对于屏幕的深度即垂直距离。被操作单元相对屏幕凸出时深度可以取正,凹入时可以取负,或者相反。
用户左、右眼的间距和观看位置可以参照本领域的经验值设定,这里不再详细讨论。如果有头部跟踪装置,也可以使用跟踪检测到的左、右眼的三维位置来动态地计算视差,更为精确。
由于被操作单元表面在屏幕上的位置是已知的,本步骤确定被操作单元表面相对屏幕的深度后,已得到被操作单元表面的三维位置。
步骤320,根据实时获取的操作棒接触部的三维位置信息确定操作棒接触部的三维位置;
操作棒发送的操作棒接触部的三维位置信息可以是操作棒接触部在空间中的三维坐标,也可以是可推算出该三维坐标的其他信息。在操作棒不接触屏幕时,操作棒接触部的三维位置可以根据接收的操作棒接触部的三维坐标信息得到,或者,根据接收的操作棒上另一部位的三维坐标信息、操作棒的方位角信息(如操作棒与屏幕的夹角和操作棒在屏幕上的投影与X轴或Y轴的夹角)及接触部到该另一部位的固有距离计算得到。该计算可以在操作棒的定位单元中完成,也可以在被操作设备中完成。
操作棒接触屏幕时,也可以采用上段的方式确定操作棒接触部的三维位置。由于操作棒接触屏幕后,有操作棒与屏幕的碰触位置和操作棒头部的缩进长度等参数可以使用,因此可以根据操作棒头部的缩进长度、操作棒的方位角及操作棒与感应屏幕的碰触位置计算操作棒接触部的三维位置,结果更为准确。其中,操作棒头部的缩进长度可以根据所述操作棒发来的缩进长度的信息确定。
步骤330,根据操作棒接触部的三维位置和所显示的被操作单元表面的三维位置,判断操作棒是否与被操作单元发生虚拟碰触,如是,执行步骤340,否则,返回步骤320;
一般地,在操作棒接触部的三维位置与被操作单元表面的三维位置重合或穿越时认为两者发生虚拟碰触。
步骤340,通过对被操作单元的立体图像的视差调整模拟被操作单元表面被按压时的深度变化,并向操作棒发送力反馈指令。
本步骤中,还可以根据被操作单元表面的深度变化,判断操作棒是否完成了对被操作单元的点击操作(有些按钮被压下一定位置后才视为选中),如是,则生成对该被操作单元的点击命令。
本步骤中,可以将实时获取的操作棒接触部相对于屏幕的深度作为被操作单元表面的深度,并根据该深度来调整被操作单元在立体图像上的视差,如对左图像和/或左图像上的该被操作单元的像素点坐标进行平移处理。显示出的被操作单元即可模拟出被操作单元被按压时的深度变化。在另一实施例中,如果缩进长度较小,可以简化中间过程的显示,直接显示被操作单元被按下到停止位置时的立体图像。在又一实施例中,还可以逐次显示被操作单元被按下到停止位置及中间的若干位置的立体图像。
请参照图7,是通过立体显示模拟操作棒伸入感应屏幕的操作的处理流程图,包括:
步骤410,检测操作棒是否碰触屏幕,如是,执行步骤420,否则继续检测;
步骤420,根据实时获取的操作棒缩进部分的三维位置信息及操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分的虚拟三维位置;
计算操作棒缩进部分的虚拟三维位置时,可以根据实时获取的操作棒头部的缩进长度、操作棒的方位角及操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分上至少一点(如接触部)的虚拟三维位置,再结合操作棒与感应屏幕的碰触位置和操作棒可伸缩头部的模型,计算出操作棒缩进部分的虚拟三维位置。也可以根据实时接收的操作棒的三维位置信息,得到或计算出操作棒接触部的三维位置,结合操作棒与感应屏幕的碰触位置和操作棒可伸缩头部的模型,计算出操作棒缩进部分的虚拟三维位置。其中,操作棒头部的缩进长度可以根据所述操作棒发来的缩进长度的信息确定。
步骤430,根据操作棒缩进部分的虚拟三维位置,实时绘制操作棒缩进部分的立体图像,将绘制的该立体图像显示在屏幕上。
在绘制时,可以将设定或跟踪得到的用户观看屏幕时左、右眼的三维位置作为左、右相机,将感应屏幕作为零视差面,即可分别绘制出该缩进部分的左右图像。完成本步骤之后,屏幕将显示操作棒缩进部分的立体图像,使得用户看上去好象操作棒真的探进了屏幕一样,增强了用户立体交互时的真实感。
从上述方案可以看出,本实施例实现了结合立体显示来表现的一种触控操作。为了让用户感觉到更多的真实感,以及所感受的操作棒与屏幕的交互更加符合实际,在操作棒中设置了对操作棒进行运动检测的定位单元,可以实时检测操作棒的位置和姿态。请再参照图1所示,对于显示为凸出屏幕的按键,在操作棒还没有接触屏幕但人眼感觉已接触屏幕时,通过虚拟碰触检测获知并改变该按键的显示,使得其好象真的被按下一样,同时可以通过力反馈单元给于用户触感。而对于显示为凹入屏幕的按键,请再参照图2,在操作棒已接触屏幕但人眼感觉还没有接触按键时,操作棒头部可以随着操作者的动作而自动进行缩进,并向终端设备发送缩进长度的信息,终端设备绘制出该缩进部分的立体图像并在屏幕上显示,用户感觉好象该操作棒真的伸入屏幕去点击按键一样,同时当操作棒做出其他动作时,比如左右移动,虚拟操作棒也将同时移动。伸入屏幕后可以通过虚拟碰触检测得知操作棒点中了按键,然后可以对被操作单元进行视差调整和力反馈的处理。
作为本实施例一个简化后的变例,可以取消与力反馈有关内容,不在操作棒中设置力反馈单元,也不在被操作设备中进行相关处理。其他实施例同此。
在某种应用场景下,只涉及对显示为凸出屏幕的被操作单元的操作,则针对该应用场景的实施例可以在本实施例的基础上加以简化,可以取消与伸缩操作相关的装置和处理,如操作棒中的伸缩头和伸缩感应单元可以取消,被操作设备的图像处理装置中的第二位置确定单元、图像绘制单元可以取消,并且可以取消计算缩进长度、绘制虚拟操作棒等的处理。
在某种应用场景下,只涉及对显示为凹入屏幕的被操作单元的操作,则针对该应用场景的实施例可以在本实施例的基础上加以简化,操作棒中的定位单元可以取消作运动轨迹检测的传感器,因为只需要借助于操作棒的姿态、缩进长度和感应屏幕与操作棒的碰触位置,即可完成虚拟碰触检测。
实施例二
与实施例一不同的是,本实施例的立体交互并不涉及操作棒对在屏幕上立体显示的被操作单元的触碰操作,而只涉及通过立体显示模拟操作棒伸入感应屏幕的操作的处理。因此可以在实施例一的基础上进行一些简化。
操作棒的结构可以与实施例一的操作棒相同。也可以作一些简化,例如,定位单元可以只包括作姿态检测的传感器。
被操作设备同样包括感应屏幕、通信装置和图像处理装置。感应屏幕和通信装置与实施例一相同。
交互控制装置包括:
实际碰触检测单元,用于在检测到操作棒接触感应屏幕时,激活图像处理装置中的图像绘制单元,并将操作棒和感应屏幕的碰触位置通知位置确定单元。
位置确定单元,用于根据实时获取的操作棒缩进部分的三维位置信息和操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分的虚拟三维位置。例如,根据实时获取的操作棒头部的缩进长度、操作棒的方位角及操作棒与感应屏幕的碰触位置,计算出操作棒缩进部分上至少一点(如接触部)的虚拟三维位置,再结合操作棒与感应屏幕的碰触位置和操作棒可伸缩头部的模型,计算出操作棒缩进部分的虚拟三维位置。其中,接触部的虚拟三维位置也可以根据实时获取的操作棒的三维位置和姿态的信息得到或计算得到;操作棒头部的缩进长度根据操作棒发来的缩进长度的信息确定。
图像处理装置包括:
图像绘制单元,同实施例一中的图像绘制单元,用于根据操作棒缩进部分的虚拟三维位置,实时绘制操作棒缩进部分的立体图像,并将绘制的该立体图像显示在感应屏幕上。
本实施例通过立体显示模拟操作棒伸入感应屏幕的操作的处理流程同实施例一。
实施例三
本实施例与实施例一基本相同,区别在于对操作棒的三维位置的检测上。本实施例中,操作棒中没有用于检测位置和姿态的定位单元,需要使用其他的定位辅助装置共同定位操作棒在空间中的三维坐标。
该定位辅助装置用于感知操作棒相对于感应屏幕的三维位置并将感知到的三维位置信息发送给被操作设备,其方式可以但不限于是:
(a)跟踪装置,如摄像机(camera),通过该摄像机对操作棒进行跟踪识别,确定操作棒的三维位置信息并发送给,该三维位置信息可以包括操作棒接触部或其他部件的三维位置和操作棒的方位角的信息。
(b)红外感应装置,操作棒和被操作的设备上都要有这种装置,一个作为发生装置,一个作为接受装置,由被操作设备或操作棒计算得到操作棒的三维位置信息。
上述定位辅助装置可以直接向被操作设备的交互控制装置发送三维位置信息,也可以先发送到被操作单元的通信装置,由该通信装置提供给该交互控制装置。
本实施例对操作棒的三维位置的检测也可以用于实施例一的变例和实施例二。在最简单的一种方式下,操作棒不具有可缩进头部和伸缩感应机构、定位单元和力反馈单元,就如同普通的书写笔一样。操作棒的位置和姿态由定位辅助装置进行检测,在立体交互时只需要模拟对凸出屏幕的被操作单元的触控操作,因此被操作设备上与操作棒缩进部分相关的定位和绘制的单元和处理均可以省略。
实施例四
本实施例与实施例一基本相同,区别在于操作棒中不设置缩进感应单元。对于操作棒碰触屏幕后的缩进长度,通过另一方式进行计算。
如图8所示,本实施例在被操作设备的感应屏幕10的表面增加了一层特殊的压力感应装置101。例如,该压力感应装置可以是一种特殊的电容屏,当操作棒接触到该电容屏后,该电容屏会随着操作棒的压力变化而发生电场的改变,这种电场的改变被检测出来后,可以发送到交互控制装置。因为压力与操作棒头部的缩进长度具有对应关系,感知屏幕的电容电压的变化就可以计算出操作棒头部的缩进长度。进而确定操作棒接触部的三维位置。也即,操作棒头部的缩进长度也可以根据感应屏幕上的压力感应装置的检测结果计算得到。
本实施例对操作棒的缩进长度的检测也可以用于实施例一的变例和实施例二。
实施例五
本实施例与实施例一基本相同,区别在于操作棒中不设置缩进感应单元。对于操作棒碰触屏幕后的操作棒接触部的三维位置,通过另一方式进行计算。
因为没有缩进感应单元,因此本实施例操作棒碰触屏幕后不能获取检测到的操作棒头部的缩进长度的信息。不过,由于操作棒中的定位单元可以实时检测到操作棒的位置和姿态,因此,可以根据定位单元的检测结果来推算缩进长度。
根据定位单元检测的操作棒的三维位置和姿态的信息,可以得到操作棒接触部的深度及操作棒与感应屏幕的夹角,根据该深度和夹角即可计算出操作棒头部的缩进长度。得到该缩进长度后,结合操作棒的方位角及操作棒与感应屏幕的碰触位置可计算出操作棒接触部的三维位置。这种方式将定位单元的数据与实际碰触位置的数据结合起来,可以保证定位精度,可以避免操作棒断开等不良显示效果的出现。
本实施例对操作棒的缩进长度的检测也可以用于实施例一的变例。容易理解,本实施例定位单元实时检测到的操作棒的三维位置和姿态的信息也可以利用实施例二中的辅助装置来提供。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。