一种基于增强现实的实物编程方法及系统技术方案

技术编号:18444473 阅读:31 留言:0更新日期:2018-07-14 10:12
本发明专利技术公开了一种基于增强现实的实物编程方法及系统。本方法为:按照当前任务和设定的语法规则摆放实物编程块,得到一实物编程块序列;移动端增强现实编程处理单元调用移动端的摄像头捕捉当前所述实物编程块序列的图像,根据实物编程块的ID和语义的对应表将从所述图像中识别出的实物编程块序列转化为对应的程序指令,并将程序指令的运行效果叠加在真实场景中,构造增强现实的编程环境。本发明专利技术通过将实物编程和增强现实环境相结合来提高了系统的趣味性和娱乐性。在编程阶段,通过增强现实技术来为用户提供视觉实时反馈从而来帮助用户更容易地进行编程。

A real object programming method and system based on Augmented Reality

The invention discloses a real object programming method and system based on augmented reality. This method is to put the object programming block in accordance with the current task and the set grammar rules, and get the sequence of a physical programming block. The mobile end augmented reality programming unit calls the camera of the mobile end to capture the image of the current object programming block sequence. According to the corresponding table of the ID and the semantics of the physical programming block, the image will be from the image. The identified sequence of physical programming blocks is transformed into corresponding program instruction, and the running effect of program instructions is superimposed on the real scene, and the programming environment of augmented reality is constructed. By combining physical programming with augmented reality, the invention improves the interest and entertainment of the system. In the programming phase, augmented reality technology is used to provide users with visual real-time feedback to help users to program more easily.

