CN103513992B - 一种通用的教育娱乐机器人应用软件研制平台 - Google Patents
一种通用的教育娱乐机器人应用软件研制平台 Download PDFInfo
- Publication number
- CN103513992B CN103513992B CN201310500856.0A CN201310500856A CN103513992B CN 103513992 B CN103513992 B CN 103513992B CN 201310500856 A CN201310500856 A CN 201310500856A CN 103513992 B CN103513992 B CN 103513992B
- Authority
- CN
- China
- Prior art keywords
- api
- hardware device
- robot
- party user
- module
- 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.)
- Expired - Fee Related
Links
Landscapes
- Manipulator (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种通用的教育娱乐机器人应用软件研制平台,通过建立API库,为第三方用户提供了用于控制教育娱乐机器人常见硬件设备的API以及与教育娱乐机器人常见的应用功能和算法对应的API,第三方用户只需在编辑模块提供的应用软件编辑环境下,根据应用需求,自由选择和组合所需的API来编制应用软件,这样,降低了软件编制难度,实现了应用软件可配置性。由于API具有通用的调用接口,屏蔽了底层硬件平台的差异性,因此具有模块可重用性,在此基础上,应用软件用于控制不同教育娱乐机器人时可以不修改或细微修改,实现了软件可移植性和通用性。
Description
技术领域
本发明属于服务机器人应用软件研制技术领域,更为具体地讲,涉及一种通用的教育娱乐机器人应用软件研制平台。
背景技术
服务机器人是未来机器人发展的主导方向,服务机器人的应用领域广泛,如教育娱乐、家庭服务、智能家居、健康护理等,其中教育娱乐机器人是一种新兴的服务机器人,这种类型的机器人主要用于教学演示、教育竞赛和提供文化娱乐服务。教育娱乐机器人应用软件的研制,目前面临着教育娱乐机器人设备类型众多、外部交互复杂(声、光、热、图等)、应用需求灵活多变以及第三方研发测试的需求明显等问题。
目前,针对教育娱乐机器人并没有通用的应用软件研制平台,虽然国外几大教育娱乐机器人厂商如Sony、Lego等已经推出了各自的教育娱乐机器人应用软件研制环境,但是由于各大厂商各自为阵,软件控制对象主要为各大厂商各自提供的少数几种机器人产品,因此这些厂商所提供的教育娱乐机器人应用软件研制环境普遍存在以下问题:提供给外部的软件模块调用接口不规范,针对实际应用场景不同,现有的教育娱乐机器人应用软件研制环境在实现应用软件模块可重用性、软件可配置性的方面缺乏考虑;当机器人硬件平台切换时,现有的教育娱乐机器人应用软件研制环境没有考虑如何保障应用软件的通用性,没有提供应用软件的最小化修改机制;并且,缺乏对多种教育娱乐机器人硬件设备支持的考虑,缺少新的硬件设备添加后系统可扩展性的实现。
不难看出,为了推进教育娱乐机器人应用软件产业化、标准化的进程,针对上述技术薄弱环节,建设一种通用的教育娱乐机器人应用软件研制平台势在必行。平台的通用性应表现在以下方面:基于该平台研制的教育娱乐机器人应用软件应满足模块可重用性、软件可配置性、软件通用性和可移植性等现代软件工程的要求;该平台应提供对多种教育娱乐机器人硬件设备的支持,且支持硬件设备的扩展;基于上述技术的应用软件研制平台能够为第三方研发各类教育娱乐机器人的软件产品提供有力的基础技术支持。
发明内容
本发明的目的在于克服现有技术的不足,提供一种通用的教育娱乐机器人应用软件研制平台,以实现支持第三方用户在线完成各类教育娱乐机器人应用软件的开发和执行。
为实现上述发明目的,本发明通用的教育娱乐机器人应用软件研制平台,其特征在于,包括:
API库,其含有控制教育娱乐机器人常见硬件设备的API以及与教育娱乐机器人常见的应用功能和算法对应的API,用于供第三方用户根据应用需求自由选择和组合所需API以完成应用软件编制,从而降低应用软件的编制难度,这些API向第三方用户提供了通用的调用接口,以屏蔽教育娱乐机器人底层硬件的差异性;
API管理模块,用于根据API的功能,基于树状结构对API库里的API进行分类组织管理;
虚拟硬件设备驱动程序库,用于存储教育娱乐机器人的典型虚拟硬件设备的驱动程序;选取典型的教育娱乐机器人硬件设备作为虚拟对象,遵循Player规范预先编制相应硬件设备的驱动程序,完成后,通过硬件设备管理模块提供的虚拟硬件设备驱动程序添加接口,将其加入虚拟硬件设备驱动程序库,该硬件设备的简单信息也将被硬件设备管理模块所记录;
硬件设备管理模块,用于对平台支持的教育娱乐机器人硬件设备进行管理:一方面,对于平台支持的虚拟硬件设备以及已经真实存在的机器人硬件设备,硬件设备管理模块以硬件设备列表(包括虚拟硬件设备列表和真实机器人硬件设备列表)的形式提供这些硬件设备的简单信息,包括硬件设备的名称和硬件设备的属性等信息,供第三方用户在进行教育娱乐机器人应用软件研制时选择相应的硬件设备;另一方面,硬件设备管理模块还向平台管理人员提供真实硬件设备和虚拟硬件设备的驱动程序添加接口,通过真实硬件设备驱动程序的添加接口,平台管理人员可将真实存在的教育娱乐机器人硬件设备的驱动程序植入相应的教育娱乐机器人操作系统;而通过虚拟硬件设备驱动程序添加接口,平台管理人员可方便地向虚拟硬件设备驱动程序库里添加新的虚拟硬件设备驱动程序;
编辑模块,用于为远程登录的第三方用户提供可视化的配置文件编辑环境和教育娱乐机器人应用软件的编辑环境,基于第三方用户的输入和选择,完成配置文件和应用程序代码的编辑生成;
配置文件分为系统配置文件和仿真配置文件,系统配置文件描述应用软件运行的环境和其涉及的硬件设备信息,仿真配置文件描述应用软件运行的仿真环境设置信息;编辑模块中的配置文件编辑环境提供了对上述两种配置文件的编辑支持,具体而言,通过连接硬件设备管理模块,让第三方用户从虚拟硬件设备列表或真实机器人硬件设备列表里选择所需硬件设备,并根据第三方用户的选择生成符合Player规范的系统配置文件;与此同时,配置文件编辑环境也提供了常用的仿真环境模板,供第三方用户选择,对于个性化的仿真任务,第三方用户可通过修改平台提供的仿真环境模板、或者根据平台提供的生成向导逐步建立自己的仿真环境,进而生成符合Player规范的仿真配置文件;
教育娱乐机器人应用软件编辑环境支持文本和图形两种编辑模式;文本编辑模式提供对齐、语法高亮、删除、复制和粘贴等功能,文本编辑模式下,通过连接API管理模块,向第三方用户提供API的分类树状显示,即显示各个类别的名称,各个类别下包含的API信息,具体包括API的名称、参数名称、API功能描述和参数描述等信息;第三方用户在文本编辑模式下基于Player规范搭建程序框架,并根据应用需求,点击选择所需的API,将其加入到程序代码中适合的位置,完成应用程序代码的编写;图形编辑模式为第三方用户提供更为简便的编程模式,以图形块来代表API和相关的逻辑控制函数,分类显示各个类别有关的API图形块和逻辑控制图形块,提供图形块所代表的API及逻辑控制函数的功能描述、参数描述信息,并能提示第三方用户设置具体参数值,第三方用户通过选择并组合图形块可以快速指定教育娱乐机器人的动作流程,编辑模块根据第三方用户指定的教育娱乐机器人的动作流程生成对应应用程序代码;
编译模块,含有多种语言的编译器,用于完成对应用程序代码的编译:根据应用程序代码编辑时所用的语言,编译模块指定对应的编译器,编译生成可执行的应用程序;
执行模块,用于执行应用程序,以验证应用程序逻辑正确性;执行模块分为在线动画仿真模块和远程视频演示模块;执行模块首先解析系统配置文件获知执行环境是真实环境还是仿真环境;若应用程序执行环境为仿真环境,在线动画仿真模块会根据系统配置文件中的硬件设备描述,从虚拟硬件设备驱动程序库中选择加载对应的虚拟硬件设备驱动程序,完成应用程序和虚拟硬件设备驱动程序的联合执行,并根据仿真配置文件在线生成仿真环境,基于应用程序中的控制逻辑,在仿真环境中直观地绘制出机器人发出的动作,第三方用户可通过浏览器直接查看仿真动画结果;若应用程序执行环境为真实环境,远程视频演示模块会与机器人实体建立连接,并根据系统配置文件中的硬件设备描述,控制机器人加载相应的硬件设备驱动程序,并执行应用程序以实现对机器人的控制,机器人的动作会被部署在实际环境中的摄像头捕获,通过网络传输视频数据到教育娱乐机器人应用软件研制平台,第三方用户可通过浏览器查看视频结果。
本发明的发明目的是这样实现的:
本发明通用的教育娱乐机器人应用软件研制平台,通过建立API库,为第三方用户提供了用于控制教育娱乐机器人常见硬件设备的API以及与教育娱乐机器人常见的应用功能和算法对应的API,第三方用户只需在编辑模块提供的应用软件编辑环境下,根据应用需求,自由选择和组合所需的API来编制应用软件,这样,降低了软件编制难度,实现了应用软件可配置性。由于API具有通用的调用接口,屏蔽了底层硬件平台的差异性,因此具有模块可重用性,在此基础上,应用软件用于控制不同教育娱乐机器人时可以不修改或细微修改,实现了软件可移植性和通用性。针对教育娱乐机器人常见的硬件设备,建立虚拟设备驱动程序库,并且通过硬件设备管理模块,由平台管理人员负责虚拟硬件设备和真实硬件设备驱动程序的添加,实现了对多种教育娱乐机器人硬件设备的支持。
附图说明
图1是基于Player规范的机器人控制/执行结构图;
图2是本发明通用的教育娱乐机器人应用软件研制平台的工作示意图;
图3是本发明通用的教育娱乐机器人应用软件研制平台的架构图;
图4是基于树状结构的API分类示意图;
图5是本发明通用的教育娱乐机器人应用软件研制平台以第三方用户视角描述的工作流程图;
图6是小车巡游软件仿真执行的动画截图;
图7是图形编辑模式下第三方用户指定小车的动作流程图;
图8是小车巡游软件在真实环境中执行的视频截图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
1、基于Player规范的机器人控制/执行结构
Player是一个开源的、支持多线程的机器人驱动服务器,基于Player的规范所编制的应用软件遵循客户/服务器结构。如图1所示,用户应用软件所处的一端为客户端,也称为控制端。Player服务器称为执行端,执行端负责调度机器人本体的硬件资源来响应控制端的请求。执行端分为三层:接口层,驱动层和硬件设备层。接口层提供的是API(ApplicationProgrammingInterface,即应用程序接口,是一些预先定义的函数,其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何,或理解其内部工作机制的细节),控制端通过对API的调用实现对机器人的控制。驱动层实现对底层硬件设备的驱动,底层硬件设备可为真实硬件设备和虚拟硬件设备。
当执行环境为真实环境时,如图1(a)所示,此时Player服务器运行在机器人硬件平台上,底层硬件设备为真实硬件设备,控制端的应用软件通过TCP连接执行端,进而实现对机器人的控制,Player服务器支持大多数类UNIX(UNIX-like)的机器人嵌入式操作系统。
而当执行环境为仿真环境(simulation)时,如图1(b)所示,控制端和执行端都运行在同一平台上(可为Windows/Linux/MacOSX/Android/IOS等),此时的机器人为模拟机器人,机器人硬件设备为虚拟硬件设备,控制端和执行端的TCP通信在本地完成。
2、通用的教育娱乐机器人应用软件研制平台的架构
本发明基于Player的规范,提供一种通用的教育娱乐机器人应用软件研制平台,其在网络中的工作示意图如图2所示,用户可以通过运行在终端的浏览器登陆该平台,基于Player规范,在平台提供的软件开发环境下完成教育娱乐机器人应用软件的研制,并在线获得直观的软件执行结果。该平台通过网络连接真实环境中的教育娱乐机器人,同时也提供对教育娱乐机器人的仿真模拟。
在本实施例中,本发明通用的机器人应用软件研制平台的构成如图3所示,各个模块的功能如下:
(1)API库:含有控制教育娱乐机器人常见硬件设备的API以及与教育娱乐机器人常见的应用功能和算法对应的API。在本实施例中,API库里的API有两种类型:一类是细粒度的元接口,这类API每个只涉及一个指定的硬件单元,如舵机、激光传感器和声纳接近传感器等,第三方用户通过对这类API的调用,实现对指定硬件单元的控制,例如控制舵机前进、转向,控制声纳接近传感器探测障碍物等;另一类API是粗粒度的组合操作,即通过对细粒度的基本操作(即元接口)进行组合并封装,实现教育娱乐机器人常见的应用功能或算法,比如避障功能,寻路功能和物体追踪算法等,涉及多个硬件的协作。API向第三方用户提供了通用的调用接口,以屏蔽教育娱乐机器人底层硬件的差异性,使研制的应用软件具有模块可重用性。
(2)API管理模块:根据API的功能,基于树状结构对API库里的API进行分类组织管理。例如将API分为传感器控制、运动控制、多媒体处理和应用扩展等类别,进一步对各个类别下的API细分,如传感器控制类API具体又包含对红外、灰度、碰撞和温度等各种传感器控制的API;运动控制类API具体又包含控制舵机完成前进、后退和转向等各种动作的API;多媒体处理又包含MP3播放、LCD显示和语音识别等API;应用扩展类API具体又包含避障功能、物体追踪、物体抓取、实时摄像等众多和具体应用相关的API。图4是基于树状结构的API分类示意图。除了分类管理API,API管理模块还向平台管理人员提供API的提交接口,以便平台管理人员向API库里添加新的API。
(3)虚拟硬件设备驱动程序库:存有教育娱乐机器人的典型虚拟硬件设备的驱动程序。本发明选取典型的教育娱乐机器人硬件设备作为虚拟对象,遵循Player规范预先编制相应设备的驱动程序,完成后,通过硬件设备管理模块提供的虚拟硬件设备驱动程序添加接口,将其加入虚拟硬件设备驱动程序库,该硬件设备的简单信息也将被硬件设备管理模块所记录。
(4)硬件设备管理模块:用于对平台支持的教育娱乐机器人硬件设备进行管理:一方面,对于平台支持的虚拟硬件设备(即在虚拟设备驱动程序库里已经提供了这些设备的驱动程序),以及已经真实存在的机器人硬件设备,硬件设备管理模块以硬件设备列表(包括虚拟硬件设备列表和真实教育娱乐机器人硬件设备列表)的形式提供这些设备的简单信息,包括硬件设备的名称和硬件设备的属性等信息,供第三方用户在进行教育娱乐机器人应用软件研制时选择相应的设备。另一方面,硬件设备管理模块还向平台管理人员提供真实硬件设备和虚拟硬件设备的驱动程序添加接口,通过真实硬件设备驱动程序的添加接口,平台管理人员可将真实硬件设备的驱动程序植入教育娱乐机器人操作系统;而通过虚拟硬件设备的驱动程序添加接口,平台管理人员可方便的向虚拟硬件设备驱动程序库里添加新的虚拟硬件设备驱动程序。
(5)编辑模块:用于为远程登录的第三方用户提供可视化的配置文件编辑环境和教育娱乐机器人应用软件的编辑环境,基于第三方用户的输入和选择,完成配置文件和应用程序代码的编辑生成。
配置文件分为系统配置文件和仿真配置文件,系统配置文件描述应用软件运行的环境和其涉及的硬件设备信息,仿真配置文件描述应用软件运行的仿真环境设置信息;编辑模块中的配置文件编辑环境提供了对上述两种配置文件的编辑支持,具体而言,通过连接硬件设备管理模块,让第三方用户从虚拟硬件设备列表或真实机器人硬件设备列表里选择所需硬件设备,并根据第三方用户的选择生成符合Player规范的系统配置文件;与此同时,配置文件编辑环境也提供了常用的仿真环境模板,供第三方用户选择,对于个性化的仿真任务,第三方用户可通过修改平台提供的仿真环境模板、或者根据平台提供的生成向导逐步建立自己的仿真环境,进而生成符合Player规范的仿真配置文件;
教育娱乐机器人应用软件编辑环境支持文本和图形两种编辑模式;文本编辑模式提供对齐、语法高亮、删除、复制和粘贴等功能,文本编辑模式下,通过连接API管理模块,向第三方用户提供API的分类树状显示,即显示各个类别的名称,各个类别下包含的API信息,具体包括API的名称、参数名称、API功能描述和参数描述等信息;第三方用户在文本编辑模式下基于Player规范搭建程序框架,并根据应用需求,点击选择所需的API,将其加入到程序代码中适合的位置,完成应用程序代码的编写;图形编辑模式为第三方用户提供更为简便的编程模式,以图形块来代表API和相关的逻辑控制函数,分类显示各个类别有关的API图形块和逻辑控制图形块,提供图形块所代表的API及逻辑控制函数的功能描述、参数描述信息,并能提示第三方用户设置具体参数值,第三方用户通过选择并组合图形块可以快速指定教育娱乐机器人的动作流程,编辑模块根据第三方用户指定的教育娱乐机器人的动作流程生成对应的应用程序代码。
(6)编译模块,含有多种语言的编译器,用于完成对应用程序代码的编译:根据应用程序代码编辑时所用的语言,编译模块指定对应的编译器,编译生成可执行的应用程序。
(7)执行模块,用于执行应用程序,以验证应用程序逻辑正确性;执行模块分为在线动画仿真模块和远程视频演示模块;执行模块首先解析系统配置文件获知执行环境是真实环境还是仿真环境;若应用程序执行环境为仿真环境,在线动画仿真模块会根据系统配置文件中的硬件设备描述,从虚拟硬件设备驱动程序库中选择加载对应的虚拟硬件设备驱动程序,完成应用程序和虚拟硬件设备驱动程序的联合执行,并根据仿真配置文件在线生成仿真环境,基于应用程序中的控制逻辑,在仿真环境中直观地绘制出教育娱乐机器人发出的动作,第三方用户可通过浏览器直接查看仿真结果;若应用程序执行环境为真实环境,远程视频演示模块会与机器人实体建立连接,并根据系统配置文件中的硬件设备描述,控制教育娱乐机器人加载相应的硬件设备驱动程序,并执行应用程序以实现对教育娱乐机器人的控制,教育娱乐机器人的动作会被部署在实际环境中的摄像头捕获,通过网络传输视频数据到教育娱乐机器人应用软件研制平台,第三方用户可通过浏览器查看视频结果。
3、本发明通用的教育娱乐机器人应用软件研制平台的工作流程
(1)本发明通用的教育娱乐机器人应用软件研制平台向第三方用户提供了丰富的API,具体提供方法为:针对该平台支持的硬件设备,基于Player规范,预先编制细粒度的API,在此基础上,针对各类教育娱乐机器人常见的应用功能或算法,通过对细粒度API进行组合及封装,编制粗粒度的API,并将所有API加入API库。API为用户提供了统一的调用接口,屏蔽了底层硬件平台的差异性,例如针对不同的教育娱乐机器人,应用软件在控制机器人完成物体抓取时都是调用Grab,因此具有较好的模块可重用性。在此基础上,当执行端为不同的机器人时,应用软件可以不修改或细微修改,因此具有较好的移植性和通用性。并且第三方用户可根据应用需求,自由选择和组合所需的API来编制应用软件,实现了应用软件可配置性,降低了开发难度,加快了开发速度。
(2)本发明通用的教育娱乐机器人应用软件研制平台同时也提供了典型的教育娱乐机器人硬件设备的驱动程序,实现了对硬件设备的虚拟化,提供了对多种教育娱乐机器人硬件设备的支持。具体提供方法为:对于真实环境中的教育娱乐机器人硬件设备,预先编制符合Player规范的硬件设备驱动程序,通过硬件设备管理模块提供的真实硬件设备驱动程序添加接口,将驱动程序植入对应的机器人操作系统。而对于虚拟硬件设备,则选取各类教育娱乐机器人典型的硬件设备作为虚拟对象,预先编制符合Player规范的硬件设备驱动程序,通过硬件设备管理模块提供的虚拟硬件设备驱动程序添加接口,将驱动程序加入虚拟硬件设备驱动程序库,供应用软件执行时加载调用。由于当新的硬件设备(包括真实设备和虚拟设备)添加后,通过上述方法可实现通用的教育娱乐机器人应用软件研制平台对新设备的支持,因此该平台在对多种硬件设备的支持方面具有良好的可扩展性。
(3)本发明通用的机器人应用软件研制平台支持第三方用户在线完成教育娱乐机器人应用软件的研制和执行,第三方用户通过远程登录服务器,可以在线完成教育娱乐机器人应用软件的可视化编辑、编译、执行,并获得可视化的执行结果。图5所示为一种典型情况下以第三方用户视角描述的通用的教育娱乐机器人应用软件研制平台的工作流程。
步骤1:第三方用户登录通用的教育娱乐机器人应用软件研制平台。
步骤2:第三方用户在编辑模块提供的配置文件编辑环境下完成配置文件的生成。
第三方用户根据应用需求,从虚拟硬件设备列表或真实机器人硬件设备列表里选择所需硬件设备,若用户选择软件运行环境为仿真环境,则进一步选择仿真模板,设置仿真环境,编辑模块根据第三方用户的选择和设置而生成符合Player规范的系统配置文件和仿真配置文件。
步骤3:第三方用户在编辑模块提供的软件编辑环境下完成应用程序代码生成。
编辑模块通过连接API管理模块,分类显示API及其对应的图形块。若用户基于文本模式编辑,则点击选择平台所提供的API,加上自己的逻辑控制,完成应用程序代码编写。若用户基于图形模式编辑,则选择并组合平台已经封装好的代表API和逻辑控制函数的图形块,快速指定机器人的动作流程,编辑模块将根据用户指定的机器人动作流程生成对应的应用程序代码。
步骤4:第三方用户调用编译模块对应用程序代码进行编译。编译出错将反馈错误信息并且系统退出,编译正确得到可执行的应用程序,并将执行步骤5。
步骤5:第三方用户调用执行模块完成应用程序的执行。
执行模块首先解析系统配置文件获知执行环境是真实环境还是仿真环境;
若是仿真环境,在线动画仿真模块会根据系统配置文件中的硬件设备描述,加载相应的设备驱动程序,完成应用程序和驱动程序的联合执行,并解析仿真配置文件,在线建立仿真环境,根据用户程序中的控制逻辑,在仿真环境中直观地绘制出机器人的动作,发送动画仿真结果到第三方用户浏览器;
若是真实环境,远程视频演示模块会与机器人实体建立连接,并根据系统配置文件中的硬件设备描述,控制机器人加载相应的设备驱动程序,执行应用程序,实现对机器人的控制,机器人的动作会被部署在实际环境中的摄像头捕获,通过网络传输视频数据到机器人应用软件研制平台,进而将视频发送给第三方用户查看。
实例
以下是第三方用户基于本发明通用的教育娱乐机器人应用软件研制平台,完成应用软件研制的一个实例。
巡游小车是一种常见的教育娱乐机器人,常被用来作教学演示,设第三方用户拟编制一个简单的小车巡游软件,小车在巡游过程中检测到碰撞发生时具有及时避让的功能。为了更加全面的描述教育娱乐机器人应用软件研制平台的工作原理,以下将分两种方式阐述第三方用户基于该平台完成小车巡游软件研制的过程,一种方式是第三方用户基于文本编辑模式生成应用程序代码,并让小车巡游软件在仿真环境下执行;另外一种方式是第三方用户基于图形编辑模式指定小车动作,并让小车巡游软件在真实环境下执行。
方式一小车巡游软件在仿真环境下执行。
1、第三方用户登录通用的教育娱乐机器人应用软件研制平台。
2、第三方用户在编辑模块提供的配置文件编辑环境下完成小车巡游软件的系统配置文件和仿真配置文件的生成。具体为:
(1)第三方用户根据硬件设备管理模块提供的虚拟硬件设备列表(如表1)对平台支持的虚拟硬件设备信息描述,选择仿真器、舵机和碰撞传感器为所需硬件设备。
表1
基于第三方用户的选择,编辑模块生成符合Player规范的系统配置文件ranger_s.cfg,该文件描述了驱动程序的名称为simulator,驱动程序的位置为simulatorplugin,需要调用的机器人硬件设备有仿真器simulation、舵机position2d和碰撞传感器crashsensor,需要加载的仿真配置文件名称为ranger_s.world。
●ranger_s.cfg
driver
(
name"simulator"#驱动程序的名称
plugin"simulatorplugin"#驱动程序的位置
#需要调用的硬件设备
provides["simulation:0”“position2d:0”“crashsensor:0”]
#仿真配置文件名称
worldfile"ranger_s.world"
)
(2)用户设置仿真场景窗体大小,并选择仿真模板cave.png,基于用户的设置和选择,编辑模块生成符合Player规范的仿真配置文件ranger_s.world。该文件描述了仿真场景窗体的大小和仿真场景模板的存储位置等信息。
●ranger_s.world
#配置场景窗体大小
Window
(
size[700.000700.000]#窗口大小(700*700像素)
scale41#每米所需像素点数
)
#仿真场景位图模板
floorplan
(
bitmap"bitmaps/cave.png"#位图位置,cave.png为平台提供的仿真场景模板
size[1515]#位图的大小
)
3、第三方用户在编辑模块的文本编辑模式下,通过点击选择通用的教育娱乐机器人应用软件研制平台所提供的运动控制和碰撞检测API,如pos2dServoModeMoto、pos2dForward、pos2dBackward、pos2dTurnLeft、pos2dTurnRight和crashsensor_get等,并加上自己的控制逻辑,编辑生成符合Player规范的程序代码。本例主程序代码如下(所用程序设计语言为C++):intmain(intargc,char*argv[])
{
usingnamespacePlayerCc;
//开始初始化
PlayerClientrobot(“localhost”,6665);
OpaqueProxyopaquep(&robot,0);
CYZXIntercyzxic(&robot,&opaquep);
cyzxic.pos2dServoModeMoto();//设置小车舵机模式
intspeed;
std::cout<<"inputspeed:"<<std::endl;
std::cin>>speed;//设置速度
cyzxic.pos2dForward(speed);//小车前进
while(1)
{
//前方碰撞传感器发生碰撞
if(cyzxic.crashsensor_get(1)==0&&cyzxic.crashsensor_get(2)==0)
{
cyzxic.pos2dBackward(speed-100);//小车先后退
sleep(1);
cyzxic.pos2dTurnRight(speed-100);//然后右转
sleep(2);
cyzxic.pos2dForward(speed);//继续前进
}
//左前方碰撞传感器发生碰撞
elseif(cyzxic.crashsensor_get(1)==0&&cyzxic.crashsensor_get(2)==1)
{
cyzxic.pos2dTurnRight(speed-100);//小车先右转
sleep(2);
cyzxic.pos2dForward(speed);//然后继续前进
}
//右前方碰撞传感器发生碰撞
elseif(cyzxic.crashsensor_get(1)==1&&cyzxic.crashsensor_get(2)==0)
{
cyzxic.pos2dTurnLeft(speed-100);//小车先左转
sleep(2);
cyzxic.pos2dForward(speed);//然后继续前进
}
//后面的碰撞传感器发生碰撞
elseif(cyzxic.crashsensor_get(3)==0||cyzxic.crashsensor_get(4)==0)
cyzxic.pos2dForward(speed);//小车前进
}//endwhile
return0;
}
4、第三方用户调用编译模块对程序代码进行编译。以通用的教育娱乐机器人应用软件研制平台运行于Linux为例,因上述程序代码编写所用语言为C++,编译模块会自动选择对应的编译器GCC来完成编译,编译正确得到可执行的应用程序,出错则反馈错误信息。
5、第三方用户调用执行模块完成应用程序的执行。执行模块首先解析系统配置文件ranger_s.cfg,得知软件执行环境为仿真环境,然后,在线动画仿真模块通过解析系统配置文件获知需要调用的虚拟硬件设备有仿真器、舵机和碰撞传感器,进而加载仿真器、舵机和碰撞传感器的驱动程序,完成应用程序和驱动程序的联合执行;与此同时,在线动画仿真模块解析仿真配置文件ranger_r.world,在线建立仿真环境,并根据应用程序中的控制逻辑,在仿真环境中直观地绘制出小车的动作,发送动画仿真结果到第三方用户的浏览器。图6是本例的仿真结果动画截图,坐标0附近的小方块为小车,黑色块体为仿真模板cave.png中设置的障碍物,动画界面右侧显示程序执行的相关信息。
方式二用小车巡游软件在真实环境下执行。
1、第三方用户登录机器人应用软件研制平台。
2、第三方用户在编辑模块提供的配置文件编辑环境下完成小车巡游软件的系统配置文件的生成。具体为:第三方用户从硬件设备管理模块提供的“博创”小车硬件设备列表里选择所需设备为舵机和碰撞传感器,如表2所示。
表2
基于用户的选择,编辑模块生成符合Player规范的系统配置文件ranger_r.cfg,该文件描述了驱动程序的名称以及位置都为bochuangdriver,需要调用的机器人硬件设备为舵机position2d和碰撞传感器crashensor。
●ranger_r.cfg
driver
(
name"bochuangdriver"#驱动程序的名称
plugin"bochuangdriver"#驱动程序的位置
provides[“position2d:0”“crashensor:0”]#需要调用的硬件设备
)
3、第三方用户在编辑模块的图形编辑模式下,快速指定小车的动作流程。即根据小车巡游软件的功能需求,选择代表运动控制、碰撞检测以及逻辑控制功能的图形块,对于需要输入参数的图形块,编辑模块会提示用户输入相关参数值,例如:第三方用户选择“前进”图形块时,编辑模块会弹出对话框提示用户输入前进的速度;第三方用户选择“while”图形块时,编辑模块会弹出对话框提示提示第三方用户选择循环条件为无限循环还是自设值。第三方用户在系统提示下输入相关参数,并通过组合和连接所需图形块,快速指定小车的动作流程,如图7所示。编辑模块根据用户指定的小车动作流程而生成程序代码,程序代码与方式一中步骤3提供的代码相同。
4、第三方用户调用编译模块对程序代码进行编译。以通用的教育娱乐机器人应用软件研制平台运行于Linux为例,当编辑模块根据小车动作流程生成的程序代码语言为C++时,编译模块会自动选择对应的编译器GCC来完成编译,编译正确得到可执行程序,出错则反馈错误信息。
5、第三方用户调用执行模块完成应用程序的执行。执行模块首先解析小车巡游软件的系统配置文件ranger_r.cfg,得知执行环境为真实环境;接下来,远程视频执行模块建立和小车的连接,通过解析系统配置文件获知相关的硬件设备有舵机和碰撞传感器,进而控制小车加载舵机和碰撞传感器的驱动程序;然后,远程视频执行模块执行应用程序,通过网络通信完成对小车的控制,小车的动作会被部署在实际环境中的摄像头捕获,通过网络传输视频数据到通用的教育娱乐机器人应用软件研制平台,进而将视频发送到用户浏览器供第三方用户查看。图8是本例的执行结果视频截图,视频右边为程序信息。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种通用的教育娱乐机器人应用软件研制平台,其特征在于,包括:
API库,其含有控制教育娱乐机器人常见硬件设备的API(ApplicationProgrammingInterface,即应用程序接口)以及与教育娱乐机器人常见应用功能和算法对应的API,用于供第三方用户根据应用需求自由选择和组合所需API以完成应用软件编制,这些API向第三方用户提供了通用的调用接口,以屏蔽教育娱乐机器人底层硬件的差异性;
API管理模块,用于根据API的功能,基于树状结构对API库里的API进行分类组织管理,并提供给平台管理人员添加API的接口;
虚拟硬件设备驱动程序库,用于存储教育娱乐机器人的典型虚拟硬件设备的驱动程序;选取典型的教育娱乐机器人硬件设备作为虚拟对象,遵循Player规范预先编制相应硬件设备的驱动程序,完成后,通过硬件设备管理模块提供的虚拟硬件设备驱动程序添加接口,将其加入虚拟硬件设备驱动程序库,该硬件设备的简单信息也将被硬件设备管理模块所记录;
硬件设备管理模块,用于对平台支持的教育娱乐机器人硬件设备进行管理:一方面,对于平台支持的虚拟硬件设备以及已经真实存在的机器人硬件设备,硬件设备管理模块以硬件设备列表的形式提供这些硬件设备的简单信息,包括硬件设备的名称和硬件设备的属性信息,供第三方用户在进行教育娱乐机器人应用软件研制时选择相应的硬件设备;另一方面,硬件设备管理模块还向平台管理人员提供真实硬件设备和虚拟硬件设备的驱动程序添加接口,通过真实硬件设备驱动程序的添加接口,平台管理人员可将真实存在的教育娱乐机器人硬件设备的驱动程序植入相应的教育娱乐机器人操作系统;而通过虚拟硬件设备驱动程序添加接口,平台管理人员可方便地向虚拟硬件设备驱动程序库里添加新的虚拟硬件设备驱动程序;
编辑模块,用于为远程登录的第三方用户提供可视化的配置文件编辑环境和教育娱乐机器人应用软件的编辑环境,基于第三方用户的输入和选择,完成配置文件和应用程序代码的编辑生成;
配置文件分为系统配置文件和仿真配置文件,系统配置文件描述应用软件运行的环境和其涉及的硬件设备信息,仿真配置文件描述应用软件运行的仿真环境设置信息;编辑模块中的配置文件编辑环境提供了对上述两种配置文件的编辑支持,具体而言,通过连接硬件设备管理模块,让第三方用户从虚拟硬件设备列表或真实机器人硬件设备列表里选择所需硬件设备,并根据第三方用户的选择生成符合Player规范的系统配置文件;与此同时,配置文件编辑环境也提供了常用的仿真环境模板,供第三方用户选择,对于个性化的仿真任务,第三方用户可通过修改平台提供的仿真环境模板、或者根据平台提供的生成向导逐步建立自己的仿真环境,进而生成符合Player规范的仿真配置文件;
教育娱乐机器人应用软件编辑环境支持文本和图形两种编辑模式;文本编辑模式提供对齐、语法高亮、删除、复制和粘贴功能,文本编辑模式下,通过连接API管理模块,向第三方用户提供API的分类树状显示,即显示各个类别的名称,各个类别下包含的API信息,具体包括API的名称、参数名称、API功能描述和参数描述信息;第三方用户在文本编辑模式下基于Player规范搭建程序框架,并根据应用需求,点击选择所需的API,将其加入到程序代码中适合的位置,完成应用程序代码的编写;图形编辑模式为第三方用户提供更为简便的编程模式,以图形块来代表API和相关的逻辑控制函数,分类显示各个类别有关的API图形块和逻辑控制图形块,提供图形块所代表的API及逻辑控制函数的功能描述、参数描述信息,并能提示第三方用户设置具体参数值,第三方用户通过选择并组合图形块可以快速指定教育娱乐机器人的动作流程,编辑模块根据第三方用户指定的教育娱乐机器人的动作流程生成对应应用程序代码;
编译模块,含有多种语言的编译器,用于完成对应用程序代码的编译:根据应用程序代码编辑时所用的语言,编译模块指定对应的编译器,编译生成可执行的应用程序;
执行模块,用于执行应用程序,以验证应用程序逻辑正确性;执行模块分为在线动画仿真模块和远程视频演示模块;执行模块首先解析系统配置文件获知执行环境是真实环境还是仿真环境;若应用程序执行环境为仿真环境,在线动画仿真模块会根据系统配置文件中的硬件设备描述,从虚拟硬件设备驱动程序库中选择加载对应的虚拟硬件设备驱动程序,完成应用程序和虚拟硬件设备驱动程序的联合执行,并根据仿真配置文件在线生成仿真环境,基于应用程序中的控制逻辑,在仿真环境中直观地绘制出教育娱乐机器人发出的动作,第三方用户可通过浏览器直接查看仿真结果;若应用程序执行环境若为真实环境,远程视频演示模块会与教育娱乐机器人实体建立连接,并根据系统配置文件中的硬件设备描述,控制机器人加载相应的硬件设备驱动程序,并执行应用程序以实现对机器人的控制,机器人的动作会被部署在实际环境中的摄像头捕获,通过网络传输视频数据到教育娱乐机器人应用软件研制平台,第三方用户可通过浏览器查看视频结果。
2.根据权利要求1所述的应用软件研制平台,其特征在于,所述的API库中,API有两种类型:一类是细粒度的元接口,这类API每个只涉及一个指定的硬件单元,第三方用户通过对这类API的调用,实现对指定硬件单元的控制;另一类API是粗粒度的组合操作,即通过对细粒度的基本操作(即元接口)进行组合并封装,实现教育娱乐机器人常见的应用功能或算法,涉及多个硬件的协作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310500856.0A CN103513992B (zh) | 2013-10-23 | 2013-10-23 | 一种通用的教育娱乐机器人应用软件研制平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310500856.0A CN103513992B (zh) | 2013-10-23 | 2013-10-23 | 一种通用的教育娱乐机器人应用软件研制平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103513992A CN103513992A (zh) | 2014-01-15 |
CN103513992B true CN103513992B (zh) | 2016-04-20 |
Family
ID=49896776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310500856.0A Expired - Fee Related CN103513992B (zh) | 2013-10-23 | 2013-10-23 | 一种通用的教育娱乐机器人应用软件研制平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103513992B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378055B1 (en) | 2012-08-22 | 2016-06-28 | Societal Innovations Ipco Limited | Configurable platform architecture and method for use thereof |
US9891893B2 (en) | 2014-05-21 | 2018-02-13 | N.Io Innovation, Llc | System and method for a development environment for building services for a platform instance |
AU2015263042B2 (en) | 2014-05-21 | 2018-08-09 | N.Io Innovation, Llc | System and method for fully configurable real time processing |
CN104007974B (zh) * | 2014-05-30 | 2017-02-15 | 电子科技大学 | 一种机器人应用在线仿真和远程验证的系统与方法 |
US9370862B2 (en) * | 2014-06-12 | 2016-06-21 | Play-i, Inc. | System and method for reinforcing programming education through robotic feedback |
CN104239032B (zh) * | 2014-07-28 | 2017-07-18 | 北京矩道优达网络科技有限公司 | 用于编程教学的基于用户行为分析的信息交互方法与系统 |
CN105589616A (zh) * | 2014-10-21 | 2016-05-18 | 中兴通讯股份有限公司 | 一种在终端上组合多种应用操作的方法、装置及终端 |
CN104407909A (zh) * | 2014-11-28 | 2015-03-11 | 杭州亿脑智能科技有限公司 | 一种快速搭建电子产品的平台装置 |
CN104575141A (zh) * | 2015-01-20 | 2015-04-29 | 三峡大学 | 人机互动课堂辅助教学仪 |
WO2016151398A1 (en) | 2015-03-23 | 2016-09-29 | Societal Innovations Ipco Limited | System and method for configuring a platform instance at runtime |
CN105912701A (zh) * | 2016-04-26 | 2016-08-31 | 南京玛锶腾智能科技有限公司 | 一种用于智能机器人的文件处理方法 |
CN106126296A (zh) * | 2016-06-28 | 2016-11-16 | 安徽科成信息科技有限公司 | 一种班班通后台更新系统 |
CN106169191A (zh) * | 2016-06-28 | 2016-11-30 | 安徽科成信息科技有限公司 | 一种用于班班通的flash制作方法 |
CN106201582A (zh) * | 2016-06-28 | 2016-12-07 | 安徽科成信息科技有限公司 | 一种数据后台更新系统 |
CN106453228B (zh) * | 2016-08-02 | 2019-12-24 | 北京光年无限科技有限公司 | 一种用于智能机器人的用户登录方法以及系统 |
CN107888631A (zh) * | 2016-09-28 | 2018-04-06 | 北京京东尚科信息技术有限公司 | 一种可配置组合的接口调用方法和装置 |
CN108510413A (zh) * | 2017-02-28 | 2018-09-07 | 北京新唐思创教育科技有限公司 | 一种开放在线教学互动课件方法及其装置 |
CN107015490B (zh) * | 2017-02-28 | 2019-03-26 | 北京光年无限科技有限公司 | 一种智能机器人及智能机器人操作系统 |
CN106842988A (zh) * | 2017-03-02 | 2017-06-13 | 深圳市尧天科技有限公司 | 一种教学图形编程系统和方法 |
CN107122184A (zh) * | 2017-04-21 | 2017-09-01 | 杭州万维镜像科技有限公司 | 一种虚拟现实软件开放式开发系统及方法 |
CN107765571B (zh) * | 2017-06-28 | 2019-11-08 | 北京光年无限科技有限公司 | 智能机器人开发框架的数据处理方法及开发框架 |
CN107471213B (zh) * | 2017-08-03 | 2020-06-19 | 大陆智源科技(北京)有限公司 | 一种机器人模拟系统 |
CN109783153A (zh) * | 2017-11-13 | 2019-05-21 | 深圳市创客工场科技有限公司 | 物理硬件控制方法、装置、电子设备及存储介质 |
CN108228369B (zh) * | 2018-01-19 | 2020-08-07 | 北京邮电大学 | 基于json树的可视化api组合系统及方法 |
CN108845879A (zh) * | 2018-05-21 | 2018-11-20 | 塔米智能科技(北京)有限公司 | 一种机器人资源调用方法、装置、服务器和存储介质 |
WO2020220184A1 (zh) * | 2019-04-29 | 2020-11-05 | 深圳市大疆创新科技有限公司 | 可视化编程控制装置、可编程控制的设备及其控制方法、计算机可读存储介质以及编程控制系统 |
CN110795085A (zh) * | 2019-10-18 | 2020-02-14 | 北京网聘咨询有限公司 | 移动应用可视化编辑方法及工具 |
CN111638879B (zh) * | 2020-05-15 | 2023-10-31 | 民生科技有限责任公司 | 克服像素点定位限制的系统、方法、装置及可读存储介质 |
CN112150874A (zh) * | 2020-07-09 | 2020-12-29 | 石松 | 一种开放式机器人拟真开发平台 |
CN113204381A (zh) * | 2021-05-11 | 2021-08-03 | 深圳市星火数控技术有限公司 | 指令文件生成方法、装置、机器设备和存储介质 |
CN113626003A (zh) * | 2021-08-16 | 2021-11-09 | 杭州群核信息技术有限公司 | 云端机器人解决方案系统 |
CN114355930B (zh) * | 2021-12-29 | 2024-07-05 | 杭州海康机器人股份有限公司 | 仿真测试移动机器人的装置 |
CN116938601B (zh) * | 2023-09-15 | 2023-11-24 | 湖南视觉伟业智能科技有限公司 | 一种用于实名制鉴权设备的分工鉴权方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1632849A1 (fr) * | 2004-09-07 | 2006-03-08 | Nagracard S.A. | système de développement d'une application embarquée dans un module |
CN1909705A (zh) * | 2005-08-05 | 2007-02-07 | 杭州波导软件有限公司 | 一种基于移动终端平台的通用开发平台 |
CN102662648A (zh) * | 2012-03-05 | 2012-09-12 | 广东天波信息技术股份有限公司 | 一种通讯终端的嵌入式软件开发仿真平台及其应用 |
-
2013
- 2013-10-23 CN CN201310500856.0A patent/CN103513992B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1632849A1 (fr) * | 2004-09-07 | 2006-03-08 | Nagracard S.A. | système de développement d'une application embarquée dans un module |
CN1909705A (zh) * | 2005-08-05 | 2007-02-07 | 杭州波导软件有限公司 | 一种基于移动终端平台的通用开发平台 |
CN102662648A (zh) * | 2012-03-05 | 2012-09-12 | 广东天波信息技术股份有限公司 | 一种通讯终端的嵌入式软件开发仿真平台及其应用 |
Also Published As
Publication number | Publication date |
---|---|
CN103513992A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103513992B (zh) | 一种通用的教育娱乐机器人应用软件研制平台 | |
Joseph et al. | Mastering ROS for Robotics Programming: Design, build, and simulate complex robots using the Robot Operating System | |
Newman | A systematic approach to learning robot programming with ROS | |
US20220156433A1 (en) | Industrial network communication emulation | |
Stork et al. | Enabling virtual assembly training in and beyond the automotive industry | |
CN109605366A (zh) | 机器人图形化编程交互系统及机器人 | |
US20130275091A1 (en) | Non-programmer method for creating simulation-enabled 3d robotic models for immediate robotic simulation, without programming intervention | |
CN104484518A (zh) | 一种需求模型到仿真模型的模型转换方法 | |
Dörner et al. | Content creation and authoring challenges for virtual environments: from user interfaces to autonomous virtual characters | |
Akiki et al. | EUD-MARS: end-user development of model-driven adaptive robotics software systems | |
Pasternak et al. | Simgen: A tool for generating simulations and visualizations of embedded systems on the unity game engine | |
CN111399829A (zh) | 一种基于模型驱动的波形建模方法及终端 | |
Börsting et al. | Software engineering for augmented reality-a research agenda | |
CN102830978A (zh) | 一种可视化3d编程系统及应用 | |
CN202771416U (zh) | 一种可视化3d编程装置 | |
Harbert et al. | A graphical specification system for user-interface design | |
Stampfer et al. | Dynamic state charts: composition and coordination of complex robot behavior and reuse of action plots | |
Spanoudakis et al. | The agent systems methodology (aseme): A preliminary report | |
Li et al. | An effective construction method of modular manipulator 3D virtual simulation platform | |
Indri et al. | P&P-Standard architecture to enable fast software prototyping for robot arms | |
Cao et al. | HSTPNSim: An educational simulator for multi‐disciplinary modeling for hybrid system | |
Courbis et al. | A model driven architecture framework for robot design and automatic code generation | |
Bingul et al. | Windows-based robot simulation tools | |
Topalidou-Kyniazopoulou | A case (computer-aided software engineering) tool for robot-team behavior-control development | |
Kłodkowski et al. | Simulating human motion using Motion Model Units–example implementation and usage |
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: 20160420 Termination date: 20191023 |