CN112295221A - 人机交互的处理方法、装置及电子设备 - Google Patents

人机交互的处理方法、装置及电子设备 Download PDF

Info

Publication number
CN112295221A
CN112295221A CN202011261921.5A CN202011261921A CN112295221A CN 112295221 A CN112295221 A CN 112295221A CN 202011261921 A CN202011261921 A CN 202011261921A CN 112295221 A CN112295221 A CN 112295221A
Authority
CN
China
Prior art keywords
interaction
interactive
obstacle
area
scanning
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.)
Granted
Application number
CN202011261921.5A
Other languages
English (en)
Other versions
CN112295221B (zh
Inventor
杨文婷
林雨
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011261921.5A priority Critical patent/CN112295221B/zh
Publication of CN112295221A publication Critical patent/CN112295221A/zh
Application granted granted Critical
Publication of CN112295221B publication Critical patent/CN112295221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • 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
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Abstract

本申请提供了一种人机交互的处理方法、装置、电子设备及计算机可读存储介质;方法包括:响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域;其中,所述交互区域包括至少一个交互对象;响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置;呈现与所述障碍物的位置适配的交互对象的交互信息。通过本申请,能够实现交互区域的自定义,满足各种各样的人机交互需求。

Description

人机交互的处理方法、装置及电子设备
技术领域
本申请涉及人机交互技术,尤其涉及一种人机交互的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
人机交互(Human–Computer Interaction,HCI)是指以一定的交互方式,进行人与计算机之间的信息交换。例如,可以向用户提供计算机的用户接口部件(如触摸屏),计算机根据用户在用户接口部件上执行的操作,做出相应的响应。
在实际应用场景中,往往会涉及到基于空间中特定的区域(即交互区域)进行人机交互。在相关技术提供的方案中,交互区域通常是固定的,例如,对于内部安装有触摸屏的会议白板来说,交互区域固定为触摸屏所在的区域,无法更改。因此,在相关技术提供的方案中,人机交互的过程会受到固定的交互区域的限制,无法满足各种各样的人机交互需求。
发明内容
本申请实施例提供一种人机交互的处理方法、装置、电子设备及计算机可读存储介质,能够实现交互区域的自定义,减少对人机交互过程的限制,从而满足各种各样的人机交互需求。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种人机交互的处理方法,包括:
响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域;其中,所述交互区域包括至少一个交互对象;
响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置;
呈现与所述障碍物的位置适配的交互对象的交互信息。
本申请实施例提供一种人机交互的处理装置,包括:
选择模块,用于响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域;其中,所述交互区域包括至少一个交互对象;
交互模块,用于响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置;
呈现模块,用于呈现与所述障碍物的位置适配的交互对象的交互信息。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的人机交互的处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的人机交互的处理方法。
本申请实施例具有以下有益效果:
通过接收到的选择操作来确定目标空间中的交互区域,实现了交互区域的自定义,能够符合各种各样的人机交互需求;通过障碍物扫描所获得的障碍物的位置,确定适配的交互对象,进而呈现该交互对象的交互信息,能够保证人机交互的准确性。
附图说明
图1是本申请实施例提供的人机交互的处理系统的一个架构示意图;
图2是本申请实施例提供的终端设备的一个架构示意图;
图3A是本申请实施例提供的人机交互的处理方法的一个流程示意图;
图3B是本申请实施例提供的人机交互的处理方法的一个流程示意图;
图3C是本申请实施例提供的人机交互的处理方法的一个流程示意图;
图4是本申请实施例提供的对象选择界面的一个示意图;
图5是本申请实施例提供的交互区域选择界面的一个示意图;
图6是本申请实施例提供的交互区域选择界面的一个示意图;
图7A是本申请实施例提供的触摸识别场景的一个示意图;
图7B是本申请实施例提供的触摸识别场景的一个示意图;
图7C是本申请实施例提供的触摸识别场景的一个示意图;
图8是本申请实施例提供的根据集成有交互组件及激光测距雷达组件的电子设备进行人机交互的一个示意图;
图9是本申请实施例提供的根据集成有交互组件、投影组件及激光测距雷达组件的电子设备进行人机交互的一个示意图;
图10是本申请实施例提供的数据通信的一个示意图;
图11是本申请实施例提供的激光测距雷达设备的一个架构示意图;
图12是本申请实施例提供的激光测距雷达设备的一个工作流程示意图;
图13是本申请实施例提供的激光测距雷达设备的一个扫描原理示意图;
图14是本申请实施例提供的激光测距雷达设备的一个扫描原理示意图;
图15是本申请实施例提供的Node服务的一个工作流程示意图;
图16是本申请实施例提供的通讯模式的一个示意图;
图17是本申请实施例提供的Web服务的一个工作流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)目标空间:指真实世界中的空间,例如可以是会议室空间、某张桌子的桌面空间或投影幕布所在的空间等,可以根据实际的人机交互需求进行自由设定。目标空间也可以是用于进行障碍物扫描的设备所能够扫描到的空间。
2)交互区域:目标空间的子集,指专用于进行人机交互的区域。交互区域包括至少一个交互对象,用于引导进行交互,交互对象可以是实体对象或虚拟对象,其中,实体对象是指真实世界中的真实物体,虚拟对象是指不存在真实形体的对象。例如,交互对象可以是投影在交互区域中的虚拟按钮,用于引导用户进行触摸(点击)。
3)障碍物:在本申请实施例中,障碍物是指用户与交互对象进行交互时,所使用的真实物体。例如,障碍物可以是用户的手指,可以是用户所持的笔,甚至还可以是用户全身。这里,可以基于射线遇到障碍物反射的原理实现障碍物扫描,也可以基于双目测距原理实现障碍物扫描,对此不做限定。
4)交互信息:与交互对象对应,可以预先设定。例如,当交互对象是一个虚拟按钮时,交互信息可以是该虚拟按钮对应的键位信息;当交互对象是一张实体卡片时,交互信息可以是该实体卡片的表面图像。
本申请实施例提供一种人机交互的处理方法、装置、电子设备和计算机可读存储介质,能够实现交互区域的自定义,同时保证人机交互的准确性,从而满足各种各样的人机交互需求。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备。
参见图1,图1是本申请实施例提供的人机交互的处理系统100的一个架构示意图,终端设备400通过网络300连接目标空间中的测距雷达设备200,其中,网络300可以是广域网或者局域网,又或者是二者的组合。终端设备400可以通过有线或无线通信方式,与测距雷达设备200进行直接或间接地连接。
如图1所示,终端设备400中运行有客户端410。客户端410响应于针对目标空间的选择操作,以确定选择操作在目标空间中选择的交互区域,其中,交互区域包括至少一个交互对象。在图1中,示出了包括按钮A、按钮B及按钮C的交互区域,其中,示出的按钮即为交互对象,按钮可以是虚拟按钮,也可以是实体按钮。然后,客户端410响应于针对交互区域的交互开启操作,向测距雷达设备200发送指令,以使测距雷达设备200对交互区域进行障碍物扫描。测距雷达设备200在扫描得到障碍物的位置后,将障碍物的位置发送至客户端410。客户端410在交互区域包括的至少一个交互对象中,确定与障碍物的位置适配的交互对象,并呈现适配的交互对象的交互信息。
在图1中,以文本编辑的场景作为示例,按钮A、按钮B及按钮C可以是投影在交互区域中的虚拟按钮,每个按钮即为一个键位。在人机交互的过程中,用户可以使用障碍物(如手指或笔等)来触摸(或称点击)交互区域中的某个按钮,作为响应,客户端410在文档界面中显示被点击的按钮(即适配的交互对象,图1中以按钮A为例)对应的键位信息,其中,键位信息即为交互信息。如此,用户便可通过投影的虚拟按钮来进行文本编辑,不再需要实体键盘,降低了人机交互的成本。当然,本申请实施例的应用场景并不限于此,例如还可以应用于触摸式的密码解锁场景、游戏互动场景及人体经过检测场景等,对此不做限定。
在一些实施例中,终端设备400及测距雷达设备200可以集成于同一电子设备中实现,该电子设备既具有响应用户操作及呈现交互信息的功能,还具有进行障碍物扫描的功能。此外,还可以在该电子设备上集成投影虚拟对象的功能,便于用户使用该电子设备,在任意空间进行人机交互。
在一些实施例中,终端设备400可以通过运行计算机程序来实现本申请实施例提供的人机交互的处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
参见图2,图2是本申请实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的人机交互的处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:选择模块4551、交互模块4552及呈现模块4553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的人机交互的处理方法。
参见图3A,图3A是本申请实施例提供的人机交互的处理方法的一个流程示意图,将结合图3A示出的步骤进行说明。
在步骤101中,响应于针对目标空间的选择操作,以确定选择操作在目标空间中选择的交互区域;其中,交互区域包括至少一个交互对象。
这里,目标空间可以根据人机交互的需求进行自由设定,例如目标空间可以是会议室空间、某张桌子的桌面空间或投影幕布所在的空间等,又例如,目标空间可以是用户预先放置好的、用于进行障碍物扫描的设备(如测距雷达设备或双目摄像头等)所能够扫描到的空间。电子设备(这里指用于进行人机交互的电子设备)响应于针对目标空间的选择操作,以确定选择操作在目标空间中选择的交互区域,其中,交互区域可以是目标空间中的一部分区域,也可以目标空间所包括的全部区域。此外,交互区域中包括有至少一个交互对象,该交互对象可以是虚拟对象,例如投影到交互区域中的虚拟对象,也可以是实体对象。如此,便于用户自由定制用于进行人机交互的交互区域,能够满足各种各样的互动需求。
以文本编辑的场景为例,目标空间可以是办公桌的整个桌面空间,用户可以根据实际需求,划分桌面空间的部分区域为交互区域,例如交互区域可以是用户双手的日常活动区域。其中,交互区域投影有虚拟键盘,虚拟键盘中的各个虚拟按钮(虚拟按键)即为交互对象。
在一些实施例中,针对目标空间的选择操作可以包括自定义选择操作和默认选择操作。举例来说,可以在交互区域选择界面中呈现默认选项和自定义选项两个选项,当接收到针对默认选项的选择操作时,将默认交互区域作为选择的交互区域;当接收到针对自定义选项的选择操作时,实时获取用户进行自定义得到的交互区域。这里,对默认交互区域不做限定,例如可以是目标空间包括的全部区域,默认交互区域可以统一设定,或者由用户提前设定。通过上述方式,能够提升选择交互区域的灵活性,满足用户的不同需求。
在一些实施例中,步骤101之后,还包括:响应于针对交互区域的对象选择操作,以将虚拟对象、以及交互区域包括的实体对象中的至少一种作为交互对象;当交互对象包括虚拟对象时,将虚拟对象投影至交互区域中。
在确定出交互区域之后,可以响应于针对交互区域的对象选择操作,以将虚拟对象、以及交互区域包括的实体对象中的至少一种作为交互对象。接下来进行分别说明。
1)对于虚拟对象来说,虚拟对象可以完全由用户进行自由定制,例如,可以呈现对象选择界面,以便用户在对象选择界面中配置虚拟对象的数量、各个虚拟对象的形状(即形象)、以及各个虚拟对象在交互区域中的投影位置(即排布方式)等,即供用户执行对象选择操作。其中,对象选择界面可以包括交互区域的图像,以便用户基于交互区域的图像进行准确设置。
虚拟对象也可以是预先设定好的,例如,可以预先设定多个虚拟对象模板,其中,在每个虚拟对象模板中已经设定好虚拟对象的数量、各个虚拟对象的形状、以及各个虚拟对象在交互区域中的投影位置。然后,可以在对象选择界面呈现多个虚拟对象模板的示意图,并响应于针对任意一个虚拟对象模板的选择操作(即对象选择操作),将所选择的虚拟对象模板中的虚拟对象,作为本次交互的交互对象。
在另一种情况中,设定的每个虚拟对象模板也可以对应人机交互的一个功能,如此,可以在对象选择界面呈现多个功能,并响应于针对任意一个功能的选择操作(即对象选择操作),将所选择的功能对应的虚拟对象模板中的虚拟对象,作为本次交互的交互对象。作为示例,本申请实施例提供了如图4所示的对象选择界面的一个示意图,在图4中,人机交互的功能可以包括文本编辑功能、多媒体功能以及游戏互动功能,其中,文本编辑功能对应的虚拟对象模板包括虚拟键盘上的多个虚拟按钮;多媒体功能对应的虚拟对象模板包括多媒体虚拟按钮,如“播放”虚拟按钮、“前进”虚拟按钮及“后退”虚拟按钮等;游戏互动功能对应的虚拟对象模板包括多个游戏道具(或者游戏效果)对应的虚拟按钮。更进一步地,文本编辑功能还可进一步划分为87键编辑功能和104键编辑功能,其中,87键编辑功能对应的虚拟对象模板包括87键的虚拟键盘上的多个虚拟按钮;104键编辑功能对应的虚拟对象模板包括104键的虚拟键盘上的多个虚拟按钮。游戏互动功能还可进一步划分为不同游戏的游戏互动功能,如音乐游戏及射击游戏等。通过上述方式,能够快速确定符合用户需求的虚拟对象模板,即能够提升人机交互的效率。此外,在确定出所选择的虚拟对象模板(或者所选择的功能对应的虚拟对象模板)之后,也可以在对象选择界面中呈现该虚拟对象模板的示意图,以便用户进行调整,例如增减该虚拟对象模板中虚拟对象的数量、调整某些虚拟对象的形状、调整某些虚拟对象的投影位置等,如此,便于进一步符合用户需求。
2)对于实体对象来说,可以响应于针对交互区域的对象选择操作,以将交互区域包括的部分实体对象或者全部实体对象作为交互对象。举例来说,可以对交互区域进行对象扫描,并将所扫描到的实体对象所在的位置范围呈现在对象选择界面中,便于用户选择将哪个或哪些实体对象作为交互对象。其中,还可以根据实体对象所在的位置范围内的多个位置进行建模处理,并将建模处理得到的形状呈现于对象选择界面中,便于用户根据形状区分不同的实体对象。值得说明的是,在本申请实施例中,实体对象(或者障碍物)的位置是指实体对象的局部或者实体对象中的某个点的位置,因此在建模处理时,需要根据实体对象的多个位置还原出实体对象的整体形状。另外,对象扫描与后文的障碍物扫描的原理可以一致。
另一种方式是,用户也可以在对象选择界面中手动配置交互区域包括哪些交互对象、以及每个交互对象所在的位置范围。该种方式适用于实体对象无法被扫描到的场景,例如,实体对象与用于进行对象扫描的测距雷达设备位于同一水平面上,且实体对象是一张贴合于该水平面上的卡片。
在通过对象选择操作确定出本次交互的交互对象后,若交互对象包括虚拟对象,则将虚拟对象投影至交互区域中。本申请实施例对投影虚拟对象的方式不做限定,例如可以是全息投影或灯光投影等。在本申请实施例中,交互区域包括的交互对象可以全部是虚拟对象,可以全部是实体对象,也可以混合有虚拟对象和实体对象,即虚实结合,如此,能够提升对不同场景的适用性。
在步骤102中,响应于针对交互区域的交互开启操作,以获取对交互区域进行障碍物扫描所获得的障碍物的位置。
这里,响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,得到障碍物的位置。本申请实施例对位置的形式不做限定,例如位置可以包括距离和角度,也可以是三维坐标系中的坐标。另外,本申请实施例对障碍物扫描的方式同样不做限定,例如可以控制目标空间中的测距雷达设备或者摄像头(如双目摄像头),以对交互区域进行障碍物扫描。
值得说明的是,在对交互区域进行障碍物扫描之前,可以对交互区域进行对象扫描,并存储扫描得到的实体对象的位置范围,这里,扫描得到的实体对象可能是互动对象(例如实体对象是用于进行人机交互的实体按钮),也可能不是(例如实体对象是目标空间中的墙壁,并非用于人机交互)。在对交互区域进行障碍物扫描的过程中,将扫描得到的位置与实体对象的位置范围进行匹配,若得到的位置落入实体对象的位置范围,即匹配成功,则确定扫描到的是实体对象,不做后续处理;若得到的位置未落入所有实体对象的位置范围,即匹配失败,则确定扫描到的是障碍物。通过上述方式,能够有效避免将交互区域中原本存在的实体对象误认为障碍物,适用于位置为三维坐标系中的坐标等情况。
在一些实施例中,交互区域的数量包括多个;步骤101之后,还包括:响应于针对多个交互区域的关注度选择操作,以获取每个交互区域的关注度;根据关注度从大到小的顺序,对多个交互区域进行排序;为排序后的多个交互区域,分别分配障碍物扫描的扫描频率;其中,为交互区域分配的扫描频率与交互区域的排序位次的靠前程度正相关。
这里,在交互区域的数量包括多个的情况下,可以响应于针对多个交互区域的关注度选择操作,以获取每个交互区域的关注度。例如,在多人参与的会议桌会议场景中,每个人在会议桌的桌面空间中均单独对应一个交互区域,则可以为重要程度较高的人对应的交互区域设置较大的关注度,为重要程度较低的人对应的交互区域设置较小的关注度。
某个交互区域的关注度越大,表示对该交互区域进行的障碍物扫描越为重要。因此,根据关注度从大到小的顺序,对多个交互区域进行排序,并为排序后的多个交互区域,分别分配障碍物扫描的扫描频率,其中,为交互区域分配的扫描频率与该交互区域的排序位次的靠前程度正相关,即某交互区域的排序位次越靠前,则为该交互区域分配的扫描频率越高。这里的正相关关系可以根据实际应用场景进行具体设定,例如为某个交互区域分配的扫描频率=w1/该交互区域的排序位次,其中w1为正数。
扫描频率可以是指发射探测射线的频率,即一段时间内(如1秒内)发射多少条探测射线,当然也可以是指其他参数,根据具体的障碍物扫描方式而定,扫描频率越高,则障碍物扫描的效果越好。通过上述方式,能够确定适合每个交互区域的扫描频率,在保证障碍物扫描效果的同时,避免不必要的资源浪费。当然,上述方式仅为示例,针对交互区域(这里不限定交互区域的数量),本申请实施例还可应用默认的扫描频率进行障碍物扫描,或者,根据用户实时设定或选择的扫描频率进行障碍物扫描。
在一些实施例中,在对交互区域进行障碍物扫描的过程中,还包括:周期性地确定交互区域内障碍物的位置的获取频率;根据获取频率,对障碍物扫描的扫描频率进行更新处理;其中,获取频率与扫描频率正相关。
在根据确定出的扫描频率,对交互区域进行障碍物扫描的过程中,还可以周期性地确定交互区域内障碍物的位置的获取频率。障碍物的位置的获取频率越高,代表交互区域内障碍物出现得越频繁,因此,可以根据得到的获取频率,对障碍物扫描的扫描频率进行更新处理,以根据更新后的扫描频率,进行下一周期的障碍物扫描。其中,获取频率与扫描频率正相关,这里的正相关关系同样可以根据实际应用场景进行具体设定,例如扫描频率=w2×获取频率,其中w2为正数。通过上述方式,能够在障碍物扫描的过程中,对扫描频率进行自适应调整,在保证障碍物扫描效果的基础上,减少不必要的资源浪费。
在一些实施例中,可以通过这样的方式来实现上述的响应于针对交互区域的交互开启操作,以获取对交互区域进行障碍物扫描所获得的障碍物的位置:执行以下任意一种处理:响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,直至接收到针对交互区域的交互关闭操作;响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,直至扫描得到障碍物的位置。
本申请实施例提供了障碍物扫描的两种模式。第一种模式是单次请求-多次应答的模式,即响应于针对交互区域的交互开启操作,对交互区域持续进行障碍物扫描,并在接收到针对交互区域的交互关闭操作时,停止进行障碍物扫描。该模式适用于持续性的人机交互场景,例如在文本编辑场景中,用户需要不断地触摸虚拟按钮以进行文本编辑。
第二种模式是单次请求-单次应答的模式,即响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,并在扫描得到障碍物的位置时,停止进行障碍物扫描。该模式适用于间隔性或一次性的人机交互场景,例如在抢答式的游戏互动场景中,将提出问题的操作视为交互开启操作,若扫描得到障碍物的位置,则视为有人进行了抢答(例如抢答者用手指触摸了交互区域中的虚拟抢答按钮),停止进行障碍物扫描,等待下一个提出问题的操作。如此,只在必要时进行障碍物扫描,能够有效地节省障碍物扫描所耗费的资源。
通过上述两种模式,能够提升障碍物扫描的灵活性,便于应用至不同的场景。
在步骤103中,呈现与障碍物的位置适配的交互对象的交互信息。
例如,可以获取交互区域内的每个交互对象的位置范围,当通过障碍物扫描得到交互区域内的障碍物的位置时,将障碍物的位置与交互区域内每个交互对象的位置范围进行匹配。当障碍物的位置位于某个交互对象的位置范围内,即匹配成功时,确定该交互对象与障碍物的位置适配,并呈现适配的交互对象的交互信息。
交互信息可以根据实际应用场景进行设定,例如可以是文本信息、图像信息或视频信息等。举例来说,在文本编辑场景中,若适配的交互对象是虚拟键盘中的某个虚拟按钮,则交互信息可以是该虚拟按钮对应的键位信息;在多媒体播放场景中,若适配的交互对象是用于控制视频进度后退的虚拟按钮,则交互信息可以是后退若干秒的视频画面;在游戏互动场景中,若适配的交互对象是某个游戏道具对应的虚拟按钮,则交互信息可以是该游戏道具的特效。
在一些实施例中,可以通过这样的方式来实现上述的呈现与障碍物的位置适配的交互对象的交互信息:呈现目标空间的空间图像;在空间图像中,呈现障碍物、与障碍物的位置适配的交互对象、以及适配的交互对象的交互信息。
这里,目标空间的空间图像可以是预先设定的,如通过人为建模得到,也可以是经过对象扫描处理及建模处理而得到的,例如,在进行障碍物扫描之前,可以对目标空间进行对象扫描处理,并对扫描得到的、目标空间中所有实体对象的位置范围(也称点云地图信息)进行建模处理,得到空间图像,这里的实体对象可能是交互对象,也可能与人机交互无关,例如可以是目标空间的地面、墙壁等。另外,空间图像可以是2D图像或3D图像,对此不做限定。
在得到适配的交互对象的交互信息后,可以在空间图像中,呈现障碍物、与障碍物的位置适配的交互对象、以及适配的交互对象的交互信息。其中,呈现的障碍物的形状可以通过对扫描到的障碍物的多个位置进行建模处理得到。呈现的交互对象的形状可以预先设定,当交互对象为实体对象时,该实体对象的形状也可以通过对该实体对象进行对象扫描及建模处理得到。通过上述方式,能够更加直观地体现人机交互的过程,适用于游戏互动或虚拟现实(Virtual Re ality,VR)场景。例如,用户可以在目标空间中与交互对象进行互动,同时用户可以通过佩戴VR设备,来观看VR设备的屏幕所呈现的目标空间的空间图像,呈现的空间图像包括障碍物(如用户双手或用户全身)、适配的交互对象(如某个虚拟道具)、以及适配的交互对象的交互信息(如虚拟道具的触发效果),如此,能够提升人机交互的效果。
在一些实施例中,步骤101之后,还包括:响应于针对交互对象的条件选择操作,以确定交互对象的交互条件;可以通过这样的方式实现上述的呈现与障碍物的位置适配的交互对象的交互信息:当障碍物符合与障碍物的位置适配的交互对象的交互条件时,呈现适配的交互对象的交互信息;其中,交互条件包括停留时长阈值以及面积占比阈值中的任意一种。
在本申请实施例中,还可以响应于针对交互区域中的交互对象的条件选择操作,以确定交互对象的交互条件,其中,交互条件包括停留时长阈值以及面积占比阈值中的任意一种,但这并不构成对交互条件的限定。
在确定出与障碍物的位置适配的交互对象后,判断障碍物是否符合适配的交互对象的交互条件。例如,在交互条件为停留时长阈值的情况下,若障碍物在适配的交互对象的位置范围的停留时长大于停留时长阈值,则确定障碍物符合该交互条件;在交互条件为面积占比阈值的情况下,若障碍物在适配的交互对象的位置范围中的面积占比大于面积占比阈值,则确定障碍物符合该交互条件。
当障碍物不符合适配的交互对象的交互条件时,不做处理;当障碍物符合适配的交互对象的交互条件时,呈现适配的交互对象的交互信息。通过上述方式,能够有效地保证呈现出的交互信息的准确性,避免因无意中的误交互(如误触)而呈现错误的交互信息。
在一些实施例中,当待呈现的交互信息的数量包括多个时,可以通过这样的方式实现上述的呈现与障碍物的位置适配的交互对象的交互信息:执行以下任意一种处理:同时呈现多个交互信息;分别获取多个交互信息的优先级,并呈现优先级最高的交互信息。
在本申请实施例中,待呈现的交互信息的数量可能包括多个。例如,扫描到的某个障碍物包括多个位置(即障碍物的不同部分的位置),其中,某些位置与交互对象A适配,某些位置与交互对象B适配;又例如,同时或在一段时间内扫描到障碍物C和D,其中障碍物C的位置与交互对象E适配,障碍物D的位置与交互对象F适配。
针对该情况,本申请实施例提供了两种呈现方式,第一种呈现方式是,同时呈现所有待呈现的交互信息。第二种呈现方式是,分别获取每个待呈现的交互信息的优先级,并呈现其中优先级最高的交互信息,第二种呈现方式可以避免因误互动(如误触)而呈现错误的交互信息。其中,不同交互对象的交互信息的优先级可以预先设定,也可以通过交互对象的历史适配次数来确定,即交互信息的优先级与该交互信息对应的交互对象的历史适配次数正相关,这里的历史适配次数是指交互对象在历史上适配成功的次数。例如,交互信息的优先级(这里以数值形式作为示例)=w3×该交互信息对应的交互对象的历史适配次数,其中w3为正数,当然,这里的正相关关系可以根据实际应用场景进行具体设定,并不限于此。
在一些实施例中,步骤102之后,还包括:控制与障碍物的位置适配的交互对象执行交互操作。
除了呈现与障碍物的位置适配的交互对象的交互信息之外,在本申请实施例中,还可以控制适配的交互对象执行交互操作。其中,交互操作可以根据实际应用场景进行设定,不同交互对象对应的交互操作可以相同,也可以不同。交互操作可以是用于突出交互对象的操作,举例来说,在适配的交互对象为投影的虚拟对象时,交互操作可以是改变该虚拟对象的颜色的操作,或者使投影的该虚拟对象高亮的操作等。在文本编辑的场景中,通过改变虚拟键盘中被用户触摸的虚拟按钮,或者使被用户触摸的虚拟按钮高亮,能够便于用户快速确定触摸方式是否正确,是否符合预期。
在适配的交互对象为实体对象时,交互操作可以是控制该实体对象进行发光(如实体对象为可发光的实体按钮)的操作,或者可以是控制该实体对象进行移动的操作等。上述方式通过交互对象本身来体现人机交互的结果,能够有效提升人机交互的直观性,扩展人机交互的反馈途径。
如图3A所示,本申请实施例通过接收到的针对目标空间的选择操作来确定目标空间中的交互区域,实现了交互区域的自定义,能够符合各种各样的人机交互需求,有效扩展人机交互的应用场景;通过障碍物扫描所获得的障碍物的位置,确定适配的交互对象,进而呈现适配的交互对象的交互信息,能够保证人机交互的准确性,实现精确反馈。
在一些实施例中,参见图3B,图3B是本申请实施例提供的人机交互的处理方法的一个流程示意图,图3A示出的步骤101可以通过步骤201至步骤203中的至少一个步骤实现,将结合各步骤进行说明。
在步骤201中,呈现目标空间的空间图像以及绘制工具,响应于针对绘制工具的选择操作,以将通过绘制工具在空间图像中绘制的区域作为交互区域。
在本申请实施例中,可以通过针对目标空间的自定义选择操作,来确定目标空间中的交互区域,作为示例,提供了如图5所示的交互区域选择界面的示意图,在图5中,示例性地提供了三种方式,以下进行分别说明。
在第一种方式中,呈现目标空间的空间图像以及绘制工具,响应于针对绘制工具的选择操作,以将通过绘制工具在空间图像中绘制的区域作为交互区域。其中,目标空间的空间图像可以预先设定,如通过人为建模得到,也可以对目标空间进行对象扫描处理及自动建模处理得到。绘制工具可以包括画笔工具等,支持对目标空间的区域选定操作。该种方式可以为用户提供自由绘制交互区域的功能,用户可通过绘制工具,根据实际需求绘制所需要的交互区域。
在步骤202中,呈现目标空间的空间图像以及多个区域模板,响应于针对区域模板的选择操作,以将所选择的区域模板应用至空间图像中所形成的区域,作为交互区域。
在第二种方式中,呈现目标空间的空间图像以及预先设定好的多个区域模板,响应于针对任意一个区域模板的选择操作,以将所选择的区域模板应用至空间图像中所形成的区域,作为交互区域。例如,区域模板可根据实际应用场景进行设定,例如某个区域模板包括目标空间的左半区域,另一个区域模板包括目标空间的右半区域。
在一些实施例中,可以呈现将所选择的区域模板应用至空间图像中所形成的区域的预览图像,以便用户判断是否将所形成的区域作为交互区域。这里,还可以在交互区域选择界面中呈现一个确认选项,当用户对应用某个区域模板所形成的区域满意时,可以通过选择该确认选项,以将所形成的区域作为交互区域。另外,在已应用某个区域模板的基础上,可以响应于针对另一个区域模板的选择操作,以在原始的空间图像上重新应用所选择的区域模板,从而实现不同区域模板之间的切换,便于用户选择出符合自身需求的区域模板。
如图5所示,可以在交互区域选择界面中呈现区域模板选项,并响应于针对区域模板选项的选择操作,呈现多个区域模板,这里,可以呈现区域模板的示意图或者文字描述(如“目标空间的左半区域”或“目标空间的右半区域”等),以便用户了解区域模板的内容。
值得说明的是,在本申请实施例中,可以针对人机交互的不同功能设定不同的区域模板,如图6所示,可以设定多人会议功能对应区域模板A,区域模板A包括与参会者的会议入座位置相符的多个区域;文本编辑功能对应区域模板B,区域模板B包括按照用户双手的正常活动范围设定的一个区域;游戏互动功能对应区域模板C,区域模板C包括按照游戏规则设定的多个交互区域。在接收到针对交互区域选择界面中的区域模板选项的选择操作时,呈现多个区域模板分别对应的功能的名称。然后,响应于针对任意一个功能的选择操作,将所选择的功能对应的区域模板应用至空间图像中所形成的区域,作为交互区域。
在步骤203中,呈现目标空间的空间图像以及多个历史交互区域,响应于针对历史交互区域的选择操作,以将所选择的历史交互区域作为本次交互的交互区域。
在第三种方式中,呈现目标空间的空间图像以及在历史上选择的多个历史交互区域,响应于针对任意一个历史交互区域的选择操作,以将所选择的历史交互区域作为本次交互的交互区域。
如图5所示,可以在交互区域选择界面中呈现历史交互区域选项,并响应于针对历史交互区域选项的选择操作,呈现多个历史交互区域,同样地,这里可以呈现历史交互区域的示意图或者文字描述。通过第三种方式,能够提供符合用户的历史交互习惯的历史交互区域,从另一角度满足用户的区域选择需求。
值得说明的是,上述三种方式可以任选其一使用,也可以结合使用。例如,在通过步骤202或者步骤203确定出交互区域之后,可以响应于针对绘制工具的选择操作,以使用户根据绘制工具对确定出的交互区域进行进一步调整。
如图3B所示,本申请实施例从不同的角度,提供了三种确定交互区域的方式,能够提升用户自定义交互区域时的灵活性。
在一些实施例中,参见图3C,图3C是本申请实施例提供的人机交互的处理方法的一个流程示意图,图3A示出的步骤102可以通过步骤301至步骤304实现,将结合各步骤进行说明。
在步骤301中,响应于针对交互区域的交互开启操作,根据多个角度向交互区域发射探测射线。
在本申请实施例中,可以利用射线遇到障碍物反射的原理,实现障碍物扫描。首先,响应于针对交互区域的交互开启操作,根据多个角度向交互区域发射探测射线,探测射线如激光。例如,控制测距雷达设备进行旋转,并在测距雷达设备的旋转过程中,控制其以当前的角度向交互区域发射探测射线。
在步骤302中,当接收到与发射的任意一条探测射线对应的反射射线时,根据接收到反射射线的时间点与发射任意一条探测射线的时间点之间的差值,确定扫描得到的障碍物的距离。
例如,当接收到与发射的任意一条探测射线对应的反射射线时,将接收到该反射射线的时间点减去发射该探测射线的时间点,得到差值时长。然后,根据差值时长及射线的传播速度(通常为光速),即可确定扫描得到的障碍物的距离,公式如障碍物的距离=差值时长×光速/2。
在步骤303中,将发射任意一条探测射线时的角度,作为障碍物的角度。
同时,将发射探测射线(这里指反射射线对应的探测射线)时的角度,作为障碍物的角度。例如,可以将测距雷达设备发射该探测射线时所处的角度,作为障碍物的角度,
在步骤304中,将障碍物的距离和角度,共同作为障碍物的位置。
这里,障碍物的位置即包括障碍物的距离和角度。
在一些实施例中,步骤101之后,还包括:响应于针对交互区域内的任意一个交互对象的范围选择操作,以确定任意一个交互对象对应的距离范围和角度范围;步骤304之后,还包括:当障碍物的距离位于任意一个交互对象的距离范围内、且障碍物的角度位于任意一个交互对象的角度范围内时,确定任意一个交互对象与障碍物的位置适配。
这里,交互区域内的交互对象的位置范围可以人为设定,其中,位置范围可以包括距离范围和角度范围。例如,响应于针对交互区域内的任意一个交互对象的范围选择操作,以确定该交互对象对应的距离范围和角度范围。
在通过障碍物扫描确定出障碍物的位置后,若障碍物的位置中的距离位于某个交互对象的距离范围内、且该障碍物的位置中的角度位于该交互对象的角度范围内时,确定该交互对象与该障碍物的位置适配。上述方式根据距离和角度两个方面,判断障碍物是否落入交互对象的位置范围,能够提升交互对象适配的准确性。
如图3C所示,本申请实施例可以利用射线反射的原理来实现障碍物扫描,能够提升得到的障碍物的位置的精度,从而提升人机交互的准确性。当然,在本申请实施例中还可利用双目测距等原理实现障碍物扫描,对此不做限定。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用,为了便于理解,以基于激光测距雷达设备实现人机交互中的触摸识别的场景进行示例说明。本申请实施例提供了如图7A所示的触摸场景的示意图,包括终端设备71、交互对象72、交互对象73以及激光测距雷达设备74,其中,交互对象72、交互对象73以及激光测距雷达设备74位于同一平面上,终端设备71与激光测距雷达设备74通过有线方式连接,并以终端设备71为电脑的情况作为示例。在本申请实施例中,交互对象可以是实体对象,也可以是虚拟对象,图7A中以实体的卡片为例。
终端设备71可以运行Node.js环境中的JavaScript脚本,来启动激光测距雷达设备74的电机,并使激光测距雷达设备74开始扫描,其中,Node.js是J avaScript的运行环境。值得说明的是,在图7A中,目标空间即为激光测距雷达设备74所能够扫描到的空间,交互区域可以与目标空间等同,或者可以包括交互对象72所在区域以及交互对象73所在的区域。
如图7B所示,当激光测距雷达设备74扫描到障碍物75时,将障碍物75的位置(例如包括距离和角度)发送至终端设备71,以使终端设备71呈现与障碍物75的位置适配的交互对象的交互信息,即交互对象72的交互信息76。在图7B中,以障碍物75为手持的笔进行示例说明,交互对象72的交互信息76即为交互对象72的卡片表面图像,该卡面表面图像可以提前存储在终端设备71中。同理,如图7C所示,当激光测距雷达设备74扫描到障碍物77时,将障碍物77的位置发送至终端设备71,以使终端设备71呈现与障碍物77的位置适配的交互对象73的交互信息78。
在一些实施例中,上述的终端设备及激光测距雷达设备可以通过组件形式集成至同一电子设备中,本申请实施例对具体的实现方式不做限定。作为示例,本申请实施例提供了如图8所示的电子设备的示意图,在图8中,示出了电子设备81、交互对象84及交互对象85,电子设备81包括交互组件82及激光测距雷达组件83,其中,交互组件82用于支持与用户之间的人机交互,例如接收针对目标空间的选择操作、接收针对交互区域的交互开启操作、以及呈现交互信息等,还用于启动激光测距雷达组件83的电机,并控制激光测距雷达组件83开始扫描。交互组件82可以通过显示屏、实体按钮等接口部件,实现与用户之间的人机交互,对此不做限定。图8所示的电子设备81可以提供便捷式的人机交互功能,即用户可以根据实际需求,将电子设备81放置于选定的目标空间中,并通过交互组件82开始进行人机交互。
在一些实施例中,电子设备中还可集成投影组件,作为示例,本申请实施例提供了如图9所示的电子设备的示意图,在图9中,电子设备91包括交互组件92、投影组件93及激光测距雷达组件94,其中,交互组件92除了与激光测距雷达组件94进行连接之外,还与投影组件93进行连接。交互组件92在确定出在目标空间中选择的交互区域、以及交互区域中作为虚拟对象的交互对象时,可以控制投影组件93将交互对象投影至目标空间的交互区域中,如图9中投影在交互区域95中的虚拟按钮A和虚拟按钮B,以便用户触摸投影的交互对象。当然,在实际应用场景中,也可以通过单独的投影设备(如投影仪)来实现虚拟对象的投影,对此不做限定。
接下来,从底层实现的角度说明人机交互的过程,作为示例,本申请实施例提供了如图10所示的人机交互的流程图。本申请实施例的硬件环境可以包括激光测距雷达设备、以及与激光测距雷达设备存在有线或无线连接的终端设备,其中,终端设备运行有基于Node.js构建的Node服务(用于与激光测距雷达设备进行数据通信)及Web服务(例如用于运行浏览器),Node服务与Web服务之间可以通过WebSocket进行通信。上述的通信方式仅为一种示例,在实际应用场景中,还可以利用C、C++或Python等编程语言来实现通信。终端设备可以通过Node服务,执行对激光测距雷达设备进行控制的逻辑脚本(即JavaScr ipt脚本)。激光测距雷达设备在电机被启动后,开始进行360度的旋转扫描,并将扫描到的障碍物的距离和角度返回给Node服务,Node服务对接收到的数据进行筛查和处理,以判断与障碍物的距离和角度适配的是哪一个交互对象。
在触摸识别场景中,可以预先设定各个交互对象的位置,例如,将两张卡片分别放置于激光测距雷达设备的左右两侧,即90°和180°方向,根据卡片的大小和形状得到卡片相对于激光测距雷达设备的位置,如可以设定两张卡片的角度范围分别是[minAngle1,maxAngle1],[minAngle2,maxAngle2],两张卡片的相对于激光测距雷达设备的距离范围相同,均为[minDis,maxDis]。启动激光测距雷达设备之后,激光测距雷达设备会将扫描数据以[{angle:xx,di st:xx},{angle:xx,dist:xx},……]这样的数组形式持续返回给Node服务,Node服务通过遍历数组中的每条扫描数据,来判断是否有障碍物处于卡片所在的位置范围,如果有,Node服务将结果通过WebSocket传输至Web服务,以在浏览器的Web界面上展示出来。其中,angle是指角度,dist是指距离。
本申请实施例还提供了如图11所示的激光测距雷达设备的架构示意图,在图11中,激光测距雷达设备包括激光测距核心、通讯与供电接口、供电与机械部分,当然,这并不构成对本申请实施例的限定,本申请实施例也可以应用其他架构的激光测距雷达设备。终端设备中的Node服务可以通过Serialport库来实现与激光测距雷达设备之间的数据通信,其中,Serialport库能够为串口编码提供必要的steam接口。
本申请实施例还提供了如图12所示的激光测距雷达设备的工作流程示意图,为了便于理解,以步骤形式进行说明。
1)Node服务与激光测距雷达设备建立通信连接。
这里,终端设备在通过有线或无线的方式连接激光测距雷达设备后,还需要建立与激光测距雷达设备之间的数据链路(即通信连接),以便进行数据传输。例如,对于终端设备中的Node服务来说,可以引用Serialport库,并通过调用激光测距雷达设备在终端设备中的设备路径(例如激光测距雷达设备在通过U SB线与终端设备连接后,终端设备所显示的激光测距雷达设备的设备路径),来建立与激光测距雷达设备之间的通信连接。
2)激光测距雷达设备在接收到Node服务发送的启动电机的指令时,开始进行360度的旋转。
激光测距雷达设备与外部系统的通信模式是外部系统发送指令给激光测距雷达设备,激光测距雷达设备执行相应的操作。因此,Node服务在与激光测距雷达设备建立通信连接之后,可以向激光测距雷达设备发送启动电机的指令,在启动电机的指令中还可以设置一些相关的启动参数,如电机转动的速度等,这里不做限定。
3)激光测距雷达设备在接收到Node服务发送的开始扫描的指令时,启动扫描功能。
这里,开始扫描的指令中也可以包括与扫描过程相关的一些参数,如扫描模式(如高性能模式、低性能模式)等,对此不做限定。
本申请实施例提供了如图13和图14所示的激光测距雷达设备的扫描原理示意图,激光测距雷达设备的工作原理是向外界发射激光,并接收被障碍物反射回来的激光,如此,便可计算出障碍物相对于激光测距雷达设备的距离,同时,将激光测距雷达设备发射激光时所在的角度作为障碍物的角度。其中,角度是取值范围是[0,360度)。
4)Node服务接收激光测距雷达设备发送的扫描数据。
这里,Node服务可以通过监听的方式,获取激光测距雷达设备扫描得到的扫描数据,扫描数据即为障碍物的距离和角度。
本申请实施例提供了如图15所示的Node服务的工作流程示意图,为了便于理解,将以步骤形式进行说明。
1)Node服务与激光测距雷达设备建立通信连接,并接收激光测距雷达设备发送的扫描数据。
这里,可以应用单次请求-多次应答的通讯模式来进行扫描数据的传输。作为示例,本申请实施例提供了如图16所示的通讯模式示意图,在图16中,外部系统即为Node服务,测距请求报文即为上述的开始扫描的指令,测距采样(采样点)即为上述的扫描数据。另外,起始报文是激光测距雷达设备发出的一个确认报文,证明激光测距雷达设备已经接收到测距请求报文,即将进入测距模式,执行测距操作(即扫描操作)。Node服务在接收到起始报文时,开始接收测距采样。
2)Node服务与Web服务建立WebSocket通信连接。
3)Node服务判断是否有障碍物落入交互对象的位置范围。
这里,交互对象的位置范围包括距离范围和角度范围,可以根据实际应用场景进行预先设定。Node服务在获取到多条扫描数据后,对获取到的扫描数据进行遍历,若遍历到的扫描数据中障碍物的距离位于某个交互对象的距离范围、且该障碍物的角度位于该交互对象的角度范围,则确定该障碍物落入该交互对象的位置范围,即该交互对象与障碍物的位置适配,进而Node服务将适配的交互对象的标识添加在扫描数组中;若遍历到的扫描数据中障碍物的距离不位于任意一个交互对象的距离范围、或者该障碍物的角度不位于任意一个交互对象的角度范围,则确定该障碍物未落入任意一个交互对象的位置范围,进而Node服务将设定参数添加在扫描数组中。其中,设定参数与交互对象的标识不同。在图15中,以适配的交互对象为卡片为例,标识可以是卡片序号,对于不同的卡片可以设定不同的卡片序号,例如,卡片序号可以为大于-1的数值,设定参数可以为-1。
Node服务可以周期性地检测(例如设置一个定时器进行检测)扫描数组中是否包括交互对象的标识,若检测到,则将扫描数组中交互对象的标识作为扫描结果,并通过WebSocket通信连接发送至Web服务,同时将扫描数组清空;若未检测到,则可以将设定参数作为扫描结果,并通过WebSocket通信连接发送至Web服务,以提示当前周期内没有障碍物落入交互对象的位置范围。
本申请实施例提供了如图17所示的Web服务的工作流程示意图,为了便于理解,将以步骤形式进行说明。
1)Web服务与Node服务建立WebSocket通信连接。
2)Web服务基于WebSocket通信连接,接收Node服务发送的扫描结果。
这里,当Web服务接收到的扫描结果是交互对象的标识时,将该交互对象的交互信息(如卡片表面图像)显示在浏览器的Web界面中;当Web服务接收到的扫描结果是设定参数时,在浏览器的Web界面中呈现“未选中卡片”的提示。
通过本申请实施例中,至少能够实现以下技术效果:降低了触摸识别的实现成本,可利用便携式设备(如上述的激光测距雷达设备)实现交互区域中的触摸识别,无需在交互区域部署触摸屏,可适用于各种各样的场地;能够扩展应用场景,除了触摸识别,还可以应用于多点触控实现虚拟按钮(例如虚拟键盘中的多个虚拟按钮)、人体经过检测等场景,即能够满足超出平面之外的场景的互动需求。
下面继续说明本申请实施例提供的人机交互的处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的人机交互的处理装置455中的软件模块可以包括:选择模块4551,用于响应于针对目标空间的选择操作,以确定选择操作在目标空间中选择的交互区域;其中,交互区域包括至少一个交互对象;交互模块4552,用于响应于针对交互区域的交互开启操作,以获取对交互区域进行障碍物扫描所获得的障碍物的位置;呈现模块4553,用于呈现与障碍物的位置适配的交互对象的交互信息。
在一些实施例中,选择模块4551,还用于执行以下至少一种处理:呈现目标空间的空间图像以及绘制工具,响应于针对绘制工具的选择操作,以将通过绘制工具在空间图像中绘制的区域作为交互区域;呈现目标空间的空间图像以及多个区域模板,响应于针对区域模板的选择操作,以将所选择的区域模板应用至空间图像中所形成的区域,作为交互区域;呈现目标空间的空间图像以及多个历史交互区域,响应于针对历史交互区域的选择操作,以将所选择的历史交互区域作为本次交互的交互区域。
在一些实施例中,呈现模块4553,还用于:呈现目标空间的空间图像;在空间图像中,呈现障碍物、与障碍物的位置适配的交互对象、以及适配的交互对象的交互信息。
在一些实施例中,人机交互的处理装置455还包括:对象选择模块,用于响应于针对交互区域的对象选择操作,以将虚拟对象、以及交互区域包括的实体对象中的至少一种作为交互对象;投影模块,用于当交互对象包括虚拟对象时,将虚拟对象投影至交互区域中。
在一些实施例中,人机交互的处理装置455还包括:条件选择模块,用于响应于针对交互对象的条件选择操作,以确定交互对象的交互条件;呈现模块4553,还用于当障碍物符合与障碍物的位置适配的交互对象的交互条件时,呈现适配的交互对象的交互信息;其中,交互条件包括停留时长阈值以及面积占比阈值中的任意一种。
在一些实施例中,交互区域的数量包括多个;人机交互的处理装置455还包括:关注度获取模块,用于响应于针对多个交互区域的关注度选择操作,以获取每个交互区域的关注度;排序模块,用于根据关注度从大到小的顺序,对多个交互区域进行排序;分配模块,用于为排序后的多个交互区域,分别分配障碍物扫描的扫描频率;其中,为交互区域分配的扫描频率与交互区域的排序位次的靠前程度正相关。
在一些实施例中,在对交互区域进行障碍物扫描的过程中,人机交互的处理装置455还包括:频率确定模块,用于周期性地确定交互区域内障碍物的位置的获取频率;更新模块,用于根据获取频率,对障碍物扫描的扫描频率进行更新处理;其中,获取频率与扫描频率正相关。
在一些实施例中,当待呈现的交互信息的数量包括多个时,呈现模块4553,还用于执行以下任意一种处理:同时呈现多个交互信息;分别获取多个交互信息的优先级,并呈现优先级最高的交互信息。
在一些实施例中,交互模块4552,还用于:响应于针对交互区域的交互开启操作,根据多个角度向交互区域发射探测射线;当接收到与发射的任意一条探测射线对应的反射射线时,根据接收到反射射线的时间点与发射任意一条探测射线的时间点之间的差值,确定扫描得到的障碍物的距离;将发射任意一条探测射线时的角度,作为障碍物的角度;将障碍物的距离和角度,共同作为障碍物的位置。
在一些实施例中,人机交互的处理装置455还包括:范围选择模块,用于响应于针对交互区域内的任意一个交互对象的范围选择操作,以确定任意一个交互对象对应的距离范围和角度范围;适配模块,用于当障碍物的距离位于任意一个交互对象的距离范围内、且障碍物的角度位于任意一个交互对象的角度范围内时,确定任意一个交互对象与障碍物的位置适配。
在一些实施例中,交互模块4552,还用于执行以下任意一种处理:响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,直至接收到针对交互区域的交互关闭操作;响应于针对交互区域的交互开启操作,对交互区域进行障碍物扫描,直至扫描得到障碍物的位置。
在一些实施例中,人机交互的处理装置455还包括:控制模块,用于控制与障碍物的位置适配的交互对象执行交互操作。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的人机交互的处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3A、图3B及图3C示出的人机交互的处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种人机交互的处理方法,其特征在于,所述方法包括:
响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域;其中,所述交互区域包括至少一个交互对象;
响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置;
呈现与所述障碍物的位置适配的交互对象的交互信息。
2.根据权利要求1所述的方法,其特征在于,所述响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域,包括:
执行以下至少一种处理:
呈现所述目标空间的空间图像以及绘制工具,响应于针对所述绘制工具的选择操作,以将通过所述绘制工具在所述空间图像中绘制的区域作为交互区域;
呈现所述目标空间的空间图像以及多个区域模板,响应于针对所述区域模板的选择操作,以将所选择的区域模板应用至所述空间图像中所形成的区域,作为交互区域;
呈现所述目标空间的空间图像以及多个历史交互区域,响应于针对所述历史交互区域的选择操作,以将所选择的历史交互区域作为本次交互的交互区域。
3.根据权利要求1所述的方法,其特征在于,所述呈现与所述障碍物的位置适配的交互对象的交互信息,包括:
呈现所述目标空间的空间图像;
在所述空间图像中,呈现所述障碍物、与所述障碍物的位置适配的交互对象、以及所述适配的交互对象的交互信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于针对所述交互区域的对象选择操作,以将虚拟对象、以及所述交互区域包括的实体对象中的至少一种作为交互对象;
当所述交互对象包括所述虚拟对象时,将所述虚拟对象投影至所述交互区域中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于针对所述交互对象的条件选择操作,以确定所述交互对象的交互条件;
所述呈现与所述障碍物的位置适配的交互对象的交互信息,包括:
当所述障碍物符合与所述障碍物的位置适配的交互对象的交互条件时,呈现所述适配的交互对象的交互信息;
其中,所述交互条件包括停留时长阈值以及面积占比阈值中的任意一种。
6.根据权利要求1所述的方法,其特征在于,所述交互区域的数量包括多个;所述方法还包括:
响应于针对多个所述交互区域的关注度选择操作,以获取每个所述交互区域的关注度;
根据所述关注度从大到小的顺序,对多个所述交互区域进行排序;
为排序后的多个所述交互区域,分别分配障碍物扫描的扫描频率;
其中,为所述交互区域分配的扫描频率与所述交互区域的排序位次的靠前程度正相关。
7.根据权利要求1所述的方法,其特征在于,在对所述交互区域进行障碍物扫描的过程中,所述方法还包括:
周期性地确定所述交互区域内障碍物的位置的获取频率;
根据所述获取频率,对障碍物扫描的扫描频率进行更新处理;
其中,所述获取频率与所述扫描频率正相关。
8.根据权利要求1所述的方法,其特征在于,当待呈现的交互信息的数量包括多个时,所述呈现与所述障碍物的位置适配的交互对象的交互信息,包括:
执行以下任意一种处理:
同时呈现多个所述交互信息;
分别获取多个所述交互信息的优先级,并呈现优先级最高的交互信息。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置,包括:
响应于针对所述交互区域的交互开启操作,根据多个角度向所述交互区域发射探测射线;
当接收到与发射的任意一条探测射线对应的反射射线时,根据接收到所述反射射线的时间点与发射所述任意一条探测射线的时间点之间的差值,确定扫描得到的障碍物的距离;
将发射所述任意一条探测射线时的角度,作为所述障碍物的角度;
将所述障碍物的距离和角度,共同作为所述障碍物的位置。
10.根据权利要求9所述的方法,其特征在于,所述响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域之后,所述方法还包括:
响应于针对所述交互区域内的任意一个交互对象的范围选择操作,以确定所述任意一个交互对象对应的距离范围和角度范围;
所述将所述障碍物的距离和角度,共同作为所述障碍物的位置之后,所述方法还包括:
当所述障碍物的距离位于所述任意一个交互对象的距离范围内、且所述障碍物的角度位于所述任意一个交互对象的角度范围内时,确定所述任意一个交互对象与所述障碍物的位置适配。
11.根据权利要求1至8任一项所述的方法,其特征在于,所述响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置,包括:
执行以下任意一种处理:
响应于针对所述交互区域的交互开启操作,对所述交互区域进行障碍物扫描,直至接收到针对所述交互区域的交互关闭操作;
响应于针对所述交互区域的交互开启操作,对所述交互区域进行障碍物扫描,直至扫描得到障碍物的位置。
12.根据权利要求1至8任一项所述的方法,其特征在于,所述响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置之后,所述方法还包括:
控制与所述障碍物的位置适配的交互对象执行交互操作。
13.一种人机交互的处理装置,其特征在于,包括:
选择模块,用于响应于针对目标空间的选择操作,以确定所述选择操作在所述目标空间中选择的交互区域;其中,所述交互区域包括至少一个交互对象;
交互模块,用于响应于针对所述交互区域的交互开启操作,以获取对所述交互区域进行障碍物扫描所获得的障碍物的位置;
呈现模块,用于呈现与所述障碍物的位置适配的交互对象的交互信息。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的人机交互的处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的人机交互的处理方法。
CN202011261921.5A 2020-11-12 2020-11-12 人机交互的处理方法、装置及电子设备 Active CN112295221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011261921.5A CN112295221B (zh) 2020-11-12 2020-11-12 人机交互的处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011261921.5A CN112295221B (zh) 2020-11-12 2020-11-12 人机交互的处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112295221A true CN112295221A (zh) 2021-02-02
CN112295221B CN112295221B (zh) 2023-03-24