【技术实现步骤摘要】
一种基于增强现实的实物编程方法及系统
本专利技术属于人机交互领域,具体涉及到一种基于增强现实的实物编程方法及系统。
技术介绍
随着信息技术的发展和普及,计算设备已经与人们的生活越来越息息相关,越来越多的儿童从小便有接触并使用计算机等计算设备的机会。随着儿童使用计算设备的深入,他们希望自己也能使用计算机开发自己的程序创作作品,传统的软件很难满足需求。国内外研究者也提出通过编程教育来让培养计算思维这一人人必备的技能。目前的编程教育系统主要分为图像化编程和实物编程两类,而实物编程通过实物交互的方式使得儿童的学习过程更加简单容易,更加适合低龄儿童的学习。学习编程不仅对儿童的数学和科学知识方面有帮助,而且对语言、创造力和社交能力等方面的能力培养都有着积极的作用。而实物交互技术旨在利用人们与真实的物理世界互动形成的技能直接操纵和控制数字信息。儿童可以通过实物交互直接通过操作与计算设备进行交互,并且可以简化编程的过程,使得程序的结构更加直观、具体。因此,实物编程为儿童学习计算机编程提供了一条可行的途径。另一方面,随着增强现实技术的日趋成熟,基于增强现实的系统也提供给儿童体验新的交互方式的机会。名称“一种便携式实物编程系统”(申请号:2013104147570)的专利申请公开了一种便携式的实物编程系统,其输入和输出均采用实物的方式,完全独立于电脑。名称“一种基于事件处理的实物编程工具”(申请号:201610686180.2)的专利申请公开了一种对机器人进行编程并传达事件处理概念的实物编程系统。以上专利采用了输入和输出完全实物化的方式,简化了儿童的操作和编程过程,提高了儿童的兴趣度。但是,以上专利有以下不足:儿童编程过程中缺少足够的实时反馈。
技术实现思路
针对上述问题,本专利技术提出一种基于增强现实的实物编程方法及系统。该编程系统包括若干实物编程块和一个移动端的增强现实程序。本专利技术通过将实物编程和增强现实环境相结合来提高了系统的趣味性和娱乐性。在编程阶段,通过增强现实技术来为用户提供视觉实时反馈从而来帮助用户更容易地进行编程。本专利技术的系统框架如图1所示,包括交互层、内部处理层、数据资源层。其中,交互层是系统提供给用户的用户交互界面,会将用户放的实物编程块数据交给内部处理层进行处理并提供用户语音、图像和动画的输出。内部处理层会根据数据资源层的内容对数据进行识别封装解析并给出信息反馈,最后在交互层给出输出。本专利技术的技术方案为:一种基于增强现实的实物编程系统,其包括:1)一套基于增强现实的实物编程环境。包括若干实物编程块和一个移动端增强现实编程处理单元。其中,实物编程块为3cm3的立方体积木块,表面为彩色贴图,这样既符合儿童抓取的习惯,又能吸引儿童的兴趣。移动端增强现实编程处理单元目前主要支持安卓系统,利用安卓设备的摄像头捕捉实物编程块序列的图像,将其转化为对应的程序指令,并在真实场景中叠加程序指令的运行效果,构造增强现实的编程环境。2)增强现实编程操作及显示环境。在使用增强现实的实物编程系统的过程中,主要分为两个阶段:编程阶段和运行阶段。在编程阶段,包括编程区和迷宫提示区。其中,在编程区,移动端增强现实编程处理单元会调用设备的摄像头对真实环境进行图像捕捉,采集用户摆放的实物编程块序列并进行程序语法分析,如果程序有语法错误,将通过增强现实技术在真实环境中的实物编程块序列上叠加提示效果,提示效果包括指向错误编程块的图片提示或文字提示。在迷宫提示区,显示的是当前任务(比如某一关卡)对应的迷宫地图信息的缩略图,为用户编程提供参考和便利。3)设计系统内的通信数据结构。本系统的移动端增强现实编程处理单元主要是在Unity3D环境中进行开发,而对实物程序图像进行分析的计算机视觉识别程序则是在安卓环境下进行开发的,所以在不同接口之间需要定义好统一的通信数据结构。在本系统中,在摄像头捕捉到编程块图像后,将Java版本的计算机视觉识别算法编译为Unity3D的安卓插件再嵌入到C#版本的Unity3D程序提供上层调用,在这个安卓插件和unity上层调用的过程中,为方便数据的传递,系统将数据统一以JSON的通讯数据格式进行传递。JSON数据格式包含一个二维JSON数组,按图像中从左至右从上到下的顺序存放所有编程块的ID、centerx、centery,即对应实物编程块的ID、横坐标和纵坐标,利用数组下表进行访问。4)定义实物编程的语法规则。这些规则可以分为5类:1)开始结束规则。用户开始编程的时候如果是主程序则需要将开始编程块放置在程序的第一位置,如果儿童结束一段编程之后,需要将结束编程块放置在程序的最后位置来表示一段程序的结束。2)循环控制规则。在使用循环控制逻辑的时候,用户需要将循环开始放置在循环控制逻辑的第一位置,然后是循环数字编程块,表示循环动作的次数。在循环数字块之后可以放置若干方向块,最后在循环控制逻辑结束的地方放置循环结束编程块代表循环逻辑的结束。综上,循环逻辑的摆放语法为“循环开始+循环次数+若干动作块+循环结束”的结构。3)分支控制规则。在使用分支控制规则的时候,首先需要放置分支块,然后在分支块的右侧放置条件块代表该分支的走向依赖于该条件是否满足。对于两条分支,根据分支块的二维连接特性,如果逻辑是条件满足时进行的,则放置在分支编程块的上方,以向上的方式进行一段序列,反之如果是条件不满足是则放置在分支编程块的下方。4)编程换行规则。系统目前运行的环境是安卓平板,通过安卓摄像头来捕捉用户所摆放的实物编程块序列。所以,由于移动设备的摄像头拍摄区域的限制,当编程块序列摆放的长度过长的话,会出现超出摄像头区域的情况。因此,本文定义了编程换行规则,即当用户所摆放的某一行实物编程序列已超出了摄像头的视野范围时,用户可以在下方新起一行,从摄像头视野范围的最左边开始继续摆放。依次类推。5)函数编程块操作规则。在使用函数编程块编辑子程序时,需将子程序序列放在主程序的上方并将函数编程块放在子程序首位,即位于整个编程序列的第一行左起第一个,当主程序调用该子程序时,将另一个具有相同标识的函数编程块放在主程序中。子程序中不可出现开始和结束编程块以及分支块。5)设计实物编程块的图标。在实物编程块的设计方面,系统通过彩色贴纸包含积木块的6个面,并通过不同的图标来表达不同的语义。在编程块的前后连接面上面,通过正负极的符号来形象地表达连接的方式。6)系统素材资源。数据资源中存储了系统运行所需要的所有数据和资源,包括对实物编程块识别码进行识别的计算机视觉识别库,提供语音反馈的语音库,存储了迷宫信息的迷宫地图以及一些图像、动画的媒体素材。7)定义迷宫数据结构。根据迷宫的信息,通过代码编号的形式来存储迷宫信息,具体为迷宫中的每格的信息包括5位数字代码,分别表示上下左右格的信息以及自身格的信息。其中,实物编程块作为系统编程的载体主要分为以下几类:开始编程块、结束编程块、方向编程块、循环控制编程块、分支控制编程块、函数编程块。其中,系统通过开始结束编程块的设计可以将主程序和子程序区分开来,先对摄像头拍摄的图像进行识别程序第一行是否存在以函数编程块为首的程序,若有系统将函数块后面连接的程序保存为该函数块的定义或重载。然后识别是否存在以开始编程块为首的程序,若有则判断当前程本文档来自技高网
...

