一种在预设嵌入式系统中实现脚本操作的系统的制作方法

文档序号:10488722阅读:244来源:国知局
一种在预设嵌入式系统中实现脚本操作的系统的制作方法
【专利摘要】本发明公开了一种在预设嵌入式系统中实现脚本操作的系统,应用于智能机器人,所述系统包括:虚拟机,用以解释脚本并执行;线程池,用以存储与关联脚本任务的所述虚拟机的实例;管理单元,连接线程池和所述虚拟机,用以将所述虚拟机根据接收到的所述脚本任务实例化后存储入所述线程池,并根据预设策略对所述线程池中的线程进行相应的调度;全局表,连接所述线程池,用以存储因所述管理单元调度而打断的脚本任务对应的所述线程的识别信息;匹配单元,连接所述管理单元和所述全局表,用以本局脚本任务于所述全局表中查询是否存在匹配的记录,如存在时通知所述管理单元调度所述记录中相应的线程执行。采用全局表解决了机器人在交互中的上下文问题。
【专利说明】
一种在预设嵌入式系统中实现脚本操作的系统
技术领域
[0001] 本发明涉及通信技术领域,尤其涉及一种在预设嵌入式系统中实现脚本操作的系 统。
【背景技术】
[0002] 随着机器人的应用领域的扩大和电子技术的高速发展,机器人在人们生活中的应 用逐渐增多,传统的机器人普遍采用面向过程的编程思想进行编程。所谓面向过程指的是 一种以过程为中心的编程思想。面向过程就是分析出解决问题所需要的步骤,然后用函数 把这些步骤一步一步实现,使用的时候一个一个依次调用。
[0003]目前应用程序已经从命令行界面发展到窗口界面。因为应用程序是基于面向过程 开发的,所以存在灵活性差以及不易维护等问题,就像传统的图形交互方式,窗口的前进和 后退是有限并且一定的。由于程序运行时存在上下文关联性(所谓上下文关联性指的是交 互时,用户的指令是存在上下文的),程序编写者需要编写大量的if…else…判断上下文 来改变程序流,且相同的交互方式可能在不同的上下文中对应不同的结果。如果采用传统 编程思想,这些上下文将引发大量的对象耦合,会毁灭掉面向对象程序设计的优势。而且 传统的嵌入式开发流程较长,程序编写完成后需要经过编译,部署,烧写等过程才能验证功 能,如果系统复杂,则这个过程将消耗大量的时间和金钱。
[0004] 综上所述,传统可执行特定任务的可编程多功能专用机器人功能局限、灵活性差 且不易维护,已经无法满足人们日益增长的需求。

【发明内容】

