CN104007974A - 一种机器人应用在线仿真和远程验证的系统与方法 - Google Patents
一种机器人应用在线仿真和远程验证的系统与方法 Download PDFInfo
- Publication number
- CN104007974A CN104007974A CN201410238305.6A CN201410238305A CN104007974A CN 104007974 A CN104007974 A CN 104007974A CN 201410238305 A CN201410238305 A CN 201410238305A CN 104007974 A CN104007974 A CN 104007974A
- Authority
- CN
- China
- Prior art keywords
- unit
- web service
- robot
- service unit
- remote
- 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
Links
Landscapes
- Manipulator (AREA)
Abstract
本发明公开了一种机器人应用在线仿真和远程验证的系统与方法,其中机器人应用在线仿真和远程验证的系统,包括在线仿真子系统和远程验证子系统,所述在线仿真子系统包括在线控制单元、第一Web服务单元和仿真执行单元;所述远程验证子系统包括远程交互单元、第二Web服务单元和远程验证执行单元;所述第一Web服务单元和仿真执行单元采用分层结构。在线仿真子系统保证了开发者不再受开发平台和开发环境的限制,而远程验证子系统允许开发者将应用下载到远程的机器人实体上运行,并将运行结果通过视频反馈给开发者,弥补了仿真程序固有的缺陷。
Description
技术领域
本发明涉及机器人仿真领域,具体地,涉及一种机器人应用在线仿真和远程验证的系统与方法。
背景技术
机器人控制应用通常会按照软件工程的一般流程进行开发,典型的开发过程中包含了设计,编码和测试。但是与一般计算机应用不同,机器人控制程序的测试往往会涉及到大量的传感器,运动模块以及需要应对复杂的现实场景,所以,机器人应用的测试是一个耗费大量时间和精力的过程。另一方面,由于机器人系统的复杂性,导致其成本昂贵,一般的机器人爱好者和学生群体无力承担其硬件成本,在一定程度上阻碍了机器人应用的开发和相关领域的发展。鉴于此,很多机器人开发商在发布其硬件产品和对应操作系统时,往往会提供一个可视化的机器人应用仿真程序,开发者完成其应用的编码后,首先可以通过仿真程序直观地检验应用程序的业务逻辑是否正确,仿真程序的出现,为开发者提供了极大的便利。但是,由于各个厂商之间的利益争执和不同平台的限制,导致每个厂商提供的仿真程序在某一方面都有很大的局限性,比如对操作系统的限制,对开发语言的限制和对具体硬件产品的限制等等。另一种情况,现代的软件开发已经远远不是一个人可以独自完成的,团队协作是现代软件开发中避不开的问题,以小组竞赛为例,由于团队要开发同一个应用,所以他们各自的开发环境必须要保持一致,并且在切换计算机后需要重新部署开发环境,这降低了团队的开发效率。
更进一步,仿真程序虽然为开发者提供了便利,但因为实际的机器人面对的是动态变化的复杂的现实环境,而仿真程序中提供的通常都是指定的静态的环境,在仿真中健壮运行的程序可能在现实中出错。
发明内容
本发明的目的在于,针对上述问题,提出一种机器人应用在线仿真和远程验证的系统与方法,通过在线平台,打破机器人应用开发中依赖开发环境的桎梏;通过远程验证系统,消弭仿真程序应对实际环境时的固有缺陷。
为实现上述目的,本发明采用的技术方案是:
一种机器人应用在线仿真和远程验证的系统,包括
在线仿真子系统和远程验证子系统,所述在线仿真子系统包括在线控制单元、第一Web服务单元和仿真执行单元;所述远程验证子系统包括远程交互单元、第二Web服务单元和远程验证执行单元;
所述第一Web服务单元和仿真执行单元采用分层结构;
所述在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果;
所述第一Web服务单元用于在服务器端处理上述在线控制单元的请求,当接收到仿真请求时,第一Web服务单元首先启动一个执行单元的实例,并将在线控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,当该数据结构中的信息发生更新时,执行单元会将该数据结构传递给第一web服务单元的数据缓冲区;
所述仿真执行单元定时读取第一Web服务单元数据缓冲区中的值,并根据数据缓冲区中的值中的位置信息和速度信息通过浏览器窗口绘制仿真动画;
所述远程交互单元是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务远程执行结果的视频;
所述第二Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中,当远程交互单元发出查看验证结果的请求时,第二Web服务单元完成流媒体服务器功能;
所述远程验证执行单元:维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个部署在远程执行环境中的摄像头,通过这些摄像头捕获机器人的行为和动作,远程的机器人硬件执行完程序后,远程验证执行单元将结果插入到第二Web服务单元的数据库中。
根据本发明的优选实施例,所述第一Web服务单元和第二Web服务单元集成为一个Web服务单元。
根据本发明的优选实施例,所述在线控制单元和远程交互单元均可利用在线网页或者移动APP实现。
根据本发明的优选实施例,所述数据结构包含了仿真的坐标信息,移动速度信息,转动角度信息和传感器的值。
同时本发明技术方案公开一种机器人应用在线仿真和远程验证的方法,包括在线仿真和远程验证;
Web服务单元集成了第一Web服务单元和第二Web服务单元;
步骤101、开发者通过在线控制单元提交需要仿真的已通过编译的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件,仿真的初始化配置文件用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态;
步骤102、设置好地图文件和初始化配置文件后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,如果有效则启动仿真执行单元,仿真执行单元启动后,Web服务单元维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画;
步骤103、仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换;
所述远程验证包括:
步骤201、用户通过远程交互单元提交远程验证任务,提交的内容为机器人应用程序;
步骤202、Web服务单元接收到远程交互单元提交的任务后,首先检查任务的合法性, Web服务单元会将合法的任务插入到任务队列的末尾,如果当前任务队列是空的,则检查远程验证执行单元的状态,如果远程验证执行单元处于休眠状态,则将其唤醒;
步骤203、远程执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的方式保存在服务器的存储设备上;
步骤204、用户通过远程交互单元观看由步骤203产生的视频,分析应用是否达到预期的目标。
本发明的技术方案具有以下有益效果:
本发明的技术方案,包括在线仿真子系统和远程验证子系统。在线仿真子系统保证了开发者不再受开发平台和开发环境的限制,可以随时随地地开发自己的应用,在理想状况下,开发者只需要一个浏览器就可以完成开发的全部步骤,对于团队中的各个成员,通过公共的账号对团队资源统一管理。而远程验证子系统允许开发者将应用下载到远程的机器人实体上运行,并将运行结果通过视频反馈给开发者,弥补了仿真程序固有的缺陷。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例所述的机器人应用在线仿真和远程验证系统的原理框图;
图2为本发明实施例所述的机器人应用在线仿真和远程验证方法的流程图;
图3为本发明实施例所述的在线仿真子系统的工作流程图;
图4为本发明实施例所述的远程验证子系统的拓扑图;
图5为本发明实施例所述的远程验证子系统工作流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,第一Web服务单元和第二Web服务单元可以集成为一个Web服务单元,也可以采用两个分立的Web服务单元,本实施例采用一个集成的Web服务单元。
一种机器人应用在线仿真和远程验证的系统,包括在线仿真子系统和远程验证子系统,在线仿真子系统包括在线控制单元、第一Web服务单元和仿真执行单元;远程验证子系统包括远程交互单元、第二Web服务单元和远程验证执行单元;第一Web服务单元和仿真执行单元采用分层结构;在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果;第一Web服务单元用于在服务器端处理在上述在线控制单元的请求,当接收到仿真请求时,第一Web服务单元首先启动一个执行单元的实例,并将在线控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,当该数据结构中的信息发生更新时,执行单元会将该数据结构传递给第一web服务单元的数据缓冲区;仿真执行单元定时读取第一Web服务单元数据缓冲区中的值,并根据数据缓冲区中的值中的位置信息和速度信息通过浏览器窗口绘制仿真动画;远程交互单元是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务远程执行结果的视频;第二Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中,当远程交互单元发出查看验证结果的请求时,第二Web服务单元完成流媒体服务器功能;远程验证执行单元:维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个部署在远程执行环境中的摄像头,通过这些摄像头捕获机器人的行为和动作,远程的机器人硬件执行完程序后,远程验证执行单元将结果插入到第二Web服务单元的数据库中。
在线仿真系统主要由三部分组成,分别是:在线控制单元,Web服务单元和仿真执行单元。在线控制单元是用户和系统的交互接口,用户通过在线控制单元提交任务,控制仿真参数和查看仿真结果。在具体系统中,在线控制单元可以以网页的形式呈现,用户可以在此网页指定需要仿真的机器人应用程序,上传用于描述仿真场景的图片,配置仿真的初始化参数(比如仿真机器人的形态描述)和控制仿真的开始/停止以及实时改变仿真速度。
Web服务单元用于在服务器端处理在线控制单元的请求,当接收到仿真请求时,Web服务单元首先启动一个仿真执行单元的实例,并将控制单元提供的场景图像和仿真参数传递给该实例,该实例会维护一个用于保存仿真结果的数据结构,在该数据结构中,包含了仿真的坐标信息,移动速度信息,转动角度信息和各个传感器的值等。当该数据结构中的信息发生更新时,仿真执行单元会将该数据结构传递给web服务单元的数据缓冲区。在线控制单元维护一个定时器,每当时钟嘀嗒到达时便向Web服务器请求当前的仿真信息,Web服务单元首先验证用户请求的合法性,如果合法,则将数据缓冲区中的信息返回给在线控制单元,在线控制端通过得到的数据绘制仿真动画。
仿真执行单元和Web服务单元采用分层结构,而没有将仿真执行单元与Web服务单元的功能集成而直接与在线控制端通信,理由如下:第一,由于Web服务单元通常使用熟知端口,当仿真执行单元直接与在线控制单元通信时,仿真执行单元必须要绑定一个网络端口,而每一个应用完成的任务是不同的,一个仿真执行单元的实例只能在同一时间仿真一个机器人应用,当有新的任务需要提交时,虽然可以通过创建新实例并绑定新端口的方式实现,但这就需要在线控制单元事先知道仿真执行单元的端口,这是不科学的;第二,希望仿真执行单元只完成仿真任务,而通过分层的方式将其他的功能独立出来,仿真执行单元只完成仿真,并提供数据结果,而Web服务单元专门负责Web请求,并使用仿真进程提供的服务,达到“强内聚,松耦合”的目的;第三,采用分层结构以后,可以方便地对旧系统升级,对于已经有模拟系统的机器人服务提供商,只需要对已有的系统做少量修改便可直接部署到在线系统中,并且几乎不需要对Web服务单元和在线控制单元做改动;第四,采用分层结构后,Web服务单元可以对在线控制单元的请求做一定甄别和分类,这一方面提高了系统的安全性,另一方面使得系统可以支持不同结构的机器人仿真,即同一个在线控制单元可以对应不同厂商的仿真执行单元实例。
由于仿真是对实际运行情况的一种模拟和抽象,在仿真中执行的机器人应用代码应该和实际运行的应用代码是一致的,一般的机器人应用程序通常是在应用中调用机器人服务商提供的API来完成对机器人的控制,这些API通常是面向功能的,每一个功能又是面向一个或多个硬件的,应用最终要通过驱动程序去控制硬件,每一个硬件都有其特定的功能和属性,在本发明技术方案中,将一个设备封装成一个代理,设备包括物理设备和虚拟设备,物理设备是实实在在的硬件,比如舵机和各种传感器,虚拟设备用于完成一组功能,比如体感交互和路径规划等。应用中直接调用代理提供的方法和属性,代理又去调用对应驱动实现对机器人的控制。在这种架构下,仿真程序位于驱动层之下,但是只接收与处理驱动程序发布的数据,并不执行具体的动作。
为了弥补仿真固有的缺陷——不能提供和现实场景一致的动态变化的环境,在本发明中又提出了一种远程验证机制。远程验证是指开发者在缺少机器人实体或者机器人数量不能同时满足多个开发者的需求时,可以将编译通过的应用程序下载到远程机器人上运行,并且由部署在实体机器人周围的摄像头捕获机器人的动作行为,并以视频的方式返回给用户,对用户来说,这一切都可以通过一个浏览器完成。与在线仿真系统类似,远程验证系统主要包括:远程交互单元,Web服务单元和验证执行单元。
远程交互单元可以是在线网页或者移动APP,主要是提供给开发者的人机交互接口,开发者可通过远程交互单元提交自己的任务和观看任务结果的视频。
Web服务单元主要接收来自远程交互单元的请求,并对请求进程甄别,将合理的请求插入到验证执行单元所维护的任务队列中。同时,当远程交互单元发出查看验证结果的请求时,Web服务单元还需要完成流媒体服务器的功能。
验证执行单元包括软件和硬件两大部分。软件的功能是维护任务队列,当任务队列不为空时,将队首的任务下载到硬件单元的机器人中执行,并管理若干个摄像头,捕获机器人的行为和动作,执行完成后将结果插入到Web服务单元的数据库中;硬件部分包括机器人和摄像头,机器人可以通过有线或无线网络与服务器连接,主要用于执行应用程序,摄像头通过线缆或网络与服务器连接,根据验证执行单元的指令和摄像参数捕获机器人的动作行为。
本发明技术方案公开一种机器人应用在线仿真和远程验证的方法,包括在线仿真和远程验证;
Web服务单元集成了第一Web服务单元和第二Web服务单元;
步骤101、开发者通过在线控制单元提交需要仿真的编译的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件,仿真的初始化配置文件用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态;
步骤102、设置好地图文件和初始化配置文件后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,如果有效则启动仿真执行单元,仿真执行单元启动后,Web服务单元维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画;
步骤103、仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换;
所述远程验证包括:
步骤201、用户通过远程交互单元提交远程验证任务,提交的内容为机器人应用程序;
步骤202、Web服务单元接收到远程交互单元提交的任务后,首先检查任务的合法性, Web服务单元会将合法的任务插入到任务队列的末尾,如果当前任务队列是空的,则检查远程验证执行单元的状态,如果远程验证执行单元处于休眠状态,则将其唤醒;
步骤203、远程执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的方式保存在服务器的存储设备上;
步骤204、用户通过远程交互单元观看由步骤203产生的视频,分析应用是否达到预期的目标。
如图2所示为系统的整体流程,系统(参考本申请人的专利文件中的描述,专利号为201310500856.0 ,名称为一种通用的教育娱乐机器人软件研制平台)主要包含是代码生成,代码编译,本发明主要描述的内容在于在线仿真和远程执行。代码通过编译后可以有两种选择,一是在线仿真,二是远程验证,在系统中,为了流程图的清晰直观,在线仿真和远程执行表现为并列关系,不过在系统的实际使用中,这两者是没有先后,开发者可以根据需求全部选择或者只选择其一,全部选择时其顺序也没有要求。
在线仿真系统的工作流程如图3所示,第一,开发者通过在线控制单元提交需要仿真的编译无错的机器人应用,同时上传用于描述仿真场景的地图文件和仿真的初始化配置文件。在本发明技术方案所描述的系统中,可以接受一切位图文件作为仿真地图。在仿真时,白色的像素点表示机器人可以自由移动的位置,黑色的像素点表示物体或者障碍,在某些特殊的应用场景中,不同颜色的区域代表不同的意义,比如当机器人上装备有开关量温度传感器时,机器人移动到红色的区域时温度传感器的读数为高电平,在白色区域时温度传感器的读数为低电平。
仿真的初始化配置文件主要用于告诉仿真执行单元需要加载哪些设备的驱动,以及仿真动画中机器人的形态。一个典型的配置文件包括对仿真窗口的描述,对仿真背景的引用和对仿真动画中机器人心态的描述,表一为一个典型的配置文件:
表一、典型的配置文件:
。
表二、example.world的内容:
。
第二,设置好场景地图和初始化仿真配置后,通过HTTP请求的方式通知Web服务单元开始仿真,Web服务单元收到请求后,首先检测请求的合法性,包括用户是否具有仿真权限,仿真地图和初始化配置文件是否有效,如果有效则启动仿真执行单元。仿真执行单元启动后,Web服务单元会维护自己的数据缓冲区,该缓冲区中包含了仿真执行单元提供的仿真数据,在整个仿真过程中,Web服务单元会一直与在线控制单元通信,每次收到在线控制单元的数据请求,都会将自己数据缓冲区中的数据发送给在线控制单元,在线控制单元根据这些数据绘制仿真动画。
第三,仿真执行单元开始执行仿真应用后,与Web服务单元主要进行时间、模块参数的数据交换,典型的交换方式如下:
时间相关的服务请求:
通过“IP:端口/sim/clock/get”取得仿真时间,时间储存在StTime::StTime数据结构里。仿真页面定时的滴答数据请求对应StTime时间递增一次,每次滴答对应0.2s时间。仿真页面停止滴答数据请求,达到暂停仿真的效果。降低滴答数据请求的频率可以降低仿真速度,反之亦然。
位置信息相关的服务请求:
机器人的位置信息在机器人的仿真中很重要。每个机器人模块至少需要一个position2d接口与之对应,position2d是舵机的代理,每次数据请求,position2d以(x,y,a)的数据形式进行响应:x-x轴的坐标、y-y轴的坐标、a-一个position2d模块的转动角度。
各类传感器的数据请求:
不同的传感器对应不同的接口,比如激光传感器对应laser接口,每次滴答请求中,laser接口都会返回探测到的障碍物距离,以供下一次移动参考。
摄像头相关的服务请求:
与一般的传感器不同,摄像头通过USB接口与机器人相连,它的处理也要比一般的传感器复杂一些,在本发明所使用的硬件系统中,摄像头主要用来识别颜色,并返回视野范围内颜色的位置信息及探测到的颜色块的面积。摄像头的探测范围为一个矩形区域,比如摄像头的分辨率是320x240,则160x120(以矩形区域右上角为原点,下同)是摄像头的中心位置,X小于160表示探测到的颜色偏左,X大于160表示探测到的颜色偏右,Y小于120表示探测到的颜色偏下,Y大于120表示探测到的颜色偏上,探测的颜色面积越大表明离颜色区域越近,越小表示越远。运动控制算法可以根据摄像头返回的位置信息和大小信息作为移动的参考信息。
在机器人应用执行时,应用中调用的各个接口功能会经驱动层转化成具体的电气信号控制对应硬件模块的动作,驱动程序中最重要的函数是ProcessMessage(),该函数将各类用户命令转化为硬件控制指令,为了支持仿真功能,我们需要在驱动程序中增加一个Publish()函数,该函数用来发布驱动程序处理的数据,并且每一个接口都提供了一个Read()函数用来读取这些数据。在仿真程序中,每一个请求会被转发给具体的驱动程序处理,然后调用Read函数去读取Publish()函数发布的数据,并且将这些数据发送到Web服务单元的数据缓冲区中。从计算机程序的角度来讲,仿真执行单元的工作流程如下所示:
(1)接收到Web服务单元的仿真任务后,调用Setup()函数,进行一系列初始化动作,然后进入Main()函数。
(2)在Main()函数中,会循环调用Update()函数,Update()函数实现了仿真的所有工作,Update()会根据消息句柄将具体的消息交给对应的Driver处理,比如将位置与运动相关的消息交给Position2d的Process()函数处理,将激光相关的消息交给Laser的Process()函数处理。各种不同的消息分门别类由对用驱动处理,各个驱动程序处理完成后将数据Publish()到自己的数据缓冲区,Update()再调用Read()函数去读取这些数据。
(3)当没有消息需要处理时,Update()会进入休眠状态。
(4)仿真结束后,调用Shutdown()释放资源,程序退出。
远程验证系统主要包括三个部分:远程交互单元,Web服务单元和验证执行单元。远程验证系统的拓扑图如图4所示,402和404组成远程交互单元,406是服务器,执行Web服务单元的任务, 408是网络介质,可以是传统有线网络,WLAN或者蓝牙网络等,410是实体机器人。远程交互单元是系统的人机交互接口,用户可以通过该单元提交远程验证任务和观看机器人运行结果的视频;Web服务单元用于处理远程交互单元的请求,并且验证请求的合法性,将合法的请求插入到任务队列中,在用户通过远程交互单元观看验证结果视频时,Web服务单元还需要完成流媒体播放服务器的功能;验证执行单元从任务队列中取出任务,将机器人应用下载到空闲的机器人上,并且启动部署在机器人周围的摄像头捕获机器人的行为和动作,并将其以视频文件的形式保存在服务器上。远程验证系统的工作流程如图5所示。
(1)用户通过远程交互单元提交远程验证任务,提交的内容为编译无误的机器人应用程序。
(2)Web服务单元接收到远程交互单元的任务后,首先检查任务的合法性,包括用户是否有提交任务的权限,提交的机器人应用程序是否合法,Web服务单元会将合法的任务插入到任务队列的末尾。如果当前任务队列是空的,那么还需要检查验证执行单元的状态,如果处于休眠状态,则将其唤醒。
(3)验证执行单元检查任务队列是否为空,如果为空则休眠,否则取出队首的任务,将其中的机器人应用下载到与服务器通过网络相连的实体机器人上运行,同时启动部署在机器人周围环境的摄像头捕获机器人的动作和行为,以视频文件的形式保存在服务器的存储设备上。
(4)用户通过远程交互单元观看由步骤(3)产生的视频,分析应用是否达到预期的目标。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
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产生的视频,分析应用是否达到预期的目标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238305.6A CN104007974B (zh) | 2014-05-30 | 2014-05-30 | 一种机器人应用在线仿真和远程验证的系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238305.6A CN104007974B (zh) | 2014-05-30 | 2014-05-30 | 一种机器人应用在线仿真和远程验证的系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104007974A true CN104007974A (zh) | 2014-08-27 |
CN104007974B CN104007974B (zh) | 2017-02-15 |
Family
ID=51368641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410238305.6A Expired - Fee Related CN104007974B (zh) | 2014-05-30 | 2014-05-30 | 一种机器人应用在线仿真和远程验证的系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104007974B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302593A (zh) * | 2015-06-01 | 2017-01-04 | 信帧电子技术(北京)有限公司 | 一种机器人表演场智慧位的定义和设计方法 |
CN106313038A (zh) * | 2015-06-30 | 2017-01-11 | 芋头科技(杭州)有限公司 | 一种实时控制调试系统及调试方法 |
CN107471213A (zh) * | 2017-08-03 | 2017-12-15 | 大陆智源科技(北京)有限公司 | 一种机器人模拟系统 |
CN109995711A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 智能机器人的应用开发方法、装置、终端设备及介质 |
CN110134081A (zh) * | 2019-04-08 | 2019-08-16 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种基于机器人能力模型的控制系统 |
CN110728009A (zh) * | 2018-06-28 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 仿真方法、装置和系统 |
CN113626003A (zh) * | 2021-08-16 | 2021-11-09 | 杭州群核信息技术有限公司 | 云端机器人解决方案系统 |
CN114240847A (zh) * | 2021-11-23 | 2022-03-25 | 西北工业大学 | 基于动态工艺模型的制造符合性保证远程检查方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513992A (zh) * | 2013-10-23 | 2014-01-15 | 电子科技大学 | 一种通用的教育娱乐机器人应用软件研制平台 |
-
2014
- 2014-05-30 CN CN201410238305.6A patent/CN104007974B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513992A (zh) * | 2013-10-23 | 2014-01-15 | 电子科技大学 | 一种通用的教育娱乐机器人应用软件研制平台 |
Non-Patent Citations (2)
Title |
---|
刘洋等: "基于视频反馈和实时仿真的机器人远程控制系统", 《计算机工程与设计》 * |
张建生等: "机器人远程控制系统的实时仿真与实现", 《计算机工程与应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302593A (zh) * | 2015-06-01 | 2017-01-04 | 信帧电子技术(北京)有限公司 | 一种机器人表演场智慧位的定义和设计方法 |
CN106313038A (zh) * | 2015-06-30 | 2017-01-11 | 芋头科技(杭州)有限公司 | 一种实时控制调试系统及调试方法 |
CN106313038B (zh) * | 2015-06-30 | 2019-01-29 | 芋头科技(杭州)有限公司 | 一种实时控制调试系统及调试方法 |
CN107471213A (zh) * | 2017-08-03 | 2017-12-15 | 大陆智源科技(北京)有限公司 | 一种机器人模拟系统 |
CN109995711A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 智能机器人的应用开发方法、装置、终端设备及介质 |
CN109995711B (zh) * | 2017-12-29 | 2021-08-27 | 深圳市优必选科技有限公司 | 智能机器人的应用开发方法、装置、终端设备及介质 |
CN110728009A (zh) * | 2018-06-28 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 仿真方法、装置和系统 |
CN110134081A (zh) * | 2019-04-08 | 2019-08-16 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种基于机器人能力模型的控制系统 |
CN113626003A (zh) * | 2021-08-16 | 2021-11-09 | 杭州群核信息技术有限公司 | 云端机器人解决方案系统 |
CN114240847A (zh) * | 2021-11-23 | 2022-03-25 | 西北工业大学 | 基于动态工艺模型的制造符合性保证远程检查方法 |
CN114240847B (zh) * | 2021-11-23 | 2024-02-09 | 西北工业大学 | 基于动态工艺模型的制造符合性保证远程检查方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104007974B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104007974A (zh) | 一种机器人应用在线仿真和远程验证的系统与方法 | |
CN101939736B (zh) | 远程计算设备的开发富互联网应用的系统和方法 | |
CN105745955B (zh) | 在基于网络的沉浸式增强现实中的保护隐私 | |
EP3992800B1 (en) | Program test method and apparatus, computer device, and storage medium | |
JP5599400B2 (ja) | 画像センサベースのヒューマンマシンインタフェースを提供する方法システムおよびソフトウェア | |
CN103403694B (zh) | 附加组件管理 | |
CN105787123B (zh) | 提供最小下载和模拟页面导航特征的服务器计算机和方法 | |
CN102508644B (zh) | 一种3d用户界面图形引擎系统 | |
CN105765539B (zh) | 用于自动生成虚拟环境的方法和系统 | |
EP1577752A2 (en) | Software development using visual interfaces | |
CN103927253A (zh) | 多浏览器兼容性测试方法及系统 | |
JP6104246B2 (ja) | コンピューティングデバイスの遠隔事前構成 | |
CN102291445A (zh) | 一种基于虚拟化资源的云计算管理系统 | |
Powell et al. | The test and training enabling architecture (TENA) | |
KR101161946B1 (ko) | 스마트폰 어플리케이션 제작 시스템 및 그 방법 | |
Annuzzi et al. | Advanced Android application development | |
CN109635216A (zh) | 一种移动终端和浏览器的图片进行同屏批注的方法 | |
CN109739447A (zh) | 中间件及其通信方法、中间件层、存储介质及终端设备 | |
Rosenberg et al. | Parallel Agile–faster delivery, fewer defects, lower cost | |
CN104468275A (zh) | 一种产业集群创新平台测试装置及方法 | |
CN106446023A (zh) | 基于AngularJS和Bootstrap实现的双公示生产数据前端展示系统及方法 | |
CN116107869A (zh) | 编排测试方法和装置、电子设备和可读存储介质 | |
US20120054313A1 (en) | Interpreting web application content | |
Wang et al. | Implementation of elementary chinese language learning application in WeChat mini programs | |
Chen et al. | Application of web services for structural engineering systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20200530 |