Family

ID=74325414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011261921.5A Active CN112295221B (zh) 2020-11-12 2020-11-12 人机交互的处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112295221B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327062A (zh) * 2021-12-28 2022-04-12 深圳Tcl新技术有限公司 人机交互方法、装置、电子设备、存储介质和程序产品

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010030668A1 (en) * 2000-01-10 2001-10-18 Gamze Erten Method and system for interacting with a display
EP1852768A2 (en) * 2006-05-04 2007-11-07 Evagelos Katsantonis Interactive virtual desk
CN101907954A (zh) * 2010-07-02 2010-12-08 中国科学院深圳先进技术研究院 交互式投影系统及交互投影方法
CN105739937A (zh) * 2016-01-27 2016-07-06 努比亚技术有限公司 一种移动终端投影方法、终端设备及系统
CN107015650A (zh) * 2017-03-28 2017-08-04 联想(北京)有限公司 交互投影方法、装置以及系统
CN107993285A (zh) * 2017-11-28 2018-05-04 深圳市蓝游网络科技有限公司 基于ar技术的实体名片展示方法
CN108289209A (zh) * 2018-02-05 2018-07-17 广州富翔智能科技有限公司 一种绘画图片的动态投影方法及装置
CN110502129A (zh) * 2019-08-29 2019-11-26 王国梁 交互控制系统
CN110766388A (zh) * 2018-07-27 2020-02-07 北京三快在线科技有限公司 虚拟卡生成方法及系统、电子设备
CN111870931A (zh) * 2020-06-24 2020-11-03 合肥安达创展科技股份有限公司 一种体感互动的人机交互方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010030668A1 (en) * 2000-01-10 2001-10-18 Gamze Erten Method and system for interacting with a display
EP1852768A2 (en) * 2006-05-04 2007-11-07 Evagelos Katsantonis Interactive virtual desk
CN101907954A (zh) * 2010-07-02 2010-12-08 中国科学院深圳先进技术研究院 交互式投影系统及交互投影方法
CN105739937A (zh) * 2016-01-27 2016-07-06 努比亚技术有限公司 一种移动终端投影方法、终端设备及系统
CN107015650A (zh) * 2017-03-28 2017-08-04 联想(北京)有限公司 交互投影方法、装置以及系统
CN107993285A (zh) * 2017-11-28 2018-05-04 深圳市蓝游网络科技有限公司 基于ar技术的实体名片展示方法
CN108289209A (zh) * 2018-02-05 2018-07-17 广州富翔智能科技有限公司 一种绘画图片的动态投影方法及装置
CN110766388A (zh) * 2018-07-27 2020-02-07 北京三快在线科技有限公司 虚拟卡生成方法及系统、电子设备
CN110502129A (zh) * 2019-08-29 2019-11-26 王国梁 交互控制系统
CN111870931A (zh) * 2020-06-24 2020-11-03 合肥安达创展科技股份有限公司 一种体感互动的人机交互方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
匿名: "「信仰充值」同学!Xperia Touch 了解一下!", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/36771228 》 *
唐怡园: "把故事书做成动画游戏?只需这样一个桌子", 《把故事书做成动画游戏?只需这样一个桌子 *
杨加: "《数字虚拟艺术超真实表现研究》", 31 July 2019, 中国商业出版社 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327062A (zh) * 2021-12-28 2022-04-12 深圳Tcl新技术有限公司 人机交互方法、装置、电子设备、存储介质和程序产品