【技术保护点】
1.一种基于增强现实的实物编程方法,其步骤包括:按照当前任务和设定的语法规则摆放实物编程块,得到一实物编程块序列;移动端增强现实编程处理单元调用移动端的摄像头捕捉当前所述实物编程块序列的图像,根据实物编程块的ID和语义的对应表将从所述图像中识别出的实物编程块序列转化为对应的程序指令,并将程序指令的运行效果叠加在真实场景中,构造增强现实的编程环境。

【技术特征摘要】
1.一种基于增强现实的实物编程方法,其步骤包括:按照当前任务和设定的语法规则摆放实物编程块,得到一实物编程块序列;移动端增强现实编程处理单元调用移动端的摄像头捕捉当前所述实物编程块序列的图像,根据实物编程块的ID和语义的对应表将从所述图像中识别出的实物编程块序列转化为对应的程序指令,并将程序指令的运行效果叠加在真实场景中,构造增强现实的编程环境。2.如权利要求1所述的方法,其特征在于,在编程阶段,包括编程区和迷宫提示区;其中,在编程区,移动端增强现实编程处理单元调用所述摄像头捕捉实物编程块序列的图像,并对实物编程块序列对应的程序进行分析,如果存在错误,则在真实环境中的实物编程块序列上叠加提示效果;所述提示效果包括指向错误编程块的图片提示或文字提示;在迷宫提示区,显示的当前任务对应的迷宫地图信息的缩略图。3.如权利要求1所述的方法,其特征在于,基于Unity3D环境开发所述移动端增强现实编程处理单元,基于安卓环境开发用于对所述实物编程序列的图像进行分析的计算机视觉识别程序;将所述计算机视觉识别程序编译为Unity3D的安卓插件嵌入到所述移动端增强现实编程处理单元,所述安卓插件将所述实物编程块序列的图像以JSON数据格式发送给所述移动端增强现实编程处理单元;所述JSON数据格式包含一个二维JSON数组,按图像中实物编程块的摆放顺序存放实物编程块的ID、横坐标和纵坐标。4.如权利要求1所述的方法,其特征在于,所述实物编程块包括开始编程块、结束编程块、方向编程块、循环控制编程块、分支控制编程块和函数编程块;所述循环控制编程块包括循环开始编程块、循环次数编程块、循环动作编程块和循环结束编程块,所述分支控制编程块包括分支编程块和条件编程块;所述函数编程块的不同面上设有不同的标识,每一标识对应一不同的子程序;编写不同子程序时,根据该子程序调整所述函数编程块的朝向,并将所述函数编程块放在该子程序首位。5.如权利要求1所述的方法,其特征在于,如果根据当前任务,当前编写的程序是主程序,则需要将开始编程块放置在程序的第一位置,结束编程之后,将结束编程块放置在程序的最后位置;所述循环控制编程块的摆放规则为“循环开始编程块+循环次数编程块+若干循环动作编程块+循环结束编程块”;所述分支控制编程块的摆放规则为首先放置分支编程块,然后在分支编程块的一侧放置条件编程块。6.一种基于增强现实的实物编程系统,其特征在于,包括若干...

【专利技术属性】
技术研发人员:王丹力邓小舟金乔
申请(专利权)人:中国科学院软件研究所中国科学院自动化研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1