[0005] 针对传统的嵌入式开发流程存在的上述问题,现提供一种旨在实现可直调用功能 单元,灵活性强、独占性强且容易维护的智能机器人。
[0006] 具体技术方案如下:
[0007] -种在预设嵌入式系统中实现脚本操作的系统,应用于智能机器人,包括:
[0008] 虚拟机,用以解释脚本并执行;
[0009] 线程池,用以存储与关联脚本任务的所述虚拟机的实例;
[0010] 管理单元,连接所述线程池和所述虚拟机,用以将所述虚拟机根据接收到的所述 脚本任务实例化后存储入所述线程池,并根据预设策略对所述线程池中的线程进行相应的 调度;
[0011] 全局表,连接所述线程池,用以存储因所述管理单元调度而打断的脚本任务对应 的所述线程的识别信息;
[0012] 匹配单元,连接所述管理单元和所述全局表,用以本局脚本任务于所述全局表中 查询是否存在匹配的记录,如存在时通知所述管理单元调度所述记录中相应的线程执行。
[0013] 优选的,还包括:
[0014] 执行单元,连接所述线程池,用以根据所述管理单元的调度执行所述线程池中相 应的所述线程。
[0015] 优选的,还包括:
[0016] 脚本运行单元,用以执行接收到的脚本任务;
[0017] 接口单元,连接所述脚本运行单元和所述管理单元,用以将所述脚本任务发送至 所述管理单元。
[0018] 优选的,所述脚本运行单元和所述接口单元由运行于JAVA虚拟机的JAVA原生接 口形成。
[0019] 优选的,所述预设策略包括先进先出策略和先进后出策略。
[0020] 优选的,所述全局表采用哈希表。
[0021] 优选的,还包括通讯单元,连接所述执行单元,所述通讯单元读取所述执行单元执 行所述线程的任务信息和/或执行结果,并发送至一远程服务器。
[0022] 上述技术方案的有益效果:
[0023] 通过线程池可提高智能机器人在复杂环境下针对突发状况的完备性;采用全局表 解决了机器人在交互中的上下文问题,可根据用户的上下文轨迹执行相应的操作,采用管 理单元可以维护机器人的独占性硬件,从而保证脚本任务执行的正确性,且可直调用功能 单元,灵活性强且容易维护。
【附图说明】
[0024] 图1为本发明所述智能机器人的一种实施例的模块图。
【具体实施方式】
[0025] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其 他实施例,都属于本发明保护的范围。
[0026] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相 互组合。
[0027] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0028] 如图1所示,一种在预设嵌入式系统中实现脚本操作的系统,应用于智能机器人, 包括:
[0029] 虚拟机7,用以解释脚本并执行;
[0030] 线程池6,用以存储与关联脚本任务的虚拟机7的实例;
[0031] 管理单元5,连接线程池6和虚拟机7,用以将虚拟机7根据接收到的脚本任务实 例化后存储入线程池6,并根据预设策略对线程池6中的线程进行相应的调度;
[0032] 全局表3,连接线程池6,用以存储因管理单元5调度而打断的脚本任务对应的线 程的识别?目息;
[0033] 匹配单元2,连接管理单元5和全局表3,用以本局脚本任务于全局表3中查询是 否存在匹配的记录,如存在时通知管理单元5调度记录中相应的线程执行。
[0034] 管理单元5接收到一条脚本任务后,需将该条脚本任务实例化后存储入线程池6 中,根据预设策略对线程池6中的线程进行相应的调度,存在如下情况:
[0035] 若当前脚本任务的优先级高于线程池6中其他任务的优先级时,则打断正在执行 的脚本任务对应的线程,将该线程的状态存入线程池6中,且将该线程的识别信息存入全 局表3中,同时管理单元5存储被打断的脚本任务,执行优先级高的线程;
[0036] 在预设的时间间隔判断管理单元5是否接收到预设系统消息,预设系统消息为系 统预设的若干个具有优先级的系统消息,该系统消息的优先级高于正在执行线程的优先 级,当管理单元5接收到系统消息后,需打断正在执行的脚本任务对应的线程,将该线程的 状态存入线程池6中,且将线程的识别信息存入全局表3中,同时管理单元5存储被打断的 脚本任务,执行系统消息;
[0037] 当被打断的脚本任务再次发送至管理单元5后,通过匹配单元2对在全局表3中 查询是否存在于本局脚本任务匹配的记录,如存在则通知管理单元5调度记录中相应的线 程执行,即恢复上次一被打断时的状态继续执行。
[0038] 管理单元5可以用来维护智能机器人的硬件功能,因为在智能机器人中硬件具有 独占性的特点。例如机械机构,这类硬件不允许多个脚本任务同时调用。为了防止这种行 为的发生,管理单元5会对程序流的执行进行调度。采用管理单元5可以维护智能机器人 的独占性硬件,保证程序执行的正确性。
[0039] 在本实施例中通过线程池6可提高智能机器人在复杂环境下针对突发状况的完 备性;采用全局表3解决了机器人在交互中的上下文问题,可根据用户的上下文轨迹执行 相应的操作,采用管理单元5可以维护机器人的独占性硬件,从而保证脚本任务执行的正 确性,且可直调用功能单元。
[0040] 在优选的实施例中,还包括:
[0041] 执行单元8,连接线程池6,用以根据管理单元5的调度执行线程池6中相应的线 程。
[0042] 在本实施例中执行单元8可根据管理单元5的调度执行的相应的线程,以保证脚 本任务执行的正确性。
[0043] 在优选的实施例中,还包括:
[0044] 脚本运行单元1,用以执行接收到的脚本任务;
[0045] 接口单元4,连接脚本运行单元1和管理单元5,用以将脚本任务发送至管理单元 5〇
[0046] 在优选的实施例中,脚本运行单元1和接口单元4由运行于JAVA虚拟机7的JAVA 原生接口(Java Native Interface,JNI,JNI标准成为JAVA平台的一部分,它允许JAVA代 码和其他语言写的代码进行交互)形成。
[0047] 在本实施例中JAVA引擎可作为脚本运行单元1,可通过JAVA原生接口运行脚本, 加载二进制可执行文件,惰性读取脚本任务以注册进管理单元5中,创建一个新的场景,以 管理和调度脚本任务的执行流程。
[0048] 在优选的实施例中,预设策略包括先进先出策略和先进后出策略。
[0049] 在本实施例中的先进先出策略实际就是允许先来先服务(First-in First-service)如:采用排队的方式排列,先进后出策略实际就是允许先来后服务 (First-in Last-service)如:采用堆载的方式排列。脚本任务可通过标签设计保存和恢 复点,在发生调度时,脚本任务会无条件跳转到标签中对程序流进行保存和恢复操作,这样 可以提高智能机器人在复杂环境下针对突发状况的完备性。
[0050] 在优选的实施例中,全局表3米用哈希表。
[0051] 在本实施例中哈希表是一个数据结构用来记录用户运行的轨迹,程序可根据轨迹 选择最接近的上下文。所有被打断的脚本任务的识别信息都会记录到该哈希表中,如果用 户调用了一个存在于多个功能中的函数,那么该次调用会根据当前哈希表的识别信息来决 定具体调用哪一个功能中的函数。
[0052] 在优选的实施例中,还包括通讯单元9,连接执行单元8,通讯单元9读取执行单元 8执行线程的任务信息和/或执行结果,并发送至一远程服务器。用以将执行当前线程的任 务信息和/或执行结果反馈至远程服务器。
[0053] 在本实施例中脚本任务采用脚本编程语言编写,脚本编程语言是一种基于堆栈式 虚拟机7的解释型脚本语言,脚本编程语言不需要编译,经过解释器解释后对热点代码生 成本地机器码后可直接运行在智能机器人的嵌入式操作系统上。脚本编程语言是图灵完备 的(所谓图灵完备是指该语言可以完全模拟出图灵机能做的所有事情,可以解决目前所有 的可计算问题,在编程思想上支持传统面向过程软件开发技术和面向对象软件开发技术), 该语言面向智能机器人的交互环境采用面向功能的开发方式。面向功能即语言内的基本单 元是功能,这些功能之间互相独立,可利用这些独立的基础功能单元来进行具体复杂场景 设计。例如:用户可能会随机使用机器人的多个不相关功能,这些功能之间毫无联系。比如 用户可能先让机器人帮忙放音乐,接下来又突然让机器人报告当前的天气。
[0054] 现已某具有开灯,音乐播放,语言交互,电影播放,机械运动功能的智能机器人为 例:
[0055] 机器人的操作系统采用安卓(Android)智能操作系统。脚本运行单元1负责打通 脚本任务和安卓系统之间的联系。管理单元5负责管理和调度脚本任务执行流。执行单元 8根据管理单元5的调度执行线程池6中相应的线程。下面代码给出了一个具体应用的逻 辑,该应用是一个播放音乐逻辑。其中"//"为注释符号,"//"后的数据不会出现在程序当 中。
[0056] //Itart enter(music,light) //进入音乐和灯光功能 on //在音乐和灯光上下文中,同时打开音乐和灯光 while (1) { var ret = waitForCmd //等待用户命令 ifend〇ret) //判断是否结束该应用 play (ret) //播放用户需要的音乐,Ught功能中的函数同样会被调用,随 着音乐一起变化灯光 } <onPause> save //保存上下文,ici住刚才的音乐 off//被其他程序打断,暂时关掉音乐和灯光
[0057] exit(music, light) //结束音乐和灯光功能 <onResurae> entef〇ii:us_ie, light) //进入音乐和灯光功能 resume//恢复上下文,重新加载刚才的音乐 on//恢复音乐
[0058] 在本实施例中采用脚本任务解决了使用传统高级语言编译,部署,烧写漫长的问 题。只需要将脚本任务的源代码放到智能机器人的文件系统后,即可直接运行进行功能验 证;通过脚本任务可将系统的功能直接暴露给程序编写者,减少了应用程序开发者的负担, 提高了针对智能机器人程序的开发效率;通过一随时变化的全局表3解决如交互中的上下 文问题,编写者不需要像传统语言那样编写大量的if…else…判断上下文来改变程序流, 而是直接调用功能单元,这些功能内部会根据全局表3来判断执行哪一个程序流。操作简 单方便。
[0059] 将本实施例应用于智能机器人上,可使机器人成为在感知、思维和效应方面完全 模拟人的机器系统,它不仅是高效智能系统也是人工智能技术的综合体现。
【主权项】
1. 一种在预设嵌入式系统中实现脚本操作的系统,应用于智能机器人,其特征在于,包 括: 虚拟机,用以解释脚本并执行; 线程池,用以存储与关联脚本任务的所述虚拟机的实例; 管理单元,连接所述线程池和所述虚拟机,用以将所述虚拟机根据接收到的所述脚本 任务实例化后存储入所述线程池,并根据预设策略对所述线程池中的线程进行相应的调 度; 全局表,连接所述线程池,用以存储因所述管理单元调度而打断的脚本任务对应的所 述线程的识别信息; 匹配单元,连接所述管理单元和所述全局表,用以本局脚本任务于所述全局表中查询 是否存在匹配的记录,如存在时通知所述管理单元调度所述记录中相应的线程执行。2. 如权利要求1所述系统,其特征在于,还包括: 执行单元,连接所述线程池,用以根据所述管理单元的调度执行所述线程池中相应的 所述线程。3. 如权利要求1所述系统,其特征在于,还包括: 脚本运行单元,用以执行接收到的脚本任务; 接口单元,连接所述脚本运行单元和所述管理单元,用以将所述脚本任务发送至所述 管理单元。4. 如权利要求3所述系统,其特征在于,所述脚本运行单元和所述接口单元由运行于 JAVA虚拟机的JAVA原生接口形成。5. 如权利要求1所述系统,其特征在于,所述预设策略包括先进先出策略和先进后出 策略。6. 如权利要求1所述系统,其特征在于,所述全局表采用哈希表。7. 如权利要求2所述系统,其特征在于,还包括通讯单元,连接所述执行单元,所述通 讯单元读取所述执行单元执行所述线程的任务信息和/或执行结果,并发送至一远程服务 器。
【文档编号】G06F9/44GK105843592SQ201510014270
【公开日】2016年8月10日
【申请日】2015年1月12日
【发明人】施家琪
【申请人】芋头科技(杭州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1