Also Published As

Publication number Publication date
CN112295221B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
US9925465B2 (en) Game accessing method and processing method, server, terminal, and system
CN109260713B (zh) 虚拟对象远程协助操作方法及装置、存储介质、电子设备
CN104035683A (zh) 一种通讯终端分屏多任务交互方法
CN104854574A (zh) 在实时通信和共享体验会话期间更新服务
JPH1157216A (ja) ゲーム装置
EP3777133A1 (en) Resource collaboration with co-presence indicators
CN111142669A (zh) 二维界面到三维场景的交互方法、装置、设备及存储介质
CN112295221B (zh) 人机交互的处理方法、装置及电子设备
CN111784844A (zh) 观察虚拟对象的方法、装置、存储介质及电子设备
CN114157907A (zh) 基于云手机的vr应用设计方法及系统
CN111565320A (zh) 基于弹幕的互动方法及装置、存储介质、电子设备
CN115408622A (zh) 一种基于元宇宙的在线交互方法、装置及存储介质
CN111913674A (zh) 虚拟内容的显示方法、装置、系统、终端设备及存储介质
CN114116086A (zh) 一种页面编辑方法、装置、设备及存储介质
CN112965773A (zh) 用于信息显示的方法、装置、设备和存储介质
CN113239172A (zh) 机器人群组中的会话交互方法、装置、设备及存储介质
CN110604918B (zh) 界面元素调整方法与装置、存储介质、电子设备
JP4296606B2 (ja) 電子装置及び表示方法
CN114610143A (zh) 一种设备控制的方法、装置、设备及存储介质
CN112451967A (zh) 基于3d屏幕交互的游戏交互方法、装置和计算机设备
CN114827641B (zh) 直播间封面交互方法、装置、计算机设备及存储介质
KR102479764B1 (ko) 게임 파티 생성을 위한 방법 및 장치
CN114442820A (zh) 一种基于激光交互的控制方法和计算机设备
CN114727090B (zh) 实体空间扫描方法、装置、终端设备及存储介质
CN109542312B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038850

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant