一种机器人应用在线仿真和远程验证的系统与方法

文档序号:6548187阅读:226来源:国知局
一种机器人应用在线仿真和远程验证的系统与方法
【专利摘要】本发明公开了一种机器人应用在线仿真和远程验证的系统与方法,其中机器人应用在线仿真和远程验证的系统,包括在线仿真子系统和远程验证子系统,所述在线仿真子系统包括在线控制单元、第一Web服务单元和仿真执行单元;所述远程验证子系统包括远程交互单元、第二Web服务单元和远程验证执行单元;所述第一Web服务单元和仿真执行单元采用分层结构。在线仿真子系统保证了开发者不再受开发平台和开发环境的限制,而远程验证子系统允许开发者将应用下载到远程的机器人实体上运行,并将运行结果通过视频反馈给开发者,弥补了仿真程序固有的缺陷。
【专利说明】一种机器人应用在线仿真和远程验证的系统与方法
【技术领域】
[0001]本发明涉及机器人仿真领域,具体地,涉及一种机器人应用在线仿真和远程验证的系统与方法。
【背景技术】
[0002]机器人控制应用通常会按照软件工程的一般流程进行开发,典型的开发过程中包含了设计,编码和测试。但是与一般计算机应用不同,机器人控制程序的测试往往会涉及到大量的传感器,运动模块以及需要应对复杂的现实场景,所以,机器人应用的测试是一个耗费大量时间和精力的过程。另一方面,由于机器人系统的复杂性,导致其成本昂贵,一般的机器人爱好者和学生群体无力承担其硬件成本,在一定程度上阻碍了机器人应用的开发和相关领域的发展。鉴于此,很多机器人开发商在发布其硬件产品和对应操作系统时,往往会提供一个可视化的机器人应用仿真程序,开发者完成其应用的编码后,首先可以通过仿真程序直观地检验应用程序的业务逻辑是否正确,仿真程序的出现,为开发者提供了极大的便利。但是,由于各个厂商之间的利益争执和不同平台的限制,导致每个厂商提供的仿真程序在某一方面都有很大的局限性,比如对操作系统的限制,对开发语言的限制和对具体硬件产品的限制等等。另一种情况,现代的软件开发已经远远不是一个人可以独自完成的,团队协作是现代软件开发中避不开的问题,以小组竞赛为例,由于团队要开发同一个应用,所以他们各自的开发环境必须要保持一致,并且在切换计算机后需要重新部署开发环境,这降低了团队的开发效率。
[0003]更进一步,仿真程序虽然为开发者提供了便利,但因为实际的机器人面对的是动态变化的复杂的现实环境,而仿真程序中提供的通常都是指定的静态的环境,在仿真中健壮运行的程序可能在现实中出错。

【发明内容】

[0004]本发明的目的在于,针对上述问题,提出一种机器人应用在线仿真和远程验证的系统与方法,通过在线平台,打破机器人应用开发中依赖开发环境的桎梏;通过远程验证系统,消弭仿真程序应对实际环境时的固有缺陷。
[0005]为实现上述目的,本发明采用的技术方案是:
一种机器人应用在线仿真和远程验证的系统,包括
在线仿真子系统和远程验证子系统,所述在线仿真子系统包括在线控制单元、第一 Web服务单元和仿真执行单元;所述远程验证子系统包括远程交互单元、第二 Web服务单元和远程验证执行单元;
所述第一 Web服务单元和仿真执行单元采用分层结构;
所述在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果;
所述第一 Web服务单元用于在服务器端处理上述在线控制单元的请求,当接收到仿真请求时,第一 Web服务单元首先启动一个执行单元的实例,并将在线控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,当该数据结构中的信息发生更新时,执行单元会将该数据结构传递给第一 web服务单元的数据缓冲区;
所述仿真执行单元定时读取第一 Web服务单元数据缓冲区中的值,并根据数据缓冲区中的值中的位置信息和速度信息通过浏览器窗口绘制仿真动画;
所述远程交互单元是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务远程执行结果的视频;
所述第二 Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中,当远程交互单元发出查看验证结果的请求时,第二 Web服务单元完成流媒体服务器功能;
所述远程验证执行单元:维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个部署在远程执行环境中的摄像头,通过这些摄像头捕获机器人的行为和动作,远程的机器人硬件执行完程序后,远程验证执行单元将结果插入到第二 Web服务单元的数据库中。
[0006]根据本发明的优选实施例,所述第一 Web服务单元和第二 Web服务单元集成为一个Web服务单元。
[0007]根据本发明的优选实施例,所述在线控制单元和远程交互单元均可利用在线网页或者移动APP实现。
[0008]根据本发明的优选实施例,所述数据结构包含了仿真的坐标信息,移动速度信息,转动角度信息和传感器的值。
[0009]同时本发明技术方案公开一种机器人应用在线仿真和远程验证的方法,包括在线仿真和远程验证;
Web服务单元集成了第一 Web服务单元和第二 Web服务单元;
步骤101、开发者通过在线控制单元提交需要仿真的已通过编译的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件,仿真的初始化配置文件用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态;
步骤102、设置好地图文件和初始化配置文件后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,如果有效则启动仿真执行单元,仿真执行单元启动后,Web服务单元维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画;
步骤103、仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换;
所述远程验证包括:
步骤201、用户通过远程交互单元提交远程验证任务,提交的内容为机器人应用程序;步骤202、Web服务单元接收到远程交互单元提交的任务后,首先检查任务的合法性,Web服务单元会将合法的任务插入到任务队列的末尾,如果当前任务队列是空的,则检查远程验证执行单元的状态,如果远程验证执行单元处于休眠状态,则将其唤醒;
步骤203、远程执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的方式保存在服务器的存储设备上;
步骤204、用户通过远程交互单元观看由步骤203产生的视频,分析应用是否达到预期的目标。
[0010]本发明的技术方案具有以下有益效果:
本发明的技术方案,包括在线仿真子系统和远程验证子系统。在线仿真子系统保证了开发者不再受开发平台和开发环境的限制,可以随时随地地开发自己的应用,在理想状况下,开发者只需要一个浏览器就可以完成开发的全部步骤,对于团队中的各个成员,通过公共的账号对团队资源统一管理。而远程验证子系统允许开发者将应用下载到远程的机器人实体上运行,并将运行结果通过视频反馈给开发者,弥补了仿真程序固有的缺陷。
[0011]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【专利附图】

【附图说明】
[0012]图1为本发明实施例所述的机器人应用在线仿真和远程验证系统的原理框图;
图2为本发明实施例所述的机器人应用在线仿真和远程验证方法的流程图;
图3为本发明实施例所述的在线仿真子系统的工作流程图;
图4为本发明实施例所述的远程验证子系统的拓扑图;
图5为本发明实施例所述的远程验证子系统工作流程图。
【具体实施方式】
[0013]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0014]如图1所示,第一 Web服务单元和第二 Web服务单元可以集成为一个Web服务单元,也可以采用两个分立的Web服务单元,本实施例采用一个集成的Web服务单元。
[0015]一种机器人应用在线仿真和远程验证的系统,包括在线仿真子系统和远程验证子系统,在线仿真子系统包括在线控制单元、第一 Web服务单元和仿真执行单元;远程验证子系统包括远程交互单元、第二 Web服务单元和远程验证执行单元;第一 Web服务单元和仿真执行单元采用分层结构;在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果;第一 Web服务单元用于在服务器端处理在上述在线控制单元的请求,当接收到仿真请求时,第一 Web服务单元首先启动一个执行单元的实例,并将在线控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,当该数据结构中的信息发生更新时,执行单元会将该数据结构传递给第一 web服务单元的数据缓冲区;仿真执行单元定时读取第一 Web服务单元数据缓冲区中的值,并根据数据缓冲区中的值中的位置信息和速度信息通过浏览器窗口绘制仿真动画;远程交互单元是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务远程执行结果的视频;第二 Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中,当远程交互单元发出查看验证结果的请求时,第二 Web服务单元完成流媒体服务器功能;远程验证执行单元:维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个部署在远程执行环境中的摄像头,通过这些摄像头捕获机器人的行为和动作,远程的机器人硬件执行完程序后,远程验证执行单元将结果插入到第二 Web服务单元的数据库中。
[0016]在线仿真系统主要由三部分组成,分别是:在线控制单元,Web服务单元和仿真执行单元。在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果。在具体系统中,在线控制单元可以以网页的形式呈现,用户可以在此网页指定需要仿真的机器人应用程序,上传用于描述仿真场景的图片,配置仿真的初始化参数(比如仿真机器人的形态描述)和控制仿真的开始/停止以及实时改变仿真速度。
[0017]Web服务单元用于在服务器端处理在线控制单元的请求,当接收到仿真请求时,Web服务单元首先启动一个仿真执行单元的实例,并将控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,在该数据结构中,包含了仿真的坐标信息,移动速度信息,转动角度信息和各个传感器的值等。当该数据结构中的信息发生更新时,仿真执行单元会将该数据结构传递给web服务单元的数据缓冲区。在线控制单元维护一个定时器,每当时钟嘀塔到达时便向Web服务器请求当前的仿真信息,Web服务单元首先验证用户请求的合法性,如果合法,则将数据缓冲区中的信息返回给在线控制单元,在线控制端通过得到的数据绘制仿真动画。
[0018]仿真执行单元和Web服务单元采用分层结构,而没有将仿真执行单元与Web服务单元的功能集成而直接与在线控制端通信,理由如下:第一,由于Web服务单元通常使用熟知端口,当仿真执行单元直接与在线控制单元通信时,仿真执行单元必须要绑定一个网络端口,而每一个应用完成的任务是不同的,一个仿真执行单元的实例只能在同一时间仿真一个机器人应用,当有新的任务需要提交时,虽然可以通过创建新实例并绑定新端口的方式实现,但这就需要在线控制单元事先知道仿真执行单元的端口,这是不科学的;第二,希望仿真执行单元只完成仿真任务,而通过分层的方式将其他的功能独立出来,仿真执行单元只完成仿真,并提供数据结果,而Web服务单元专门负责Web请求,并使用仿真进程提供的服务,达到“强内聚,松耦合”的目的;第三,采用分层结构以后,可以方便地对旧系统升级,对于已经有模拟系统的机器人服务提供商,只需要对已有的系统做少量修改便可直接部署到在线系统中,并且几乎不需要对Web服务单元和在线控制单元做改动;第四,采用分层结构后,Web服务单元可以对在线控制单元的请求做一定甄别和分类,这一方面提高了系统的安全性,另一方面使得系统可以支持不同结构的机器人仿真,即同一个在线控制单元可以对应不同厂商的仿真执行单元实例。
[0019]由于仿真是对实际运行情况的一种模拟和抽象,在仿真中执行的机器人应用代码应该和实际运行的应用代码是一致的,一般的机器人应用程序通常是在应用中调用机器人服务商提供的API来完成对机器人的控制,这些API通常是面向功能的,每一个功能又是面向一个或多个硬件的,应用最终要通过驱动程序去控制硬件,每一个硬件都有其特定的功能和属性,在本发明技术方案中,将一个设备封装成一个代理,设备包括物理设备和虚拟设备,物理设备是实实在在的硬件,比如舵机和各种传感器,虚拟设备用于完成一组功能,比如体感交互和路径规划等。应用中直接调用代理提供的方法和属性,代理又去调用对应驱动实现对机器人的控制。在这种架构下,仿真程序位于驱动层之下,但是只接收与处理驱动程序发布的数据,并不执行具体的动作。
[0020]为了弥补仿真固有的缺陷一不能提供和现实场景一致的动态变化的环境,在本发明中又提出了 一种远程验证机制。远程验证是指开发者在缺少机器人实体或者机器人数量不能同时满足多个开发者的需求时,可以将编译通过的应用程序下载到远程机器人上运行,并且由部署在实体机器人周围的摄像头捕获机器人的动作行为,并以视频的方式返回给用户,对用户来说,这一切都可以通过一个浏览器完成。与在线仿真系统类似,远程验证系统主要包括:远程交互单元,Web服务单元和验证执行单元。
[0021]远程交互单元可以是在线网页或者移动APP,主要是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务结果的视频。
[0022]Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中。同时,当远程交互单元发出查看验证结果的请求时,Web服务单元还需要完成流媒体服务器的功能。
[0023]验证执行单元包括软件和硬件两大部分。软件的功能是维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个摄像头,捕获机器人的行为和动作,执行完成后将结果插入到Web服务单元的数据库中;硬件部分包括机器人和摄像头,机器人可以通过有线或无线网络与服务器连接,主要用于执行应用程序,摄像头通过线缆或网络与服务器连接,根据验证执行单元的指令和摄像参数捕获机器人的动作行为。
[0024]本发明技术方案公开一种机器人应用在线仿真和远程验证的方法,包括在线仿真和远程验证;
Web服务单元集成了第一 Web服务单元和第二 Web服务单元;
步骤101、开发者通过在线控制单元提交需要仿真的编译的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件,仿真的初始化配置文件用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态;
步骤102、设置好地图文件和初始化配置文件后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,如果有效则启动仿真执行单元,仿真执行单元启动后,Web服务单元维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画;
步骤103、仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换;
所述远程验证包括:
步骤201、用户通过远程交互单元提交远程验证任务,提交的内容为机器人应用程序;步骤202、Web服务单元接收到远程交互单元提交的任务后,首先检查任务的合法性,Web服务单元会将合法的任务插入到任务队列的末尾,如果当前任务队列是空的,则检查远程验证执行单元的状态,如果远程验证执行单元处于休眠状态,则将其唤醒;步骤203、远程执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的方式保存在服务器的存储设备上;
步骤204、用户通过远程交互单元观看由步骤203产生的视频,分析应用是否达到预期的目标。
[0025]如图2所示为系统的整体流程,系统(参考本 申请人:的专利文件中的描述,专利号为201310500856.0,名称为一种通用的教育娱乐机器人软件研制平台)主要包含是代码生成,代码编译,本发明主要描述的内容在于在线仿真和远程执行。代码通过编译后可以有两种选择,一是在线仿真,二是远程验证,在系统中,为了流程图的清晰直观,在线仿真和远程执行表现为并列关系,不过在系统的实际使用中,这两者是没有先后,开发者可以根据需求全部选择或者只选择其一,全部选择时其顺序也没有要求。
[0026]在线仿真系统的工作流程如图3所示,第一,开发者通过在线控制单元提交需要仿真的编译无错的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件。在本发明技术方案所描述的系统中,可以接受一切位图文件作为仿真地图。在仿真时,白色的像素点表示机器人可以自由移动的位置,黑色的像素点表示物体或者障碍,在某些特殊的应用场景中,不同颜色的区域代表不同的意义,比如当机器人上装备有开关量温度传感器时,机器人移动到红色的区域时温度传感器的读数为高电平,在白色区域时温度传感器的读数为低电平。
[0027]仿真的初始化配置文件主要用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态。一个典型的配置文件包括对仿真窗口的描述,对仿真背景的引用和对仿真动画中机器人心态的描述,表一为一个典型的配置文件:
表一、典型的配置文件:
【权利要求】
1.一种机器人应用在线仿真和远程验证的系统,其特征在于,包括 在线仿真子系统和远程验证子系统,所述在线仿真子系统包括在线控制单元、第一 Web服务单元和仿真执行单元;所述远程验证子系统包括远程交互单元、第二 Web服务单元和远程验证执行单元; 所述第一 Web服务单元和仿真执行单元采用分层结构; 所述在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果; 所述第一 Web服务单元用于在服务器端处理上述在线控制单元的请求,当接收到仿真请求时,第一 Web服务单元首先启动一个执行单元的实例,并将在线控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,当该数据结构中的信息发生更新时,执行单元会将该数据结构传递给第一 web服务单元的数据缓冲区; 所述仿真执行单元定时读取第一 Web服务单元数据缓冲区中的值,并根据数据缓冲区中的值中的位置信息和速度信息通过浏览器窗口绘制仿真动画; 所述远程交互单元是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务远程执行结果的视频; 所述第二 Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证 执行单元所维护的任务队列中,当远程交互单元发出查看验证结果的请求时,第二 Web服务单元完成流媒体服务器功能; 所述远程验证执行单元:维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个部署在远程执行环境中的摄像头,通过这些摄像头捕获机器人的行为和动作,远程的机器人硬件执行完程序后,远程验证执行单元将结果插入到第二 Web服务单元的数据库中。
2.根据权利要求1所述的机器人应用在线仿真和远程验证的系统,其特征在于,所述第一 Web服务单元和第二 Web服务单元集成为一个Web服务单元。
3.根据权利要求1或2所述的机器人应用在线仿真和远程验证的系统,其特征在于,所述在线控制单元和远程交互单元均可利用在线网页或者移动APP实现。
4.根据权利要求3所述的机器人应用在线仿真和远程验证的系统,其特征在于,所述数据结构包含了仿真的坐标信息,移动速度信息,转动角度信息和传感器的值。
5.一种机器人应用在线仿真和远程验证的方法,其特征在于,包括在线仿真和远程验证; Web服务单元集成了第一 Web服务单元和第二 Web服务单元; 步骤101、开发者通过在线控制单元提交需要仿真的已通过编译的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件,仿真的初始化配置文件用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态; 步骤102、设置好地图文件和初始化配置文件后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,如果有效则启动仿真执行单元,仿真执行单元启动后,Web服务单元维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画; 步骤103、仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换; 所述远程验证包括: 步骤201、用户通过远程交互单元提交远程验证任务,提交的内容为机器人应用程序;步骤202、Web服务单元接收到远程交互单元提交的任务后,首先检查任务的合法性,Web服务单元会将合法的任务插入到任务队列的末尾,如果当前任务队列是空的,则检查远程验证执行单元的状态,如果远程验证执行单元处于休眠状态,则将其唤醒; 步骤203、远程执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的方式保存在服务器的存储设备上; 步骤204、用户通过远程交互单元观看由步骤203产生的视频,分析应用是否达到预期的 目标。
【文档编号】G06F9/455GK104007974SQ201410238305
【公开日】2014年8月27日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】李晶晶, 鲁珂, 吴少智 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1