CN111602185B - 基于方位的位置指示和设备控制 - Google Patents
基于方位的位置指示和设备控制 Download PDFInfo
- Publication number
- CN111602185B CN111602185B CN201980008541.XA CN201980008541A CN111602185B CN 111602185 B CN111602185 B CN 111602185B CN 201980008541 A CN201980008541 A CN 201980008541A CN 111602185 B CN111602185 B CN 111602185B
- Authority
- CN
- China
- Prior art keywords
- computing device
- orientation
- ray
- dimensional space
- controllable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 46
- 230000000007 visual effect Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 239000003550 marker Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C17/00—Arrangements for transmitting signals characterised by the use of a wireless electrical link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C21/00—Systems for transmitting the position of an object with respect to a predetermined reference system, e.g. tele-autographic system
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C23/00—Non-electrical signal transmission systems, e.g. optical systems
- G08C23/04—Non-electrical signal transmission systems, e.g. optical systems using light waves, e.g. infrared
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C2201/00—Transmission systems of control signals via wireless link
- G08C2201/30—User interface
- G08C2201/32—Remote control based on movements, attitude of remote control device
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C2201/00—Transmission systems of control signals via wireless link
- G08C2201/50—Receiving or transmitting feedback, e.g. replies, status updates, acknowledgements, from the controlled devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提供了用于识别位置和控制设备的系统和方法。例如,用户可以通过从物理空间中的多个方位瞄准位置来指示该位置。用户进一步可以通过瞄准可控设备来识别该设备。示例系统和方法包括确定在三维空间内的第一方位、接收第一方向输入、以及基于第一方位和第一方向输入来确定第一射线。示例系统和方法还包括确定在三维空间内的第二方位、接收第二方向输入、以及基于第二方位和第二方向输入来确定第二射线。示例系统和方法还可以包括基于第一射线和第二射线来识别在三维空间内的位置。
Description
相关申请的交叉引用
本申请是2018年1月29日提交的美国申请No.15/882,633的延续,其公开内容通过引用整体并入本文。
背景技术
诸如住宅和办公室的建筑物通常包括许多可以远程访问和/或控制的设备。例如,恒温器可以允许用户经由诸如智能手机的计算设备来访问和调整其设置。在一些示例中,可以经由各种类型的无线通信来控制设备。例如,一些设备经由通过WiFi或蓝牙传输的指令被控制。一些设备也可以经由红外信号被控制。
发明内容
本公开描述了用于基于方位的位置指示和设备控制的系统和方法。例如,本文描述的系统和技术可以用于指示物理空间中的位置,诸如可控设备的位置。另外,该系统和技术可以用于识别物理空间中的先前定义的位置,以便控制该位置处的设备。
一个方面是一种非暂时性计算机可读存储介质,包括存储在其上的指令。所述指令在由至少一个处理器执行时,被配置成使计算系统接收三维空间的表示,在计算设备瞄准三维空间中的目标位置的同时基于三维空间的表示来确定计算设备的第一方位和第一定向,并且基于计算设备的第一方位和第一定向,确定在三维空间的表示内的从计算设备的第一方位朝向目标位置延伸的第一射线。所述指令由至少一个处理器执行时,还被配置成使计算系统:在计算设备瞄准目标位置的同时,基于三维空间的表示来确定计算设备的第二方位和第二定向,并且基于计算设备的第二方位和第二定向,确定在三维空间的表示内的从计算设备的第二方位朝向目标位置延伸的第二射线。所述指令由至少一个处理器执行时,还被配置成使计算系统:基于第一射线和第二射线,确定在三维空间内的目标位置的坐标,并且更新三维空间的表示以包括目标位置。
另一方面是一种计算设备,其包括至少一个处理器和存储指令的存储器。所述指令在由至少一个处理器执行时,使计算设备接收三维空间的表示,并且在计算设备瞄准可控设备的同时,确定在三维空间内的计算设备的方位和定向。指令还使计算设备基于方位、定向和表示来识别可控设备;生成用于与所识别的可控设备交互的用户界面;并且响应于经由用户界面接收到用户输入,基于接收到的用户输入将命令传输到可控设备。
另一方面是一种方法,该方法包括:接收三维空间的表示,并且通过计算设备来确定在三维空间内的第一方位。该方法还包括:由计算设备来接收指示从第一方位到目标位置的方向的第一方向输入,以及基于第一方向输入,确定在三维空间的表示内的从第一方位朝向目标位置延伸的第一射线。该方法还包括:确定在三维空间内的第二方位;接收指示从第二方位到目标位置的方向的第二方向输入;以及基于第二方向输入,确定在三维空间的表示内的从第二方位朝向目标位置延伸的第二射线。该方法还包括:基于第一射线和第二射线,确定在三维空间内的目标位置的坐标。
在附图和以下描述中阐述了一种或多种实施方式的细节。根据说明书和附图以及根据权利要求书,其他特征将会显而易见。
附图说明
图1是图示根据示例实施方式的系统的框图。
图2是示例物理空间的第三人视图,其中用户正在基于将图1的计算设备瞄准可控设备来与可控设备进行交互。
图3是根据本文描述的实施方式的识别由用户指示的物理空间中的位置的示例方法的图。
图4是根据本文描述的实施方式的识别由用户指示的可控设备的位置的示例方法的图。
图5A-5G是根据本文所述的实施方式的识别由用户指示的可控设备的位置的步骤的示意图。
图6是根据本文描述的实施方式的识别用户正在瞄准的可控设备的示例方法的图。
图7A至图7C是根据本文所述的实施方式的识别用户正在瞄准的可控设备的步骤的示意图。
图8是根据本文描述的实施方式的识别由用户指示的位置的示例方法的图。
图9A-9D是根据本文所述的实施方式的识别由用户指示的位置的步骤的示意图。
图10示出可以被用于实现本文描述的技术的计算机设备和移动计算机设备的示例。
具体实施方式
现在将详细参考本公开的非限制性示例,其示例在附图中被图示。以下通过参考附图描述示例,其中,相同的参考数字指的是相同的元件。当示出相同的参考数字时,不再重复对应的描述并且感兴趣的读者可以参考先前讨论的附图来描述相同的元件。
本公开描述了简化在诸如建筑物的物理空间内的设备的识别和控制的技术改进。
在建筑物内可以被远程控制的设备数量已经日益增长。可控设备的一些示例包括灯、开关、插座、恒温器、标记阅读器、火灾或其他环境警报器、百叶窗、诸如电视、立体声音响、媒体播放器的娱乐设备以及诸如无线网络接入点、打印机、扫描仪、和复印机的计算设备。在一些情况下,建筑物可能具有多个同一类型的可控设备。例如,办公大楼可能具有成百上千个相同或几乎相同的可控灯泡。用户可能希望使用(例如)智能手机来访问、控制或以其它方式与目标可控设备通信。但是,在这些情况下,用户可能难以在众多可用设备中识别目标设备。
在常规过程中,用户可以最初将表示可控设备的图标放置在表示建筑物的二维平面图上。用户可以使用二维平面图来选择目标可控设备。但是,平面图的初始设置可能很繁琐、耗时且不准确。此外,在初始设置之后,当表示多个设备的图标在二维平面图上彼此靠近时,用户可能会发现使用二维平面图来识别目标设备具有挑战性。此外,二维平面图不能很好地缩放到三维空间,因为可控设备可能位于不同楼层的相似二维位置处,甚至位于同一楼层但是处于不同的垂直方位。
在至少一些实施方式中,用户可以通过从第一位置瞄准可控设备,移动到第二位置,并且再次从第二位置瞄准可控设备,来在建筑物的三维表示(或地图层)上识别可控设备的位置。第二位置可以(例如)从第一位置开始横向偏移。在一些实施方式中,系统使用两个以上的位置来确定可控设备的位置。例如,使用两个以上的位置可以提高确定该位置的精度。
在一些实施方式中,用户通过使计算设备瞄准可控设备来瞄准可控设备。例如,将计算设备瞄准可控设备可以包括:相对于可控设备(或目标位置)以特定方式使计算设备定向。在一些实施方式中,用户通过将移动计算设备(例如,智能手机或平板电脑)的至少一部分物理地对准(例如,瞄准、指向、定向)可控设备来瞄准可控设备。例如,用户可以通过将计算设备的顶部物理地指向可控设备来瞄准可控设备(例如,像计算设备是遥控器一样)。在一些实施方式中,用户通过将可以位于计算设备的背面板上的移动计算设备的相机镜头物理地瞄准可控设备来瞄准可控设备。将计算设备瞄准可控设备可以包括:将计算设备瞄准可控设备同时不发射针对可控设备的信号(即,计算设备不发射IR信号或激光信号)。
当用户瞄准可控设备时,移动计算设备确定与位置和方向相对应的坐标。例如,可以使用移动计算设备的视觉定位模块来确定方位,并且可以基于使用视觉定位模块来确定或使用(例如)惯性运动单元测量的移动计算设备的定向来确定方向。一些实施方式包括头戴式显示设备,并且用户可以通过看着可控设备来瞄准该设备。一些实施方式还可以包括手部跟踪模块,并且用户可以通过向可控设备做手势(例如,指向可控设备)来瞄准可控设备。
尽管本文描述的许多示例使用视觉定位系统来确定计算设备的方位和定向,但是其他实施方式可以使用其他类型的方位和定向技术。可以使用其他类型的6自由度(6-dof)定位系统来实现,这些定位系统提供计算设备的6-dof位姿。
计算设备可以基于从第一位置和第二位置的用户的瞄准来确定与目标设备的位置相关联的目标坐标。例如,计算设备可以基于所确定的坐标和方向在空间的三维表示中生成第一射线。生成射线可以(例如)包括确定表示在空间的表示中的射线的方程。在一些实施方式中,射线包括矢量和/或一个或多个坐标或由矢量和/或一个或多个坐标来表示。例如,射线可以在确定的方向上从确定的坐标发出。射线也可以表示为线或线段。计算设备可以以类似的方式在三维表示中生成第二射线。然后,计算设备可以(例如)通过基于第一射线和第二射线之间的最近点识别坐标来确定目标坐标。在一些情况下,射线可能会相交,并且相交点将用于确定目标坐标。在其他情况下,射线实际上可能不相交,并且可以使用每条射线上的最近点之间的中点来确定目标坐标。在确定了目标坐标时,然后用户可以输入有关目标设备的信息,诸如选择设备类型、提供名称以及设置用于控制设备的访问/权限。然后,计算设备可以(例如,本地或在远程服务器上)存储与可控设备相关联的信息,包括所确定的坐标。在一些实施方式中,计算设备还可以建立与可控设备相关联的相交体。相交体的大小和形状可以基于可控设备的属性。在一些实施方式中,可以基于射线到相交的靠近程度(例如,当射线更远时,体积较大)来确定相交体的大小和形状。
之后,用户可以瞄准先前已被添加到物理空间的三维表示中的可控设备,以调用用于控制该设备的界面。例如,计算设备可以基于在用户正在瞄准可控设备时确定的位置和方向来生成射线。然后,计算设备可以针对在物理空间的三维表示中的与可控设备相关联的坐标和/或相交体来评估射线。如果射线与相交体之一相交或在坐标附近通过,则可以显示控制相关联的可控设备的界面。如果射线指向多个可控设备,则可以显示选择界面以允许用户选择所需的目标设备。可以以基于距用户的距离确定的顺序在选择界面上列出可控设备。
尽管本文描述的许多示例涉及使智能手机朝向可控设备定向并使用由智能手机显示的用户界面来控制设备,但是替选方案是可能的。例如,一些实施方式包括增强现实(AR)系统,其中用户佩戴可将内容覆盖在用户视野上的头戴式显示器。在这些实施方式中,用户可以使用手势、头部定向或者甚至注视来瞄准可控设备。然后,用于控制识别的设备的用户界面可能会覆盖在用户的视野上。
图1是图示根据示例实施方式的系统100的框图。系统100用于基于方位的位置指示和设备控制。在一些实施方式中,系统100包括计算设备102和位置数据源106。还示出网络108,计算设备102可以通过该网络与位置数据源106通信。
计算设备102可以包括存储器110、处理器组件112、通信模块114、传感器系统116和显示设备118。存储器110可以包括设备控制引擎120、位置指示引擎122、设备识别引擎124、定位系统126和设备控制数据128。在一些实施方式中,计算设备102是移动设备(例如,智能手机)。
传感器系统116可以包括各种传感器,诸如相机组件132。传感器系统116的实现方式还可以包括其他传感器,包括(例如)惯性运动单元(IMU)134、光传感器、音频传感器、图像传感器、距离和/或接近传感器、诸如电容性传感器的接触传感器、定时器和/或其他传感器和/或传感器的不同组合。在一些实施方式中,定位系统126可以使用传感器系统116来确定计算设备102在物理空间内的位置和定向和/或识别物理空间内的特征或对象。
相机组件132捕获计算设备102周围的物理空间的图像和/或视频。相机组件132可以包括一个或多个相机。相机组件132还可以包括红外相机。相机组件132捕获的图像可以被用于基于从存储器110或诸如位置数据源106的外部计算设备接收到的物理空间的表示来确定计算设备102在诸如内部空间的物理空间内的位置和定向。在一些实施方式中,物理空间的表示可以包括物理空间的视觉特征(例如,从物理空间的图像中提取的特征)。该表示还可以包括与通过视觉定位系统使用的那些特征相关联的位置确定数据,以基于物理空间的一个或多个图像来确定物理空间内的位置和/或方位。该表示还可以包括物理空间内的至少一些结构的三维模型。在一些实施方式中,该表示不包括物理空间的三维模型。
在一些实施方式中,计算设备102可以包括视觉定位系统,该视觉定位系统将由相机组件132捕获的图像(或者从那些图像中提取的特征)与物理空间的表示内的特征的已知布置进行比较,以确定在物理空间内计算设备102的6-dof位姿(例如,位置和定向)。
设备控制引擎120允许用户通过瞄准设备来控制在诸如建筑物的物理空间中的设备。例如,当用户瞄准设备时,设备控制引擎120可以使用设备识别引擎124来识别用户正在瞄准的设备。例如,设备识别引擎124可以基于用户正在瞄准的方向和如使用定位系统126确定的计算设备102的位置来识别可控设备。设备识别引擎124可以在物理空间的表示中的方向上从确定的位置投射射线,并且然后确定射线是否识别出该表示中的任何可控设备。在一些实施方式中,可控设备与表示中的相交体相关联,并且当射线与可控设备的相关联的相交体相交时,可控设备被识别。
设备控制数据128可以包括与可控设备相关联的坐标和/或相交体。设备控制数据128还可以存储用户界面、用于控制可控设备并与其交互的命令协议以及关于可控设备的其他信息(例如,类型信息、名称、注释、访问控制属性等)。在一些实施方式中,使用位置指示引擎122来生成坐标和/或相交体。例如,可控设备的位置可以由用户从物理空间内的多个位置瞄准可控设备来指示。在一些实施方式中,从位置数据源106检索坐标和/或相交体,其可以存储关于由多个用户提供的可控设备的信息。
定位系统126确定计算设备102在物理空间内的方位。在一些实施方式中,定位系统126包括视觉定位系统,该视觉定位系统通过捕获物理空间的图像、从那些图像中提取特征、并且将那些图像和/或特征与物理空间的表示中的特征进行比较,来确定物理空间内计算设备102的6-dof位姿。
在一些实施方式中,设备控制引擎120、位置指示引擎122、设备识别引擎124和定位系统可以包括存储在存储器110中的指令,该指令在由处理器组件112执行时,使处理器组件112执行本文所述的操作以指示位置并基于位置与设备进行交互。设备控制数据128可以包括存储在存储器中的数据,并且在至少一些实施方式中,包括指令,该指令在由处理器组件112执行时,使处理器组件112显示用户界面并发出与各种控制设备进行交互的命令。
设备控制引擎120和位置指示引擎122可以使显示设备118基于从相机组件132、IMU 134和/或传感器系统116的其他部件接收到的输入来生成用户界面。例如,IMU 134可以检测计算设备102和/或相关联的HMD的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,诸如(例如)加速度计、陀螺仪、磁力计和其他这样的传感器。可以基于由方位系统126和/或IMU 134中包括的传感器提供的数据来检测和跟踪计算设备102(或相关联的HMD)的定向。检测到的计算设备102(或相关联的HMD)的定向可以让系统转而确定用户正在瞄准的方向。基于检测到的定向,设备控制引擎120可以使用设备识别引擎124来确定用户正在瞄准的可控设备,并且生成用于与可控设备交互的相关联的用户界面。在一些实施方式中,位置指示引擎122可以使用所确定的方向来识别在用户周围的物理空间的表示中用户所指向的位置。在一些实施方式中,识别三维空间中的位置可能需要从物理空间内的不同方位确定用户多次瞄准的方向。
尽管图1没有示出,一些实施方式包括HMD。HMD可以是与计算设备102分离的设备,或者计算设备102可以包括HMD。在一些实施方式中,计算设备102经由电缆与HMD通信。例如,计算设备102可以将视频信号和/或音频信号传输到HMD以向用户显示,并且HMD可以将运动、方位和/或定向信息传输到计算设备102。
计算设备102还可以包括各种用户输入部件(未示出),诸如使用无线通信协议与计算设备102进行通信的控制器。在一些实施方式中,计算设备102可以经由有线连接(例如,通用串行总线(USB)电缆)或经由无线通信协议(例如,任何WiFi协议、任何蓝牙协议、紫蜂等)与头戴式显示器(HMD)设备(未显示)进行通信。在一些实施方式中,计算设备102是HMD的部件并且可以被包含在HMD的壳体内。
存储器110可以包括一个或多个非暂时性计算机可读存储介质。存储器110可以存储可由计算设备102使用的指令和数据,以基于计算设备102的方位来确定目标位置的坐标和/或基于用户瞄准目标可控设备来识别目标可控设备。
处理器组件112包括能够执行指令(诸如由存储器110存储的指令)的一个或多个设备,以执行与基于方位的位置指示和设备控制相关联的各种任务。例如,处理器组件112可以包括中央处理单元(CPU)和/或图形处理器单元(GPU)。例如,如果存在GPU,则一些图像/视频渲染任务,诸如生成和显示用于可控设备的用户界面,可以从CPU卸载到GPU。
通信模块114包括用于与诸如位置数据源106的其他计算设备进行通信的一个或多个设备。通信模块114可以经由无线或有线网络(诸如网络108)进行通信。
IMU 134检测计算设备102的运动、移动和/或加速度。IMU 134可以包括各种不同类型的传感器,诸如(例如)加速度计、陀螺仪、磁力计和其他此类传感器。可以基于IMU 134中包括的传感器提供的数据来检测和跟踪计算设备102的方位和定向。在一些实施方式中,IMU 134被配置成检测HMD的方位和定向,这可以允许系统转而检测、跟踪用户的注视方向和头部运动。
网络108可以是因特网、局域网(LAN)、无线局域网(WLAN)和/或任何其他网络。例如,计算设备102可以经由网络接收音频/视频信号,其可以在说明性示例实施方式中作为AR内容的一部分被提供。
图2是示例物理空间200的第三人视角,其中用户正在基于将计算设备102瞄准可控设备240来与可控设备240进行交互。在此示例中,用户正在将计算设备102的顶部边缘瞄准可控设备240。在其他实施方式中,用户可以以不同方式将计算设备102瞄准可控设备240(例如,诸如通过将计算设备102的相机瞄准可控设备240)。在一些实施方式中,用户可以通过手势、头部运动或眼睛运动来瞄准设备。然后,计算设备102在用户的方向上生成射线202。计算设备将射线202与存储在物理空间200的表示中的可控设备的先前定义的位置进行比较,以识别用户正在瞄准可控设备240。
在此示例中,可控设备240是恒温器,并且计算设备102正在显示用于与恒温器交互的用户界面屏幕204。用户界面屏幕204仅是示例,并且不同的实施方式将包括不同的元素。在一些实施方式中,基于用户通过瞄准指示的可控设备的类型来生成用户界面屏幕。在该示例中,用户界面屏幕204包括信息字段206、增加控制元素208、温度字段210和降低控制元素212。信息字段206可以(例如)显示关于可控设备240的信息,诸如由用户先前键入的设备类型、名称、位置和/或注释。温度字段210可以显示由可控设备240感测到的当前温度和/或可控设备240的当前温度设置。可以致动增加控制元素208和降低控制元素212以调整可控设备240的温度设置。
除了可控设备240外,物理空间200还包括可控设备242、244、246和248。在此示例中,可控设备242是电显示设备,可控设备244是开关,可控设备246是灯,并且可控设备248是插座。用户可以通过瞄准这些可控设备中的任何一个来识别这些可控设备中的任何一个,访问或控制该可控设备。响应于用户瞄准可控设备上,计算设备102可以生成用户界面,该用户界面提供特定于控制所识别的可控设备的元素。物理空间200还包括在墙壁上的标记250。在一些实施方式中,用户可以指示物理空间内的位置。例如,用户可以使用计算设备102来指示标记250的位置,以(例如)提交维护请求(例如,以识别物理空间内的损坏或漏泄)。
在一些实施方式中,用户界面屏幕204在计算设备102的显示设备上被显示给用户。在一些实施方式中,用户界面屏幕204可以覆盖在物理空间的图像(或由计算设备的相机捕获的视频馈送)上。另外,用户界面屏幕204可以在使用由用户佩戴的HMD的用户的视场上被显示为AR内容。
图3是根据本文描述的实施方式的识别由用户指示的物理空间中的位置的示例方法300的图。该方法300可以例如由计算设备102的位置指示引擎122执行以允许用户指示物理空间内的一个或多个位置,诸如可控设备的位置。
在操作302处,在用户从第一方位正在瞄准目标位置的同时,确定第一方位和方向。在一些实施方式中,用户通过持有诸如智能手机的移动计算设备(像遥控器一样)瞄准目标位置,并且将该设备的顶部瞄准目标位置。当用户正在瞄准目标位置时,用户可以发出命令或以其他方式指示计算设备应确定第一方位和方向。例如,用户可以按下计算设备上的物理按钮或致动虚拟控件以指示计算设备瞄准了目标位置。用户还可以发出计算设备瞄准了目标位置的语音指示。计算设备确定用户正在从其瞄准的方位和用户正在瞄准的方向。例如,计算设备可以使用视觉方位系统来确定方位。在一些实施方式中,计算设备可以使用由信标或其他通信设备发射的射频信号和/或航位推算技术,基于全球定位系统、三角测量来确定方位。可以基于使用诸如视觉定位系统和/或IMU的方位系统所确定的计算设备的定向来确定用户瞄准的方向。图5A示出被布置在物理空间200中的第一方位502处并且瞄准可控设备246的计算设备102的示例。
在一些实施方式中,计算设备被配置成使得用户通过将相机镜头指向目标位置来瞄准。由相机捕获的图像可以显示在计算设备的显示设备上,并且目标标记可以覆盖在显示的图像上。例如,然后用户可以通过将目标标记与显示设备上的目标位置对准来瞄准目标位置。一些实施方式包括手部跟踪器,并且用户通过手势瞄准目标位置(例如,通过指向目标位置)。一些实施方式包括HMD,并且用户通过将他或她的头部朝向目标位置定向来瞄准目标位置。另外,一些实施例包括眼睛跟踪器,并且用户可以通过看着位置来瞄准目标位置。
在操作304处,在用户从第二方位瞄准目标位置时确定第二方位和方向。除了用户已经移动到物理空间内的第二方位之外,操作304可以类似于操作302。图5B示出被布置在物理空间200中的第二方位506处并且瞄准可控设备246的计算设备102的示例。
在操作306处,基于第一方位和方向以及第二方位和方向,确定目标位置的坐标。在一些实施方式中,将从第一方位在第一方向上延伸的第一射线与从第二方位在第二方向上延伸的第二射线进行比较。在一些实施方式中,计算第一射线与第二射线之间的相交以识别与目标位置相关联的坐标。第一射线和第二射线可以不相交。相反,可以识别第一射线上的到第二射线的最近点和第二射线上的到第一射线的最近点。这些最近点可以被用于识别与目标位置相关联的坐标。例如,最近点之间的中点可以被用作目标位置的坐标。在一些实施方式中,以类似方式使用附加方位和方向来确定目标位置。例如,可以在用户从第三方位瞄准目标位置时确定第三方位和方向。将从第三方位在第三方向上延伸的第三射线与第一射线和第二射线进行比较。使用第三射线(或以类似方式确定的更多射线)可以增加所确定位置的精度。
图5A示出从第一方位502在第一方向上延伸到目标位置处的可控设备246的第一射线504的示例。图5B示出从第二方位506在第二方向上延伸到目标位置处的可控设备246的第二射线508的示例。图5C示出第一射线504和第二射线508被用于识别与目标位置相关联的坐标510的示例。
在一些实施方式中,其他几何结构被用于确定目标位置的坐标。例如,一些实施方式可以基于第一位置和第一方向生成第一平面,并且基于第二位置和第二方向生成射线。然后可以基于第一平面和射线的交点来确定目标位置的坐标。
在操作308处,关于目标位置的信息与坐标相关联。例如,用户可以经由计算设备生成的用户界面来提供关于目标位置的信息。可替选地,用户可以将信息作为语音输入提供给计算设备。例如,用户可以识别在目标位置处的可控设备的类型。用户还可以提供文本信息,诸如有关目标位置的名称、描述或注释。然后,可以将用户提供的信息与目标位置的坐标关联起来进行存储。此信息可以本地存储在计算设备上和/或传输到服务器计算设备(例如,以便其他计算设备也可以访问与目标位置相关联的信息)。
此外,在一些实施方式中,信息还包括与目标位置相关联的大小、形状或体积。以后可以使用此信息来确定该位置是否被瞄准。
图4是根据本文描述的实施方式的识别由用户指示的可控设备的位置的示例方法400的图。该方法400可以(例如)由计算设备102的位置指示引擎122执行,以允许用户指示物理空间内一个或多个可控设备的位置,使得用户可以如本文所述地控制那些设备。当可控设备被安装在物理空间内或其他时间时,可以执行此方法。
在操作402处,生成用户提示以指导用户将计算设备瞄准目标可控设备。在一些实施方式中,用户提示包括视觉指令,该视觉指令可以包括图像和/或文本,其被显示在计算设备102的显示设备上。用户提示还可以包括音频信号。
在操作404处,确定计算设备的第一方位和方向。在一些实施方式中,在接收到指示计算设备正在瞄准目标可控设备的用户输入之后,确定计算设备的第一方位和定向。如前所述,确定计算设备的方位和定向可以包括使用诸如视觉定位系统的定位系统和计算设备的IMU。
在操作406处,生成用户提示以指导用户移动到另一位置并将计算设备瞄准目标可控设备。像在操作402中生成的用户提示一样,此用户提示可以包括视觉或音频组成部分。在一些实施方式中,用户提示可以指导用户沿特定方向移动或移动特定距离。
在操作408处,确定计算设备的第二方位和定向。可以以类似于在操作404处确定第一方位和定向的方式来确定第二方位和定向。
在操作410处,基于从第一方位和定向生成的第一射线和从第二方位和定向生成的第二射线,确定与目标设备相关联的位置的坐标。操作410可以类似于操作306。
如前所述,图5A示出从第一方位502在第一方向上延伸到目标设备(即,可控设备246)的第一射线504的示例,并且图5B示出从第二方位506在第二方向上延伸到目标设备的第二射线508的示例。图5C示出第一射线504和第二射线508被用于识别与目标设备相关联的坐标510的示例。
在操作412处,生成用户提示以指导用户提供有关目标设备的信息。像在操作402和406中生成的用户提示一样,该用户提示可以包括视觉或音频组成部分。在一些实施方式中,用户提示可以指导用户沿特定方向移动或移动特定距离。
图5D示出示例用户界面屏幕520,其由一些实现方式显示以提示用户提供有关目标设备的信息。在该示例中,用户界面屏幕520包括ID字段522、类型字段524和访问控制字段526。其他实施方式可以包括不同、更少或更多的字段。在一些实施方式中,ID字段522被配置成接收可用于与可控设备通信的通用资源定位符,类型字段524是填充有不同设备类型的列表的下拉列表,并且访问控制字段526是不同的访问控制级别(例如,公共、私有、管理员等)的下拉列表。在一些实施方式中,被选择/键入用于设备类型的值可以用于识别设备的功能、用于与设备交互的命令以及用于选择用于与设备交互的用户界面。另外,设备类型值可用于定义可控设备的相交体的大小和/或形状。图5D示出用于可控设备246的示例相交体546。在此示例中,相交体546具有围绕坐标510的球形。
尽管在此示例中,在用户界面屏幕522上示出ID字段522,但在某些实施例中,通过捕获可控设备上的条形码、QR码或其他类型的视觉标识符的图像来键入设备的ID。另外,在一些实施例中,可以在用户瞄准可控设备之前定义ID。例如,计算设备可以管理将一个或多个可控设备添加到环境的表示中的过程。在此示例中,计算设备以可控设备的标识符开始,并且指导用户指示设备的位置。在示例过程中,然后计算设备将使可控设备使灯闪烁或以其他方式指示用户应瞄准它(例如,通过经由局域网向该设备发送命令)。在一些实施方式中,计算设备可以通过顺序地使设备识别它们自己来指导用户指示一系列可控设备的位置。然后,用户可以遵循所识别设备的序列,并使用此处描述的过程来指示设备的位置。
在一些实施方式中,用户界面屏幕520可以显示可以在特定网络上访问的可控设备的下拉列表(例如,列表中的值可能正在网络上搜索可控设备或通过查询建筑物或网络中的已知可控设备的目录)。在这些实施方式中,用户可以简单地从下拉列表中选择设备以指定与设备交互所需的所有信息。
在操作414处,接收关于目标设备的信息并且将该信息与所确定的位置相关联。所接收的信息可以例如与位置的坐标相关联地进行本地存储。以这种方式,下次将计算设备瞄准该位置时,可以检索该信息并将其用于与该设备进行交互。可替选地,可以将位置的信息和坐标传输到服务器设备,诸如位置数据源106。服务器设备可以(例如)存储可控设备的目录以及用于网络或建筑物的相关位置。然后多个计算设备可以能够查询服务器设备以识别可控设备并且确定如何与可控设备进行交互。
方法400的操作可以重复几次以指示多个可控设备在物理空间内的的位置。图5E示出被用于识别与第二目标设备(即,可控设备240)相关联的坐标538的从第一位置530放射的第一射线532和从第二位置534放射的第二射线536的示例。图5F示出示例用户界面屏幕520,其具有为可控设备240键入的信息。还示出基于在指示位置处的可控设备的所选类型而定义的相交体540。图5G示出用于物理空间200的多个相交体的示例。除了相交体540和546之外,图5G还示出相交体542、544和548,它们与物理空间200中的其他可控设备相关联。可以看出,相交体可以具有不同的形状和尺寸。
一些实施方式包括指示设备位置的其他方法。例如,可以基于在捕获可控设备上的标记的图像时所记录的单个方位和定向输入(例如,如使用视觉定位系统所确定的)来确定可控设备的位置。例如,当使用图像处理技术捕获QR码的图像时,该系统可以估计从相机镜头到设备的距离,并且将该估计与确定的计算设备的方位和定向结合使用以指示可控设备的位置。另外,可基于识别图像内的QR码的位置来识别图像内的可控设备的位置。类似地,可以基于检测图像序列(即,视频)内的闪烁光来识别图像内的可控设备的位置。一些实施方式包括深度感测相机,并且从基于感测到的深度的单个位置和方位输入来确定可控设备的位置。例如,深度感测相机可以包括在目标上投射IR图案的红外(IR)照明器和捕获反射的IR光的红外传感器。深度和表面特征可以根据反射的IR光的扭曲方式来确定。在一些实施方式中,当物理空间的表示包括物理空间的三维模型时,使用单个射线来确定目标位置(例如,可控设备)的方位。在这些实施方式中的至少一些中,将射线(例如,基于移动计算设备的方位和定向确定)投射在表示中,并且将射线与三维模型的交点用于识别目标位置的方位。
图6是根据本文描述的实施方式的识别用户正在瞄准的可控设备的示例方法600的图。该方法600可以(例如)由计算设备102的设备识别引擎124执行,以允许用户通过瞄准该设备来指示要控制的设备。
在操作602处,在用户瞄准可控设备时确定方位和方向。操作602可以类似于操作302。图7A示出被布置在物理空间200中的方位702处并且正在瞄准可控设备240的计算设备102的示例。
在操作604处,在物理空间的表示中生成基于所确定的方位和方向的射线。例如,射线可以从所确定的方位沿所确定的方向延伸。图7A示出从方位702延伸的示例射线704。
在操作606处,将射线与与可控设备相关联的至少一个存储的相交体进行比较。在一些实施方式中,确定射线是否与至少一个存储的相交体中的任何一个相交。可替选地,可以确定射线最靠近至少一个存储的相交体中的哪一个。可以从存储器110(例如,从设备控制数据128)或从诸如位置数据源106的远程计算设备中检索所存储的相交体。图7B示出射线704和相交体540、542、544、546和548的示例。在该示例中,射线704在相交点706处与相交体540相交。
在操作608处,基于射线与所存储的相交体的接近度来识别所瞄准的可控设备。在一些实施方式中,基于确定射线与与可控设备相关联的相交体相交来识别可控设备。在一些实施方式中,可以基于射线与相关联的相交体的接近度来确定可控设备。在一些实施方式中,即使当射线不与相交体相交时(例如,如果射线在距相交体或与设备相关联的坐标的预定阈值距离内通过时),也可以识别可控设备。在一些情况下,射线可能与多个相交体相交。在这种情况下,一些实施方式可能会识别多个可控设备,然后可以在列表中向用户呈现。可以基于到可控设备的距离对列表进行排序。一些实施方式可以基于一个或多个因素(诸如到该设备的距离、从射线到相交体的中心的距离等)来选择单个可控设备。一些实施方式还使用计算设备的定向来确定呈现哪些可控设备(例如,仅当设备相对于天花板灯的相交体朝上定向时,天花板灯才可控,以防止在建筑物的较低楼层上的天花板灯的识别)。
在操作610处,显示与可控设备相关联的设备用户界面。设备用户界面可能特定于所识别的可控设备,并且可以包括用于在可控设备上显示和/或调整设置的字段。图7C示出特定于可控设备240的用户界面屏幕204的示例。如前所述,用户界面屏幕204包括用于示出和调节恒温器的设置的字段。
在操作612处,接收用于控制所识别的可控设备的用户输入。例如,用户可以致动设备用户界面上的用户界面元素以调整所识别的可控设备的设置或使可控设备执行动作。基于可控设备的类型以及在某些情况下为可控设备定义的访问级别/权限,确定可以被执行的各种类型的指令。
在操作614处,基于用户输入将指令传输到可控设备。在一些实施方式中,指令通过无线局域网被传输到与设备相关联的网络地址。指令将根据与可控设备相关联的命令协议或应用程序编程接口(API)被格式化。与所识别的可控设备相关联的网络地址、命令协议和/或API中的一个或多个可以被本地存储在设备控制数据128中,或者可以从诸如位置数据源106的远程计算设备中检索。
在一些实施方式中,用户可以选择多个可控设备来同时进行控制。例如,用户可以四处移动计算设备以实际上围绕一组可控设备绘制圆圈。如果设备是相同类型,则可以显示单个情境特定的用户界面屏幕,用户可以通过该其向该组中的所有设备发送命令。可以保存此设备的分组,并用于以后将命令发送到设备组。
图8是根据本文描述的实施方式的识别由用户指示的位置的示例方法800的图。该方法800可以(例如)由计算设备102的位置指示引擎122执行以允许用户指示物理空间内的位置。可以执行该方法以添加注释或发出与所指示位置有关的维护请求。
在操作802处,生成用户提示以指导用户将计算设备瞄准目标位置。该提示可以类似于先前讨论的提示,诸如关于操作402所讨论的提示,并且可以包括音频和/或视觉组成部分。
在操作804处,确定计算设备的第一方位和定向。可以类似于操作404来执行操作804。图9A示出被布置在物理空间200中的第一方位902处并且正在瞄准标记250的计算设备102的示例。
在操作806处,生成用户提示以指导用户移动到另一位置并且将计算设备瞄准目标位置。此提示可以类似于在操作802处生成的提示。
在操作808处,确定计算设备的第二方位和定向。可以类似于操作804来执行操作808。图9B示出被布置在物理空间200中的第一方位902处并且正在瞄准标记250的计算设备102的示例。
在操作810处,基于从第一方位和定向生成的第一射线和从第二方位和定向生成的第二射线来确定目标位置的坐标。可以类似于操作306来执行操作810。图9C示出用于识别与目标位置相关联的坐标910的第一射线904和第二射线908的示例。
在操作812处,生成用户提示以请求关于目标位置的信息。图9D示出示例用户界面屏幕920,该示例用户界面屏幕920包括字段922,其中用户可以键入关于所指示的位置的信息。这仅是示例,并且其他实施方式可以包括不同的字段。例如,在另一种实施方式中,用户界面屏幕可以包括优先级字段、联系人信息字段或其他字段。
在操作814处,接收关于目标位置的信息并且将其与目标位置的坐标相关联。在一些实施方式中,信息和坐标被本地存储在计算设备上。在一些实施方式中,信息被传输到远程计算设备。在一些实施方式中,创建服务票据或工作单以跟踪与目标位置相关联的工作流。在一些实施方式中,诸如机器人真空吸尘器的机器人系统可以使用该位置来识别并潜在地补救该问题(例如,如果票据涉及脏地板)。在一些实施方式中,基于由用户提供的信息生成请求警报。请求警报可以包括目标位置的坐标以及由用户提供的其他信息。在一些实施方式中,该请求包括到存储在计算系统上的记录的链接。可以为接收者用户格式化包括定制链接的请求警报,并将其传输到与该接收者相关联的计算设备。例如,请求警报可以被格式化为SMS消息,并且然后作为SMS消息被传输到与该接收者相关联的计算设备。当接收到请求警报时,该请求警报可以使诸如消息收发应用或通知应用的计算设备上的应用,打开并显示有关请求警报的信息或使用定制链接检索到的信息。
图10示出可以与本文描述的技术一起使用的计算机设备1000和移动计算机设备1050的示例。计算设备1000包括处理器1002、存储器1004、存储设备1006、连接到存储器1004和高速扩展端口1010的高速接口1008,以及连接到低速总线1014和存储设备1006的低速接口1012。部件1002、1004、1006、1008、1010和1012中的每一个都使用各种总线互连,并且可以被安装在通用主板上或视情况以其他方式安装。处理器1002可以处理用于在计算设备1000内执行的指令,包括存储在存储器1004或存储设备1006中的指令以在外部输入/输出设备(诸如耦合到高速接口1008的显示器1016)上显示用于GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,可以连接多个计算设备1000,每个设备提供部分必要的操作(例如,作为服务器库、一组刀片式服务器或多处理器系统)。
存储器1004在计算设备1000内存储信息。在一种实施方式中,存储器1004是一个或多个易失性存储单元。在另一种实施方式中,存储器1004是一个或多个非易失性存储单元。存储器1004也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备1006能够为计算设备1000提供大容量存储。在一种实施方式中,存储设备1006可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储设备、或一系列设备,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含在被执行时执行一种或多种如上所述的方法的指令。信息载体是计算机或机器可读介质,诸如存储器1004、存储设备1006或处理器1002上的存储器。
高速控制器1008管理计算设备1000的带宽密集型操作,而低速控制器1012管理较低带宽密集型操作。这种功能分配仅是示例性的。在一种实施方式中,高速控制器1008被耦合到存储器1004、显示器1016(例如,通过图形处理器或加速器),并且被耦合到可以接受各种扩展卡(未示出)的高速扩展端口1010。在实施方式中,低速控制器1012被耦合到存储设备1006和低速扩展端口1014。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描仪或诸如交换机或路由器的网络设备。
如图所示,可以以多种不同的形式实现计算设备1000。例如,它可以被实现为标准服务器1020,或者被多次实现为一组这种服务器中。它也可以被实现为机架服务器系统1024的一部分。此外,它还可以在诸如膝上型计算机1022的个人计算机中实现。替代地,来自计算设备1000的部件可以与移动设备(未示出)中的其他部件进行组合,诸如设备1050。每个这种设备可以包含一个或多个计算设备1000、1050,并且整个系统可以由彼此通信的多个计算设备1000、1050组成。
除其他部件之外,计算设备1050包括处理器1052、存储器1064、诸如显示器1054的输入/输出设备、通信接口1066和收发器1068。还可以向设备1050提供存储设备,诸如微驱动器或其他设备,以提供附加的存储。部件1050、1052、1064、1054、1066和1068中的每个部件均使用各种总线互连,并且多个部件可以被安装在通用主板上或视情况以其他方式安装。
处理器1052可以执行计算设备1050内的指令,包括存储在存储器1064中的指令。处理器可以被实现为包括单独的以及多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供设备1050的其他部件的协调,诸如用户界面的控制、设备1050运行的应用程序以及设备1050的无线通信。
处理器1052可以通过控制接口1058和耦合到显示器1054的显示器接口1056与用户进行通信。例如,显示器1054可以是TFT LCD(薄膜晶体管液晶显示器)或者OLED(有机发光二极管)显示器,或其他适当的显示技术。显示器接口1056可以包括用于驱动显示器1054向用户呈现图形和其他信息的适当电路。控制接口1058可以从用户接收命令并且将其转换以提交给处理器1052。此外,可以提供与处理器1052通信的外部接口1062,以实现设备1050与其他设备的近区通信。例如,外部接口1062可以在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
存储器1064将信息存储在计算设备1050内。存储器1064可以被实现为一个或多个计算机可读介质、一个或多个易失性存储单元或者一个或多个非易失性存储单元。还可以提供扩展存储器1074并且通过扩展接口1072将其连接到设备1050,例如,扩展接口1072可以包括SIMM(单列直插存储器模块)卡接口。这种扩展存储器1074可以为设备1050提供额外的存储空间,或者也可以为设备1050存储应用程序或其他信息。具体地,扩展存储器1074可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1074可以被提供为用于设备1050的安全模块,并且可以用允许安全使用设备1050的指令进行编程。此外,可以经由SIMM卡以及附加信息,诸如以不可入侵的方式将识别信息放置在SIMM卡上来提供安全应用。
例如,存储器可以包括闪存和/或NVRAM存储器,如下所述。在一种实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含在被执行时执行一种或多种如上所述的方法的指令。信息载体是诸如存储器1064、扩展存储器1074或处理器1052上的存储器的计算机或机器可读介质,例如,其可以通过收发器1068或外部接口1062被接收。
设备1050可以通过在必要时可以包括数字信号处理电路的通信接口1066进行无线通信。通信接口1066可以提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息传递、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等等。例如,这种通信可以通过射频收发器1068进行。此外,可以进行短程通信,诸如使用蓝牙、Wi-Fi或其他这种收发器(未示出)。此外,GPS(全球定位系统)接收器模块1070可以向设备1050提供附加的导航和与位置有关的无线数据,其可以被设备1050上运行的应用程序适当地使用。
设备1050还可以使用可以从用户接收语音信息并将其转换为可用的数字信息的音频编解码器1060在听觉上进行通信。音频编解码器1060同样可以为用户生成可听声音,诸如通过扬声器,例如在设备1050的听筒中。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备1050上运行的应用程序生成的声音。
如图所示,计算设备1050可以以多种不同的形式实现。例如,它可以实现为蜂窝电话1080。它也可以被实现为智能电话1082、个人数字助理或其他类似的移动设备的一部分。
可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现本文描述的系统和技术的各种实施方式。这些各种实施方式可以包括在一个或多个计算机程序中的实施方式,该程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,其耦合到存储系统、至少一个输入设备和至少一个输出设备以接收数据和指令,并且耦合到存储系统,至少一个输入设备和至少一个输出设备以发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言,和/或以汇编/机器语言实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”是指用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑设备(PLD)),其包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的互动,本文描述的系统和技术可以在具有显示器设备(LED(发光二极管)、或OLED(有机LED)、或LCD(液晶显示器)监视器/屏幕)以向用户显示信息以及具有用户可以通过其向计算机提供输入的键盘和指向设备(例如鼠标或轨迹球)的计算机上实现。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本文描述的系统和技术可以在包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用程序服务器)或包括前端部件(例如,具有图形用户界面或用户可以通过其与本文描述的系统和技术的实施方式进行交互的Web浏览器的客户端计算机),或这种后端、中间件或前端部件的任意组合的计算系统中实现。系统的部件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生的。
在一些实施方式中,图10中描绘的计算设备可以包括与AR头戴式耳机/HMD设备1090对接的传感器以生成用于观看物理空间内的插入的内容的增强环境。例如,包括在图10中描绘的计算设备1050或其他计算设备上的一个或多个传感器,可以向AR头戴式耳机1090提供输入,或者通常,可以向AR空间提供输入。传感器可以包括但不限于触摸屏、加速度计、陀螺仪、压力传感器、生物特征传感器、温度传感器、湿度传感器和环境光传感器。计算设备1050可以使用传感器确定AR空间中计算设备的绝对位置和/或检测到的旋转,然后可以将其用作AR空间的输入。例如,计算设备1050可以作为诸如控制器、激光指示器、键盘、武器等的虚拟对象被并入AR空间。当用户将计算设备/虚拟对象并入AR空间时其位置可以允许用户定位计算设备以便以某种方式在AR空间中观看虚拟对象。例如,如果虚拟对象表示激光指示器,用户可以像实际的激光指示器一样操纵计算设备。用户可以左右、上下、圆圈等方式移动计算设备并且以与使用激光指示器类似的方式使用设备。在一些实施方式中,用户能够使用视觉激光指示器来瞄准目标位置。
在一些实施方式中,包括在或连接到计算设备1050上的一个或多个输入设备可以被用作AR空间的输入。输入设备可以包括但不限于触摸屏、键盘、一个或多个按钮、触控板、触摸板,指向设备、鼠标、轨迹球,操纵杆、相机、麦克风、耳机或具有输入功能的耳塞,游戏控制器或其他可连接的输入设备。当计算设备被合并到AR空间中时,与计算设备1050上包括的输入设备进行交互的用户会使特定动作在AR空间中发生。
在一些实施方式中,计算设备1050的触摸屏可以被渲染为AR空间中的触摸板。用户可以与计算设备1050的触摸屏进行交互。例如,在AR头戴式耳机1090中,将交互渲染为在AR空间中所渲染的触摸板上的移动。所渲染的移动可以控制AR空间中的虚拟对象。
在一些实施方式中,计算设备1050上包括的一个或多个输出设备可以向AR空间中的AR头戴式耳机1090的用户提供输出和/或反馈。输出和反馈可以是视觉的、触觉的或声音的。输出和/或反馈可以包括但不限于振动、一个或多个灯或频闪灯的打开、关闭或闪烁和/或闪光、发出警报、播放铃声、播放歌曲以及播放音频文件。输出设备可以包括但不限于振动马达、振动线圈、压电设备、静电设备、发光二极管(LED)、频闪灯和扬声器。
在一些实施方式中,计算设备1050可以表现为在计算机生成的3D环境中的另一个对象。用户与计算设备1050的交互(例如,旋转、摇动、触摸触摸屏、在触摸屏上滑动手指)可以被解释为与AR空间中的对象的交互。在AR空间中的激光指示器的示例中,计算设备1050表现为在计算机生成的3D环境中的虚拟激光指示器。当用户操纵计算设备1050时,AR空间中的用户看到激光指示器的移动。用户在计算设备1050或AR头戴式耳机1090上的AR环境中从与计算设备1050的交互中接收反馈。用户与计算设备的交互可以变换成与在AR环境中为可控设备生成的用户界面的交互。
在一些实施方式中,计算设备1050可以包括触摸屏。例如,用户可以与触摸屏交互以与用于可控设备的用户界面交互。例如,触摸屏可以包括用户界面元素,诸如可以控制可控设备的属性的滑动器。
计算设备1000旨在表示各种形式的数字计算机和设备,包括但不限于膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备1050旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。本文所示的部件,它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文中描述和/或要求保护的发明的实施方式。
第一示例是一种非暂时性计算机可读存储介质,包括存储在其上的指令,所述指令在由至少一个处理器执行时,被配置成使计算系统:接收三维空间的表示;在计算设备瞄准三维空间中的目标位置的同时,基于三维空间的表示来确定计算设备的第一方位和第一定向;基于计算设备的第一方位和第一定向,确定在三维空间的表示内的从计算设备的第一方位朝向目标位置延伸的第一射线;在计算设备瞄准目标位置的同时,基于三维空间的表示来确定计算设备的第二方位和第二定向;基于计算设备的第二方位和第二定向,确定在三维空间的表示内的从计算设备的第二方位朝向目标位置延伸的第二射线;基于第一射线和第二射线,确定在三维空间内的目标位置的坐标;并且更新三维空间的表示以包括目标位置。
第一示例的实施方式可以包括以下方面中的一个或多个。指令还被配置成使计算系统:在确定第一方位之前,由计算设备提供指令以使计算设备相对于目标位置定向;并且接收指示计算设备处于第一定向的用户输入。所述指令还被配置成使计算系统:在确定第一方位和第一定向之后,由计算设备提供指令以将计算设备移动到第二方位并且使计算设备相对于位置定向;并且接收指示计算设备处于第二定向的用户输入。当计算设备处于第一定向时,第一射线的方向对应于与计算设备的后表面正交的方向,并且当计算设备处于第二定向时,第二射线的方向对应于与计算设备的后表面正交的方向。当计算设备处于第一定向时,第一射线的方向对应于与计算设备的顶表面正交的方向,并且当计算设备处于第二定向时,第二射线的方向对应于与计算设备的顶表面正交的方向。被配置成使计算系统识别在三维空间内的位置的指令包括被配置成使计算系统进行下述的指令:识别第一射线上的第一最近点,该第一最近点比沿着第一射线的任何其它点更靠近第二射线;并且基于第一最近点来确定位置。被配置成使计算系统识别在三维空间内的位置的指令包括被配置成使计算系统进行下述的指令:识别第二射线上的第二最近点,该第二最近点比沿着第二射线的任何其它点更靠近第一射线;并且基于第一最近点和第二最近点来确定位置。被配置成使计算系统基于第一最近点和第二最近点来确定位置的指令包括被配置成使计算系统确定在第一最近点和第二最近点之间的中点的指令。指令还被配置成使计算系统:识别可控设备;并且将可控设备与三维空间中的识别位置相关联。被配置成使计算系统识别可控设备的指令包括被配置成使计算系统执行下述的指令:呈现可控设备的列表;并且接收从列表中选择可控设备的用户输入。该列表通过识别网络上可用的可控设备来生成。被配置成使计算系统识别可控设备的指令包括被配置成使计算系统确定可控设备的设备类型的指令。被配置成使计算系统识别可控设备的指令包括被配置成使计算系统确定与可控设备相关联的形状的指令。被配置成使计算系统识别可控设备的指令包括被配置成使计算系统确定与可控设备相关联的大小的指令。被配置成使计算系统将可控设备与所识别的位置相关联的指令包括被配置成使计算系统向数据库添加记录的指令。该数据库存储将多个可控设备与位置相关联的记录。指令还被配置成使计算系统:在计算设备瞄准可控设备的同时,基于三维空间的表示来确定计算设备的第三方位和第三定向;基于计算设备的第三方位和第三定向,确定在三维空间的表示内的从第三方位朝向可控设备延伸的第三射线;并且基于第三射线和所确定的坐标来识别可控设备。指令还被配置成使计算系统显示用于控制可控设备的用户界面。指令还被配置成使计算系统:经由用户界面接收用户输入;和响应于接收到用户输入,向可控设备传输命令。该命令通过无线网络被传输。被配置成使计算系统接收三维空间的表示的指令包括被配置成使计算系统从计算设备的存储器位置接收该表示的指令。被配置成使计算系统确定在三维空间的表示内的第一射线的指令包括被配置成使计算系统确定表示第一射线的方程的指令。所述指令还被配置成使所述计算系统:在确定计算设备的第一方位和定向之前:将识别命令传输到被布置在目标位置处的可控设备,该识别命令使可控设备使灯闪烁使得在视觉上可识别;并生成用户提示以指导用户将计算设备瞄准具有闪烁的灯的可控设备。
第二示例是一种计算设备,包括:至少一个处理器;以及存储指令的存储器,当所述指令由至少一个处理器执行时,所述指令使计算设备:接收三维空间的表示;在计算设备瞄准可控设备的同时,确定在三维空间内的该计算设备的方位和定向;基于方位、定向和表示来识别可控设备;生成用于与所识别的可控设备交互的用户界面;以及响应于经由用户界面接收到用户输入,基于接收到的用户输入,将命令传输到可控设备。
第二示例的实施方式可以包括以下方面中的一个或多个。基于所识别的可控设备的类型来生成用户界面。该计算设备还包括头戴式显示器,并且第一方向输入对应于头戴式显示器的第一定向,并且第二方向输入对应于头戴式显示器的第二定向。头戴式显示器包括注视跟踪模块,并且使用该注视跟踪模块来确定第一方向输入和第二方向输入。该计算设备还包括手部跟踪模块,并且使用该手部跟踪模块来确定第一方向输入和第二方向输入。该计算设备还包括视觉定位系统,并且使用该视觉定位系统来确定第一方位和第二方位。
第三示例是一种方法,包括:接收三维空间的表示;由计算设备来确定三维空间内的第一方位;由计算设备来接收指示从第一方位到目标位置的方向的第一方向输入;基于第一方向输入,确定在三维空间的表示内的从第一方位朝向目标位置延伸的第一射线;确定在三维空间内的第二方位;接收指示从第二方位到目标位置的方向的第二方向输入;基于第二方向输入,确定在三维空间的表示内的从第二方位朝向目标位置延伸的第二射线;以及根据第一射线和第二射线,确定在三维空间内的目标位置的坐标。
第三示例的实施方式可以包括下述方面中的一个或多个。第一方向输入基于计算设备的第一定向,并且第二方向输入基于计算设备的第二定向。该计算设备包括头戴式显示器,并且第一方向输入对应于头戴式显示器的第一定向并且第二方向输入对应于头戴式显示器的第二定向。该计算设备包括具有注视跟踪模块的头戴式显示器,并且使用该注视跟踪模块来确定第一方向输入和第二方向输入。该计算设备包括手部跟踪模块,并且使用该手部跟踪模块来确定第一方向输入和第二方向输入。该计算设备包括视觉定位系统,并且使用该视觉定位系统来确定第一方位和第二方位。使用视觉定位系统以确定第一方位包括:在计算设备处于第一方位时捕获图像;提取该图像的特征;比较所提取的特征和存储的三维空间的特征;以及基于比较,确定三维空间中的第一方位。该方法还包括将所确定的坐标与请求相关联。该方法还包括:基于该请求,生成请求警报,其中该请求警报包括可选择用于查看该请求和所识别的位置的定制链接;基于存储在数据库中的设置来格式化请求警报;以及通过网络将格式化的请求警报传输到远程计算设备,其中格式化的请求警报包括该定制链接,其中,请求警报激活远程计算设备上的警报应用,并且基于定制链接,使远程计算设备显示数据。格式化的请求警报是SMS消息,并且警报应用是SMS应用。
已经描述了多个实施例。然而,将理解的是在不脱离本说明书的精神和范围的情况下可以进行各种修改。
此外,附图中描绘的逻辑流程不需要所示的特定顺序、或连续顺序来实现期望的结果。此外,可以从所述的流程中提供其他步骤或者去除步骤,并且可以向所描述的系统中添加其他部件或从中移除其他部件。因此,其他实施例在所附权利要求的范围内。
尽管已经如本文中所述的那样描述了所述的实施方式的某些特征,但是本领域技术人员现在将想到许多修改、替换、改变和等同物。因此,应理解的是所附权利要求书旨在覆盖落入实施方式范围内的所有这种修改和改变。应当理解的是它们仅以示例而非限制的方式给出,并且可以进行形式和细节上的各种改变。除相互排斥的组合之外,本文所述的装置和/或方法的任何部分可以以任何组合进行组合。本文描述的实施方式可以包括所描述的不同实施方式的功能、部件和/或特征的各种组合和/或子组合。
下面给出一些示例。
示例1:一种非暂时性计算机可读存储介质,包括存储在其上的指令,所述指令在由至少一个处理器执行时,被配置成使计算系统:接收三维空间的表示;在计算设备瞄准所述三维空间中的目标位置的同时,基于所述三维空间的表示来确定计算设备的第一方位和第一定向;基于所述计算设备的第一方位和第一方向,确定在所述三维空间的表示内的从所述计算设备的第一方位朝向所述目标位置延伸的第一射线;在所述计算设备瞄准所述目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第二方位和第二定向;基于所述计算设备的第二方位和第二定向,确定在所述三维空间的表示内的从所述计算设备的第二方位朝向所述目标位置延伸的第二射线;基于所述第一射线和所述第二射线,确定在所述三维空间内的所述目标位置的坐标;以及更新所述三维空间的表示以包括所述目标位置。
示例2:根据示例1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:在确定所述第一方位之前,生成用户提示以指导用户将所述计算设备瞄准所述目标位置;并且接收指示所述计算设备瞄准所述目标位置的用户输入。
示例3:根据示例1或2所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:在确定所述第一方位和所述第一定向之后,生成用户提示以指导用户将所述计算设备移动到所述第二方位并且将所述计算设备瞄准所述目标位置;并且接收指示所述计算设备处于所述第二定向并且瞄准所述目标位置的用户输入。
示例4:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,当所述计算设备处于所述第一定向时,所述第一射线的方向对应于与所述计算设备的后表面正交的方向,并且当所述计算设备处于所述第二定向时,所述第二射线的方向对应于与所述计算设备的后表面正交的方向。
示例5:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,当所述计算设备处于所述第一定向时,所述第一射线的方向对应于与所述计算设备的顶表面正交的方向,并且当所述计算设备处于第二定向时,所述第二射线的方向对应于与所述计算设备的顶表面正交的方向。
示例6:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别三维空间内的位置的指令包括被配置成所述计算系统进行下述的指令:识别所述第一射线上的第一最近点,所述第一最近点比沿着所述第一射线的任何其他点更靠近所述第二射线;识别所述第二射线上的第二最近点,所述第二最近点比沿着所述第二射线的任何其他点更靠近所述第一射线;并且根据所述第一最近点和所述第二最近点确定所述目标位置的坐标。
示例7:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:识别可控设备;并且将所述可控设备与所述三维空间中的所述目标位置的坐标相关联。
示例8:根据示例7所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的指令包括被配置成使所述计算系统执行下述的指令:呈现所述可控设备的列表;并接收从所述列表中选择所述可控设备的用户输入。
示例9:根据示例7或8所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的所述指令包括被配置成使所述计算系统确定所述可控设备的设备类型的指令。
示例10:根据示例7至示例9中的至少一个所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的所述指令包括被配置成使所述计算系统确定与所述可控设备相关联的大小的指令。
示例11:根据示例7至示例10中的至少一个所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统更新所述三维空间的表示以包括所述目标位置的指令包括被配置成使所述计算系统向数据库添加记录的指令,其中,所述数据库存储将多个可控设备与位置相关联的记录。
示例12:根据示例7至示例11中的至少一个所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:在所述计算设备瞄准所述可控设备的同时,基于所述三维空间的表示来确定所述计算设备的第三方位和第三定向;基于所述计算设备的第三方位和第三定向,确定在所述三维空间的表示内的从所述第三方位朝向所述可控设备延伸的第三射线;基于所述第三射线和所述确定的坐标来识别所述可控设备;并且显示用于控制所述可控设备的用户界面。
示例13:根据示例12所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:经由所述用户界面接收用户输入;并且响应于接收到所述用户输入,向所述可控设备传输命令。
示例14:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:在确定所述计算设备的第一方位和定向之前:向被布置在所述目标位置处的可控设备传输识别命令,所述识别命令使所述可控设备使灯闪烁使得在视觉上可识别;并且生成用户提示以指导用户将所述计算设备瞄准具有所述闪烁的灯的所述可控设备。
示例15:根据前述示例中的至少一个所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:在所述计算设备瞄准所述目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第三方位和第三定向;并且基于所述计算设备的第三方位和第三定向,确定在所述三维空间的表示内的从所述计算设备的第三方位朝向所述目标位置延伸的第三射线;其中,被配置成使所述计算系统确定所述目标位置的坐标的所述指令使所述计算系统基于所述第一射线、所述第二射线和所述第三射线来确定在所述三维空间内的所述目标位置的坐标。
示例16:一种计算设备,包括:至少一个处理器;和存储器,所述存储器存储指令,当所述指令由所述至少一个处理器执行时,所述指令使所述计算设备:接收三维空间的表示;在所述计算设备瞄准所述三维空间中的目标位置的同时,基于所述三维空间的表示来确定计算设备的第一方位和第一定向;基于所述计算设备的第一方位和第一定向,确定在所述三维空间的表示内的从所述计算设备的第一方位朝向所述目标位置延伸的第一射线;在所述计算设备瞄准所述目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第二方位和第二定向;基于所述计算设备的第二方位和第二定向,确定在所述三维空间的表示内的从所述计算设备的第二方位朝向所述目标位置延伸的第二射线;基于所述第一射线和所述第二射线,确定在所述三维空间内的目标位置的坐标;以及更新所述三维空间的表示以包括所述目标位置。
示例16可以与来自所述示例2至15中的至少一个的特征组合。
示例17:一种计算设备,包括:至少一个处理器;和存储器,所述存储器存储指令,当所述指令由所述至少一个处理器执行时,所述指令使所述计算设备:接收三维空间的表示;在所述计算设备瞄准所述可控设备的同时,确定在所述三维空间内的所述计算设备的方位和定向;基于所述方位、定向和所述表示来识别所述可控设备;生成用于与所述识别的可控设备交互的用户界面;并且响应于经由所述用户界面接收到用户输入,基于所述接收到的用户输入,将命令传输到所述可控设备。
示例18:根据示例16所述的计算设备,其中,基于所述识别的可控设备的类型来生成所述用户界面。
示例19:根据示例16或17所述的计算设备,进一步包括头戴式显示器,其中第一方向输入对应于所述头戴式显示器的第一定向,并且第二方向输入对应于所述头戴式显示器的第二定向。
示例20:根据示例16至18中的至少一个所述的计算设备,进一步包括头戴式显示器,其中,所述头戴式显示器包括注视跟踪模块,并且使用所述注视跟踪模块来确定所述第一方向输入和所述第二方向输入。
示例21:根据示例16至19中的至少一个所述的计算设备,进一步包括手部跟踪模块,其中,使用所述手部跟踪模块来确定所述第一方向输入和所述第二方向输入。
示例22.根据示例16-20中的至少一个所述的计算设备,进一步包括视觉定位系统,其中,使用所述视觉定位系统来确定所述第一方位和所述第二方位。
示例23:一种方法,包括:接收三维空间的表示;由计算设备来确定在所述三维空间内的第一方位;由所述计算设备来接收指示从所述第一方位到目标位置的方向的第一方向输入;基于所述第一方向输入,确定在所述三维空间的表示内的从所述第一方位朝向所述目标位置延伸的第一射线;确定在所述三维空间内的第二方位;接收指示从所述第二方位到所述目标位置的方向的第二方向输入;基于所述第二方向输入,确定在所述三维空间的表示内的从所述第二方位朝向所述目标位置延伸的第二射线;并且基于所述第一射线和所述第二射线,确定在所述三维空间内的所述目标位置的坐标。
示例24:根据示例22所述的方法,其中,所述第一方向输入基于所述计算设备的第一定向,并且所述第二方向输入基于所述计算设备的第二定向。
示例25:根据示例22或23所述的方法,进一步包括:在所述计算设备处于所述第一方位时捕获图像;提取图像的特征;将所述提取的特征和存储的所述三维空间的特征进行比较;以及基于所述比较,确定所述三维空间中的所述第一方位。
示例26:根据示例22至24中的至少一个所述的方法,进一步包括将所述确定的坐标与请求相关联。
示例27:根据示例25所述的方法,进一步包括:基于所述请求,生成请求警报;和通过网络将所述请求警报传输到所述计算设备。
Claims (26)
1.一种非暂时性计算机可读存储介质,包括存储在其上的指令,所述指令在由至少一个处理器执行时被配置成使计算系统:
接收三维空间的表示;
在计算设备瞄准所述三维空间中的目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第一方位和第一定向;
基于所述计算设备的所述第一方位和所述第一定向,确定在所述三维空间的表示内的从所述计算设备的所述第一方位朝向所述目标位置延伸的第一射线;
在所述计算设备瞄准所述目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第二方位和第二定向;
基于所述计算设备的所述第二方位和所述第二定向,确定在所述三维空间的表示内的从所述计算设备的所述第二方位朝向所述目标位置延伸的第二射线;
基于所述第一射线和所述第二射线,确定在所述三维空间内的所述目标位置的坐标;以及
更新所述三维空间的表示以包括所述目标位置。
2.根据权利要求1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
在确定所述第一方位之前,生成用户提示以指导用户将所述计算设备瞄准所述目标位置;并且
接收指示所述计算设备瞄准所述目标位置的用户输入。
3.根据权利要求1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
在确定所述第一方位和所述第一定向之后,生成用户提示以指导所述用户将所述计算设备移动到所述第二方位并且将所述计算设备瞄准所述目标位置;并且
接收指示所述计算设备处于所述第二定向并且瞄准所述目标位置的用户输入。
4.根据权利要求1所述的非暂时性计算机可读存储介质,其中,当所述计算设备处于所述第一定向时,所述第一射线的方向对应于与所述计算设备的后表面正交的方向,并且当所述计算设备处于所述第二定向时,所述第二射线的方向对应于与所述计算设备的后表面正交的方向。
5.根据权利要求1所述的非暂时性计算机可读存储介质,其中,当所述计算设备处于所述第一定向时,所述第一射线的方向对应于与所述计算设备的顶表面正交的方向,并且当所述计算设备处于所述第二定向时,所述第二射线的方向对应于与所述计算设备的顶表面正交的方向。
6.根据权利要求1所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别在三维空间内的位置的所述指令包括被配置成使所述计算系统进行下述的指令:
识别所述第一射线上的第一最近点,所述第一最近点比沿着所述第一射线的任何其他点更靠近所述第二射线;
识别所述第二射线上的第二最近点,所述第二最近点比沿着所述第二射线的任何其他点更靠近所述第一射线;并且
基于所述第一最近点和所述第二最近点,确定所述目标位置的坐标。
7.根据权利要求1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
识别可控设备;并且
将所述可控设备与所述三维空间中的所述目标位置的坐标相关联。
8.根据权利要求7所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的所述指令包括被配置成使所述计算系统执行下述的指令:
呈现所述可控设备的列表;并且
接收从所述列表中选择所述可控设备的用户输入。
9.根据权利要求7所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的所述指令包括被配置成使所述计算系统确定所述可控设备的设备类型的指令。
10.根据权利要求7所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统识别所述可控设备的所述指令包括被配置成使所述计算系统确定与所述可控设备相关联的大小的指令。
11.根据权利要求7所述的非暂时性计算机可读存储介质,其中,被配置成使所述计算系统更新所述三维空间的表示以包括所述目标位置的指令包括被配置成使所述计算系统向数据库添加记录的指令,其中,所述数据库存储将多个可控设备与位置相关联的记录。
12.根据权利要求7所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
在所述计算设备瞄准所述可控设备的同时,基于所述三维空间的表示来确定所述计算设备的第三方位和第三定向;
基于所述计算设备的所述第三方位和所述第三定向,确定在所述三维空间的表示内的从所述第三方位朝向所述可控设备延伸的第三射线;
基于所述第三射线和所确定的坐标来识别所述可控设备;并且
显示用于控制所述可控设备的用户界面。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
经由所述用户界面接收用户输入;并且
响应于接收到所述用户输入,向所述可控设备传输命令。
14.根据权利要求1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
在确定所述计算设备的第一方位和定向之前:
向被布置在所述目标位置处的可控设备传输识别命令,所述识别命令使所述可控设备使灯闪烁以便在视觉上可识别;并且
生成用户提示以指导用户将所述计算设备瞄准具有所述闪烁的灯的所述可控设备。
15.根据权利要求1所述的非暂时性计算机可读存储介质,其中,所述指令进一步被配置成使所述计算系统:
在所述计算设备瞄准所述目标位置的同时,基于所述三维空间的表示来确定所述计算设备的第三方位和第三定向;并且
基于所述计算设备的所述第三方位和所述第三定向,确定在所述三维空间的表示内的从所述计算设备的所述第三方位朝向所述目标位置延伸的第三射线;并且
其中,被配置成使所述计算系统确定所述目标位置的坐标的所述指令使所述计算系统基于所述第一射线、所述第二射线和所述第三射线来确定在所述三维空间内的所述目标位置的坐标。
16.一种方法,包括:
接收三维空间的表示;
由计算设备来确定在所述三维空间内的第一方位;
由所述计算设备来接收指示从所述第一方位到目标位置的方向的第一方向输入;
基于所述第一方向输入,确定在所述三维空间的表示内的从所述第一方位朝向所述目标位置延伸的第一射线;
确定在所述三维空间内的第二方位;
接收指示从所述第二方位到所述目标位置的方向的第二方向输入;
基于所述第二方向输入,确定在所述三维空间的表示内的从所述第二方位朝向所述目标位置延伸的第二射线;并且
基于所述第一射线和所述第二射线,确定在所述三维空间内的所述目标位置的坐标。
17.根据权利要求16所述的方法,其中,所述第一方向输入基于所述计算设备的第一定向,并且所述第二方向输入基于所述计算设备的第二定向。
18.根据权利要求16所述的方法,进一步包括:
在所述计算设备处于所述第一方位时捕获图像;
提取所述图像的特征;
将所提取的特征和存储的所述三维空间的特征进行比较;以及
基于所述比较,确定所述三维空间中的所述第一方位。
19.根据权利要求16所述的方法,进一步包括将所确定的坐标与请求相关联。
20.根据权利要求19所述的方法,进一步包括:
基于所述请求,生成请求警报;和
通过网络将所述请求警报传输到计算设备。
21.一种计算设备,包括:
至少一个处理器;和
存储器,所述存储器存储指令,当所述指令由所述至少一个处理器执行时,所述指令使所述计算设备:
接收三维空间的表示;
在所述计算设备瞄准可控设备的同时,确定在所述三维空间内的所述计算设备的方位和定向;
基于所述方位、所述定向和所述表示来识别所述可控设备;
生成用于与所识别的可控设备交互的用户界面;并且
响应于经由所述用户界面接收到用户输入,基于所接收到的用户输入,将命令传输到所述可控设备,
其中,所述可控设备已关联于所述三维空间中的目标位置坐标,所述目标位置是通过根据权利要求16所述的方法来确定的。
22.根据权利要求21所述的计算设备,其中,基于所识别的可控设备的类型来生成所述用户界面。
23.根据权利要求21所述的计算设备,进一步包括头戴式显示器,其中第一方向输入对应于所述头戴式显示器的第一定向,并且第二方向输入对应于所述头戴式显示器的第二定向。
24.根据权利要求21所述的计算设备,进一步包括头戴式显示器,其中,所述头戴式显示器包括注视跟踪模块,并且使用所述注视跟踪模块来确定第一方向输入和第二方向输入。
25.根据权利要求21所述的计算设备,进一步包括手部跟踪模块,其中,使用所述手部跟踪模块来确定第一方向输入和第二方向输入。
26.根据权利要求21所述的计算设备,进一步包括视觉定位系统,其中,使用所述视觉定位系统来确定第一方位和第二方位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/882,633 US10620721B2 (en) | 2018-01-29 | 2018-01-29 | Position-based location indication and device control |
US15/882,633 | 2018-01-29 | ||
PCT/US2019/014937 WO2019147798A1 (en) | 2018-01-29 | 2019-01-24 | Position-based location indication and device control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111602185A CN111602185A (zh) | 2020-08-28 |
CN111602185B true CN111602185B (zh) | 2022-04-01 |
Family
ID=66290513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008541.XA Active CN111602185B (zh) | 2018-01-29 | 2019-01-24 | 基于方位的位置指示和设备控制 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10620721B2 (zh) |
EP (1) | EP3659132B1 (zh) |
CN (1) | CN111602185B (zh) |
WO (1) | WO2019147798A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10620721B2 (en) | 2018-01-29 | 2020-04-14 | Google Llc | Position-based location indication and device control |
US10733698B2 (en) | 2018-04-06 | 2020-08-04 | Groundspeak, Inc. | System and method for rendering perspective adjusted views of a virtual object in a real world environment |
US10725629B2 (en) * | 2018-06-25 | 2020-07-28 | Google Llc | Identifying and controlling smart devices |
WO2020022780A1 (en) * | 2018-07-25 | 2020-01-30 | Samsung Electronics Co., Ltd. | Method and apparatus for establishing device connection |
US11244509B2 (en) | 2018-08-20 | 2022-02-08 | Fisher-Rosemount Systems, Inc. | Drift correction for industrial augmented reality applications |
US11215462B2 (en) * | 2018-10-26 | 2022-01-04 | Here Global B.V. | Method, apparatus, and system for location correction based on feature point correspondence |
US11082249B2 (en) | 2019-04-02 | 2021-08-03 | Google Llc | Location determination for device control and configuration |
US10701661B1 (en) | 2019-04-02 | 2020-06-30 | Google Llc | Location determination for device control and configuration |
CN110557741B (zh) * | 2019-08-05 | 2021-08-13 | 华为技术有限公司 | 终端交互的方法及终端 |
US11445107B2 (en) * | 2019-08-08 | 2022-09-13 | Qorvo Us, Inc. | Supervised setup for control device with imager |
US11373374B2 (en) * | 2019-11-07 | 2022-06-28 | Volvo Car Corporation | Aligning the augmented reality or virtual reality world with the real world using natural position understanding |
US11816887B2 (en) * | 2020-08-04 | 2023-11-14 | Fisher-Rosemount Systems, Inc. | Quick activation techniques for industrial augmented reality applications |
KR20220026114A (ko) * | 2020-08-25 | 2022-03-04 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 증강 현실 모드에서 관련 장치를 식별하는 방법 |
US11475642B2 (en) | 2020-12-18 | 2022-10-18 | Huawei Technologies Co., Ltd. | Methods and systems for selection of objects |
US11558711B2 (en) * | 2021-03-02 | 2023-01-17 | Google Llc | Precision 6-DoF tracking for wearable devices |
US11579712B2 (en) | 2021-03-23 | 2023-02-14 | Huawei Technologies Co., Ltd. | Devices, systems, and methods for multi-device interactions |
CN114388059B (zh) * | 2022-01-13 | 2023-06-16 | 西湖大学 | 基于三维力反馈控制器的蛋白截面生成方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301738A (zh) * | 2009-11-30 | 2011-12-28 | 松下电器产业株式会社 | 通信装置 |
CN102567240A (zh) * | 2010-12-16 | 2012-07-11 | 株式会社OPTiM | 变更用户接口的便携式终端、方法以及程序 |
CN105474658A (zh) * | 2013-08-30 | 2016-04-06 | 日立麦克赛尔株式会社 | 终端装置和遥控方法 |
WO2016192916A1 (en) * | 2015-06-02 | 2016-12-08 | Qualcomm Technologies International, Ltd. | Intuitive way to point, access and control appliances & other objects in building interiors |
CN106713598A (zh) * | 2015-07-24 | 2017-05-24 | 中兴通讯股份有限公司 | 基于指示方向的指令传输方法及装置、智能设备 |
CN107067695A (zh) * | 2017-05-15 | 2017-08-18 | 深圳市冠旭电子股份有限公司 | 一种智能遥控方法、系统及智能遥控器 |
CN107534804A (zh) * | 2015-05-14 | 2018-01-02 | 麦克赛尔株式会社 | 终端装置以及远程控制方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004166193A (ja) * | 2002-09-27 | 2004-06-10 | Matsushita Electric Ind Co Ltd | リモコン装置 |
US20150070319A1 (en) * | 2013-09-09 | 2015-03-12 | Timothy R. Pryor | Human interfaces for homes, medical devices and vehicles |
US9007299B2 (en) * | 2006-07-14 | 2015-04-14 | Ailive Inc. | Motion control used as controlling device |
US9088663B2 (en) * | 2008-04-18 | 2015-07-21 | Universal Electronics Inc. | System for appliance control via a network |
DE102008021160A1 (de) * | 2008-04-28 | 2009-10-29 | Beckhoff Automation Gmbh | Fernbedienung |
US9477302B2 (en) * | 2012-08-10 | 2016-10-25 | Google Inc. | System and method for programing devices within world space volumes |
US8963694B2 (en) * | 2010-12-17 | 2015-02-24 | Sony Corporation | System and method for remote controlled device selection based on device position data and orientation data of a user |
US11334037B2 (en) * | 2013-03-01 | 2022-05-17 | Comcast Cable Communications, Llc | Systems and methods for controlling devices |
US10133243B2 (en) * | 2013-03-15 | 2018-11-20 | Fisher-Rosemount Systems, Inc. | Method and apparatus for seamless state transfer between user interface devices in a mobile control room |
CN104699244B (zh) * | 2015-02-26 | 2018-07-06 | 小米科技有限责任公司 | 智能设备的操控方法及装置 |
US9927892B2 (en) * | 2015-03-27 | 2018-03-27 | International Business Machines Corporation | Multiple touch selection control |
US9880695B2 (en) * | 2015-05-01 | 2018-01-30 | International Business Machines Corporation | Changing a controlling device interface based on device orientation |
WO2016191875A1 (en) * | 2015-06-04 | 2016-12-08 | Griffin Innovation | Device and method for controlling a plurality of targeted devices |
EP3176766B1 (en) * | 2015-12-03 | 2019-07-17 | Sony Mobile Communications, Inc. | Remote controlling a plurality of controllable devices |
WO2017201162A1 (en) | 2016-05-17 | 2017-11-23 | Google Llc | Virtual/augmented reality input device |
US9972134B2 (en) | 2016-06-30 | 2018-05-15 | Microsoft Technology Licensing, Llc | Adaptive smoothing based on user focus on a target object |
CN106774848B (zh) * | 2016-11-24 | 2019-10-18 | 京东方科技集团股份有限公司 | 遥控设备及遥控系统 |
US10592000B2 (en) * | 2017-03-22 | 2020-03-17 | Daqri, Llc | Gesture-based GUI for computing devices |
TWI628631B (zh) * | 2017-05-08 | 2018-07-01 | 和碩聯合科技股份有限公司 | 遙控系統、遙控方法與閘道器 |
US10163336B1 (en) * | 2017-07-28 | 2018-12-25 | Dish Network L.L.C. | Universal remote control of devices based on orientation of remote |
US10620721B2 (en) | 2018-01-29 | 2020-04-14 | Google Llc | Position-based location indication and device control |
-
2018
- 2018-01-29 US US15/882,633 patent/US10620721B2/en active Active
-
2019
- 2019-01-24 WO PCT/US2019/014937 patent/WO2019147798A1/en unknown
- 2019-01-24 EP EP19719972.2A patent/EP3659132B1/en active Active
- 2019-01-24 CN CN201980008541.XA patent/CN111602185B/zh active Active
-
2020
- 2020-04-08 US US16/843,296 patent/US11054918B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301738A (zh) * | 2009-11-30 | 2011-12-28 | 松下电器产业株式会社 | 通信装置 |
CN102567240A (zh) * | 2010-12-16 | 2012-07-11 | 株式会社OPTiM | 变更用户接口的便携式终端、方法以及程序 |
CN105474658A (zh) * | 2013-08-30 | 2016-04-06 | 日立麦克赛尔株式会社 | 终端装置和遥控方法 |
CN107534804A (zh) * | 2015-05-14 | 2018-01-02 | 麦克赛尔株式会社 | 终端装置以及远程控制方法 |
WO2016192916A1 (en) * | 2015-06-02 | 2016-12-08 | Qualcomm Technologies International, Ltd. | Intuitive way to point, access and control appliances & other objects in building interiors |
CN106713598A (zh) * | 2015-07-24 | 2017-05-24 | 中兴通讯股份有限公司 | 基于指示方向的指令传输方法及装置、智能设备 |
CN107067695A (zh) * | 2017-05-15 | 2017-08-18 | 深圳市冠旭电子股份有限公司 | 一种智能遥控方法、系统及智能遥控器 |
Also Published As
Publication number | Publication date |
---|---|
US20200233502A1 (en) | 2020-07-23 |
CN111602185A (zh) | 2020-08-28 |
WO2019147798A1 (en) | 2019-08-01 |
US11054918B2 (en) | 2021-07-06 |
US20190235641A1 (en) | 2019-08-01 |
EP3659132B1 (en) | 2021-12-22 |
US10620721B2 (en) | 2020-04-14 |
EP3659132A1 (en) | 2020-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111602185B (zh) | 基于方位的位置指示和设备控制 | |
US10083544B2 (en) | System for tracking a handheld device in virtual reality | |
US10339723B2 (en) | Generating virtual notation surfaces with gestures in an augmented and/or virtual reality environment | |
US10545584B2 (en) | Virtual/augmented reality input device | |
US10353478B2 (en) | Hover touch input compensation in augmented and/or virtual reality | |
EP3400502B1 (en) | Combining gyromouse input and touch input for navigation in an augmented and/or virtual reality environment | |
CN109478101B (zh) | 用于为虚拟现实用户界面检测运动范围的方法和系统 | |
CN113728293A (zh) | 用于基于位所的设备控制的系统和界面 | |
CN111373349B (zh) | 用于在增强现实环境中导航的方法、设备及存储介质 | |
US11082249B2 (en) | Location determination for device control and configuration | |
US20200342669A1 (en) | Managing content in augmented reality | |
CN111373410A (zh) | 增强现实环境的位所识别 | |
US11263818B2 (en) | Augmented reality system using visual object recognition and stored geometry to create and render virtual objects | |
US10701661B1 (en) | Location determination for device control and configuration | |
US20220019288A1 (en) | Information processing apparatus, information processing method, and program | |
CN114341773A (zh) | 用于自适应增强现实锚点生成的方法和装置 | |
US20220253198A1 (en) | Image processing device, image processing method, and recording medium | |
CN113243000A (zh) | 用于增强现实对象的捕捉范围 | |
CN113614794A (zh) | 管理增强现实中的内容 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |