复合现实感展现方法和装置 【技术领域】
本发明涉及展现复合现实感(Mixed Reality)的方法和装置。尤其涉及适合于在复合现实感的展现中,适当地引导使用者,使得复合现实感装置的使用者的位置和/或姿态,不移动到传感器装置可测量的区域之外的技术。
背景技术
应用了使现实世界与虚拟世界和谐自然地结合的复合现实感(MR:Mixed Reality)的技术的装置(以下称复合现实感装置),被较多地提出。这些复合现实感装置,对由照相机等摄像装置拍摄到的现实世界的图像,合成用计算机图形(CG:Computer Graphics)描绘出的虚拟世界的图像,并显示在头部佩戴显示器(HMD:Head-Mounted Display)等地显示装置上,由此向装置的使用者展现复合现实感。
这些复合现实感装置,为了跟随现实世界的图像变化地生成虚拟世界的图像,而需要实时地取得装置的使用者的视点位置·姿态。用于取得使用者的视点位置·姿态的传感器装置已经广为人知。在复合现实感装置中,将由传感器装置测量出的使用者的视点位置·姿态,作为在虚拟世界中的虚拟的视点位置·姿态来设定,根据该设定通过CG描绘虚拟世界的图像,与现实世界的图像进行合成。由此,复合现实感装置的使用者,能够观察到宛如虚拟的物体存在于现实世界中那样的图像。
上述传感器装置,根据测量位置·姿态的方式,被分类成光学式、磁式、超声波式、机械式等,但无论在哪一种方式中,均不能无限制地测量位置·姿态,都会受其测量范围的制约。
例如,在光学式传感器装置的情况下,通过传感器控制装置的控制,使使用了发光二极管(LED:Light Emitting Diode)等元件的发光部发光,照相机、线传感器(Line Sensor)等的受光部捕捉来自该发光部的光,根据该受光信息决定测量对象的视点位置·姿态。因此,在受光部无法识别发光部发出的光的状况,例如发光部同受光部的距离离开得过远,或者在发光部与受光部之间存在遮挡物这样的状况下,传感器装置无法测量测量对象的位置·姿态。
另外,例如,在磁式传感器装置的情况下,通过传感器控制单元的控制,使得从磁发生器产生磁场,接收器测量磁发生器所产生的磁场的强度。根据磁发生器所产生磁场的方向和接收器所测量出的磁场的强度,决定测量对象的视线位置·姿态。因此,在接收器无法正确感知磁发生器所产生磁场的状况,例如,在磁发生器同接收器的距离离开过远这样的情况下,传感器装置就无法测量测量对象的位置·姿态。而且,即使在磁发射器同接收器的距离没有离开太远的情况下,当所测量的空间附近存在金属或磁性体时,由于磁发射器所产生的磁场发生畸变,因此所测量的位置·姿态会产生明显的误差。
在一般的复合现实感装置中,为了将现实世界与虚拟世界和谐地结合在一起,大多要求传感器装置具有较高的精度。因此,在关于位置·姿态产生测量误差这样的状况下,作为现实问题,会导致无法使用复合现实感装置。
基于以上理由可知,在使用复合现实感系统时,必须根据传感器装置能够准确测量测量对象的位置·姿态的范围,预先确定复合现实感装置的使用者所能够移动的区域,并使使用者的移动限制在该区域(可移动区域)内。例如,在日本特开2002-269593号公报中,记述了在超出了测量位置·姿态的传感器可测量的有效区域时,进行停止CG描绘的处理的结构。
但是,复合现实感装置的使用者,并非都是一边留意可移动区域,一边使用复合现实感装置。在复合现实感装置的使用中,大多都是由于复合现实感装置的使用者无意识中移动到了可移动区域之外,造成传感器装置无法准确测量复合现实感装置的使用者的视点位置·姿态,导致虚拟的CG不能被准确描绘时,复合现实感装置的使用者才知道发生异常。而且,即使在这一时刻复合现实感装置的使用者感觉到有什么异常,但多数情况下都无法知道其原因是超出到可移动区域的外侧而造成的。因此,存在复合现实感装置的使用者不知道异常的发生原因和对应方法,给使用者造成不放心的感觉这样的问题。
在使用了磁式传感器作为传感器装置时,由于在可移动区域的边界附近,位置·姿态的测量误差会变大,因此有时在一定程度上能够预见到复合现实感装置的使用者出了可移动区域。但是,在使用了光学式传感器作为传感器装置时,即使是在可移动区域的边界附近,只要是在可移动区域内就进行高精度的位置·姿态的测量,只有到了出了可移动区域的外侧的瞬间,才会导致测量完全无法进行。即,对于复合现实感装置的使用者而言,没有任何先兆,突然虚拟世界的图像就出现了混乱,因此会更增加不放心的感觉。
为了解决上述问题,以往进行了如下的处理:预先在现实世界中的可移动区域的边界附近设置带子(Tape)等标记,即设置物理性的障碍,或者通过专属的辅助人员对复合现实感装置的使用者逐一进行引导等的方法,进行用于不使复合现实感装置的使用者移动到可移动区域的外侧的引导的处理。
然而,在一般的复合现实感装置中,从摄像装置和显示装置的性能的因素考虑,装置的使用者所能够观察的现实世界,在图像的分辨率、视野的开阔度上受到制约。进而,通过将虚拟世界的图像与现实世界的图像重叠,现实世界图像的一部分被虚拟世界的图像所遮挡,因而复合现实感装置的使用者就无法观察现实世界图像的全部。即,即使在现实世界中设置标记,由于容易漏看标记、或者被虚拟世界图像所遮蔽,有时复合现实感装置的使用者无法观察到标记。并且,即使设置物理性障碍,基于上述理由,复合现实感装置的使用者有时无法观察到物理性障碍,根据不同的状况,有时甚至会给复合现实感装置的使用者带来危险。以往的复合现实感装置,基于上述的问题点,被要求进行改良。
另一方面,在专属的辅助人员引导复合现实感装置的使用者时,虽然解决了上述问题点,但由于每次使用复合现实感装置,都需要分派专属的辅助人员,因此存在运用上的麻烦以及负担变大的课题。
【发明内容】
本发明是鉴于上述课题而完成的,目的在于在复合现实感的展现中,简便且合理地实现用于使复合现实感装置的使用者不移动到传感器装置可测量的区域之外的、对使用者的适当引导。
用于实现上述目的的本发明的一个方式,是一种信息处理方法,其特征在于,包括:
取得用户的位置和姿态的信息的取得步骤;
根据上述用户的位置和姿态的信息,生成虚拟图像的生成步骤;
合成与上述用户的位置和姿态相应的现实图像和上述虚拟图像的合成步骤;
根据用户的位置和姿态的可测量区域,设定区域信息的设定步骤;
根据上述用户的位置的信息和上述区域信息,控制关于上述可测量区域的报知的控制步骤。
另外,根据用于实现上述目的的本发明的其他方式,是一种信息处理装置,其特征在于,包括:
取得上述用户的位置和姿态的信息的取得单元;
根据上述用户的位置和姿态的信息,生成虚拟图像的生成单元;
合成与上述用户的位置和姿态相应的现实图像和上述虚拟图像的合成单元;
根据用户的位置和姿态的可测量区域,设定区域信息的设定单元;
根据上述用户的位置的信息和上述区域信息,控制关于上述可测量区域的报知的控制单元。
根据本发明,能够通过简便且合理的方法引导复合现实感装置的使用者,使之不移动到可移动区域的外侧。
本发明的其他特征和优点可以通过下面的参照附图进行的说明得到明确,对附图中的相同或类似的部分附加相同的参考标号。
【附图说明】
附图构成本说明书的一部分,用于说明本发明的实施例,并与该说明一起用于阐明本发明的原理。
图1是表示第1实施方式中的复合现实感装置的概略结构的框图。
图2是表示第1实施方式中的复合现实感装置的整体的处理步骤的流程图。
图3是表示第1实施方式中的边界测量值收集处理的步骤的流程图。
图4是表示第1实施方式中的复合现实感展现处理的步骤的流程图。
图5是针对第1实施方式的复合现实感装置中所使用的传感器装置以及传感器装置的测量区域进行说明的图。
图6是针对边界测量点进行说明的图。
图7是针对边界测量点的收集进行说明的图。
图8是针对安全区域、警告区域、可移动区域进行说明的图。
图9表示第1实施方式的复合现实感装置中所显示的图像的例子的图。
图10是表示第2实施方式中的复合现实感展现处理的步骤的流程图。
图11是说明安全区域、警告区域的设定的图。
图12是表示登录由安全区域和警告区域所形成的三角形网格的三角形构成表的构成例的图。
图13是表示将视点位置V投影为地平面上的点V’的样子的图。
图14是说明判定点V’是否存在于安全区域40或者警告区域50的内部的方法的图。
【具体实施方式】
下面将结合附图详细说明本发明的优选实施例。
首先,参照图5~图8,对使用本实施方式的复合现实感装置的空间进行说明。图5是针对本实施方式的复合现实感装置(以后,记载为“本装置”)中所使用的传感器装置以及传感器装置的测量区域进行说明的图。
在图5中,传感器装置10,能够在由传感器测量区域20所表示的区域(图5中以斜线的矩形所表示的区域)中,测量作为测量对象的本装置的使用者的视点位置·姿态。另一方面,在传感器测量区域20的外侧的区域,传感器装置10无法测量视点位置·姿态。而且,无法用肉眼观测到传感器测量区域20及其边界线。
图6是针对边界测量点进行说明的图。在图6中的(A)中,本装置的使用者位于传感器测量区域20的内侧。即,在(A)的状态下,从传感器装置10测量本装置的使用者的视点位置·姿态。与此相对地,在(B)中,本装置的使用者从传感器测量区域20的内侧移动到了外侧。即,在(B)的状态下,无法由传感器装置10测量到本装置的使用者的视点位置·姿态。在从图6的(A)的状态过渡到(B)的状态时(在测量对象超出传感器测量区域20时),将在(A)的状态下测量到位置·姿态的点,即,在传感器测量区域20的内侧最后测量到位置·姿态的点称为边界测量点30。
图7是针对边界测量点30的收集进行说明的图。在利用本装置的空间内,尤其是在传感器测量区域20的边界附近的多个地点,用传感器装置10测量边界测量点的位置。如此,通过测量众多的边界测量点,并进行收集、积累,就可以求出能够视作传感器测量区域的区域。
图8是针对测量区域20内的安全区域、警告区域、可移动区域进行说明的图。通过将已收集的边界测量点30按顺序用线连接,就能够做成一个封闭区域。在边界测量点30的数量足够多时,可以认为该封闭区域与传感器测量区域20几乎相等,将该区域作为可移动区域60。另外,可移动区域60虽然不严格地与传感器测量区域20相等,但可移动区域60是被包含在传感器测量区域20内的区域,可以保证在该区域内能够用传感器10测量位置·姿态。而且,如图8所示,将可移动区域60的内侧周边的区域设定为警告区域50。警告区域50虽然是可以用传感器10测量的区域,但传感器测量区域20的边界就在附近,是超出传感器测量区域20的外侧而造成位置姿态的测量无法进行的可能性很高的区域。并且,在可移动区域60之内除警告区域50以外的区域,与传感器测量区域20的边界离开一定的距离,可以视为能够用传感器10可靠地进行测量的区域。将该区域设定为安全区域40。
在以下说明的各实施方式中,对于复合现实感装置的使用者,在使用本装置的过程中进入到警告区域50内时,就显示边界测量点的位置,并发出警告。以下,针对各实施方式详细地进行说明。
[第1实施方式]
图1是表示第1实施方式的复合现实感装置的概略结构的框图。在图1中,运算处理部100由电脑(computer)等的计算机构成。运算处理部100在其内部具有CPU101、RAM102、声音输出装置103、图像输出装置104、系统总线105、盘装置106、输入装置107、图像输入装置108。
CPU101,根据存储在未图示的ROM或者RAM102中的复合现实感程序,控制复合现实感处理。CPU101被连接在系统总线105上,能够与RAM102、声音输出装置103、图像输出装置104、盘装置106、输入装置107、图像输入装置108相互通信。RAM102,通过存储器等的主存储装置来实现。RAM102,经由系统总线105,临时保存复合现实感程序的程序代码及程序的控制信息、CG数据及测量区域数据、传感器的测量值等的各种数据。声音输出装置103,通过声卡等的设备来实现。经由系统总线105,输入由在CPU101上执行的程序所生成的声音信息,将声音信息转换成适当的声音信号,送出到扬声器装置203。
图像输出装置104,通过图形卡(Graphics card)等的设备来实现。一般地,图像输出装置104保持有未图示的图形存储器(Graphicsmemory)。由在CPU101上执行的程序所生成的图像信息,经由系统总线105,被写入到图像输出装置104所保持的图形存储器中。图像输出装置104,将被写入到图形存储器中的图像信息转换成适当的图像信号,送出到显示装置201上。图形存储器并非一定要由图像输出装置104保持,也可以由RAM102来实现图形存储器的功能。
系统总线105与构成运算处理部100的各个设备连接,是用于上述设备相互通信的通信渠道。
盘装置106,由硬盘等的辅助存储装置来实现。盘装置106,保存复合现实感程序的程序代码及程序的控制信息、虚拟世界的CG对象数据、边界测量点数据、区域信息等。输入装置107,通过各种接口设备来实现。例如,实现将来自连接于运算处理部100的外部的设备的信号,作为数据进行输入,经由系统总线105,将数据写入到RAM102等的功能。图像输入装置108,通过捕捉卡(capture card)等的设备来实现。输入从摄像装置202送出的图像信号,经由系统总线105,将图像数据写入到RAM102或者图形存储器。另外,在对显示装置201使用光学透视型的显示装置时,也可以不具备图像输入装置108。
头部佩戴部200,是本装置的使用者为了体验本实施方式的复合现实感装置而佩戴的。头部佩戴部200由显示装置201、摄像装置202、扬声器203、测量对象301构成。在本实施方式中,是使用者佩戴构成头部佩戴部200的装置的,但只要是使用者能够体验复合现实感的方式,并非一定要是头部佩戴部200的方式,也可以使用台式的显示装置。
显示装置201,通过视频透视型HMD等的显示器来实现。显示装置201,用于显示从图像输出装置104送出的图像信号,向本装置的使用者展现复合现实感。虽然显示装置201是构成头部佩戴部200的装置,但并非一定需要使用者佩戴。只要是使用者能够确认图像的装置,例如作为显示装置201,也可以使用台式的显示装置。
摄像装置202,通过CCD照相机等1个以上的摄像装置来实现。摄像装置202用于拍摄从本装置的使用者的视点看到的现实世界的图像。因此,摄像装置202希望能够佩戴在使用者的头部距离视点位置近的地方,但只要是能够取得从使用者的视点看到的图像的装置即可,并不受此限制。摄像装置202所拍摄的图像作为图像信号而被送出到图像输入装置108。另外,在对显示装置201使用光学透视型的显示装置时,由于本装置的使用者能够直接观察透过显示装置201的现实世界,所以也可以不包括摄像装置202。
扬声器装置203,用于将声音输出装置103送出的声音信号,展现给本装置的使用者。在本实施方式中,虽然扬声器装置203是构成头部佩戴部200的装置,但只要使用者能够确认声音,并非一定需要使用者佩戴。而且,在不使用声音时,也可以不包括扬声器装置203。
传感器部300,测量本装置的使用者的视点位置·姿态。传感器部300由测量对象301、测量装置302、传感器控制装置303构成。测量对象301是传感器装置测量的对象,设置于本装置的使用者所佩戴的头部佩戴部200上。即,测量对象301成为头部佩戴部200、传感器部300两者的构成要素。测量装置302测量测量对象301的位置·姿态。测量装置302不由本装置的使用者佩戴,被设置在能够测量测量对象301的位置。传感器控制装置303向测量对象301、测量装置302发送出控制命令,并且,从测量对象301、测量装置302取得观测数据。传感器控制装置303基于已取得的观测数据,算出测量对象301的位置·姿态信息,并将此作为测量值发送到输入装置107。
另外,测量对象301、测量装置302、传感器控制装置303,有时因传感器装置而使结构不同。
例如,在使用可从Northern Digital公司得到的光学式的传感器OPTOTRAK 3020的情况下,测量对象301由发光装置构成,根据传感器控制装置303的指令而发光。测量装置302由受光装置构成,观测从测量对象301的发光装置发出的光。传感器控制装置303根据测量装置302的观测数据,算出测量对象301的位置·姿态。
另外,例如,在使用可从3rdTech公司得到的光学式传感器Hiball的情况下,测量对象301由受光装置构成,测量装置302由发光装置构成。测量装置302根据传感器控制装置303的指令而发光。测量对象301观测从测量装置302的发光装置发出的光。传感器控制装置303根据测量对象301的观测数据、测量装置302的配置数据,算出测量对象301的位置·姿态。
进而,例如,在使用可从Polhemus公司得到的磁式传感器Fastrak的情况下,测量对象301由接收器构成,观测由测量装置302的磁发生器所产生的磁场,生成观测数据。测量装置302由磁发生器构成,根据传感器控制装置303的指令而产生磁场。传感器控制装置303根据测量对象301的观测数据,算出测量对象301的位置·姿态。
并且,还可以使用如下方法,即本装置的使用者佩戴未图示的标志,对于由与摄像装置202不同的、设置于外部的未图示的摄像装置所拍摄的图像进行图像处理,从图像中抽取出标志,根据标志在图像中的位置算出本装置的使用者的位置·姿态。此时,测量对象301对应于标志,测量装置302对应于外部的摄像装置,传感器控制装置303对应于上述进行图像处理的计算机。而且,也可以使用这样的方法,即本装置的使用者不佩戴明显的标志,摄像装置拍摄本装置的使用者,根据本装置的使用者的图像特征算出本装置的使用者的位置·姿态。此时,测量对象301成为本装置的使用者。
进而,也可以使用如下方法,即在使用本装置的空间中设置成为界标(landmark)的多个未图示的标志,对于由摄像装置202所拍摄的图像进行图像处理,根据图像中的标志的位置算出本装置的使用者的位置·姿态。此时,只需将测量对象301替换成本装置的使用者,将测量装置302替换成标志,将传感器装置303替换成进行上述图像处理的计算机即可。而且,也可以是在使用本装置的空间中不设置明显的标志作为界标,而是通过从摄像装置202所拍摄的图像中抽取出图像特征,来算出本装置的使用者的位置·姿态。此时,测量装置302就成为使用本装置的空间本身。
而且,在通过组合多个传感器装置和测量方法,来测量本装置的使用者的位置·姿态的情况下,也可以视为作为整体而构成传感器部300。即,传感器部300是,测量装置302观测测量对象301,根据观测数据,传感器控制装置303输出测量对象301的位置·姿态的装置,而不论算出位置·姿态的原理和方法如何。
另外,虽然在本实施方式中,传感器部300测量了本装置的使用者的位置·姿态,但也可以是只测量位置。
以下将针对具有以上这样的结构的第1实施方式的控制进行说明。图2是本实施方式的复合现实感装置所进行的处理的流程图。另外,遵照该流程图的程序代码,被存储在本实施方式的装置内的盘装置106或RAM102等存储装置内,由CPU101读出并执行。
首先,在步骤S100中,在进行本装置的复合现实感的展现处理之前,先在步骤S200中进行必要的边界测量值收集处理。所谓边界测量值,是由传感器部300测量出的、在图6、图7中说明过的边界测量点30的位置。对于边界测量值收集处理的详细情况,将根据图3的流程图在后面描述。接着,在步骤S200中,通过使用本实施方式的复合现实感装置,对本装置的使用者进行复合现实感的展现。对于复合现实感展现处理的详细情况,将根据图4的流程图在后面描述。
图3是表示在本实施方式的复合现实感装置中,在步骤S100中进行的边界测量值收集处理的详细情况的流程图。
首先,在步骤S101中,进行边界测量值收集处理所必需的初始化(基本上是传感器的安装(setup))。接着,在步骤S102中,输入装置107取得传感器部300的传感器控制装置303所输出的测量值。CPU101将所取得的测量值(测量对象301的位置·姿态)变换成按照本装置的使用者的视点的位置·姿态。在步骤S103中,判定在步骤S102中是否已得到准确的测量值。此处,所谓“准确”,是指测量值的误差小于容许值。在得到了准确的测量值时,进入步骤S104,将该测量值保持在RAM102中。
例如,在对传感器部300使用光学式传感器的情况下,如果超出到传感器测量区域的外部,就完全无法获得测量值。因此,步骤S103中的判定处理可以根据是否得到了测量值而进行,非常容易。但是,例如,在对传感器部300使用了磁式传感器的情况下,即使超出到传感器测量区域的外部,也只是测量的误差扩大而已,测量值本身仍然能够取得。在这样的情况下,作为应对方法,例如,可以在步骤S102中先将测量值作为履历而保持,在步骤S103中当测量值的变化量超出了既定值时判定为没有获得准确的测量值。该既定值,可以从对于本装置的使用者能够假定的移动量(传感器的测量采样间隔内的最大移动量)和传感器装置所保证的误差来算出。例如,可以将“最大移动量+误差”作为上述既定值而使用。
另外,在步骤S104中,是将在步骤S102中取得的测量值保持在RAM102中的,但在已保持有测量值时,旧的测量值被放弃。即,只保持由传感器测量部300所测量的测量值中的最新的测量值。
另一方面,当在步骤S102中没有得到准确的测量值时,从步骤S103进入步骤S105。在步骤S105中,判定在RAM102中是否保持有测量值。在保持有测量值时进入步骤S106,将RAM102所保持的测量值作为边界测量点30的测量值(边界测量值)而保存到盘装置105中。在本实施方式中,在由传感器部300所进行的上一次测量中得到了准确的测量值,而在这次测量中没有得到准确的测量值时,到达步骤S106。这表示在图6中已经从(A)的状态过渡到了(B)的状态,在这一时刻RAM102所保持着的测量值就成为边界测量值。在边界测量值保存后,也可以删除在RAM102中保持的测量值。
另外,在本实施方式中,所测量出的边界测量值全都被保存到了盘装置105中,但并非一定要保存所有的边界测量值。例如,也可以是对于保存着的边界测量值,通过统计的方法分析边界测量值,将判断为精度较低的边界测量值除去。或者,还可以是在将边界测量值保存到盘装置105中时,比较其与至此所测量出的边界测量值的连续性,判断是否进行保存。
在步骤S107中,判定是否结束边界测量值收集处理。边界测量值收集处理的结束的判定,例如,通过判定用户是否实施了结束指示操作而进行。在继续进行边界测量值的收集时,返回到步骤S102,否则结束边界测量值收集处理。
另外,在本实施方式中,在收集边界测量值的过程中,在步骤S106中是将边界测量值逐一保存到盘装置105中的,但显然可以在收集边界测量值的过程中,先将边界测量值保持在RAM102中,在结束边界测量值收集处理的时刻一并保存到盘装置105中。
接着,针对第1实施方式的复合现实感展现处理进行说明。图4是表示在第1实施方式的复合现实感装置中,在步骤S200中进行的复合现实感展现处理的详细情况的流程图。
在步骤S201中,进行复合现实感展现处理所必需的初始化。例如,CPU101从盘装置105中读出虚拟世界CG对象数据、警告用CG对象数据、边界测量值CG对象数据、在边界测量值收集处理(S100)中被保存了的边界测量值数据、警告用声音数据、程序控制数据等必要的数据,写入到RAM102中。
在步骤S202中,图像输入装置108输入由摄像装置202所拍摄到的从本装置的使用者的视点来看的现实世界图像,写入到RAM102中。CPU101从RAM102中读出图像,根据需要进行修正处理后,写入到图像输出装置104的图形存储器上的帧缓冲器(frame buffer)中。另外,也可以不经由RAM102,而直接将图像输入装置108输入的图像写入到图像输出装置104的图形存储器的帧缓冲器中。另外,在对显示装置201使用了光学透视型的显示装置时,也可以不进行步骤S202的处理。
在步骤S203中,输入装置107取得传感器部300的传感器控制装置303所输出的测量值。CPU101将已取得的测量值变换成按照本装置的使用者视点的位置·姿态,写入到RAM102中。在步骤S204中,CPU101使用在步骤S203中变换后的本装置的使用者的视点位置、和存储在RAM102中的多个边界测量值组,判定本装置的使用者的视点位置是否存在于在图8中说明过的安全区域40内。当视点位置不存在于安全区域40的内部时输出警告声音。另外,也可以在位于图8所示的警告区域50中时、和既不位于安全区域40也不存在于警告区域50(可移动区域60之外)时,变更警告的内容。
为了判定本装置的使用者的视点位置是否存在于安全区域40、警告区域50的内部,例如可以如以下这样进行。此处,设边界测量点30全都是存在于地平面上的点组,设其坐标都是2维的。而且,设安全区域40存在于可移动区域60的内侧,并与可移动区域60相似。设警告区域50为从可移动区域60中除去安全区域40后的区域。并且,安全区域40的大小由某常数k(k为从0到1的任意实数)确定。安全区域40,在k=0时其大小成为0,变成不存在。另外,在k=1时,安全区域40同可移动区域60一致,警告区域50不存在。
首先参照图11说明可移动区域、安全区域、警告区域的设定方法的一个例子。最初,在将边界测量点组设为P(P1、P2...)时,求出成为这些边界测量点组P的重心的点G。接着,针对连接点G和边界测量点组P中的任意1点Pn的线段,求出将线段按k∶(1-k)的比例分割的点Qn。点Qn成为在安全区域40和警告区域50的边界上的点。针对所有的边界测量点组P求出点Q1、Q2...,将其集合设为警告区域边界点组Q。
接着,根据点组P和Q确定安全区域40和警告区域50。通过将构成点组P的各点按顺序连接起来,或者将构成点组Q的各点按顺序用线连接下去,就可以构成某个封闭区域的轮廓线。由点组P构成的封闭区域就是可移动区域60,由点组Q构成的封闭区域就是安全区域40。通过从点组按三角形网格分割各区域,就可以求出这些封闭区域。
作为用于由点组构成三角形网格来分割区域的方法,德洛内(Delaunay)的区域分割法已经广为人知。德洛内的分割法,是将被赋予的点组中的任意的3点作为顶点,针对点组中的所有的点,构成在其外接圆的内侧不包含点组中其他任意点的三角形的方法。
分别针对点组PUQ和点组Q,适用德洛内的分割法等分割区域的方法,来构成三角形网格M以及S。对于点组PUQ,所构成的三角形网格构成可移动区域60,对于点组Q,所构成的三角形网格S是构成安全区域40的三角形网格。从三角形网格M中去除S后的部分,是构成警告区域50的三角形网格A。此时,在RAM102中,生成如图12所示那样的三角形构成表400。在三角形构成表400中,存储有构成各三角形的顶点的索引(index)。
如以上那样确定安全区域40和警告区域50后,将在步骤S203中所取得的本装置的使用者的视点位置V投影为地平面上的点V’。图13是说明在将地平面设为Z=0时,V被投影为V’情况的图。检查该点V’是否存在于构成三角形网格S或者A的三角形的任意一个的内部。如果点V’存在于构成三角形网格的三角形中的任意一个的内部,就判定为V’存在于与三角形网格对应的区域的内侧。即,如果存在于三角形网格S的内部,就判定点V’存在于安全区域40的内侧,如果存在于三角形网格A的内部,就判定点V’存在于警告区域50的内侧。而且,当点V’不存在于安全区域40、警告区域50的任一个的内部时,就判定点V’存在于可移动区域60之外。
对于点V’是否存在于某个三角形T的内部,即三角形和点的包含关系的判定,例如可以如下面这样进行。
将三角形T的各顶点设为T1、T2、T3,连接顶点的3条边设为T1T2、T2T3、T3T1。针对从点V’连接三角形T的各顶点T1、T2、T3的线段V’T1、V’T2、V’T3,判定是否与三角形T的3条边交叉。即,针对线段V’T1与T2T3,线段V’T2与T3T1,线段V’T3与T1T2,检查它们之间是否交叉,只要线段中的任何一个出现交叉,就判定为点V’存在于三角形T的内部。如果任何线段都不交叉,就判定为点V’存在于三角形T的外部。
另外,此处阐述的三角形和点的包含关系的判定方法,只是一个例子而已,也可以使用其他的判定方法。
以下,使用图14,针对判定点V’是否存在于安全区域40或警告区域50的内部的方法,更具体地进行说明。
首先,使用三角形构成表400构成三角形Sn。然后,针对各三角形Sn,判定点V’是否存在于三角形Sn的内部。对于点V’同三角形Sn的包含关系的判定,使用上述的方法。此处,如果点V’存在于三角形Sn的内部,就被判定为点V’存在于安全区域40的内部。在图1 4的例子中,由于点V’不存在于安全区域40的内部,因此进入下面的处理。使用三角形构成表400构成三角形An。然后,针对各三角形An,判定点V’是否存在于三角形An的内部。此处,如果点V’存在于三角形An的内部,就被判定为点V’存在于警告区域50的内部。在图14的例子中,在点V’和三角形A3的包含关系的判定处理中,由于被判定为点V’存在于三角形A3的内部,因此就被判定为点V’存在于警告区域50的内部。另外,如果在该阶段被判定为点V’不存在于警告区域50的内部时,就变成V’不属于安全区域40以及警告区域50的任何一方的内部。即,就被判定为点V’存在于可移动区域60的外部。
另外,在本实施方式中,假设边界测量点是存在于地平面上的2维的点,但也可以将边界测量点作为3维的点来对待。此时,安全区域40、警告区域50、可移动区域60就变成3维封闭区域,成为判定本装置的使用者的视点位置V是否存在于封闭区域的内部。即,只需由点组求出构成封闭区域的面的三角形网格,判定视点位置V是否存在于该三角形网格的内部即可。此时,求三角形网格的步骤,同在3维计算机图形的领域中,由3维的点组构成CG模型的多边形的步骤相同,除了德洛内的区域分割法以外,还提出有free mesh法、bubblemesh法等众多的方法,可以适用这些方法。
在本实施方式中,为了确定封闭区域而由边界测量点组构成三角形网格,但并不局限于该方法。只要是能够根据边界测量点组判定本装置的使用者的视点位置是否存在于安全区域40和警告区域50的方法,使用什么样的方法都可以。
在步骤S205中,根据在步骤S204中所判定的包含本装置的使用者的视点位置的区域种类,控制之后的处理。在本装置的使用者的视点位置存在于安全区域40内时,进入步骤S207。在使用者的视点位置存在于警告区域50内、或者存在于可移动区域60外时,进入步骤S206。
在步骤S206中,CPU101从RAM102读出表示在警告区域50内或者可移动区域60外的警告声音数据,送出到声音输出装置103。通过这样的步骤S206的处理,就能够对于本装置的使用者,更明确地通知当前是在可移动区域60的边界附近的情况。另外,在不输出警告声音时,也可以不进行步骤S206的处理。
在步骤S207中,CPU101从RAM102读出虚拟世界的CG对象的数据,根据在步骤S203中算出的本装置的使用者的视点位置·姿态来描绘CG,输出到图形存储器上。图像输出装置104,合成被描绘在图形存储器上的各种缓冲器中的数据,对显示装置201发送图像信号。在图像输出装置104具有图形加速器(graphics accelerator)等描绘专用的运算装置时,图像输出装置104进行步骤S207的所有的处理。
而且,在步骤S205中,在被判定为视点位置存在于警告区域50内时,CPU101进一步在将边界测量值投影到地平面上之后的坐标上,描绘边界测量值描绘用CG。由此,就能够对本装置的使用者,视觉地通知当前的使用者的位置在可移动区域60的边界附近这一情况。并且,在被判定为视点位置存在于警告区域50内时,也可以取代边界测量值描绘用CG,用CG描绘警告区域50的地平面和区域的边界线,由此对本装置的使用者通知是在可移动区域60的边界附近这一情况。另外,在步骤S205中,在被判定为视点位置存在于可移动区域60之外时,也可以使得不进行步骤S207的处理。在步骤S208中判定是否继续复合现实感展现处理(有无结束的指示),在继续处理时返回步骤S202。另一方面,在结束处理时结束本复合现实感展现处理。
图9表示显示部200所显示的图像的例子。图9的方形的框内,表示显示部200所显示的合成图像90。合成图像90,是对现实世界的图像重叠了虚拟世界的图像后的图像。在步骤S205中,当被判定为使用者的视点位置存在于安全区域40的内部时,合成图像90由未图示的现实世界图像和虚拟CG对象81构成。当被判定为使用者的视点位置存在于警告区域50的内部时,合成图像90成为由现实世界图像和虚拟CG对象81、再加上边界测量点CG对象31、可移动区域CG对象61、指示器(indicator)CG对象71构成。
虚拟CG对象81,是在本装置中对使用者所展现的主要的CG对象,在步骤S207中作为虚拟图像而通过CG被描绘。边界测量点CG对象31,是用于对本装置的使用者,表示在现实世界中无法观察到的边界测量点的位置的CG对象。另外,指示器CG对象71,是用于辅助性地对本装置的使用者,表示边界测量点CG对象31被显示的位置的CG对象。边界测量点CG对象31和指示器CG对象71,在步骤S207中,表示在步骤100中收集了的边界测量点的坐标地、作为虚拟图像而通过CG被描绘。另外,在图9中,是用×符号来表现边界测量点CG对象,用箭头符号表现指示器CG对象71的,但这些只是一个例子而已,可以描绘任何形状的CG对象。
可移动区域CG对象61,是用于对本装置的使用者,表示在现实世界中无法观察到的可移动区域60的CG对象。在步骤S207中,例如,用具有特定的颜色的多边形或者线框(wire frame)的CG,将对应于地平面上的可移动区域60的部分作为虚拟图像来描绘,由此能够向本装置的使用者表示可移动区域60的范围。
另外,在本实施方式中,显示了用于表示可移动区域60的CG对象,但也可以使之显示用于表示安全区域40、警告区域50的CG对象。
而且,在本实施方式中,当使用者位于警告区域50内时,显示了边界测量点CG对象31、可移动区域CG对象61、指示器CG对象71的全部,但也可以是只显示这些CG对象中的一部分,或者通过本装置的使用者或未图示的操作人员的操作,来切换各个CG对象的显示·不显示。
如上述那样,在步骤S207中,当被判定为使用者的视点位置存在于安全区域40的内部时,合成图像90由未图示的现实世界图像和虚拟CG对象81构成,不描绘边界测量点CG对象31、可移动区域CG对象61、指示器CG对象71。但是,在步骤S207中,即使被判定为使用者的视点位置存在于安全区域40的内部时,也可以使得描绘边界测量点CG对象31、可移动区域CG对象61、指示器CG对象71的全部或者一部分。而且,也可以使得通过本装置的使用者或者未图示的操作人员的操作,来切换各个CG对象的显示·不显示。
[第2实施方式]
在第1实施方式中,在执行复合现实感展现处理期间,不进行边界测量值收集处理。在第2实施方式的复合现实感装置中,除在步骤S100中进行边界测量值的收集外,还在步骤S200所进行的复合现实感展现处理中,进行边界测量值的收集。由此,使得安全区域40、警告区域50、可移动区域60可以实时更新,能够更适当地进行用于不使使用者移动到可移动区域的外侧的引导。
关于第2实施方式中的复合现实感装置的概略构成、整体的处理流程、在步骤S100中所进行的边界测量值收集处理的详细情况,都与第1实施方式相同。但是,步骤S100的边界测量值收集处理并非一定要进行。
图10是表示在第2实施方式的复合现实感装置中,在步骤S200中所进行的复合现实感展现处理的详细情况的流程图。在图10中,关于从步骤S201到步骤S204的处理、以及从步骤S206到步骤S208的处理,与第1实施方式相同。而且,步骤S211~步骤S215的处理,是依照第1实施方式的步骤S103~S106的处理。
在步骤S205中,根据在步骤S204中所判定的包含本装置的使用者的视点位置的区域的种类,来控制其后的处理。当本装置的使用者的视点位置存在于安全区域40内时,进入步骤S211,当存在于警告区域50内或者可移动区域60之外时,则进入步骤S212。
在步骤S211中,将在步骤S203中已取得的测量值保持在RAM102中。在已经保持有测量值时,就将旧的测量值删除。即,只保持由传感器部300所测量出的测量值中的最新的测量值。在步骤S212中,判定是否获得了准确的测量值(用与图3的步骤S103相同的方法进行判定)。在被判定为获得了准确的测量值时,进入步骤S215,将测量值保持在RAM102中,进入步骤S206。另一方面,如果没有获得准确的测量值,则进入步骤S213,判定RAM102中是否保持有测量值。在保持有测量值时进入步骤S214,在没有保持时进入步骤S206。在步骤S214中,将保持在RAM102中的测量值作为边界测量点30的测量值(边界测量值)追加到边界测量值数据中。另外,伴随于边界测量值数据的追加(更新)的各区域的三角形网格的更新,只需在结束了上述复合现实感展现处理后,在线(online)地进行即可。或者,也可以使得在上述复合现实感展现处理过程中在后台进行处理,而更新区域的数据。
在第2实施方式中,在步骤S200的复合现实感展现处理的过程中,当使用者超出到传感器测量区域20的外侧时,将此时的边界测量值追加到边界测量值数据中。通过这样做,可以一边展现复合现实感,一边不断提高边界测量值数据的精度。另外,即使是在步骤S200的复合现实感展现处理的过程中,判明了在步骤S100的边界测量值收集处理中已收集的边界测量值的数量不足够的情况下,也可以应对。
[其他实施方式]
另外,显然本发明的目的还可以这样来实现:将记录了实现上述实施方式的功能的软件的程序代码的存储介质,提供给系统或者装置,通过该系统或者装置的计算机(或者CPU、MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质中读出的程序代码本身就实现上述实施方式的功能,存储了该程序代码的存储介质就构成本发明。
作为用于提供程序代码的存储介质,可以使用例如软盘、硬盘、光盘、光磁盘、CD-ROM、CD-R、磁带、非易失性存储卡、ROM等。
而且,不仅通过计算机执行所读出的程序代码,能够实现上述实施方式的功能,根据该程序代码的指示,在计算机上运行的OS(操作系统)等进行实际处理的一部分或全部,通过该处理实现上述实施方式的情况显然也包含在本发明的范围内。
并且,从存储介质读出的程序代码,在被写入到插在计算机中的功能扩充卡或连接在计算机上的功能扩充单元所具备的存储器中后,根据该程序代码的指示,该功能扩充卡或功能扩充单元所具有的CPU等进行实际处理的一部分或全部,通过该处理来实现上述实施方式的情况显然也包含在本发明的范围内。
在不脱离本发明的精神和范围的前提下,本发明可以有各种不同的实施方式,并且应该理解为,本发明不受特定的实施方式的限定,其范围由所附的权利要求书限定。