CN109313502B - 利用选择装置的敲击事件定位 - Google Patents

利用选择装置的敲击事件定位 Download PDF

Info

Publication number
CN109313502B
CN109313502B CN201780035998.0A CN201780035998A CN109313502B CN 109313502 B CN109313502 B CN 109313502B CN 201780035998 A CN201780035998 A CN 201780035998A CN 109313502 B CN109313502 B CN 109313502B
Authority
CN
China
Prior art keywords
location
tap event
subject
event
selection device
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
Application number
CN201780035998.0A
Other languages
English (en)
Other versions
CN109313502A (zh
Inventor
J·韦斯
X·胡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109313502A publication Critical patent/CN109313502A/zh
Application granted granted Critical
Publication of CN109313502B publication Critical patent/CN109313502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

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 Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种用于敲击事件定位的系统和方法包括一种使用提供准确的点位置的选择装置的设备。该设备确定设备的视锥体中的场景相对于坐标系的3维图。该设备接收包括选择装置与主体的接触的敲击事件的发生的指示,并且根据选择装置的位置确定敲击事件相对于坐标系的位置。敲击事件的位置可被用来确定主体。与主体相关联的数据可接着被处理以提供设备的视锥体中的场景中的效果或关于设备的视锥体中的场景的数据。各实施例包括选择装置,该选择装置将敲击事件的发生传达到设备并且包括允许设备确定选择装置的位置的特征。

Description

利用选择装置的敲击事件定位
背景
构建现实世界场景的3D计算机模型通常是有用的。例如,在增强现实(AR)设备中可能是这种情形,其中具有混合现实和非现实对象的合成图像被用来向使用AR设备的查看者呈现场景。在构建现实世界场景的3D模型时的某些情况下,物理对象或表面可能被不明确地或不准确地建模,并且可能在3D模型中无法标识或被正确地定位。而且,3D模型中的某些对象或表面可能无法与附近的其它对象或表面清楚地区分开。在其中3D模型包括这些类型的歧义或错误的情况下,可能期望配置诸如AR设备之类的设备,以尽可能准确地在现实世界场景中标识或定位点、对象或表面,而不管3D模型中可能的歧义或不准确。
概述
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的概念的选集。本概述不旨在专门标识所要求保护的主体的关键特征或必要特征,也不旨在帮助确定所要求保护的主体的范围。
用于在由3-D图建模的设备视锥体(view frustum)中的场景内的准确敲击事件(tap event)定位的系统和方法包括了包含与选择装置一起使用的设备的实施例。设备和选择装置可被用来通过敲击事件检测和定位来选择设备的视锥体中的场景内的主体(subject)。在如选择装置接触目标主体的敲击事件期间的对选择装置的位置的确定允许对被选择的主体的准确确定。在该系统和方法的各种实现中,对主体的确定可被用于由设备上的应用作进一步处理。
在一实施例中,设备基于来自至少一个传感器的输入确定设备的视锥体中的场景相对于坐标系的3维(3-D)映射。设备从选择装置接收敲击事件发生的指示,并且通过在敲击事件时确定选择装置相对于设备的位置来确定敲击事件相对于坐标系的位置。设备接着将敲击事件的位置转换到3-D图坐标系中。设备可接着基于坐标系中的敲击事件的位置来确定敲击事件的主体。主体可包括例如在设备的视锥体内示出的点、表面、对象或虚拟对象。选择装置可被配置成将敲击事件的发生传达到设备,并且包括允许设备通过确定选择装置的位置来确定敲击事件的位置的特征。对选择装置的位置的确定可包括对敲击事件发生时所处的选择装置上的特定点的位置或敲击事件发生时所处的选择装置的特定部分的位置的确定。
敲击事件的位置可被用来确定3-D图中的准确的点位置、对象、表面或表面的一部分。使用选择装置在对象或表面上或附近执行触发对设备的敲击事件的指示的敲击以及设备在接触时点处定位选择装置的能力提供了敲击事件的准确位置。与点位置、对象、表面或表面的一部分相关联的位置数据可接着被进一步处理,以提供视锥体中的场景中的效果或关于视锥体中的场景的数据。例如,位置数据可被用来实现增强现实设备中的应用特征,该增强现实设备接收对设备视锥体中的对象、表面或点的选择。所选择的对象、表面或点可接着在由设备创建的增强现实中被操纵。
示例实施例还包括一种选择装置,该选择装置包括检测包括选择装置与对象或表面的接触的敲击事件的敲击事件传感器。选择装置可包括用于将敲击事件的发生的指示传达到远离该对象或表面的另一设备的模块。选择装置还可包括基准标记,以允许另一设备在选择装置位于另一设备的视锥体内时确定选择装置在敲击事件时的位置。在一实现中,选择装置可被配置为包括尖端的触控笔,并且敲击事件传感器可被耦合到触控笔的尖端。基准标记可被设置在触控笔的尖端处,以允许另一设备确定敲击事件点的准确位置。
附图简述
图1A例示了使用选择装置的设备的示例实现;
图1B例示了解说图1A的设备和选择装置的各部分的简化框图。
图2A是解说由根据本公开的一实施例的设备执行的示例操作的流程图;
图2B是解说由根据本公开的一实施例的选择装置执行的示例操作的流程图;
图3A例示了来自使用选择装置的设备的视锥体内的一实现的示例使用场景;
图3B例示了来自使用用于表面定位的选择装置的设备的视锥体内的一实现的示例使用场景;
图4A例示了用于在执行测量时使用的设备的示例视锥体中的点和表面;
图4B是解说根据一实现的在图4A的各个点之间进行测量时所执行的示例操作的流程图;
图4C是解说根据另一实现的在图4A的各表面之间进行测量时所执行的示例操作的流程图;
图5A是示例选择装置的图示;
图5B是解说示例选择装置的各部分的简化框图;以及,
图6是解说示例设备的各部分的简化框图。
详细描述
现在将通过使用示例实施例来描述该系统、方法和装置。各示例实施例在本公开中出于解说的目的来被呈现且并非旨在约束或限制本文中所呈现的本公开或权利要求书的范围。
如本文中所使用的,当用户用选择装置(诸如触控笔)的尖端敲击现实世界对象时,敲击事件发生。敲击事件可要求触控笔被置于敲击-事件模式中,或者敲击事件可以在每当触控笔的尖端检测到它已接触到现实世界对象(诸如通过使用触控笔的尖端上的压力传感器或通过使用检测突然的改变的加速度计来测量触控笔的移动)时发生。触控笔可接着将敲击事件的现实世界坐标(这被称为敲击事件位置)储存在存储器中。
敲击事件位置可以在被用于设备的视锥体内的现实世界场景中的主体选择时提供优势。在一实现中,设备可储存相对于参考坐标系对现实世界场景进行建模的3-D图。各实施例允许用户通过设备相对于3-D图的参考坐标系检测和物理地定位敲击事件来获得准确的位置数据。可通过用选择装置敲击诸如场景中的点、对象或表面等所选择的主体来执行敲击事件。选择装置可被配置成向设备提供敲击事件的发生的指示,其允许设备准确地确定敲击事件发生时所处的位置。选择装置可配置有诸如独特的基准标记之类的特征,该特征增强了设备在检测到敲击事件已发生之际在包括现实世界和经模拟的对象的3-D场景内准确地辨别和定位选择装置的位置的能力。
敲击事件在坐标系中的位置数据可被用来准确地选择3-D模型中所表示的主体,以供设备应用作进一步的处理或操纵。基于敲击事件的位置,设备可以从设备应用所定义的设备使用上下文中确定:包括由3-D网格表示的表面的对象或结构被选择为主体。设备还可以从设备使用上下文中确定仅3-D网格所表示的且在其上发生了敲击事件的表面的一部分被选择为主体。所选择的主体也可以是虚拟对象,诸如由增强现实(AR)设备投影到场景中的对象。
准确地定位敲击事件的位置可以向允许用户在由设备建模的现实世界场景中执行输入的设备提供优势。例如,敲击事件的位置可被用于增强现实(AR)设备中,其中具有混合现实和非现实对象的合成图像被用来向查看者呈现场景。当与AR设备一起使用时,如与不使用各实施例的选择装置的选择方法相比,各实施例的敲击事件检测和定位方法允许对点、对象或表面的更准确的选择。选择装置允许用户向AR设备提供清晰的信号:对点、对象或表面的选择旨在向AR设备提供敲击事件的准确时间和准确位置。例如,敲击事件可以在靠近现实世界中的附近的其它对象或表面的某些目标对象或表面之间提供准确区分。在一种配置中,用户可能期望选择与其上放置它的背景对象相比小的目标对象。在该情形中,用户可以用选择装置敲击目标对象(该敲击是敲击事件),该选择装置接着在敲击事件时向AR设备发送敲击发生的指示。AR设备可接着在敲击事件时定位选择装置、确定敲击事件的位置,并且确定目标对象将被选择。AR设备具有清晰的指示:对敲击事件位置处的对象(即,目标对象)的选择是有意的。
在设备和选择装置中使用敲击事件定位的示例实现中,设备可调整和/或细化定义3维网格的已被储存的坐标位置数据,该3维网格基于从实际物理表面上的敲击事件确定的更准确的位置数据来对设备的3-D图中的物理表面进行建模。这可通过以下来被执行:确定敲击事件在由坐标系中的3-D网格建模的实际表面上的位置,以及将这些敲击事件位置与3-D模型中的3-D网格的位置坐标进行比较。被储存在3-D模型中的3-D网格的坐标位置可接着被调整,以移除在物理表面上所执行的敲击事件定位与对该表面建模的3-D网格的位置坐标之间的任何不一致性。这允许用户根据需要来微调现实世界场景的3-D模型。
在进一步的示例实现中,敲击事件的位置数据还可被用来准确地执行由3-D图建模的场景中的各个点之间的测量。在场景中的物理点处所执行的两个敲击事件之间的距离可被用来确定并准确地测量这两个点之间的物理距离。例如,被储存在设备中的3-D图可包括与第一和第二3-D网格相关联的位置数据,该第一和第二3-D网格分别表示设备视锥体中的第一和第二表面。设备可分别确定第一和第二表面上所执行的相继的第一和第二敲击事件的发生。设备可基于第一敲击事件相对于第一3-D网格位置的位置来确定第一敲击事件的主体是第一表面,并且基于第二敲击事件相对于第二3-D网格位置的位置来确定第二敲击事件的主体是第二表面。设备可接着基于3-D图确定该第一和第二表面之间的距离。例如,取决于设备使用上下文或当前被激活的应用,设备可确定第一和第二表面之间的最短或最长距离。根据该实现所作的测量可以使用任何类型的表面(诸如壁或弯曲的表面)来执行。设备还可确定这两个表面的各部分之间的最短或最长距离。该实现可例如当在两个壁之间进行测量时被使用,因为它不需要第一和第二敲击事件在这两个壁上彼此直接相对以供准确的距离测量。
现在参考图1A和1B,其中解说了设备104和选择装置102的示例实现。图1A例示了其中用户106正在结合选择装置102使用设备104的示例场景。在图1A中,设备104被实现为被配置成提供增强现实(AR)功能的可穿戴耳机设备。选择装置102可被实现为触控笔类型设备,该触控笔类型设备被配置成检测敲击事件并且生成针对设备104的敲击事件的指示。在一示例实现中,选择装置102可包括尖端108,该尖端108被耦合到选择装置102内部的敲击传感器。选择装置102还可包括被置于尖端108附近的选择装置102的壳体上的基准标记。图1A例示了由设备104提供给用户106的示例视锥体。视锥体由视线e、f、g和h限定,视线e、f、g和h取决于其中用户106指向设备104的方向从设备104成角度地辐射出。设备104的视锥体可以如设备104上的传感器能够检测场景中的对象那样远离设备104沿着视线e、f、g和h延伸出去。线a、b、c和d例示了在距离设备104的特定距离处的视锥体的示例区域。视锥体延伸至超过以线a、b、c和d为轮廓的示例区域的距离。视锥体向用户106提供对象的现实世界场景。设备104确定并储存相对于由示例轴110、112和114表示的参考坐标系115的场景的3-D图。设备104还确定其自己的相对于参考坐标系的位置和取向。用户106可将选择装置102保持在他们的手中,并且通过用选择装置102敲击对象来选择视锥体(即以设备104的线a、b、c和d为轮廓的区域)内的对象或表面。在图1A的替代实现中,设备104可被配置为任何类型的移动计算设备、智能电话、平板设备、静态计算设备、诸如演播室装备之类的组件系统,或者与根据实施例的选择装置交互的任何其它设备或组件系统。
图1B是解说图1A的设备104和选择装置102的各部分的简化框图。设备104包括通信模块122、敲击事件定位器124、传感器126、3-D映射器128、敲击事件主体确定器130和应用程序132。选择装置102可被配置为包括具有尖端108和基准标记105的壳体102a的触控笔类型设备。框102b示出了设备102的可被配置在壳体102a上和/或壳体102a内的示例组件,包括尖端108、敲击传感器118和通信模块120。基准标记105可包括经特殊配置的回反射器(retroreflector)或彩色LED,以允许诸如设备104之类的设备在设备104的视锥体中的场景内在视觉上区分触控笔的尖端的位置。基准标记105可被设置在选择装置102的尖端108处或附近(其中敲击发生),以允许诸如设备104之类的另一设备确定敲击事件的准确位置。敲击传感器118可被耦合到尖端108并且在敲击事件发生时被激活。
现在参考图2A,图2A中是解说由根据本公开的一实施例的设备执行的示例操作的流程图。图2A的设备可被实现为图1B的设备104,并且图2A的操作可参考图1A和1B进行描述。
图2A的过程开始于202,其中设备104确定设备104的视锥体内的现实世界场景的3-D图。视锥体可包括传感器126的范围内的以及如视线从设备104向外延伸那样以视线e、f、g和h为轮廓的区域中的任何场景或周围环境。当用户106改变设备104的位置时,场景可能发生改变并被更新。
设备104的传感器126可被用来感测和接收与视锥体136内的场景相关联的数据,以及将数据136作为感测到的数据148提供给3-D映射器128。传感器126可包括例如深度相机、红绿蓝(RGB)相机和惯性测量单元(IMU)。3-D映射器128可利用感测到的数据148将现实世界场景映射到相对于参考坐标系115的3-D图上。3-D映射器128还可以在用户106移动时通过自跟踪设备104来确定设备104相对于参考坐标系115的位置和取向。
3-D图可包括与由传感器126相对于参考坐标系115感测到的现实世界场景中的对象和表面相关联的位置数据。3-D图还可包括与对现实世界场景的一个或多个表面建模的3-D网格相关联的数据。在示例实现中,3-D图还可包括与被插入到现实世界场景中的虚拟对象相关联的数据或与现实世界场景中的现实世界对象的虚拟操纵相关联的数据。例如,AR设备可通过将虚拟对象插入到场景中或者改变现实世界对象的特性以在场景中看起来不同来增强设备用户的现实世界场景。
在204处,设备104从选择装置102接收敲击事件已在设备视锥体中发生的指示。该指示可由设备104在通信模块122处接收,该通信模块122被配置成接收来自选择装置102的通信模块120的无线通信134。通信模块122可接着向敲击事件定位器124提供敲击事件142的指示。在替代实现中,敲击事件已在设备视锥体中发生的指示可以在设备104处通过可被用来向设备104发信号通知敲击事件发生的其它方法来被接收,所述其它方法诸如光学、视觉、声学或声音/音频信令方法。
在206处,响应于接收到敲击事件142的指示,敲击事件定位器124确定敲击事件在参考坐标系115中的位置。敲击事件定位器124可通过利用传感器126所提供的数据144在敲击事件时相对于设备104的位置定位选择装置102来确定敲击事件的位置。敲击事件定位器124可使用由3-D映射器/跟踪器146提供的设备104在参考坐标系115中的已知位置和取向来将敲击事件相对于设备104的位置转换到参考坐标系115中。由敲击事件定位器124对设备104的位置的确定可以在接收到敲击事件142的指示之际立即发生,以便敲击事件的位置被准确地确定。在一实现中,敲击事件定位器124和传感器126可被配置成检测选择装置102上的基准标记105以确定敲击事件位置。基准标记105可被设置在选择装置102上毗邻于尖端108,该尖端108在敲击事件期间接触被定为目标的对象或表面。在图1B的替代实现中,选择装置102可以是自定位的并且将其位置连同敲击事件已发生的指示一起发信号通知设备104,而设备104无需确定选择装置102的位置。
在208处,敲击事件主体确定器130基于由敲击事件定位器124提供的敲击事件154的位置和由3D映射器128提供的数据150来确定敲击事件的主体。由敲击事件选择的主体可取决于设备使用上下文以及取决于应用程序132中正在处理敲击事件位置数据的特定应用程序。
在各实施例中,由敲击事件定位器124在206处确定的敲击事件位置允许具有特定使用上下文的特定应用或程序更有效地确定敲击事件的主体。例如,由敲击事件选择的主体可被确定为物理点、表面或表面的一部分、对象或对象的一部分、或虚拟对象。在其它实现中,取决于应用,多个主体(诸如像是使对象出现)可以基于对多个主体进行选择的一个敲击事件来被选择。
在210处,应用程序132使用来自操作208的所确定的敲击事件的主体来执行与设备104的其它功能交互的进一步处理。该处理可以是在由设备104中的3-D图建模的视锥体场景中使用、分析或操纵所选择的主体以实现预期结果的任何处理。
现在参考图2B,图2B中解说是由根据本公开的一实施例的选择装置执行的示例操作的流程图。图2B的选择装置可被实现为图1B的选择装置102,并且图2B的操作可参考图1A和1B进行描述。选择装置102可以在设备104执行图2A的操作时与设备104交互。如图2B所解说的,选择装置102可被配置为触控笔类型设备,其包括包含用于当对象或表面被敲击时用作接触点的尖端108的壳体102a。
图2B的过程开始于212,此时对象或表面被用选择装置102的尖端108来敲击。在214处,敲击传感器118接收由尖端108处的敲击事件生成的指示138,并且检测到该敲击事件已经发生。敲击传感器118可被实现为通过尖端108与被敲击的对象的接触而被激活的开关或压力传感器。替代地,敲击传感器118可被实现为话筒/声学传感器,该话筒/声学传感器感测由尖端108的敲击在所选择的对象上产生的声音。在其它替代实现中,敲击传感器118可包括加速度计,该加速度计被配置成通过在选择装置102接触对象时感测选择装置102的移动的停止来感测尖端108与该对象的接触。而且,包括加速度计的敲击传感器118的实现可被用来感测对虚拟对象的敲击选择。例如,对虚拟对象的敲击选择可以通过在设备104的视锥体中的被显示给用户106的虚拟对象上的点处感测用户对选择装置102的快速移动的停止来被执行。
在216处,响应于确定敲击事件已经发生,选择装置102对设备104生成敲击事件的指示。对设备104生成敲击事件的指示可包括:通信模块120从敲击传感器108接收敲击事件140的指示,以及将该指示作为无线信号134从通信模块120发送到设备104的通信模块122。这可以是在图2A的操作204处的由设备102接收到的敲击事件已发生的指示。在替代实现中,敲击传感器118可被实现为包括声音发生器,该声音发生器生成可以由设备104直接地感测到的独特的可听点击声(click)或声音信号。例如,敲击事件的指示的生成可包括在敲击事件的发生之际生成独特的可听声音。该独特的可听声音可以由设备104上的话筒或声音传感器接收,以指示敲击事件已经发生。
现在参考图3A,图3中例示了使用根据图2A和2B的选择装置实现的设备的视锥体中的示例场景。图3A例示了例如在图1A的设备104的视锥体内的场景。在图3A的示例实现中,设备104确定场景300相对于由线314、316和318所示的轴表示的参考坐标系的3-D图。场景300包括具有桌子302、地板312、墙壁308和墙壁310的房间的视图。画304和306被显示在墙壁308上,并且桌面嵌体(desktop inlay)302a被显示在桌子302上。场景300可以是实际房间的场景或房间的缩小比例的模型的场景。例如,场景300可示出建筑模型的视图。图3A还示出了图1A的包括尖端108的选择装置102,其将被保持在用户106的手中并且在用户106查看场景300时被操纵。在另一场景中,选择装置102可以由除用户106之外的人保持和操纵。这在设备104的视锥体延伸超过用户106够得着的范围时可能是有用的。
在示例场景中,用户106可通过在主体上敲击选择装置102的尖端108来选择场景300中的点、表面或对象。例如,用户106可通过用尖端108敲击桌面嵌体302a来选择桌面嵌体302a。图2A和2B的过程可接着被用来响应于敲击通过确定尖端108的位置来准确地确定桌面嵌体302a上的敲击点的位置。设备104中的应用程序可接着确定敲击事件的主体是桌面嵌体302a。提供准确的敲击位置的实现可具有特别的优点,例如,当敲击在桌面嵌体302a和桌面302之间的边界附近被执行时。在其它选择方法被使用的情况下可能难以确定桌面嵌体302a或桌面302中的哪一个被选择。在该情形中,准确的敲击位置的可用性可以在确定哪个对象是所选择的主体时化解歧义。桌面嵌体302a可接着如设备104中的AR程序所期望地来被操纵。例如,当确定桌面嵌体302a是敲击事件的主体时,可以在桌面嵌体302a上覆盖和采样不同的颜色。在另一示例中,诸如烟灰缸320之类的对象可以通过用尖端108敲击它来被选择。在其中烟灰缸320小且具有与桌面嵌体302a类似的颜色的情况下,对烟灰缸320上的敲击事件的准确定位可以允许设备104确定烟灰缸320已被选择。在某些情况下,它还可以向设备104提供数据:在设备104最初没有识别出烟灰缸320的情况下,烟灰缸320存在于场景300中并且需要针对3-D图被进一步处理。在其它示例使用场景中,准确的敲击事件位置确定可以允许与场景300的其它细节相关的准确的对象或表面选择。例如,使用触控笔102和尖端108的敲击事件定位可以允许对画304或306的不同部分的选择而没有歧义。在示例场景中,准确的敲击事件定位可以允许用户106准确地选择画304或306的框架而不是整幅画,或者选择画中所描绘的个体对象。各实施例的准确敲击事件定位还可被用来准确地选择场景300中的各个点,使得由设备104放置到场景300中的各虚拟对象可被精确地定位。例如,用户106可敲击墙壁308或310上的点,并且设备104可相对于敲击事件的位置来定位虚拟对象。在另一示例中,被放置到场景300中的虚拟对象可包括诸如虚拟键盘或具有被投影到诸如桌面嵌体302a之类的表面上的键或选择按钮的控制设备等对象。用户106可使用选择装置102以根据图2A和2B的操作通过敲击桌面嵌体302a上的键或按钮的图像来选择特定的虚拟键或选择按钮作为敲击事件主体。在进一步的实现中,当加速度计在选择装置102中被用作敲击传感器118时,虚拟对象可被选择作为敲击事件主体。例如,画306可以是由设备104插入到场景300中的虚拟画。画306可接着通过以下来被选择:在画306的边缘处使用对选择设备102的移动的快速减加速或停止来虚拟地敲击画306。选择设备102可接着根据移动的减加速或停止来确定所选择的画306已经发生的敲击事件。
在另一示例实现中,设备104和选择装置102可被配置成使得敲击事件发起与表面的连续接触。该实现可使用选择装置102的敲击传感器118而在尖端108处配置有压力感测以监视连续接触。设备104中的应用可被配置成用于确定和处理选择装置102与表面的连续接触。在该实现的示例中,设备104中的处理选择装置102与表面的连续接触的应用可以由用户106根据需要来被激活。在该实现中,通过在表面上的初始敲击期间确定选择装置102的尖端108的位置来确定敲击事件的位置。然后,尖端108的位置在尖端108与表面的连续接触期间被连续地确定。对连续接触的确定和处理可例如被用来跟踪准确的2维(2-D)形状以对视锥体中的表面进行建模。例如,在图3A的场景300中,桌面嵌体302a的表面的准确2-D模型可以通过以下来被构建:敲击嵌体302a的边缘、移动选择设备102以围绕嵌体302a的边缘进行跟踪,以及贯穿整个跟踪连续地确定和记录尖端108的位置。这将提供嵌体302a的准确的2-D模型,在嵌体302a不是完全方形或者桌子302和嵌体302a两者沿着嵌体302a的边缘都是翘曲的或具有不规则的形状的情况下该模型将尤其有用。该2-D模型可接着被用来构造用于嵌体302a的将准确地装配在桌子302中的替代物。
现在参考图3B,图3B中例示了来自使用用于表面定位的选择装置的设备的视锥体内的一实现的用途的示例。图3B例示了设备的视锥体中的场景320。视锥体可以是例如图1A和1B的设备104的视锥体。在使用图2A和图2B的敲击事件定位的示例实现中,设备104确定场景320相对于由线336、338和340所示的轴表示的参考坐标系的3-D图。场景320例示了具有地板322、墙壁324和墙壁326的房间的角落的视图。场景320的3-D图已由设备104创建,以使用3-D网格328、340和342分别对地板322、墙壁324和墙壁326上的表面进行建模。在图3B所示的场景中,准确的敲击事件位置可被用来细化或确认对特定表面建模的3-D网格数据。例如,用户106可使用选择装置102在实际物理墙壁326上的点330、332和334处执行敲击。对于每次敲击,设备104和选择装置102可根据图2A和2B的过程确定每个敲击事件的位置。场景320的3-D图中的点330、332和334处的实际物理墙壁上的敲击事件的位置可接着与同3-D网格342相关联的位置数据进行比较。与3-D网格相关联的位置数据可接着被修改或调整以与从敲击事件获得的位置数据相一致,从而创建墙壁326的表面的更准确的模型。如果墙壁326是翘曲或弯曲的,则更准确的3-D网格模型可被获得。例如,当场景包括具有变化的不规则表面以及诸如设备104之类的设备不能够准确地创建3-D网格来对表面进行建模时,图3B的实现具有用途。
现在参考图4A,图4A中解说了用于在根据一实现执行测量时使用的设备的示例视锥体中的各个点和表面。图4A解说了包括墙壁1和墙壁2的场景。在该示例中,墙壁1和墙壁2可以是基本上彼此平行地坐落着的结构的墙壁或侧面。视锥体可以是例如图2的设备104的视锥体,其在3-D图中对墙壁1和墙壁2进行建模。该结构可以是例如房间、一件家具或具有不同尺寸的任何其它结构。
现在参考图4B,图4B中是解说当在图4A中的各个点之间进行测量时所执行的示例操作的流程图。图4B解说了如何使用根据图2A和2B的敲击事件检测和定位来测量墙壁1和墙壁2之间的距离的示例。图4B的过程开始于402,其中测量应用在设备104上被激活。在404处,当选择装置102的用户在墙壁1的表面1上的点1处敲击时,设备104从选择装置102接收敲击事件已发生的指示。设备104接着通过确定选择装置102上的基准标记105相对于设备104的位置来确定点1的位置。在406处,当选择装置102的用户在墙壁2的表面2上的点2处敲击时,设备104从选择装置102接收第二敲击事件已发生的指示。设备104接着通过确定选择装置102上的基准标记105相对于设备104的位置来确定点2的位置。在408处,设备104使用点1和点2相对于设备104的位置来确定点1和点2相对于3-D图的坐标系的位置。然后,在410处,设备104使用3-D图来确定点1和点2之间的距离,以测量在线1处的墙壁1和墙壁2之间的距离。
现在参考图4C,图4C中是解说根据使用图2A和2B的敲击事件定位的另一实现在图4A的各表面之间进行测量时所执行的示例操作的流程图。图4C的过程开始于412,其中测量应用在设备104上被激活。在414处,设备104确定其视锥体中的对象的3-D几何和语义标签以创建3-D图。取决于使用上下文和测量应用,语义标签可以通过分别将表面1和2识别为墙壁1和墙壁2的表面来被确定和应用。在416处,当选择装置102的用户在墙壁1的表面1上的点3处敲击时,设备104从选择装置102接收敲击事件已发生的指示。设备104接着在点3处的敲击事件之际通过确定选择装置102上的基准标记105相对于设备104的位置来确定点3的位置。在418处,当选择装置102的用户在墙壁2的表面2上的点4处敲击时,设备104从选择装置102接收第二敲击事件已发生的指示。设备104接着通过确定选择装置102上的基准标记105相对于设备104的位置来确定点4的位置。在420处,设备104根据语义标签确定点3处的敲击事件选择了墙壁1的表面1。在422处,设备104根据语义标签确定点4处的敲击事件选择了墙壁2的表面2。在424处,设备104中的测量应用程序接着使用3-D图通过确定沿着垂直于所选择的表面1和2中的每一者的线3的距离来测量表面1和表面2之间的距离。图4C的测量过程可提供比图4B的测量过程更多的准确度。当选择装置102的用户不确定图4A中所选择的敲击事件点彼此正对着或者用户不能够触及墙壁上的彼此正对着的点时,情况会是如此。例如,如果图4B的实现与敲击事件点3和4一起使用,则表面1和2之间的距离将被不准确地测量为虚线2所示的距离。
现在参考图5A和5B,其中解说了选择装置的另一示例。图5A解说了作为示例触控笔形状的装置的选择装置500。选择装置500可以是图1中所例示的选择装置102的一种配置。选择装置500包括壳体部分510,该壳体部分510可包括电路系统/处理器和被配置成实现根据各实施例的功能的机械结构。壳体部分510包括尖端504和被设置在壳体部分510上毗邻于尖端504的基准标记502。在一实现中,基准标记502可包括尖端504的一部分或者被包含在尖端504内。基准标记502可包括例如回反射材料或彩色LED。
图5B是解说图5A的示例选择装置500的各部分的简化框图。选择装置500包括敲击传感器510、加速度计506、通信模块508、处理器512、声音发生器522、控制输入514和存储器516。存储器516包括敲击检测和处理程序518以及通信控制程序520。在选择装置的各实现中,选择装置500可包括比图5B的各个框所解说的那些功能更多或更少的功能。在一实现中的功能的配置取决于被用于确定敲击事件已经发生的操作以及被用于生成对另一设备(诸如图2的设备104)的敲击事件的指示的操作。
敲击传感器510确定敲击事件何时在尖端504处发生。敲击传感器510可以是例如压力感测设备或尖端504处的由敲击事件激活的开关。加速度计506感测并生成与选择装置500相关联的移动数据,该移动数据也可以由处理器512在确定敲击事件何时发生时使用。在选择装置500的各实现中,敲击传感器510和加速度计506可以被相结合地使用来感测敲击事件并提供待由处理器512处理的数据以确定敲击事件何时发生。在替代实现中,加速度计506或敲击传感器510中的任一者可以在没有另一个的情况下被实现在选择装置500中来提供待由处理器512处理的敲击事件数据,以确定敲击事件何时发生。
通信模块508将敲击事件的指示传达到诸如图2的设备104之类的另一设备。通信模块508还可被用来在选择装置500和诸如设备104之类的另一设备之间传达任何其它控制/设置信息。通信模块508可以是例如短程无线模块,该短程无线模块被配置成使用诸如Bluetooth(蓝牙)、Wi-Fi、Wi-Fi直联(Wi-Fi Direct)之类的协议或者可被用来与诸如设备104之类的另一设备通信的任何其它无线协议来传达信号。声音发生器522可以是生成能在诸如设备104之类的另一设备处检测到的独特的点击声或声音的任何类型的设备。声音发生器522可以在选择设备500的替代实现中被用来将敲击事件的指示传达到诸如设备104之类的另一设备。
存储器516可被实现为选择装置500中的任何类型的计算机可读存储介质,包括非易失性和易失性存储器。处理单元512可包括一个或多个处理器或者其它控制电路系统或者处理器和控制电路系统的任何组合。在一实现中,敲击检测和处理程序518以及通信控制程序520在被执行时致使处理器512控制选择装置500以通过执行图2B的操作来实现敲击事件确定和对另一设备的敲击事件指示的生成。
选择装置500还可包括用于选择装置500的设置/控制的控制输入514。控制输入514可包括选择装置500上的一个或多个开关或按钮,其允许用户取决于选择装置500与之通信的其它设备的通信能力来设置模式(例如,用于使用通信模块的模式或用于使用声音发生器522的模式),以生成敲击事件的指示。控制输入514还可被用来允许用户设置用于敲击检测的模式(例如,使用加速度计506或敲击传感器510或两者的模式)以确定敲击事件已经发生。例如,在替代实现中,控制输入514中的一者或多者可被并入通信模块508中,并且选择装置500的控制/设置可以被无线地执行。
现在参考图6,图6中是解说根据所公开的实施例实现的示例设备的各部分的简化框图。设备600表示设备的可能的实现,诸如图1A和1B的设备104。设备600可包括向用户提供接口的显示器和输入/输出(I/O)626。显示器和I/O626可包括例如触摸屏或按键板、话筒、扬声器、视觉显示器、在设备600的视锥体中创建的虚拟显示器、或从用户接收输入且向用户提供输出以允许用户控制设备600的其它I/O功能。设备600包括处理器612和存储器/存储614,该存储器/存储614被示为包括用于敲击检测和定位程序620的计算机程序代码或指令、操作系统代码(OS)616和应用程序618。设备600还包括无线通信模块622,该无线通信模块622可被用来从诸如选择装置500之类的选择装置接收敲击事件的发生的指示。无线通信模块622还可被用来与选择装置交换其它控制/设置信息。话筒624可随设备600一起被实现以供与选择装置一起使用,该选择装置通过用独特的点击声或其它声音产生技术发信号来指示敲击事件的发生。
图6还将设备600示为包括各传感器,所述各传感器包括深度相机602、RGB相机604、惯性测量单元(IMU)606和其它内部传感器608。深度相机602、RGB相机604、惯性测量单元(IMU)606和内部传感器608提供被用于以下的数据:用于创建设备600的视锥体中的场景相对于参考坐标系的3-D图,以及用于自跟踪设备600在参考坐标系中的位置和取向。存储器614可被用来储存在对设备600的位置进行自跟踪期间所生成的数据和3-D图数据。深度相机单元602、RGB相机单元604、惯性测量单元(IMU)606和内部传感器608还可提供被用来确定敲击事件的位置的数据,例如通过在接收到敲击事件的指示之际相对于设备600确定选择装置500上的基准标记502的位置。
在一实现中,敲击检测和定位程序620在被执行时致使处理器612通过执行图2A的一个或多个操作来控制设备600以实现敲击检测和敲击定位。在特定实现中,应用程序618可致使处理器控制设备600来实现诸如图2A的操作208和210之类的操作以处理敲击事件发生和位置数据。在其它示例实现中,敲击检测和定位程序620以及应用程序618在被执行时还可以执行关于图3A-3B或图4A-4C所描述的操作。
存储器614可被实现为设备600中的任何类型的计算机可读存储介质,包括非易失性和易失性存储器。处理单元612可包括一个或多个处理器或者其它控制电路系统或者处理器和控制电路系统的任何组合。处理单元612通过执行存储器614中的指令或代码来提供对设备600以及图6中示出的其它功能框的整体控制,以提供根据所公开的各实施例的设备600的操作所必需的功能。
图6中示出的功能可被实现在诸如图2的设备104之类的设备、专用相机设备或诸如除所解说的功能之外还具有其它能力的膝上型计算机、平板计算设备或智能电话等设备中。具有确定/接收自跟踪和敲击事件位置数据和/或处理数据的能力的任何设备可被用来实现各实施例。根据各实施例的设备的各种实现可包括比图6中所示的那些功能更多或更少的功能。
例如,设备600的实现可包括如以下的诸实现:智能电话、平板计算机、相机,摄像机、AR设备、台式计算机、膝上型计算机设备、游戏设备、媒体设备、智能电视、家庭影院系统、智能汽车系统、智能家居系统、多媒体有线/电视盒、智能电话配件设备、平板配件设备、个人数字助理(PDA)、便携式媒体播放器、智能传感器、多媒体演播室系统或工业控制系统。在这些其他实现中,可以省略、添加、组合或重新布置图6中所示的某些功能框。
本文中所公开的示例实施例可以在被储存在可包括一个或多个计算机可读存储介质(例如,有形非瞬态计算机可读存储介质,诸如存储器516或614)的存储器上的处理器可执行代码或指令的通用上下文中进行描述。应当容易理解,术语“计算机可读存储介质”或“非瞬态计算机可读介质”包括诸如存储器516或614之类的用于储存数据、代码和程序指令的介质,并且不包括用于储存经传播或经调制的数据通信信号的介质的各部分。
所公开的各实施例包括一种设备,该设备包括一个或多个处理器和与该一个或多个处理器通信的存储器,该存储器包括在被执行时致使该一个或多个处理器进行以下操作的代码:从至少一个传感器接收与设备的视锥体中的场景相关联的数据,基于该数据确定视锥体中的场景相对于坐标系的3维图,从选择装置接收敲击事件已在设备的视锥体中的场景内发生了的指示,响应于敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于对选择装置的至少一部分的定位确定敲击事件相对于坐标系的位置,以及基于敲击的位置确定敲击事件的主体。主体可包括设备的视锥体中的场景内的现实对象,或者主体可包括设备的视锥体中的场景内的虚拟对象。
3维图可包括与表示表面的至少一部分的3维网格相关联的位置数据,并且设备可通过以下来确定主体:基于敲击事件的位置和与3维网格相关联的位置数据确定至少一个表面的至少一部分。该代码在被执行时可进一步致使该一个或多个处理器基于表面上的敲击事件的位置来调整与3维网格相关联的位置数据。敲击事件可包括第一敲击事件,主体可包括第一点,从选择装置接收的指示可包括从选择装置接收的第一指示,并且该代码在被执行时可进一步致使该一个或多个处理器:基于从选择装置接收的第二指示确定第二敲击事件已经发生,响应于第二敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于响应于第二敲击事件发生而被定位的该选择装置的至少一部分的位置来确定第二敲击事件相对于坐标系的位置,基于第二敲击事件的位置确定第二点,以及确定该第一和第二点之间的距离。
还公开了各实施例,其中主体包括第一主体,3维图包括与第一和第二3维网格相关联的分别表示视锥体设备中的场景中的第一和第二主体的位置数据,敲击事件包括第一敲击事件,从选择装置接收的指示包括从选择装置接收的第一指示,并且该代码在被执行时致使该一个或多个处理器:基于第一敲击事件的位置从第一3维网格确定第一主体,基于从选择装置接收的第二指示确定第二敲击事件已经发生,响应于第二敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于响应于第二敲击事件发生而被定位的该选择装置的至少一部分的位置来确定第二敲击事件相对于坐标系的位置,基于第二敲击事件的位置从第二3维网格确定第二主体,以及基于3维图确定该第一和第二主体之间的距离。
敲击事件可发起与主体的连续接触,并且该代码在被执行时可致使该一个或多个处理器在连续接触期间确定选择装置相对于坐标系的位置。还公开了设备的进一步的实施例,其中从选择装置接收的指示包括来自选择装置中的加速度计的数据,从选择装置数据接收的指示包括来自选择装置中的压力传感器的数据,或者从选择装置数据接收的指示包括由选择装置产生的声音。设备可通过确定选择装置上的基准标记的位置来确定敲击事件的位置。
所公开的各实施例还包括一种方法,该方法包括从至少一个传感器接收与设备的视锥体中的场景相关联的数据,基于该数据确定视锥体中的场景相对于坐标系的3维图,从选择装置接收敲击事件已在设备的视锥体中的场景内发生了的指示,响应于敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于对选择装置的至少一部分的定位确定敲击事件相对于坐标系的位置,以及基于敲击事件的位置确定敲击事件的主体。主体可包括设备的视锥体中的场景中的现实对象,或者主体可包括设备的视锥体中的场景中的虚拟对象。3维图可包括与表示表面的至少一部分的3维网格相关联的位置数据,并且确定敲击事件的主体可包括基于敲击事件的位置和与3维网格相关联的位置数据确定该表面的至少一部分。该方法可进一步包括基于表面的该至少一部分上的敲击事件的位置来调整与3维网格相关联的位置数据。
还公开了该方法的各实施例,其中敲击事件包括第一敲击事件,主体包括第一点,从选择装置接收的指示包括从选择装置接收的第一指示,并且该方法进一步包括:从选择装置接收第二敲击事件已经在设备的视锥体中的场景中发生了的第二指示,响应于第二敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于响应于第二敲击事件发生而被定位的该选择装置的至少一部分的位置来确定第二敲击事件相对于坐标系的位置,基于第二敲击事件的位置确定第二点,以及确定该第一和第二点之间的距离。该方法的各实施例还包括这些实施例,其中主体包括第一主体,3维图包括与第一和第二3维网格相关联的分别表示设备的视锥体中的场景中的第一和第二主体的位置数据,敲击事件包括第一敲击事件,从选择装置接收的指示包括从选择装置接收的第一指示,并且该方法进一步包括:基于第一敲击事件的位置从第一3维网格确定第一主体,从选择装置接收第二敲击事件已经在设备的视锥体中的场景中发生了的第二指示,响应于第二敲击事件发生来使用该至少一个传感器相对于设备在视锥体中定位选择装置的至少一部分,基于响应于第二敲击事件发生而被定位的该选择装置的至少一部分的位置来确定第二敲击事件相对于坐标系的位置,基于第二敲击事件的位置从第二3维网格确定第二表面,以及基于3维图确定该第一和第二主体之间的距离。
所公开的各实施例还包括一种装置,该装置包括用于在该装置的位置在计算设备的视锥体内时向该计算设备可视地指示该位置的基准标记,用于检测敲击事件包括装置与位于计算设备的远程的主体的接触的敲击事件传感器,以及用于将敲击事件的发生的指示传达到计算设备的模块。敲击事件传感器可包括加速度计。该装置可包括具有包括尖端的壳体的触控笔,基准标记可被设置在尖端处,敲击事件传感器可被包括在壳体内并且被耦合到触控笔的尖端,并且该模块可被包括在壳体内。
尽管各实现已被公开且被描述为具有在特定设备上实现的功能,但是用于各个设备的一个或多个所描述的功能可以在各个设备之间移动并且可以在不同于附图中所示的设备的一个设备上被实现,或者在不同类型的装备上被实现。
尽管本文中所公开的功能性已参考各功能框和处理器或处理单元、控制器以及包括指令和代码的存储器使用对各实施例的各种组件和设备的描述而通过说明性示例进行了描述,但是各实施例的功能和过程可以使用任何类型的处理器、电路系统或处理器和/或电路系统的组合以及代码来被实现和执行。这可至少部分地包括一个或多个硬件逻辑组件。作为示例而非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。在本公开中对术语处理器或处理单元的使用旨在包括所有此类实现。
尽管用结构特征和/或方法动作专用的语言描述了本发明主体,但可以理解,所附权利要求书中定义的主体不必限于以上所描述的具体特征或动作。相反,上述具体特征和动作被公开为实现各权利要求的示例实施例、实现以及形式,并且这些示例配置和布置可被显著改变,而不背离本公开的范围。此外,尽管示例实施例是参照促进各过程的特定元件和操作阐述的,但这些元件和操作可以与实现该实施例的预期功能的任何合适的设备、组件、架构或过程相组合或者被其替代。本领域技术人员可查明各种其它改变、替换、变化、更改和修改,并且当落入所附权利要求书的范围内时本公开旨在涵盖所有这些改变、替换、变化、更改和修改。

Claims (17)

1.一种用于敲击事件定位的设备,包括:
至少一个传感器;
与所述至少一个传感器通信的一个或多个处理器;以及,
与所述一个或多个处理器通信的存储器,所述存储器包括在被执行时致使所述一个或多个处理器控制所述设备进行以下操作的代码:
使用所述至少一个传感器接收与所述设备的视锥体中的场景相关联的数据;
基于所述数据确定所述视锥体中的所述场景相对于坐标系的3维图;
从选择装置接收敲击事件已在所述视锥体中的所述场景内发生了的指示;
响应于所述敲击事件发生来使用所述至少一个传感器相对于所述设备在所述视锥体中定位所述选择装置的至少一部分;
基于对所述选择装置的至少一部分的定位确定所述敲击事件相对于所述坐标系的位置;以及
基于所述敲击事件的位置确定所述敲击事件的主体,
其中所述敲击事件包括第一敲击事件,所述主体包括第一点,从所述选择装置接收的所述指示包括从所述选择装置接收的第一指示,并且所述代码在被执行时进一步致使所述一个或多个处理器控制所述设备:
从所述选择装置接收第二敲击事件已在所述视锥体中的所述场景内发生了的第二指示;
响应于所述第二敲击事件发生来使用所述至少一个传感器相对于所述设备在所述视锥体中定位所述选择装置的至少一部分;
基于响应于所述第二敲击事件发生而被定位的所述选择装置的至少一部分的位置来确定所述第二敲击事件相对于所述坐标系的位置;
基于所述第二敲击事件的位置确定第二点;以及
确定所述第一点和所述第二点之间的距离。
2.根据权利要求1所述的设备,其特征在于,所述主体包括所述视锥体中的所述场景中的现实对象。
3.根据权利要求1所述的设备,其特征在于,所述主体包括所述视锥体中的所述场景中的虚拟对象。
4.根据权利要求1所述的设备,其特征在于,所述3维图包括与表示表面的至少一部分的3维网格相关联的位置数据,并且所述设备基于所述敲击事件的位置和与所述3维网格相关联的所述位置数据来将所述主体确定为所述表面的至少一部分。
5.根据权利要求4所述的设备,其特征在于,所述代码在被执行时进一步致使所述一个或多个处理器基于所述表面的至少一部分上的所述敲击事件的位置来调整与所述3维网格相关联的所述位置数据。
6.根据权利要求1所述的设备,其特征在于,所述主体包括第一主体,所述3维图包括与第一和第二3维网格相关联的分别表示所述设备的视锥体中的所述场景中的所述第一主体和第二主体的位置数据,并且所述代码在被执行时致使所述一个或多个处理器控制所述设备:
基于所述第一敲击事件的位置从所述第一3维网格确定所述第一主体;
基于所述第二敲击事件的位置从所述第二3维网格确定所述第二主体;以及
基于所述3维图确定所述第一主体和所述第二主体之间的距离。
7.根据权利要求1所述的设备,其特征在于,其中所述敲击事件发起与所述主体的连续接触,并且其中所述代码在被执行时致使所述一个或多个处理器控制所述设备在所述连续接触期间确定所述选择装置相对于所述坐标系的位置。
8.根据权利要求1所述的设备,其特征在于,从所述选择装置接收的所述指示包括无线信号。
9.根据权利要求1所述的设备,其特征在于,从所述选择装置接收的所述指示包括由所述选择装置产生的声音。
10.根据权利要求1所述的设备,其特征在于,从所述选择装置接收的所述指示包括由所述选择装置产生的视觉信号。
11.根据权利要求1所述的设备,其特征在于,所述设备通过定位所述选择装置上的基准标记来定位所述选择装置的至少一部分。
12.一种用于敲击事件定位的方法,包括:
使用至少一个传感器接收与设备的视锥体中的场景相关联的数据;
基于所述数据确定所述视锥体中的所述场景相对于坐标系的3维图;
从选择装置接收敲击事件已在所述视锥体中的所述场景内发生了的指示;
响应于所述敲击事件发生来使用所述至少一个传感器相对于所述设备在所述视锥体中定位所述选择装置的至少一部分;
基于对所述选择装置的至少一部分的定位确定所述敲击事件相对于所述坐标系的位置;以及
基于所述敲击事件的位置确定所述敲击事件的主体,
其中所述敲击事件包括第一敲击事件,所述主体包括第一点,从所述选择装置接收的所述指示包括从所述选择装置接收的第一指示,并且所述方法进一步包括:
从所述选择装置接收第二敲击事件已在所述视锥体中的所述场景内发生了的第二指示;
响应于所述第二敲击事件发生来使用所述至少一个传感器相对于所述设备在所述视锥体中定位所述选择装置的至少一部分;
基于响应于所述第二敲击事件发生而被定位的所述选择装置的至少一部分的位置来确定所述第二敲击事件相对于所述坐标系的位置;
基于所述第二敲击事件的位置确定第二点;以及,
确定所述第一点和所述第二点之间的距离。
13.根据权利要求12所述的方法,其特征在于,所述3维图包括与表示表面的至少一部分的3维网格相关联的位置数据,并且所述主体基于所述敲击事件的位置和与所述3维网格相关联的所述位置数据而被确定为所述表面的至少一部分。
14.根据权利要求13所述的方法,其特征在于,所述方法进一步包括基于所述表面的至少一部分上的所述敲击事件的位置来调整与所述3维网格相关联的所述位置数据。
15.根据权利要求12所述的方法,其特征在于,所述主体包括第一主体,所述3维图包括与第一和第二3维网格相关联的分别表示所述设备的视锥体中的所述场景中的所述第一主体和第二主体的位置数据,并且所述方法进一步包括:
基于所述第一敲击事件的位置从所述第一3维网格确定所述第一主体;
基于所述第二敲击事件的位置从所述第二3维网格确定第二表面;以及
基于所述3维图确定所述第一主体和所述第二主体之间的距离。
16.一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如权利要求12-15中任一权利要求所述的方法。
17.一种计算机系统,包括用于执行如权利要求12-15中任一权利要求所述的方法的装置。
CN201780035998.0A 2016-06-10 2017-06-02 利用选择装置的敲击事件定位 Active CN109313502B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/178,587 2016-06-10
US15/178,587 US10249084B2 (en) 2016-06-10 2016-06-10 Tap event location with a selection apparatus
PCT/US2017/035575 WO2017213974A1 (en) 2016-06-10 2017-06-02 Tap event location with a selection apparatus

Publications (2)

Publication Number Publication Date
CN109313502A CN109313502A (zh) 2019-02-05
CN109313502B true CN109313502B (zh) 2022-04-05

Family

ID=59153281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780035998.0A Active CN109313502B (zh) 2016-06-10 2017-06-02 利用选择装置的敲击事件定位

Country Status (4)

Country Link
US (2) US10249084B2 (zh)
EP (1) EP3469460A1 (zh)
CN (1) CN109313502B (zh)
WO (1) WO2017213974A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146300B2 (en) * 2017-01-25 2018-12-04 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Emitting a visual indicator from the position of an object in a simulated reality emulation
US10768425B2 (en) * 2017-02-14 2020-09-08 Securiport Llc Augmented reality monitoring of border control systems
CA2960528C (en) * 2017-03-08 2018-03-20 Synaptive Medical (Barbados) Inc. A depth-encoded fiducial marker for intraoperative surgical registration
US10216265B1 (en) * 2017-08-07 2019-02-26 Rockwell Collins, Inc. System and method for hybrid optical/inertial headtracking via numerically stable Kalman filter
JP7017689B2 (ja) * 2017-12-29 2022-02-09 富士通株式会社 情報処理装置、情報処理システムおよび情報処理方法
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
CN109358750A (zh) * 2018-10-17 2019-02-19 Oppo广东移动通信有限公司 一种控制方法、移动终端、电子设备及存储介质
CN110989886B (zh) * 2019-11-29 2022-05-27 广州海格星航信息科技有限公司 基于空间地图的三维空间网格选取方法及装置
CN112035028A (zh) * 2020-09-15 2020-12-04 Oppo广东移动通信有限公司 界面控制方法、界面控制装置、存储介质与电子设备
US11995228B2 (en) 2022-01-11 2024-05-28 Rockwell Collins, Inc. Head tracking system with extended kalman filter combining absolute and relative navigation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181343B1 (en) 1997-12-23 2001-01-30 Philips Electronics North America Corp. System and method for permitting three-dimensional navigation through a virtual reality environment using camera-based gesture inputs
US6552722B1 (en) 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7692637B2 (en) * 2005-04-26 2010-04-06 Nokia Corporation User input device for electronic device
GB0622451D0 (en) 2006-11-10 2006-12-20 Intelligent Earth Ltd Object position and orientation detection device
US8797274B2 (en) 2008-11-30 2014-08-05 Lenovo (Singapore) Pte. Ltd. Combined tap sequence and camera based user interface
US8542252B2 (en) 2009-05-29 2013-09-24 Microsoft Corporation Target digitization, extraction, and tracking
US8232990B2 (en) * 2010-01-05 2012-07-31 Apple Inc. Working with 3D objects
US8730309B2 (en) 2010-02-23 2014-05-20 Microsoft Corporation Projectors and depth cameras for deviceless augmented reality and interaction
CN102770829B (zh) * 2010-03-15 2015-07-22 日本电气株式会社 输入设备、输入方法和程序
US20120050530A1 (en) 2010-08-31 2012-03-01 Google Inc. Use camera to augment input for portable electronic device
US20120142415A1 (en) * 2010-12-03 2012-06-07 Lindsay L Jon Video Show Combining Real Reality and Virtual Reality
WO2012135545A1 (en) * 2011-03-29 2012-10-04 Qualcomm Incorporated Modular mobile connected pico projectors for a local multi-user collaboration
US20130044912A1 (en) 2011-08-19 2013-02-21 Qualcomm Incorporated Use of association of an object detected in an image to obtain information to display to a user
DE202013012233U1 (de) * 2012-05-09 2016-01-18 Apple Inc. Vorrichtung und grafische Benutzerschnittstelle zum Anzeigen zusätzlicher Informationen in Antwort auf einen Benutzerkontakt
US9152226B2 (en) 2012-06-15 2015-10-06 Qualcomm Incorporated Input method designed for augmented reality goggles
CN103578141A (zh) * 2012-08-06 2014-02-12 北京图盟科技有限公司 基于三维地图系统的增强现实实现方法及装置
US9182812B2 (en) * 2013-01-08 2015-11-10 Ayotle Virtual sensor systems and methods
US9251590B2 (en) 2013-01-24 2016-02-02 Microsoft Technology Licensing, Llc Camera pose estimation for 3D reconstruction
US10173129B2 (en) * 2013-06-09 2019-01-08 Sony Interactive Entertainment Inc. Methods for rendering interactive content to a head mounted display
US20150100914A1 (en) * 2013-10-04 2015-04-09 Samsung Electronics Co., Ltd. Gestures for multiple window operation
EP2947546A1 (en) * 2014-05-20 2015-11-25 Alcatel Lucent Module for implementing gaze translucency in a virtual scene
US10504231B2 (en) * 2014-05-21 2019-12-10 Millennium Three Technologies, Inc. Fiducial marker patterns, their automatic detection in images, and applications thereof
US9632597B2 (en) * 2014-06-12 2017-04-25 Amazon Technologies, Inc. Configurable active stylus devices

Also Published As

Publication number Publication date
WO2017213974A1 (en) 2017-12-14
CN109313502A (zh) 2019-02-05
US20170358131A1 (en) 2017-12-14
EP3469460A1 (en) 2019-04-17
US10249084B2 (en) 2019-04-02
US10665014B2 (en) 2020-05-26
US20190228575A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
CN109313502B (zh) 利用选择装置的敲击事件定位
CN107810465B (zh) 用于产生绘制表面的系统和方法
EP3218781B1 (en) Spatial interaction in augmented reality
EP2601640B1 (en) Three dimensional user interface effects on a display by using properties of motion
US9411413B2 (en) Three dimensional user interface effects on a display
JP6625523B2 (ja) Hudオブジェクト設計および表示方法。
CN102830795B (zh) 利用运动传感装置的远程控制
CN103365411A (zh) 信息输入设备、信息输入方法和计算机程序
TWI530858B (zh) 一種立體交互系統和立體交互方法
US10739870B2 (en) Stylus for coordinate measuring
WO2017021902A1 (en) System and method for gesture based measurement of virtual reality space
US11010051B2 (en) Virtual sound mixing environment
KR20090087270A (ko) 3차원 위치 입력 방법 및 장치
US11537196B2 (en) Drift cancelation for portable object detection and tracking
KR20150133585A (ko) 3차원 영상의 단면 탐색 시스템 및 방법
KR101888491B1 (ko) 가상 공간 이동 장치 및 방법
JP2004265222A (ja) インタフェース方法、装置、およびプログラム
US11886643B2 (en) Information processing apparatus and information processing method
US20200042792A1 (en) Audio processing
US10936147B2 (en) Tablet computing device with display dock
KR20150084756A (ko) 스마트폰 등에 구비된 센서들을 이용한 위치추적시스템
US20230136269A1 (en) Systems and methods for dynamic sketching with exaggerated content
JPWO2018074054A1 (ja) 表示制御装置、表示制御方法及びプログラム

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