CN107765612A - 一种机器人的运动控制方法、机器人及系统 - Google Patents

一种机器人的运动控制方法、机器人及系统 Download PDF

Info

Publication number
CN107765612A
CN107765612A CN201711281609.0A CN201711281609A CN107765612A CN 107765612 A CN107765612 A CN 107765612A CN 201711281609 A CN201711281609 A CN 201711281609A CN 107765612 A CN107765612 A CN 107765612A
Authority
CN
China
Prior art keywords
robot
script
media resource
file
motion
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
Application number
CN201711281609.0A
Other languages
English (en)
Other versions
CN107765612B (zh
Inventor
李亮
潘晓明
汤正
王俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avatar Hunan Technology Co ltd
Original Assignee
Nanjing Sincere Robot Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Sincere Robot Technology Co Ltd filed Critical Nanjing Sincere Robot Technology Co Ltd
Priority to CN201711281609.0A priority Critical patent/CN107765612B/zh
Publication of CN107765612A publication Critical patent/CN107765612A/zh
Application granted granted Critical
Publication of CN107765612B publication Critical patent/CN107765612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview

Abstract

本发明提供了一种机器人的运动控制方法、机器人及系统,包括:步骤S200机器人接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;步骤S300所述机器人对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;步骤S400所述机器人根据各所述程序指令,执行相应的动作。本发明可以为各种机器人的操作控制提供一致化的通信接口和统一的编程语言,具有通用性和灵活性。

Description

一种机器人的运动控制方法、机器人及系统
技术领域
本发明涉及机器人的控制领域,尤指一种机器人的运动控制方法、机器人及系统。
背景技术
随着科学技术的发展,智能机器人也得到广泛发展。作为影响人机交互和机器人智能化的重要因素,机器人编程语言的重要性已经日益凸显出来,机器人编程语言通过符号描述机器人的动作,使机器人通过获取外部环境的状态,思考需要执行的动作,并按照编程者的意图完成各种复杂的动作和操作。
现有各个厂商的机器人形态不一,厂商之间都通过自己的私有协议、私有语言来控制各自的机器人,对外缺少一致化的通信接口和统一的编程语言。
发明内容
本发明的目的是提供一种机器人的运动控制方法、机器人及系统,通过采用机器人脚本来描述机器人动作,在执行该脚本时,对其中的机器人动作调用运动控制配置文件中对应的应用程序接口,从而控制机器人的动作;这为各种机器人的操作控制提供了一致化的通信接口和统一的编程语言,具有通用性和灵活性。
本发明提供的技术方案如下:
一种机器人的运动控制方法,包括:步骤S200机器人接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;步骤S300所述机器人对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;步骤S400所述机器人根据各所述程序指令,执行相应的动作。
在上述技术方案中,通过采用机器人脚本来描述机器人动作,在解析该脚本时,对其中的机器人专用动作函数调用运动控制配置文件中对应的应用程序接口,生成程序指令,根据所述程序指令控制机器人执行相应的动作;本方法屏蔽了机器人的底层协议差异,为各种机器人的操作控制提供了一致化的通信接口和统一的编程语言,具有通用性,灵活性。
进一步地,所述步骤S300包括:步骤S310所述机器人对所述机器人脚本进行解析,得到机器人专用动作函数;步骤S320所述机器人根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令。
在上述技术方案中,通过从运动控制配置文件中获取机器人专用动作函数对应的机器人的应用程序接口,得到包含对应操作的程序指令,从而屏蔽了机器人的底层协议差异。
进一步地,所述机器人运动控制文件还包括媒体资源信息;所述步骤S400包括:步骤S420判断所述程序指令是否为播放媒体资源语句,若是,则执行步骤S421;步骤S421从所述媒体资源信息中获取并播放所述程序指令中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;步骤S422当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放。
在上述技术方案中,提供了一种播放媒体资源语句的处理,可以让机器人在一边播放背景音乐的同时,一边执行一些运动动作,丰富了机器人的应用。
进一步地,所述步骤S400还包括:步骤S440判断所述程序指令是否为同步执行语句,若是,则执行步骤S441;其中,为所述同步执行语句的所述程序指令是由所述机器人脚本中的机器人专用关键字、所述机器人专用动作函数和所述运动控制配置文件生成;步骤S441同时执行所述同步执行语句中所包含的子语句;步骤S442当所述子语句执行完毕后,则结束所述同步执行语句的执行。
在上述技术方案中,提供了一种同步执行语句的处理,可以让机器人同时执行一些运动动作,比如手臂与腿的同步运动,丰富了机器人的应用。
进一步地,还包括:当执行的所述程序指令或所述子语句中包含媒体资源文件名时,则从所述媒体资源信息中获取对应的所述媒体资源文件,并根据所述媒体资源文件执行所述程序指令或所述子语句对应的操作。
在上述技术方案中,通过从媒体资源信息中获取对应的媒体资源文件,从而实现机器人的背景音乐,或非背景音乐的播放,丰富了机器人的应用。
进一步地,还包括:所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的机器人动作;所述步骤S200之前还包括:步骤S100所述编程器根据所述机器人的能力,得到所述机器人的运动控制配置文件;步骤S110所述编程器根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;步骤S120当位于特定区域中的图形块包含媒体资源文件名时,所述编程器根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;步骤S130所述编程器根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;步骤S140当识别到执行操作时,所述编程器将所述机器人运动控制文件发送给所述机器人。
在上述技术方案中,提供了一种图形化的编程器,使编程更简单、更形象直观;编程者可以把注意力集中在机器人需要完成的动作和操作上,而不必关心具体的机器人脚本语言。
本发明还提供一种机器人,包括:接收模块,用于接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;脚本解析模块,与所述接收模块电连接,用于对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;指令管理模块,与所述脚本解析模块电连接,用于根据各所述程序指令,执行相应的动作。
在上述技术方案中,通过采用机器人脚本来描述机器人动作,在解析该脚本时,对其中的机器人专用动作函数调用运动控制配置文件中对应的应用程序接口,生成程序指令,根据所述程序指令控制机器人执行相应的动作;本方法屏蔽了机器人的底层协议差异,为各种机器人的操作控制提供了一致化的通信接口和统一的编程语言,具有通用性,灵活性。
进一步地,所述脚本解析模块,进一步用于所述机器人对所述机器人脚本进行解析,得到机器人专用动作函数;以及,所述机器人根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令。
在上述技术方案中,通过从运动控制配置文件中获取机器人专用动作函数对应的机器人的应用程序接口,得到包含对应操作的程序指令,从而屏蔽了机器人的底层协议差异。
进一步地,所述指令管理模块,进一步用于判断所述程序指令是否为播放媒体资源语句,若是,则从所述媒体资源信息中获取并播放所述程序指令中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;以及,当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放。
在上述技术方案中,提供了一种播放媒体资源语句的处理,可以让机器人在一边播放媒体资源的同时,一边执行一些运动动作,丰富了机器人的应用。
本发明还提供一种机器人的运动控制系统,包括:前述的机器人;还包括编程器;所述编程器,与所述机器人通信连接;所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的所述机器人动作;所述编程器包括:获取模块,用于根据所述机器人的能力,得到所述机器人的运动控制配置文件;以及,根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;以及,当位于特定区域中的图形块包含媒体资源文件名时,根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;以及,根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;发送模块,与所述获取模块电连接,用于当识别到执行操作时,将所述机器人运动控制文件发送给所述机器人。
在上述技术方案中,提供了一种图形化的编程器,使编程更简单、更形象直观;编程者可以把注意力集中在机器人需要完成的动作和操作上,而不必关心具体的机器人脚本语言。
通过本发明提供的一种机器人的运动控制方法、机器人及系统,能够带来以下至少一种有益效果:
1、本发明可以屏蔽机器人的底层协议差异,为各种机器人的操作控制提供了一致化的通信接口和统一的编程语言,具有通用性,灵活性;
2、本发明提供了一种图形化的编程器,可以使编程更简单、更形象直观,编程者可以把注意力集中在机器人需要完成的动作和操作上,而不必关心具体的机器人脚本语言。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种机器人的运动控制方法、机器人及系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明的一种机器人的运动控制方法的一个实施例的流程图;
图2是本发明的一种机器人的运动控制方法的另一个实施例的流程图;
图3是本发明的一种机器人的运动控制方法的另一个实施例的流程图;
图4是本发明的一种机器人的结构示意图;
图5是本发明的一种机器人的运动控制系统的一个实施例的结构示意图;
图6是本发明的一种机器人的运动控制系统中的编程器的一个图形化脚本的示意图;
图7是本发明的一种机器人的运动控制系统中的编程器的另一个图形化脚本的示意图;
图8是本发明的一种机器人的运动控制系统中的编程器的另一个图形化脚本的示意图;
图9是本发明的一种机器人的运动控制系统中的一种编程器界面的示意图。
附图标号说明:
100.机器人,110.接收模块,120.脚本解析模块,130.指令管理模块,200.编程器,210.获取模块,220.发送模块,10.动作大类,20.动作子类,30.工作区,1.动作起始点,2.第一按钮,3.第二按钮,4.第三按钮,5.第四按钮。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
在本发明的一个实施例中,如图1所示,一种机器人的运动控制方法,包括:
步骤S200机器人接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
步骤S300所述机器人对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;
步骤S400所述机器人根据各所述程序指令,执行相应的动作。
具体的,机器人运动控制文件包括机器人脚本和运动控制配置文件。机器人脚本,是一个脚本文件,包含至少一条脚本,使用脚本语言,比如Java脚本语言,或基于Java脚本语言二次开发的机器人脚本语言,描述机器人所要执行的操作。运动控制配置文件,包含所述机器人支持的动作,及机器人专用动作函数与对应的应用程序接口(Applicationprogramming interface,简称API)的映射。
依次对机器人脚本中的每条脚本进行解析,得到每条脚本所包含的机器人专用动作函数,再根据所述机器人专用动作函数以及所述运动控制配置文件,生成若干条程序指令;一条脚本对应一条程序指令。根据各所述程序指令,机器人执行相应的动作。比如,一个机器人脚本,所包含的脚本分别为点头、右臂转动54度,对机器人脚本进行解析,当解析“点头”时,从运动控制配置文件获取对应的运动API,将“点头”这个动作函数换成调用对应的API,生成“点头”程序指令;当解析“右臂转动54度”时,将“右臂转动54度”这个动作函数换成调用对应的API,生成“右臂转动54度”程序指令;依次执行所述2条程序指令,控制机器人实现点头、右臂转动54度的动作;至此,所有程序指令执行完毕。上述方式中,脚本解析和程序指令执行是两个并行的动作,它们可以通过共享指令队列来操作,脚本解析将每条脚本解析完后得到的程序指令,按序依次放入指令队列中,程序指令执行模块依次从指令队列中取指令进行执行。还有一种方式,脚本解析模块与程序指令执行模块顺序执行,每次解析一条脚本,执行完对应的程序指令后,再去解析下一条脚本,如此循环,直至所有脚本得都得到处理。
在本发明的另一个实施例中,如图2所示,一种机器人的运动控制方法,包括:
步骤S200机器人接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
步骤S310所述机器人对所述机器人脚本进行解析,得到所述机器人专用动作函数;
步骤S320所述机器人根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令;
步骤S410顺序选择一条未被执行过的所述程序指令作为当前执行语句;
步骤S420判断所述当前执行语句是否为播放媒体资源语句,若是,则执行步骤S421;若否,则执行步骤S430;
步骤S421从所述媒体资源信息中获取并播放所述当前执行语句中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;
步骤S422当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放;
步骤S423判断是否还存在未被执行过的所述程序指令,若是,则跳转到步骤S410;若否,则结束;
步骤S430判断所述当前执行语句是否为条件语句,若是,则执行步骤S431;若否,则执行步骤S440;
步骤S431判断是否需要获取机器人的反馈信息,若是,则执行步骤S432,若否,则执行步骤S433;
步骤S432获取所述机器人的反馈信息;
步骤S433进行所述条件语句中的条件判断;
步骤S434根据条件判断结果执行相应的子语句;
步骤S435当所述子语句执行完毕后,跳转到步骤S423;
步骤S440判断所述当前执行语句是否为同步执行语句,若是,则执行步骤S441;若否,则执行步骤S450;
步骤S441同时执行所述同步执行语句中所包含的子语句;
步骤S442当所述子语句执行完毕后,跳转到步骤S423;
步骤S450判断所述当前执行语句是否为子程序,若是,则执行步骤S451;若否,则执行步骤S460;
步骤S451依次执行所述子程序所包含的子语句;
步骤S452当所述子语句执行完毕后,跳转到步骤S423;
步骤S460执行所述当前执行语句,跳转到步骤S423。
当执行的所述当前执行语句或所述子语句中包含媒体资源文件名时,则从所述媒体资源信息中获取对应的所述媒体资源文件,并根据所述媒体资源文件执行所述当前执行语句或所述子语句对应的操作。
具体的,相对前一个实施例,本实施例用步骤S410-S460替代了步骤S400、用步骤S310-S320替代了步骤S300。
本实施例的机器人脚本,是采用自定义、可扩展的机器人脚本语言robotscript开发的。robotscript是基于javascript(Java脚本语言)二次开发的,为机器人增加了一些特殊的关键字和专用动作函数:为了标识机器人舵机之间的同步运动,设计了parallel关键字和sleep函数;为了执行机器人的相应动作设计了call,say,play和music函数;为了获取机器人的感知信息设计了getObstacleInfo,getAsrResult,getFaceInfo函数。具体定义如下:
(1)parallel关键字,后面紧跟{},表示同时执行,{}里的内容是机器人的分解动作列表,列表里的动作同时执行。为同时多个舵机运动而设置的。
例:parallel{call("left_arm_rotate",30);
call("right_arm_rotate","50");}
表示在左臂旋转30度的同时,右臂旋转50度。
(2)sleep函数,sleep(ms),表示等待,等待时间通过参数指示,单位是毫秒。
(3)call函数,包含两种情况,情况1:call(参数1,参数2),第一个参数表示机器人的舵机名,第二个参数表示度数;比如,一个机器人有6个舵机,分别是:left_arm_rotate,right_arm_rotate,left_arm_roll,right_arm_roll,head_nod,head_shake;情况2:call(参数1,null),第一个参数表示机器人的表情或组合动作等,第二个参数为null。比如,一个机器人有4种表情,分别是:angry,sad,smile,laugh;有3套组合动作,分别是:dance,shakehand,sing。
例:call("left_arm_rotate",30);--------表示左臂旋转30度;
call("angry","");--------表示表现生气表情;
call("dance","");--------表示执行跳舞的动作。
(4)say函数,say(text),表示播放文本,text是待播放的文本名。
(5)play函数,play(url),表示播放音效等非背景音乐,url是音效文件名。
(6)music函数,music(url),后面要紧跟{},表示播放背景音乐,{}里的内容是机器人的动作列表,url是背景音乐文件名,表示在执行这些动作时要播放url的音乐,列表里的动作顺序执行。
例:music("apple.mp3"){
call("left_arm_rotate",30);
call("dance","");}
--------表示在播放小苹果音乐时左臂先旋转30度,然后跳舞。
(7)getObstacleInfo函数,getObstacleInfo(condition),检测condition条件下的障碍信息,输入参数是string类型,返回值是bool类型,表示是否有障碍。
(8)getAsrResult函数,getAsrResult(tips,waittime),等待语音识别的结果,输入参数1表示提示语,参数2表示等待的时间,单位是毫秒,输出为string类型的语音识别结果。
(9)getFaceInfo函数,getFaceInfo(tips,type,waittime),等待人脸识别的结果,输入参数1表示提示语,参数2表示人脸识别的类型(性别,年龄,人名等),参数3表示等待的时间,单位是毫秒,输出为检测结果。
以机器人脚本1为例:
机器人脚本1为一条背景音乐脚本,对应的图形方块如图6所示,该脚本要求依次执行挥手、点头、右转头33度、左小臂摆动74度、右小臂摆动59度,在执行这些动作的过程中需要同时播放小苹果的背景音乐。
对这条脚本进行解析,得到播放媒体资源、挥手、点头、右转头33度、左小臂摆动74度、右小臂摆动59度等机器人专用动作函数,根据运动控制配置文件,调用上述机器人专用动作函数对应的应用程序接口,得到对应的子语句,将这些子语句构成了一条程序指令。
将该程序指令作为当前执行语句,判断该当前执行语句为播放媒体资源语句,从当前执行语句中获取媒体资源文件名为“apple.mp3”,从媒体资源信息中获取“apple.mp3”的媒体资源文件,将其作为背景音乐,执行播放动作。媒体资源文件名也可以为由该媒体资源文件内容生成的一个特征值,此时媒体资源信息中保存的是该特征值与该媒体资源文件内容的映射,比如,该特征值可以为“apple.mp3”的媒体资源文件内容所生成的哈希值,媒体资源信息中保存的是该哈希值与“apple.mp3”的媒体资源文件内容的映射。
接着执行“挥手”子语句,该子语句包含“挥手”动作,通过执行“挥手”对应的API,以实现机器人的挥手动作;
接着执行“点头、右转头33度、左小臂摆动74度、右小臂摆动59度”等子语句,方法同上,不再重述。
当所有的子语句都执行完毕后,则结束“apple.mp3”媒体资源文件的播放。由于不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本2为例:
机器人脚本2为一条同时执行脚本,对应的图形方块如图7所示,该脚本要求同时执行点头、左大臂抬起148度、右大臂抬起73度、微笑等动作。
对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断该当前执行语句为同步执行语句。
接着同时执行“点头、左大臂抬起148度、右大臂抬起73度、微笑”等子语句,上述每个子语句都包含了一个机器人动作,都有对应的API,同时执行的含义是将多条API同时分发下去,而不是等待上一个API完成再调用下一个;此处是同时下发“点头、左大臂抬起148度、右大臂抬起73度、微笑”等对应的API。
当所有的子语句都执行完毕后,判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本3为例:
机器人脚本3包括4条脚本,对应的图形方块如图8所示,该机器人脚本依次包括点头、右大臂转动54度、握手、欢呼等脚本。
对该机器人脚本进行解析,依次得到“点头、右大臂转动54度、握手、欢呼”等程序指令。
顺序选择一条未被执行过的所述程序指令,首先选择“点头”程序指令,作为当前执行语句;当前执行语句不是播放媒体资源语句,不是条件语句,不是同步执行语句,不是子程序,仅是一条普通的语句,所以直接执行该语句;当前执行语句包含“点头”动作,通过执行“点头”对应的API,以实现机器人的“点头”动作;
当前执行语句执行完毕后,判断是否还存在未被执行过的所述程序指令,还存在,则取下一条程序指令,即“右大臂转动54度”程序指令,作为当前执行语句;按上述类似方式执行该语句,执行对应的API,以实现机器人的“右大臂转动54度”动作;
如此循环,直至4条程序指令都执行完毕。
以机器人脚本4为例:
机器人脚本4仅包含一条脚本,对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断当前执行语句为条件语句。判断是否需要获取机器人的反馈信息,当不需要时,则进行所述条件语句中的条件判断,当variable1等于true时,执行“点头”子语句;否则,执行“摇头”子语句;当子语句执行完毕后,则判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本5为例:
机器人脚本5仅包含一条脚本,对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断当前执行语句为子程序语句。依次执行所述子程序所包含的子语句;当子程序所包含的子语句执行完毕后,判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
在本发明的另一个实施例中,如图3所示,一种机器人的运动控制方法,除与上述相同的之外,还包括:
所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的机器人动作;
步骤S100所述编程器根据所述机器人的能力,得到所述机器人的运动控制配置文件;
步骤S110所述编程器根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;
步骤S120当位于特定区域中的图形块包含媒体资源文件名时,所述编程器根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;
步骤S130所述编程器根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;
步骤S140当识别到执行操作时,所述编程器将所述机器人运动控制文件发送给所述机器人。
具体的,对机器人脚本的解释执行,同前一实施例,此处不再重述。本实施例主要增加了图形化编程的描述。
如图9所示,用虚线示意,将所述编程器的界面分成三块区域,分别为动作大类、动作子类、工作区。点击每个动作大类,得到对应动作大类的动作子类,每一个动作子类的图形块代表采用机器人脚本语言描述的机器人动作。在工作区的右上角有快捷键,其中第一按钮表示将编辑好的动作序列发给机器人执行,第二按钮表示加载已经编辑好的程序到工作区,第三按钮表示取消机器人当前的动作,第四按钮表示暂停机器人的动作。
编程器根据所述机器人的能力,得到所述机器人的运动控制配置文件。运动控制配置文件反映了机器人支持哪些运动命令,以及每个运动命令所对应的运动API。比如,给机器人A、机器人B编写机器人脚本,机器人A、机器人B的能力不同,机器人A不能执行“欢呼”动作,机器人B可以。首先根据机器人A的能力,得到机器人A的运动控制配置文件;根据机器人B的能力,得到机器人B的运动控制配置文件;给编程器加载机器人A的运动控制配置文件,此时,可以看到编程器界面上的动作子类的“欢呼”动作,是灰色的;灰色的图形块不能拖到工作区,从而避免给机器人A的机器人脚本出现不支持的动作。当要给机器人B编写脚本时,需要先给编程器加载机器人B的运动控制配置文件,此时,可以看到编程器界面上的动作子类的“欢呼”动作不是灰色的,可以拖到工作区。所以在编写机器人脚本时,需要先给编程器加载对应机器人的运动控制配置文件。
以编辑图8所示的机器人脚本为例,选择动作子类的图形块,依次拖动表示机器人动作的图形块到工作区中动作起始点下,当编辑完成后,选择右上角的第一按钮,编程器会根据工作区中动作起始点下的各图形块,得到编辑好的所述机器人脚本;因图8所示的机器人脚本,不包含媒体资源文件,所以媒体资源信息为空文件;编程器根据机器人脚本、运动控制配置文件和媒体资源信息,得到机器人运动控制文件;编程器将机器人运动控制文件发送给所述机器人。
以编辑图6所示的机器人脚本为例,选择“声音”动作大类的背景音乐动作子类的图形块,拖到工作区中,输入参数“小苹果”;再依次找到“挥手、点头、右转头、左小臂摆动、右小臂摆动”动作子类的图形块,拖到背景音乐动作子类的图形块中,针对“右转头、左小臂摆动、右小臂摆动”动作子类的图形块,还要输入相应的参数。当编辑完成后,选择右上角的第一按钮,编程器会根据工作区中动作起始点下的各图形块,得到编辑好的所述机器人脚本;因其中一个图形块还包含媒体资源文件名“小苹果”,所以媒体资源信息不为空,包含了“小苹果”媒体资源文件;编程器将由机器人脚本、运动控制配置文件和媒体资源信息组成的机器人运动控制文件,发送给所述机器人。
在本发明的另一个实施例中,如图4所示,一种机器人100,包括:
接收模块110,用于接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
脚本解析模块120,与所述接收模块110电连接,用于对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;
指令管理模块130,与所述脚本解析模块120电连接,用于根据各所述程序指令,执行相应的动作。
具体的,机器人运动控制文件包括机器人脚本和运动控制配置文件。机器人脚本,是一个脚本文件,包含至少一条脚本,使用脚本语言,比如Java脚本语言,或基于Java脚本语言二次开发的机器人脚本语言,描述机器人所要执行的操作。运动控制配置文件,包含所述机器人支持的动作,及机器人专用动作函数与对应的应用程序接口(Applicationprogramming interface,简称API)的映射。
依次对机器人脚本中的每条脚本进行解析,得到每条脚本所包含的机器人专用动作函数,再根据所述机器人专用动作函数以及所述运动控制配置文件,生成若干条程序指令;一条脚本对应一条程序指令。根据各所述程序指令和所述运动控制配置文件,机器人执行相应的动作。比如,一个机器人脚本,所包含的脚本分别为点头、右臂转动54度,对机器人脚本进行解析,当解析“点头”时,从运动控制配置文件获取对应的运动API,将“点头”这个动作函数换成调用对应的API,生成“点头”程序指令;当解析“右臂转动54度”时,将“右臂转动54度”这个动作函数换成调用对应的API,生成“右臂转动54度”程序指令;依次执行所述2条程序指令,当执行“点头”这个运动命令时,控制机器人实现点头、右臂转动54度的动作;至此,所有程序指令执行完毕。上述方式中,脚本解析和程序指令执行是两个并行的动作,它们可以通过共享指令队列来操作,脚本解析将每条脚本解析完后得到的程序指令,按序依次放入指令队列中,程序指令执行模块依次从指令队列中取指令进行执行。还有一种方式,脚本解析模块与程序指令执行模块顺序执行,每次解析一条脚本,执行完对应的程序指令后,再去解析下一条脚本,如此循环,直至所有脚本得都得到处理。
在本发明的另一个实施例中,如图4所示,一种机器人100,包括:
接收模块110,用于接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
脚本解析模块120,与所述接收模块110电连接,用于对所述机器人脚本进行解析,得到所述机器人专用动作函数;以及,根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令;
指令管理模块130,与所述脚本解析模块120电连接,用于顺序选择一条未被执行过的所述程序指令作为当前执行语句;以及,判断所述当前执行语句是否为播放媒体资源语句,若是,则从所述媒体资源信息中获取并播放所述当前执行语句中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;以及,当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放;以及,判断是否还存在未被执行过的所述程序指令,若是,则再顺序选择一条未被执行过的所述程序指令作为当前执行语句;若否,则结束;
所述指令管理模块130,进一步用于判断所述当前执行语句是否为条件语句,若是,则判断是否需要获取机器人的反馈信息;以及,当需要获取机器人的反馈信息时,则获取所述机器人的反馈信息;以及,进行所述条件语句中的条件判断;以及,根据条件判断结果执行相应的子语句;以及,当所述子语句执行完毕后,判断是否还存在未被执行过的所述程序指令,若是,则再顺序选择一条未被执行过的所述程序指令作为当前执行语句;
所述指令管理模块130,进一步用于判断所述当前执行语句是否为同步执行语句,若是,则同时执行所述同步执行语句中所包含的子语句;以及,当所述子语句执行完毕后,判断是否还存在未被执行过的所述程序指令,若是,则再顺序选择一条未被执行过的所述程序指令作为当前执行语句;
所述指令管理模块130,进一步用于判断所述当前执行语句是否为子程序,若是,则依次执行所述子程序所包含的子语句;当所述子语句执行完毕后,判断是否还存在未被执行过的所述程序指令,若是,则再顺序选择一条未被执行过的所述程序指令作为当前执行语句;
所述指令管理模块130,进一步用于当执行的所述当前执行语句或所述子语句中包含媒体资源文件名时,则从所述媒体资源信息中获取对应的所述媒体资源文件,并根据所述媒体资源文件执行所述当前执行语句或所述子语句对应的操作。
具体的,相对前一实施例,本实施例对指令管理模块、脚本解析模块做了功能增强。
本实施例的机器人脚本,是采用自定义、可扩展的机器人脚本语言robotscript开发的。robotscript是基于javascript(Java脚本语言)二次开发的,为机器人增加了一些特殊的关键字和专用动作函数:为了标识机器人舵机之间的同步运动,设计了parallel关键字和sleep函数;为了执行机器人的相应动作设计了call,say,play和music函数;为了获取机器人的感知信息设计了getObstacleInfo,getAsrResult,getFaceInfo函数。具体定义如下:
(1)parallel关键字,后面紧跟{},表示同时执行,{}里的内容是机器人的分解动作列表,列表里的动作同时执行。为同时多个舵机运动而设置的。
例:parallel{call("left_arm_rotate",30);
call("right_arm_rotate","50");}
表示在左臂旋转30度的同时,右臂旋转50度。
(2)sleep函数,sleep(ms),表示等待,等待时间通过参数指示,单位是毫秒。
(3)call函数,包含两种情况,情况1:call(参数1,参数2),第一个参数表示机器人的舵机名,第二个参数表示度数;比如,一个机器人有6个舵机,分别是:left_arm_rotate,right_arm_rotate,left_arm_roll,right_arm_roll,head_nod,head_shake;情况2:call(参数1,null),第一个参数表示机器人的表情或组合动作等,第二个参数为null。比如,一个机器人有4种表情,分别是:angry,sad,smile,laugh;有3套组合动作,分别是:dance,shakehand,sing。
例:call("left_arm_rotate",30);--------表示左臂旋转30度;
call("angry","");--------表示表现生气表情;
call("dance","");--------表示执行跳舞的动作。
(4)say函数,say(text),表示播放文本,text是待播放的文本名。
(5)play函数,play(url),表示播放音效等非背景音乐,url是音效文件名。
(6)music函数,music(url),后面要紧跟{},表示播放背景音乐,{}里的内容是机器人的动作列表,url是背景音乐文件名,表示在执行这些动作时要播放url的音乐,列表里的动作顺序执行。
例:music("apple.mp3"){
call("left_arm_rotate",30);
call("dance","");}
--------表示在播放小苹果音乐时左臂先旋转30度,然后跳舞。
(7)getObstacleInfo函数,getObstacleInfo(condition),检测condition条件下的障碍信息,输入参数是string类型,返回值是bool类型,表示是否有障碍。
(8)getAsrResult函数,getAsrResult(tips,waittime),等待语音识别的结果,输入参数1表示提示语,参数2表示等待的时间,单位是毫秒,输出为string类型的语音识别结果。
(9)getFaceInfo函数,getFaceInfo(tips,type,waittime),等待人脸识别的结果,输入参数1表示提示语,参数2表示人脸识别的类型(性别,年龄,人名等),参数3表示等待的时间,单位是毫秒,输出为检测结果。
以机器人脚本1为例:
机器人脚本1为一条背景音乐脚本,对应的图形方块如图6所示,该脚本要求依次执行挥手、点头、右转头33度、左小臂摆动74度、右小臂摆动59度,在执行这些动作的过程中需要同时播放小苹果的背景音乐。
对这条脚本进行解析,得到播放媒体资源、挥手、点头、右转头33度、左小臂摆动74度、右小臂摆动59度等机器人专用动作函数,根据运动控制配置文件,调用上述机器人专用动作函数对应的应用程序接口,得到对应的子语句,将这些子语句构成了一条程序指令。
将该程序指令作为当前执行语句,判断该当前执行语句为播放媒体资源语句,从当前执行语句中获取媒体资源文件名为“apple.mp3”,从媒体资源信息中获取“apple.mp3”的媒体资源文件,将其作为背景音乐,执行播放动作。媒体资源文件名也可以为由该媒体资源文件内容生成的一个特征值,此时媒体资源信息中保存的是该特征值与该媒体资源文件内容的映射,比如,该特征值可以为“apple.mp3”的媒体资源文件内容所生成的哈希值,媒体资源信息中保存的是该哈希值与“apple.mp3”的媒体资源文件内容的映射。
接着执行“挥手”子语句,该子语句包含“挥手”动作;通过执行“挥手”对应的API,以实现机器人的挥手动作;
接着执行“点头、右转头33度、左小臂摆动74度、右小臂摆动59度”等子语句,方法同上,不再重述。
当所有的子语句都执行完毕时,则结束“apple.mp3”媒体资源文件的播放。
由于不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本2为例:
机器人脚本2为一条同时执行脚本,对应的图形方块如图7所示,该脚本要求同时执行点头、左大臂抬起148度、右大臂抬起73度、微笑等动作。
对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断该当前执行语句为同步执行语句。
接着同时执行“点头、左大臂抬起148度、右大臂抬起73度、微笑”等子语句,上述每个子语句都包含了一个机器人动作,都有对应的API,同时执行的含义是将多条API同时分发下去,而不是等待上一个API完成再调用下一个;此处是同时下发“点头、左大臂抬起148度、右大臂抬起73度、微笑”等对应的API。
当所有的子语句都执行完毕时,则判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本3为例:
机器人脚本3包括4条脚本,对应的图形方块如图8所示,该机器人脚本依次包括点头、右大臂转动54度、握手、欢呼等脚本。
对该机器人脚本进行解析,依次得到“点头、右大臂转动54度、握手、欢呼”等程序指令。
顺序选择一条未被执行过的所述程序指令,首先选择“点头”程序指令,作为当前执行语句;当前执行语句不是播放媒体资源语句,不是条件语句,不是同步执行语句,不是子程序,仅是一条普通的语句,所以直接执行该语句;当前执行语句包含“点头”动作,通过执行“点头”对应的API,以实现机器人的“点头”动作;
当前执行语句执行完毕后,判断是否还存在未被执行过的所述程序指令,还存在,则取下一条程序指令,即“右大臂转动54度”程序指令,作为当前执行语句;按上述类似方式执行该语句,执行对应的运动API,以实现机器人的“右大臂转动54度”动作;
如此循环,直至4条程序指令都执行完毕。
以机器人脚本4为例:
机器人脚本4仅包含一条脚本,对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断当前执行语句为条件语句。判断是否需要获取机器人的反馈信息,当不需要时,则进行所述条件语句中的条件判断,当variable1等于true时,执行“点头”子语句;否则,执行“摇头”子语句;当子语句执行完毕后,则判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
以机器人脚本5为例:
机器人脚本5仅包含一条脚本,对这条脚本进行解析,得到一条包含若干子语句的程序指令,将该程序指令作为当前执行语句,判断当前执行语句为子程序语句。依次执行所述子程序所包含的子语句;当子程序所包含的子语句执行完毕后,判断是否还存在未被执行过的程序指令。因不存在下一条程序指令,所以本机器人脚本解析、执行完毕。
在本发明的另一个实施例中,如图5所示,一种机器人交互系统,包括:
上述任意实施例所述的机器人100;还包括编程器200;
所述编程器200,与所述机器人通信连接;所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的所述机器人动作;
所述编程器包括:获取模块210,用于根据所述机器人的能力,得到所述机器人的运动控制配置文件;以及,根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;以及,当位于特定区域中的图形块包含媒体资源文件名时,根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;以及,根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;
发送模块220,与所述获取模块电连接,用于当识别到执行操作时,将所述机器人运动控制文件发送给所述机器人。
具体的,机器人100可采用前述实施例方式。本实施例主要增加了图形化编程器的描述。
如图9所示,用虚线示意,将所述编程器的界面分成三块区域,分别为动作大类10、动作子类20、工作区30。点击每个动作大类,得到对应动作大类的动作子类20,每一个动作子类20的图形块代表采用机器人脚本语言描述的机器人动作。在工作区30的右上角有快捷键,其中第一按钮2表示将编辑好的动作序列发给机器人执行;第二按钮3表示加载已经编辑好的程序到工作区30;第三按钮4表示取消机器人当前的动作;第四按钮5表示暂停机器人的动作。
编程器根据所述机器人的能力,得到所述机器人的运动控制配置文件。运动控制配置文件反映了机器人支持哪些运动命令,以及每个运动命令所对应的运动API。比如,给机器人A、机器人B编写机器人脚本,机器人A、机器人B的能力不同,机器人A不能执行“欢呼”动作,机器人B可以。首先根据机器人A的能力,得到机器人A的运动控制配置文件;根据机器人B的能力,得到机器人B的运动控制配置文件;给编程器加载机器人A的运动控制配置文件,此时,可以看到编程器界面上的动作子类的“欢呼”动作,是灰色的;灰色的图形块不能拖到工作区,从而避免给机器人A的机器人脚本出现不支持的动作。当要给机器人B编写脚本时,需要先给编程器加载机器人B的运动控制配置文件,此时,可以看到编程器界面上的动作子类的“欢呼”动作不是灰色的,可以拖到工作区。所以在编写机器人脚本时,需要先给编程器加载对应机器人的运动控制配置文件。
以编辑图8所示的机器人脚本为例,选择动作子类的图形块,依次拖动表示机器人动作的图形块到工作区30中动作起始点1下,当编辑完成后,选择第一按钮2按钮,编程器会根据工作区中动作起始点1下的各图形块,得到编辑好的所述机器人脚本;因图8所示的机器人脚本,不包含媒体资源文件,所以媒体资源信息为空文件;编程器根据机器人脚本、运动控制配置文件和媒体资源信息,得到机器人运动控制文件;编程器将机器人运动控制文件发送给所述机器人。
以编辑图6所示的机器人脚本为例,选择“声音”动作大类的背景音乐动作子类的图形块,拖到工作区中,输入参数“小苹果”;再依次找到“挥手、点头、右转头、左小臂摆动、右小臂摆动”动作子类的图形块,拖到背景音乐动作子类的图形块中,针对“右转头、左小臂摆动、右小臂摆动”动作子类的图形块,还要输入相应的参数。当编辑完成后,选择第一按钮2,编程器会根据工作区中动作起始点1下的各图形块,得到编辑好的所述机器人脚本;因其中一个图形块还包含媒体资源文件名“小苹果”,所以媒体资源信息不为空,包含了“小苹果”媒体资源文件;编程器将由机器人脚本、运动控制配置文件和媒体资源信息组成的机器人运动控制文件,发送给所述机器人。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种机器人的运动控制方法,其特征在于,包括:
步骤S200机器人接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
步骤S300所述机器人对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;
步骤S400所述机器人根据各所述程序指令,执行相应的动作。
2.根据权利要求1所述的机器人的运动控制方法,其特征在于,所述步骤S300包括:
步骤S310所述机器人对所述机器人脚本进行解析,得到机器人专用动作函数;
步骤S320所述机器人根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令。
3.根据权利要求1所述的机器人的运动控制方法,其特征在于:
所述机器人运动控制文件还包括媒体资源信息;
所述步骤S400包括:
步骤S420判断所述程序指令是否为播放媒体资源语句,若是,则执行步骤S421;
步骤S421从所述媒体资源信息中获取并播放所述程序指令中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;
步骤S422当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放。
4.根据权利要求1所述的机器人的运动控制方法,其特征在于,所述步骤S400还包括:
步骤S440判断所述程序指令是否为同步执行语句,若是,则执行步骤S441;
其中,为所述同步执行语句的所述程序指令是由所述机器人脚本中的机器人专用关键字、所述机器人专用动作函数和所述运动控制配置文件生成;
步骤S441同时执行所述同步执行语句中所包含的子语句;
步骤S442当所述子语句执行完毕后,则结束所述同步执行语句的执行。
5.根据权利要求3-4任一所述的机器人的运动控制方法,其特征在于:
当执行的所述程序指令或所述子语句中包含媒体资源文件名时,则从所述媒体资源信息中获取对应的所述媒体资源文件,并根据所述媒体资源文件执行所述程序指令或所述子语句对应的操作。
6.根据权利要求1所述的机器人的运动控制方法,其特征在于,还包括:
所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的机器人动作;
所述步骤S200之前还包括:
步骤S100所述编程器根据所述机器人的能力,得到所述机器人的运动控制配置文件;
步骤S110所述编程器根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;
步骤S120当位于特定区域中的图形块包含媒体资源文件名时,所述编程器根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;
步骤S130所述编程器根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;
步骤S140当识别到执行操作时,所述编程器将所述机器人运动控制文件发送给所述机器人。
7.一种机器人,其特征在于,包括:
接收模块,用于接收机器人运动控制文件,所述机器人运动控制文件包括机器人脚本和运动控制配置文件,所述机器人脚本包括机器人专用动作函数;
脚本解析模块,与所述接收模块电连接,用于对所述机器人脚本进行解析,得到所述机器人专用动作函数,根据所述机器人专用动作函数以及所述运动控制配置文件生成至少一条程序指令;
指令管理模块,与所述脚本解析模块电连接,用于根据各所述程序指令,执行相应的动作。
8.根据权利要求7所述的机器人,其特征在于:
所述脚本解析模块,进一步用于所述机器人对所述机器人脚本进行解析,得到机器人专用动作函数;以及,所述机器人根据所述运动控制配置文件,调用所述机器人专用动作函数对应的应用程序接口,得到包含对应操作的程序指令。
9.根据权利要求7所述的机器人,其特征在于:
所述指令管理模块,进一步用于判断所述程序指令是否为播放媒体资源语句,若是,则从所述媒体资源信息中获取并播放所述程序指令中包含的媒体资源文件名对应的媒体资源文件,并依次执行所述播放媒体资源语句所包含的子语句;以及,当所述播放媒体资源语句所包含的子语句执行完毕时,则结束所述媒体资源文件的播放。
10.一种机器人的运动控制系统,其特征在于,包括:权利要求7-9任一所述的机器人;还包括:编程器;
所述编程器,与所述机器人通信连接;所述编程器的界面上包括若干图形块,每一个所述图形块代表采用机器人脚本语言描述的所述机器人动作;
所述编程器包括:
获取模块,用于根据所述机器人的能力,得到所述机器人的运动控制配置文件;以及,根据位于特定区域中的各所述图形块,得到编辑好的所述机器人脚本;以及,当位于特定区域中的图形块包含媒体资源文件名时,根据所述媒体资源文件名得到对应的媒体资源文件,加入到媒体资源信息中;以及,根据所述机器人脚本、所述运动控制配置文件和所述媒体资源信息,得到所述机器人运动控制文件;
发送模块,与所述获取模块电连接,用于当识别到执行操作时,将所述机器人运动控制文件发送给所述机器人。
CN201711281609.0A 2017-12-07 2017-12-07 一种机器人的运动控制方法、机器人及系统 Active CN107765612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711281609.0A CN107765612B (zh) 2017-12-07 2017-12-07 一种机器人的运动控制方法、机器人及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711281609.0A CN107765612B (zh) 2017-12-07 2017-12-07 一种机器人的运动控制方法、机器人及系统

Publications (2)

Publication Number Publication Date
CN107765612A true CN107765612A (zh) 2018-03-06
CN107765612B CN107765612B (zh) 2020-08-04

Family

ID=61277650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711281609.0A Active CN107765612B (zh) 2017-12-07 2017-12-07 一种机器人的运动控制方法、机器人及系统

Country Status (1)

Country Link
CN (1) CN107765612B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108687779A (zh) * 2018-06-25 2018-10-23 上海思依暄机器人科技股份有限公司 一种家用机器人的舞蹈开发方法和系统
CN109048928A (zh) * 2018-10-25 2018-12-21 遨博(北京)智能科技有限公司 一种机器人控制程序的生成方法及装置
CN109598427A (zh) * 2018-11-23 2019-04-09 泰康保险集团股份有限公司 机器人的管理方法、装置及电子设备
CN110673545A (zh) * 2019-08-07 2020-01-10 中南大学 一种中子谱仪用样品台的控制方法、系统及介质
CN111168668A (zh) * 2019-12-26 2020-05-19 深圳市优必选科技股份有限公司 一种机器人的控制方法及机器人
CN111267086A (zh) * 2018-12-04 2020-06-12 北京猎户星空科技有限公司 一种动作任务的创建与执行方法及装置、设备和存储介质
CN111352360A (zh) * 2018-12-24 2020-06-30 深圳市优必选科技有限公司 机器人的控制方法、装置、机器人及计算机存储介质
CN111590578A (zh) * 2020-05-20 2020-08-28 北京如影智能科技有限公司 一种机器人控制方法及装置
CN112099461A (zh) * 2020-11-06 2020-12-18 基点生物科技(成都)有限公司 一种基于样本库系统的自动化设备远程控制方法
CN113254006A (zh) * 2021-04-28 2021-08-13 东莞市李群自动化技术有限公司 机器人交互的方法、系统、装置、电子设备以及存储介质
CN114310879A (zh) * 2021-12-23 2022-04-12 遨博(北京)智能科技有限公司 一种机器人控制方法、控制柜及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
US20100168912A1 (en) * 2008-12-29 2010-07-01 Electronics And Telecommunications Research Institute Method of invoking asynchronous function for controlling robots
CN106021257A (zh) * 2015-12-31 2016-10-12 广州华多网络科技有限公司 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN106445523A (zh) * 2016-09-26 2017-02-22 卢军 基于脚本语言的远程控制方法及系统
CN106484403A (zh) * 2016-09-23 2017-03-08 江西洪都航空工业集团有限责任公司 一种机器人跨平台的图形化开发系统
CN106707965A (zh) * 2015-11-18 2017-05-24 宁波弘讯科技股份有限公司 控制机器人系统及控制机器人方法
CN106933212A (zh) * 2017-04-21 2017-07-07 华南理工大学 一种分布式制造环境下的可重构工业机器人编程控制方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
US20100168912A1 (en) * 2008-12-29 2010-07-01 Electronics And Telecommunications Research Institute Method of invoking asynchronous function for controlling robots
CN106707965A (zh) * 2015-11-18 2017-05-24 宁波弘讯科技股份有限公司 控制机器人系统及控制机器人方法
CN106021257A (zh) * 2015-12-31 2016-10-12 广州华多网络科技有限公司 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN106484403A (zh) * 2016-09-23 2017-03-08 江西洪都航空工业集团有限责任公司 一种机器人跨平台的图形化开发系统
CN106445523A (zh) * 2016-09-26 2017-02-22 卢军 基于脚本语言的远程控制方法及系统
CN106933212A (zh) * 2017-04-21 2017-07-07 华南理工大学 一种分布式制造环境下的可重构工业机器人编程控制方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108687779A (zh) * 2018-06-25 2018-10-23 上海思依暄机器人科技股份有限公司 一种家用机器人的舞蹈开发方法和系统
CN109048928A (zh) * 2018-10-25 2018-12-21 遨博(北京)智能科技有限公司 一种机器人控制程序的生成方法及装置
CN109598427A (zh) * 2018-11-23 2019-04-09 泰康保险集团股份有限公司 机器人的管理方法、装置及电子设备
CN111267086A (zh) * 2018-12-04 2020-06-12 北京猎户星空科技有限公司 一种动作任务的创建与执行方法及装置、设备和存储介质
CN111352360A (zh) * 2018-12-24 2020-06-30 深圳市优必选科技有限公司 机器人的控制方法、装置、机器人及计算机存储介质
CN110673545A (zh) * 2019-08-07 2020-01-10 中南大学 一种中子谱仪用样品台的控制方法、系统及介质
CN110673545B (zh) * 2019-08-07 2021-05-11 中南大学 一种中子谱仪用样品台的控制方法、系统及介质
CN111168668A (zh) * 2019-12-26 2020-05-19 深圳市优必选科技股份有限公司 一种机器人的控制方法及机器人
CN111590578A (zh) * 2020-05-20 2020-08-28 北京如影智能科技有限公司 一种机器人控制方法及装置
CN112099461A (zh) * 2020-11-06 2020-12-18 基点生物科技(成都)有限公司 一种基于样本库系统的自动化设备远程控制方法
CN113254006A (zh) * 2021-04-28 2021-08-13 东莞市李群自动化技术有限公司 机器人交互的方法、系统、装置、电子设备以及存储介质
CN114310879A (zh) * 2021-12-23 2022-04-12 遨博(北京)智能科技有限公司 一种机器人控制方法、控制柜及系统

Also Published As

Publication number Publication date
CN107765612B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN107765612A (zh) 一种机器人的运动控制方法、机器人及系统
CN105690385B (zh) 基于智能机器人的应用调用方法与装置
CN109324787A (zh) 一种业务软件开发方法、装置及终端设备
TW202016693A (zh) 人機交互處理系統及其方法、儲存媒體、電子設備
US20120136481A1 (en) System and method for editing and controlling the behavior of a mobile robot
JP2002544584A (ja) 行動およびホストアプリケーションモデルを使用するソフトウェアアプリケーションにおいてダイナミックアシスタンスをするためのシステムおよび方法
CN105785813A (zh) 用于智能机器人系统多模态输出的方法及装置
Bosse Mobile multi-agent systems for the internet-of-things and clouds using the javascript agent machine platform and machine learning as a service
CN103197929A (zh) 一种面向儿童的图形化编程系统和方法
CN102541549B (zh) 集成电视应用模块的方法及装置
CN111459889A (zh) 一种用于物联网平台的设备数据模型生成方法和装置
CN103678135A (zh) 大数据环境下实现跨进程与跨线程调试的系统与方法
CN106648662A (zh) 基于工程造价计算描述语言bcl的报表生成装置及生成方法
CN102681856A (zh) 基于示教器的机器人人机界面的实现系统及实现方法
US20120331450A1 (en) System and method for applying a sequence of operations code to program configurable logic circuitry
CN104216646A (zh) 基于手势创建应用程序的方法及装置
CN110275704A (zh) 页面数据处理方法和装置,存储介质和电子设备
CN108845797A (zh) 一种语音识别型编程方法、装置及计算机设备
CN106527335A (zh) 一种支持协程功能的plc控制器
CN102855873A (zh) 一种控制电子设备的方法及电子设备
Lu et al. Polonius: A Wizard of Oz interface for HRI experiments
CN101650553B (zh) 控制智能机器人和制作机器人内容的制作工具的应用方法
JP4934904B2 (ja) ロボット連携装置、ロボット連携プログラム記憶媒体、およびロボット連携プログラム
Davidyuk et al. An overview of interactive application composition approaches
CN108304113A (zh) 一种界面交互配置方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230207

Address after: 411100 No.507, Floor 5, South Main Building, Zhaoshan Two-type Industrial Development Center, Yuetang District, Xiangtan City, Hunan Province

Patentee after: Avatar (Hunan) Technology Co.,Ltd.

Address before: Room 274, Yingying Building, No. 99, Tuanjie Road, Yanchuangyuan, High-tech Zone, Nanjing, Jiangsu, 210000

Patentee before: NANJING CHENGSI ROBOTICS CO.,LTD.

TR01 Transfer of patent right