本发明涉及人工智能技术领域,特别涉及一种机器人控制引擎及系统。
背景技术:
当今的机器人多为工业机器人,而工业机器人以无感知能力的居多。这些机器人的操作程序都是预先制定的,并按照预定程序重复无误地完成确定的任务。它们缺乏适应性,只有当涉及的对象相同时,才能产生一致的结果。
技术实现要素:
本发明实施例提供了一种机器人控制引擎及系统,以至少有效提高机器人自适应交互行为能力与智能化程度。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生并维护基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;以及
控制条目检索装置,被设置为基于机器人的感知数据和倒排索引检索用于控制机器人交互行为的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为 的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
感知单元分类装置,被设置为基于感知单元的类型对感知单元进行分类,形成按感知单元类型区分的感知单元集合;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标、基于所述感知单元集合产生按感知单元类型区分的多个倒排索引;
控制条目检索代理装置,被设置为分析机器人的感知数据包含的感知单元,并基于机器人的感知数据所包含的感知单元的类型选择对应的倒排索引;以及,
控制条目检索装置,被设置为基于机器人的感知数据和控制条目检索代理装置选取的倒排索引检索用于控制机器人交互行为的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为将控制条目中的触发条件包含的感知单元的取值变换成整形整数(例如,数字签名技术),以变换得到的整形整数为主键、以控制条目的标识为目标产生倒排索引;以及
控制条目检索装置,被设置为基于数字签名技术将机器人的感知数据中感知单元的取值变换成整形整数,基于感知数据中感知单元的取值变换得到的整形整数和所述倒排索引检索用于控制机器人交互行为的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;
控制条目检索装置,被设置为基于机器人的感知数据中的感知单元的取值和所述倒排索引检索用于控制机器人交互行为的控制条目;以及
检索结果合成装置,被配置为合并基于机器人的感知数据中的各个感知单元的取值检索到的控制条目,形成与机器人的感知数据匹配的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;
控制条目检索装置,被设置为基于机器人的感知数据中的感知单元的取值和所述倒排索引检索用于控制机器人交互行为的控制条目;以及
检索结果合成装置,被配置为基于检索到的控制条目中构成触发条件的感知单元之间的逻辑关系合并基于机器人的感知数据中的各个感知单元的取值检索到的控制条目,形成与机器人的感知数据匹配的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;
控制条目检索装置,被设置为基于机器人的感知数据和所述倒排索引检索用于控制机器人交互行为的控制条目;以及
控制条目排序装置,被设置为对所述控制条目检索装置检索到的控制条目进行排序,以基于排序的结果选取控制机器人交互行为的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
控制条目产生装置,被设置为产生基于机器人的感知数据控制机器人的交互行为的控制条目,其中,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;
控制条目检索装置,被设置为基于机器人的感知数据和所述倒排索引检索用于控制机器人交互行为的控制条目;
用户反馈获取装置,被设置为获取用户对机器人的交互行为的用户反馈;
控制条目执行情况记录装置,被设置为记录控制条目的执行情况信息,形成执行日志;
控制条目优先级配置装置,被设置为配置控制条目的优先级;
用户行为记录装置,被配置为记录用户行为,形成用户行为日志;以及
控制条目排序装置,被设置为基于所述用户反馈、和/或所述执行日志、和/或所述控制条目的优先级、和/或所述用户行为日志对所述控制条目检索装置检索到的控制条目进行排序,以基于排序的结果选取控制机器人交互行为的控制条目。
在某些实施例中,一种机器人控制引擎,包括:
感知数据获取装置,被设置为获取基于机器人感知到的信息按照至少一个预设的感知单元生成的感知数据,其中,感知数据包含感知单元的取值;
互联网内容抓取装置,被设置为从互联网抓取内容,形成互联网内容集合;
控制条目产生装置,被设置为基于所述互联网内容集合、预设的感知单元和预设的交互行为,产生基于机器人的感知数据控制机器人的交互行为的控制条目;
倒排索引产生装置,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;以及
控制条目检索装置,被设置为基于机器人的感知数据和所述倒排索引检索用于控 制机器人交互行为的控制条目。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
本发明实施例提供了一种机器人控制引擎及系统,预先定义了控制机器人交互行为的感知单元和机器人的交互行为,将其作为控制机器人交互行为的最小单元,根据感知单元和预先设置的交互行为设置触发条件和触发条件所触发的交互行为,得到控制机器人的控制条目,统一了机器人控制的输入输出标准,使得非技术人员也可以编辑机器人的行为,从而便于控制机器人的交互行为,有效提高机器人自适应交互行为能力与智能化程度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种机器人控制系统的示意图;
图2是本发明实施例提供的一种机器人的示意图;
图3是本发明实施例提供的一种机器人控制引擎的结构框图;
图4是本发明实施例提供的另一种机器人控制引擎的结构框图;
图5是本发明实施例提供的又一种机器人控制引擎的结构框图;
图6是本发明实施例提供的再一种机器人控制引擎的结构框图;以及
图7是本发明实施例提供的另外一种机器人控制引擎的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施 方式的特征。
应当强调的是,词语“包括”、“包含”当在本说明书中使用时用来指所引述的特征、要素、步骤或组成部分的存在,但不排除一个或更多个其它特征、要素、步骤、组成部分或它们的组合的存在或增加。
关于感知单元
预先定义至少一个感知单元,感知单元的取值取决于机器人感知到的信息。感知单元作为控制机器人的最小单元(或者称为最小输入单元),机器人可以至少根据感知单元做出交互行为。机器人的交互行为可以受到一个或多个感知单元控制,例如,当一个或多个感知单元的取值发生变化时,机器人可以响应这些变化做出交互行为;或者,当一个或多个感知单元的取值在某一取值范围内或等于某一值时,机器人可以响应感知单元做出交互行为。应当理解,感知单元对机器人的交互行为的控制不限于上述情况,上述情况仅作为举例说明。
在某些实施例中,感知单元可以包括多个层级,高层级的感知单元可以包含低层级的一个或多个感知单元。在某些实施例中,高层级的感知单元可以包含与其相邻的低层级的一个或多个感知单元,同一高层级的感知单元可以包含不同的低层级的感知单元。在时间上,合成高层级的感知单元的低层级感知单元包括但不限于同一时间或时间段的低层级感知单元,以及该时间或时间段之前的历史的低层级的感知单元。在某些实施例中,高层级的感知单元由不同时间的低层级感知单元确定。
在某些实施例中,感知单元的取值可以是一个或一组值,也可以是一个或多个取值的范围。可以根据机器人感知到的信息确定感知单元的取值,一个感知单元可以由感知到的一项或多项信息确定,同一感知单元可以由感知到的不同数据来确定。感知到的信息可以包括实时感知到的信息,或者历史感知到的信息(例如过去某一时刻或某段时间感知到的信息)。在某些情况下,感知单元的取值由实时感知到的信息和历史感知到的信息共同确定。
作为一个例子,可以设置听觉(ear)、视觉(eye)、时间(timer)、是否有人在家(so_at_home)以及环境(environment)等感知单元。听觉描述听到的语音,在机器人接收到声音时,对接收到的声音进行语音识别处理,识别得到声音中语音的文本,听觉的取值可以是听到的语音的文本;在某些实施例中,还可以进行声源定位,听觉还可以包括声音的方向,声音的方向以机器人的面部为参考,包括左、右、前、后等 方向;此外,还可以采用情绪识别技术,从语音信息中识别出语音蕴含的情绪。视觉描述视频情况,机器人可以对图像或视频进行分析,判断当前是否有人或者是否有移动,视觉的取值可以包括是否有人、是否有移动等等;此外,还可以基于视频监控识别监控对象(例如与机器人对话的至少一个用户)的情绪,情绪可以基于面部识别以及肢体活动确定。是否有人在家的取值可以是“0”或“1”,“0”表示没有人在家,“1”表示有人在家,是否有人在家可以通过多种方式确定,例如通过视频监控判断监控到的对象是否包括人等。时间描述时间信息,其取值可以是一个时间点或者一个时间范围,例如每年2月1日14点整。环境描述环境情况,包括温度、湿度、噪音、PM2.5、空气中的燃气的ppm、空气中的一氧化碳含量、空气中的氧气含量等,其取值可以是每种参数的值或者范围。
在某些实施例中,可以预定义感知单元的取值。预定义的感知单元的取值可以是一个或多个具体值、或者一个或多个取值范围。感知单元的取值可以是明确的值,也可以由通配符(或其类似)与明确的值共同构成,但不限于此。例如,感知单元为“语音”时,其取值可以是“*下雨*”,表示任意包含“下雨”的语音信息;或者其取值可以是“*[下有]雨*”,表示任意包含“下雨”或“有雨”的语音信息。
机器人可以至少根据感知单元和感知到的信息生成感知数据,感知数据可以包括一项或多项感知单元,感知数据中包括感知单元的取值以及感知单元的标识。感知数据中每个感知单元的取值参见对感知单元的描述。机器人根据感知到的信息、按照感知单元生成感知数据,可以采用多种分析方法根据感知到的信息得到感知单元的取值,例如,通过语音识别技术得到语音的文本、通过图像识别技术分析感知到的图像中是否存在人像、通过人像(面部)识别技术确定人像的属性等。应当理解,机器人不限于通过上述的方式得到感知单元的取值,还可以通过其他方式,包括在本文件提交日尚未开发出的处理技术。
关于控制条目
基于预先定义的感知单元和预设的供机器人执行的交互行为,可以设置触发条件以及触发条件触发的交互行为。根据触发条件和触发条件触发的交互行为,生成用于响应机器人感知到的信息控制机器人交互行为的控制条目。控制条目可以具有唯一标识。
触发条件可以由一个或多个感知单元构成,感知单元之间可以配置逻辑关系,逻 辑关系包括但不限于“与”、“或”以及“非”等。在某些实施例中,触发条件可以包括构成触发条件的感知单元的标识和取值,感知单元的取值可以是一个或一组值、或者一个或一组取值范围。感知单元的取值可以是明确的值,也可以由通配符(或其类似)与明确的值构成,但不限于此。例如,触发条件中感知单元为“语音”时,其取值可以是“*下雨*”,表示任意包含“下雨”的语音信息;或者其取值可以是“*[下有]雨*”,表示任意包含“下雨”或“有雨”的语音信息。
触发条件可以触发的一个或多个交互行为。在某些实施例中,可以设置交互行为之间的顺序,以按照设置的顺序执行多个交互行为。在某些实施例中,还可以配置所述一个或多个交互行为的执行顺序。该执行顺序可以包括但不限于随机执行一个或一组交互行为,以实现随机执行一个或多个动作;或者,按照预定步骤顺序执行多个交互行为。
交互行为可以被配置为一个或多个可被机器人解析以执行的动作指令,动作指令还可以包括一个或多个参数。在某些实施例中,还可以配置所述一个或多个动作指令的执行顺序。该执行顺序可以包括但不限于随机执行一个或一组动作指令,以实现随机执行一个或多个动作;或者,按照预定步骤顺序执行多个动作指令。
在某些实施例中,交互行为的动作指令包括:用于执行其他控制条目而设置的到其他控制条目的链接,和/或用于从多个内容和/或多个参数中选取内容和/或参数而设置的到多个参数和/或多个内容的链接。每个控制条目可以具有唯一标识,动作指令可以引用控制条目的标识连接到该控制条目。动作指令链接到的内容可以是一组动作,机器人可以根据其他因素执行一组动作中的动作,例如,可以预先配置机器人的性格或性别等属性,这些属性可以存储在存储器中,不同性别或者性格的机器人对同一情况(或称为场景)的交互行为可以不同,机器人可以根据设置的性格或性别等属性从一组动作中选择执行的动作,这些动作可以包括但不限于机器人的肢体动作等。动作指令链接到的一个或一组内容,可以包括但不限于语音聊天的内容、各种互联网信息等,例如,机器人根据控制条目执行的动作为查询北京的天气,动作指令可以是一个查询天气的地址,机器人到这一地址获取北京的天气,这一地址可以包括统一资源定位符(URL)、内存地址、数据库字段等。
机器人的交互行为包括但不限于通过输出语音、调整姿态、输出图像或视频、与其他设备进行交互等。输出语音包括但不限于与用户聊天、播放音乐;调整姿态包括 但不限于移动(例如,模仿人类步行等)、肢体摆动(例如,手臂、头部的摆动)、神态调整等;输出图像或视频包括但不限于在显示装置上显示图像或视频,图像可以是动态电子表情等,也可以是拍摄得到的图像,或者从网络中获取到的图像;与其他设备交互包括但不限于控制其他设备(例如调整空调设备的工作参数等)、向其他设备传输数据、与其他设备建立连接等。应当理解,交互行为并不限于上述列举的内容,机器人对感知到的信息的反应均可被视为机器人的交互行为。
控制条目可以采用数据交换格式配置,当然也可以采用其他格式配置。数据交换格式包括但不限于XML、JSON或者YAML等。以JSON为例,需要实现:当用户说:“给我唱一首歌”,先往以中等速度0角度后退10cm然后开始唱一首歌,唱完歌以后10秒拍个照片发送给用户,然后0角度前行5CM。JSON数据格式的控制条目可以是如下内容:
在上述的控制条目中,“ifs”部分为根据感知单元设置的触发条件,“ear”为感知单元的标识,“唱歌”为感知单元的取值。"trigger"部分为触发条件触发的交互行为,包括“move(移动)”、“song(唱歌)”和“take_pic(拍照)”三个交互行为,每个交互行为包括相应的动作指令。其中,“song(唱歌)”链接到“http://bpeer.com/i.mp3”,唱歌的内容从“http://bpeer.com/i.mp3”中获取,“gr”为动作的执行顺序。
关于机器人控制
图1示出了本发明一个实施例的机器人控制系统1000。如图1所示,机器人控制系统1000可以包括:机器人控制引擎1100、机器人1200以及用户1300。
机器人1200,例如清洁机器人,可以置于室内空间1400内。机器人1200可以通过内嵌通信装置(图1中未示出)与室内空间1400内的路由设备1500建立通信链 路1510,路由设备1500与机器人控制引擎1100建立通信链路1520,机器人1200通过通信链路1510和通信链路1520与机器人控制引擎1100通信。应当理解,虽然图1中示出的是机器人控制引擎1100设置在互联网云计算平台的情况,在某些实施例中,机器人控制引擎1100也可以设置为机器人1200中,或者在互联网云计算平台和机器人1200均设置机器人控制引擎1100。
用户1300可以是室内空间1400的成员,也可以是与室内空间1400具有关联关系的人员,机器人1200可以与用户1300进行交互。机器人1200还可以与室内空间1400内的设备(例如,空调、电视、空气净化器等家用电器)进行交互,或者还可以与室内空间1400之外的设备进行交互。应当理解,虽然图1中示出了包含一个用户1300,但并不限于一个用户1300,例如,机器人1200的用户1300可以是室内空间1400的多个成员。在某些实施例中,还可以对多个用户1300进行分组,例如将室内空间1400的成员分为一组,将室内空间1400之外的用户1300分为一组。
机器人1200可以通过内嵌的感知装置(图1中未示出)感知各种信息,包括但不限于室内空间1400内的环境参数、用户1300或其他人员的语音信息(包括自然语言和语音指令等)、用户1300或其他人员以及物品的图像或视频信息等。机器人1400内嵌的感知装置包括但不限于麦克风、摄像头、红外传感器、超声波传感器等。应当理解的是,机器人1200还可以与其外部的感知装置通信,以获取感知装置感知到的信息,例如,机器人1200可以与设置于室内空间1400的温度传感器、湿度传感器(图1中未示出)通信,获取室内空间1400的温度和湿度参数。
机器人1200感知到信息时,可以基于预设的感知单元对感知到的信息进行处理,得到包含感知单元的取值的感知数据。机器人1200可以将生成的感知数据发送至机器人控制引擎1100,以获取机器人控制引擎1100基于感知数据反馈的用于控制机器人交互行为的控制条目的信息。控制条目的信息包括但不限于控制条目的数据本身、控制条目的标识、控制条目中的交互行为数据等。在某些实施例中,机器人1200可以存储控制条目,进而机器人1200可以基于感知数据从机器人控制引擎1100获取用于控制机器人1200的交互行为的控制条目的标识。在机器人1200未存储该控制条目的标识指示的控制条目时,机器人1200可以从机器人控制引擎1100获取控制条目本身或者控制条目中的交互行为数据。
机器人控制引擎1100产生基于机器人1200的感知数据控制机器人交互行为的控 制条目,控制条目包含由至少一个感知单元构成的触发条件和触发条件触发的交互行为,其中,交互行为可由机器人1200解析并执行。触发条件可以由感知单元的取值和感知单元之间的关系构成,感知单元之间的关系包括但不限于“与”、“或”、“非”等逻辑关系。控制条目具有与其他控制条目区分的唯一标识,控制条目的标识可以但不限于是整形整数。应当理解,控制条目的标识还可以是URL等。
机器人控制引擎1100可以以控制条目中触发条件包含的感知单元的取值为主键、以控制条目的标识为目标建立倒排索引。对于感知单元的取值为一组值,机器人控制引擎1100可以基于一组值中的所有取值为主键、以该感知单元的取值对应的控制条目为目标,建立倒排索引。在建立的倒排索引中,一个感知单元的取值可以对应一个或多个控制条目,即出现该感知单元的取值的控制条目。倒排索引可以以倒排表的形式存储在内存中,以能够追加倒排记录;或者,以文件的形式存储在磁盘中。
倒排索引以感知单元的取值和控制条目结合,并以感知单元的取值作为主键的索引结构。倒排索引可以分为两个部分。第一部分:由不同的感知单元的取值组成的索引表,称为“词典”。其中保存了各种感知单元的取值,还可以包括感知单元的取值的统计信息,例如,感知单元的取值在控制条目中出现的次数等;第二部分:由每个感知单元的取值出现过的控制条目的集合,以及其他信息(例如,控制条目的优先级等)构成,也称为“记录表”或“记录列表”。
在某些实施例中,还可以(例如,基于数字签名技术、字符串映射技术(例如,MD5等))将感知单元的取值变换成整形整数,以感知单元的取值变换得到的整形整数为主键、以控制条目的标识为目标建立倒排索引,其中,不同的感知单元的取值对应不同的整形整数,以区分不同的感知单元的取值。此外,还可以对变换得到的整形整数进行压缩处理,以降低数据存储量和提高处理速度。
机器人控制引擎1100获取到机器人1200的感知数据时,可以基于机器人1200的感知数据和倒排索引检索用于控制机器人1200的控制条目。在某些实施例中,机器人控制引擎1100可以解析机器人1200的感知数据,从机器人1200的感知数据中提取出感知数据包含的感知单元的取值,基于提取出的感知单元的取值和倒排索引检索与机器人1200的感知数据匹配的控制条目,以得到基于机器人1200的感知数据控制机器人1200交互行为的控制条目。在某些实施例中,机器人控制引擎1100在提取出机器人1200的感知数据中的感知单元的取值时,可以基于数字签名技术将感知单 元的取值变换成整形整数。机器人控制引擎1100将机器人1200的感知数据中的感知单元的取值的整形整数与倒排索引中整形整数进行比较,以检索到机器人1200的感知数据中的感知单元的取值对应的控制条目。
应当理解,机器人1200的感知数据包含的感知单元的取值,可以是感知单元的取值本身,或者可以是基于数字签名技术变化得到的整形整数。机器人1200基于感知到的信息和至少一个感知单元生成感知数据时,可以先确定感知单元的取值,然后基于数字签名技术将感知单元的取值变换成整形整数,基于各个感知单元的取值变换得到的整形整数生成感知数据。
机器人控制引擎1100检索到机器人1200的感知数据中的感知单元的取值对应的控制条目后,基于感知数据和控制条目包含的触发条件中感知单元之间的逻辑关系合并检索到的控制条目,得到与机器人1200的感知数据匹配的控制条目。例如,机器人1200的感知数据包含5个感知单元的取值,机器人控制引擎1100基于这5个感知单元的取值检索到多条控制条目。机器人控制引擎1100可以对检索到的多条控制条目求交集,得到同时满足这5个感知单元的取值的取值。此外,还可以排除触发条件中包含“非”某一感知单元的取值的控制条目。
在某些实施例中,机器人控制引擎1100检索到多个与机器人1200的感知数据匹配的控制条目,此时,机器人控制引擎1100可以对检索到的、与机器人1200的感知数据的多个控制条目进行排序,以从该多个控制条目中选取基于该感知数据控制机器人1200的交互行为的控制条目。在某些实施例中,可以基于控制条目的优先级排序,优先选取优先级高的控制条目;或者,可以基于多个用户1300对控制条目执行的用户反馈排序,优先选取多个用户1300的用户反馈评价最好的控制条目;或者,可以基于控制条目执行日志排序,控制条目执行日志可以记录控制条目的执行次数、执行时间等,优先选取执行次数多个控制条目或者最近执行次数多的控制条目。应当理解,控制条目的排序并不限于上述方式,还可以对上述方式及其他方式进行任意组合,以选取基于机器人1200的感知数据控制机器人1200的交互行为的控制条目。
机器人控制引擎1100确定与机器人1200的感知数据匹配的控制条目时,可以将确定的控制条目的信息发送至机器人1200,机器人1200根据接收到的控制条目的信息执行控制条目中的交互行为。在某些实施例中,控制条目的信息包括控制条目本身;或者,控制条目的信息为控制条目的标识;或者,控制条目中的交互行为。另外,控 制条目的信息还可以是以上信息的任意组合。
在某些实施例中,如果机器人控制引擎1100未检索到机器人1200的感知数据的控制条目,机器人1200可以基于感知数据按照预定模式执行交互行为,例如,如果感知数据包含语音信息,则与用户1300进行语音聊天,如果不包含语音信息则不执行操作。应当理解,机器人1200可以并不限于上述模式。
图2示出了本发明一个实施例的机器人1200。如图2所示,机器人1200包括存储器102、存储器控制器104、一个或多个处理单元(CPU)106、外设接口108、射频(RF)电路114、音频电路116、扬声器118、麦克风120、感知子系统122、姿态传感器132、摄像机134、触觉传感器136以及一个或多个其他感知装置138,以及外部接口140。这些组件通过一条或多条通信总线或信号线110进行通信。
应当理解,机器人1200只是机器人1200的一个实例,该机器人1200的组件可以比图示具有更多或更少的组件,或具有不同的组件配置。例如,在某些实施例中,机器人1200可以包括一个或多个CPU 106、存储器102、一个或多个感知装置(例如如上所述的感知装置),以及一个或多个保存在存储器102中以执行机器人交互行为控制方法的模块、程序或指令集。图2所示的各种组件可以用硬件、软件或软硬件的组合来实现,包括一个或多个信号处理和/或专用集成电路。
在某些实施例中,机器人1200可以是具有生物外形(例如,人形等)的机电设备,还可以是不具有生物外形但具有人类特征(例如,语言交流等)的智能装置,该智能装置可以包括机械装置,也可以包括由软件实现的虚拟装置(例如,虚拟聊天机器人等)。虚拟聊天机器人可以通过其所在的设备感知到信息,其所在的设备包括电子设备,例如手持电子设备、个人计算机等。
存储器102可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器102还可以包括远离一个或多个CPU 106的存储器,例如经由RF电路114或外部接口140以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。存储器控制器104可控制机器人1200的诸如CPU 106和外设接口108之类的其他组件对存储器102的访问。
外设接口108将设备的输入和输出外设耦接到CPU 106和存储器102。上述一个 或多个处理器106运行各种存储在存储器102中的软件程序和/或指令集,以便执行机器人1200的各种功能,并对数据进行处理。
在某些实施例中,外设接口108、CPU 106以及存储器控制器104可以在单个芯片,例如芯片112上实现。而在某些其他实施例中,它们可能在多个分立芯片上实现。
RF电路114接收并发送电磁波。该RF电路114将电信号变换成电磁波,或是将电磁波变换成电信号,并且经由电磁波来与通信网络以及其他通信设备进行通信。该RF电路114可以包括用于执行这些功能的公知电路,包括但不局限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC芯片组、用户身份模块(SIM)卡、存储器等等。该RF电路112可以通过无线通信来与网络和其他设备进行通信,该网络例如又名万维网(WWW)的因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。
上述无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(Wi-Fi)(例如IEEE 802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议,包括在本文件提交日尚未开发出的通信协议。
音频电路116、扬声器118和麦克风120提供了用户与机器人1200之间的音频接口。音频电路116接收来自外设接口108的音频数据,将音频数据变换成电信号,并且将电信号传送到扬声器118。扬声器将电信号变换成人类可听见的声波。音频电路116还接收由麦克风118从声波变换的电信号。该音频电路116将电信号变换成音频数据,并且将音频数据传送到外设接口108,以便进行处理。音频数据可以由外设接口108从存储器102和/或RF电路114中检索出,和/或传送到存储器102和/或RF电路114。
在某些实施例中,可以包括多个麦克风120,多个麦克风120分布可以在不同位置,根据不同位置的麦克风120、按照预定策略确定声音发出的方向。应当理解,也可以通过某些传感器来识别声音方向。
在某些实施例中,音频电路116还包括头戴送受话器插孔(未示出)。该头戴送受话器插孔提供音频电路114与可拆装的音频输入/输出外设之间的接口,举例来说, 该音频输入/输出外设既可以是纯输出耳机,也可以是同时具有输出(用于单耳或双耳的耳机)和输入(麦克风)的头戴送受话器。
在某些实施例中,还包括语音识别装置(未示出),用于实现语音到文字的识别,以及根据文字合成语音。语音识别装置可以用硬件、软件或软硬件的组合来实现,包括一个或多个信号处理和/或专用集成电路。音频电路116接收来自外设接口108的音频数据,将音频数据变换成电信号,语音识别装置可以对音频数据进行识别,将音频数据转换为文本数据。语音识别装置还可以根据文字数据合成音频数据,通过音频电路116将音频数据变换成电信号,并且将电信号传送到扬声器118。
感知子系统122提供机器人1200的感知外设和外设接口108之间的接口,感知外设例如姿态传感器132、摄像机134、触觉传感器136和其他感知装置128。感知子系统122包括姿态控制器124、视觉控制器126、触觉控制器128以及一个或多个其他感知装置控制器130。所述一个或多个其他感知装置控制器130接收/发送来自/去往其他感知装置138的电信号。所述其他感知装置138可包括温度传感器、距离传感器、接近觉传感器、气压传感器以及空气质量检测装置等等。
在某些实施例中,机器人1200可以具有多个姿态控制器124,以控制机器人1200的不同肢体,机器人的肢体可以包括但不限于手臂、足和头部。相应的,机器人1200可以包括多个姿态传感器132。在某些实施方式中,机器人1200可以不具备姿态控制器124和姿态传感器132,机器人1200可以是固定形态,不具备手臂、足等机械活动部件。在某些实施例中,机器人1200的姿态可以不是机械的手臂、足和头部,也可以采用可变形的构造。
机器人1200还包括用于为各种组件供电的电源系统142。该电源系统142可以包括电源管理系统、一个或多个电源(例如电池、交流电(AC))、充电系统、电源故障检测电路、电源转换器或逆变器、电源状态指示器(例如发光二极管(LED)),以及与便携式设备中的电能生成、管理和分布相关联的其他任何组件。充电系统可以是有线充电系统,或者也可以是无线充电系统。
在某些实施例中,软件组件包括操作系统144、通信模块(或指令集)146、交互行为控制装置(或指令集)148以及一个或多个其他装置(或指令集)150。
操作系统144(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或是诸如Vxworks之类的嵌入式操作系统)包括用于控制和管理常规系统任务(例如内存管 理、存储设备控制、电源管理等等)以及有助于各种软硬件组件之间通信的各种软件组件和/或驱动器。
通信模块146有助于经一个或多个外部接口140而与其他设备进行通信,并且它还包括用于处理RF电路114和/或外部接口140接收的数据的各种软件组件。外部接口140(例如通用串行总线(USB)、FIREWIRE等等)适合于直接或者经网络(例如因特网,无线LAN等等)间接耦接到其他设备。
在某些实施例中,机器人1200还可以包括显示装置(未示出),显示装置可以包括但不限于触敏显示器、触摸板等。上述一个或多个其他装置150可以包括图形模块(未示出),图形模块包括用于在显示装置上呈现和显示图形的各种已知软件组件。注意术语“图形”包括可以显示给用户的任何对象,包括但不局限于文本、网页、图标(例如包括软按键在内的用户界面对象)、数字图像、视频、动画等等。触敏显示器或触摸板还可以用于用户输入。
机器人1200通过例如姿态传感器132、摄像机134、触觉传感器136和其他感知装置128、麦克风120等感知外设感知机器人10的外部环境和机器人本身的状况,机器人1200感知到的信息经由感知外设对应控制装置处理,并交由一个或多个CPU106处理。机器人1200对环境的感知包括但不限于自身的传感器(例如姿态传感器132、摄像机134、触觉传感器136和其他感知装置128)检测到的信息,还可以是与机器人1200相连的外部装置(未示出)检测到的信息,机器人1200与外部装置之间建立通信连接,机器人1200和外部装置通过该通信连接传输数据。外部装置包括各种类型的传感器、智能家居设备等。
在某些实施例中,机器人1200感知到的信息包括但不限于声音、图像、环境参数、触觉信息、时间、空间等。环境参数包括但不限于温度、湿度、气体浓度等;触觉信息包括但不限于与机器人1200的接触,包括但不限于与触敏显示器的接触、与触觉传感器的接触或靠近,触觉传感器可以设置在机器人的头部、手臂等部位(未示出),应当说明的是还包括其他形式的信息。声音可以包括语音和其他声音,声音可以是麦克风120采集到的声音,也可以是存储器102中存储的声音;语音可以包括但不限于人类说话或唱歌等。图像可以是单张图片或视频,图片和视频包括但不限于由摄像机134拍摄得到,也可以从存储器102中读取或者通过网络传输到机器人1200。
机器人1200感知的信息不仅包括机器人1200外部的信息,还可以包括机器人 1200自身的信息,包括但不限于机器人1200的电量、温度等信息。例如,可以在感知到机器100的电量低于20%时,使机器人1200移动到充电位置自动充电。
应当理解,机器人1200不限于通过上述的方式感知到信息,还可以通过其他形式感知到信息,包括在本文件提交日尚未开发出的感知技术。此外,机器人1200的感知装置也不限于设置在机器人1200上的感知装置,还可以包括与机器人1200关联而未设置在机器人1200上的感知装置,例如各种用于感知信息的传感器。作为一个示例,机器人1200可以与设置在一定区域内的温度传感器、湿度传感器(未示出)等关联,通过这些传感器感知到相应的信息。机器人1200可以通过多种类型的通信协议与这些传感器通信,以从这些传感器获取信息。
在某些实施例中,可以根据预设的条件设定机器人1200感知的信息,这些条件可以包括但不限于设定机器人1200感知哪些信息、在什么时间感知信息等。例如,可以设定在于用户语音对话时,感知用户的声音、追踪用户的面部、识别用户的姿态等,而不感知其他信息、或者在生成感知单元时降低其他信息的作用、或者对感知到的其他信息进行处理等;或者,在某一时间段(例如,用户外出、机器人1200单独在室内的时间内)感知环境参数、感知图像和视频数据,通过环境参数判断是否需要与空调等设备交互,通过图像和视频数据判断室内是否有陌生人进入等。应当理解,设定感知的信息的条件并不限于此,上述条件仅作为举例说明,可以根据情况设定机器人1200需要感知的信息。
图3示出了本发明一个实施例的机器人控制引擎1100。如图3所示,机器人控制引擎1100可以包括:感知数据获取装置1110,被设置为获取基于机器人1200感知到的信息按照至少一个感知单元生成的感知数据;控制条目产生装置1120,被设置为产生并维护基于机器人1200的感知数据控制机器人1200的交互行为的控制条目;倒排索引产生装置1130,被设置为以各个控制条目中的触发条件包含的感知单元的取值为主键、以控制条目的标识为目标产生倒排索引;以及,控制条目检索装置1140,被设置为基于机器人1200的感知数据和倒排索引检索用于控制机器人1200交互行为的控制条目。
图4示出了本发明另一个实施例的机器人控制引擎1100。如图4所示机器人控制引擎1100,相比如图3所示的机器人控制引擎1100还可以包括:感知单元分类装置1150,被设置为基于感知单元的类型对感知单元进行分类,形成按感知单元的类 型区分的感知单元集合。
在某些实施例中,感知单元可以分为多种类型,例如,将感知单元分为听觉、视觉、触觉、环境等类型;或者,可以按照感知单元涉及的主题,将感知单元分为新闻、购物、游戏、室内安全、环境监控等类型。应当理解,感知单元的类型不限于上述分类方式。
基于感知单元的分类,倒排索引产生装置1130进一步被设置为,基于分类得到的感知单元集合,形成按照感知单元类型区分的多个倒排索引。多个倒排索引可以存储在不同的设备中,这些设备可以是物理设备也可以是虚拟设备。如图4所示机器人控制引擎1100还可以包括:控制条目检索代理装置1160,被设置为分析机器人1200的感知数据包含的感知单元,并基于所包含的感知单元的类型选择对应的倒排索引。控制条目检索装置1140进一步被设置为,基于控制条目检索代理装置1160选取的倒排索引检索用于控制机器人1200交互行为的控制条目。
在某些实施例中,如图4所示机器人控制引擎1100还可以包括多个控制条目检索装置1140,每个控制条目检索装置1140可以对应至少一个感知单元类型的倒排索引。控制条目检索代理装置1160可以存储每个控制条目检索装置1140对应的感知单元的类型,以便基于感知数据所包含的感知单元的类型选择对应的倒排索引,由对应的控制条目检索装置1140检索感知数据中的感知单元对应的控制条目。
在某些实施例中,倒排索引产生装置1130可以进一步被设置为,基于数字签名技术(例如,MD5等)将控制条目中的触发条件包含的感知单元的取值变换成整形整数,以变换得到的整形整数为主键、以控制条目的标识为目标产生倒排索引。控制条目检索装置1140进一步被设置为,基于数字签名技术将机器人1200的感知数据中感知单元的取值变换成整形整数,基于感知数据中感知单元的取值变换得到的整形整数和倒排索引检索用于控制机器人1200交互行为的控制条目。
在某些实施例中,机器人1200的感知数据可以包括多个感知单元,基于多个感知单元检索到控制条目后,机器人控制引擎1100基于检索到的控制条目,合成与机器人的感知数据匹配的控制条目。
图5示出了本发明又一实施例的机器人控制引擎1100。如图5所示,相比图4所示的机器人控制引擎1100,该机器人控制引擎1100还可以包括:检索结果合成装置1170,被配置为合并基于机器人1200的感知数据中的各个感知单元的取值检索到 的控制条目,形成与机器人1200的感知数据匹配的控制条目。
在某些实施例中,检索结果合成装置1170进一步被设置为,基于检索到的控制条目中构成触发条件的感知单元之间的逻辑关系合并检索到的控制条目,形成与机器人1200的感知数据匹配的控制条目。检索结果合成装置1170可以对基于每个感知单元的取值检索到的控制条目的集合求交集,形成机器人1200的感知数据对应的一个或多个控制条目。
如图5所述的机器人控制引擎1100还可以包括:控制条目排序装置1180,被设置为对控制条目检索装置1140检索到的控制条目进行排序,以基于排序的结果选取控制机器人交互行为的控制条目。检索结果合成装置1170可以形成机器人1200的感知数据对应的一个或多个控制条目,控制条目排序装置1180可以基于预设策略对形成的多个控制条目进行排序,以选取基于机器人1200的感知数据控制机器人1200交互行为的控制条目。
图6示出了本发明再一实施例的机器人控制引擎1100。如图6所示,相比图5所示的机器人控制引擎1100,该机器人控制引擎1100还可以包括以下之一或任意组合:用户反馈获取装置1190,被设置为获取多个用户1300对机器人1200的交互行为的用户反馈;控制条目执行情况记录装置1192,被设置为记录控制条目的执行情况信息,形成执行日志;控制条目优先级配置装置1194,被设置为配置控制条目的优先级;用户行为记录装置1196,被配置为记录用户行为,形成用户行为日志。
在某些实施例中,用户反馈包括但不限于用户1300对机器人1200的交互行为的评价,评价的方式包括但不限于用户1300在机器人1200执行交互行为后的语音反馈、用户1300与机器人1200的肢体接触、用户1300通过终端(例如智能手机等)发送的反馈指令等。控制条目的执行情况信息包括但不限于控制条目的执行次数、控制条目的执行时间、控制条目的执行成功率等。控制条目的优先级可以基于控制条目的来源设置,优先级高的控制条目可以优先被选取。
在如图6所示的机器人控制引擎1100中,控制条目排序装置1180进一步被设置为,基于用户反馈、和/或执行日志、和/或控制条目的优先级、和/或用户行为日志对控制条目检索装置1140检索到的控制条目进行排序,以基于排序的结果选取控制机器人交互行为的控制条目。
图7示出了本发明再一实施例的机器人控制引擎1100。如图7所示,相比图3 所示的机器人控制引擎1100,该机器人控制引擎1100还可以包括互联网内容抓取装置1198,被设置为从互联网抓取内容,形成互联网内容集合。其中,控制条目产生装置1120,进一步被设置为基于互联网内容集合、预设的感知单元和预设的交互行为,产生基于机器人的感知数据控制机器人的交互行为的控制条目。互联网内容包括以下至少之一或任意组合:网页、文字、声音、视频、图像。
例如,可以通过数据抓取工具(例如,爬虫等)抓取互联网内容,基于数据挖掘算法对抓取的互联网内容进行分析,得到互联网内容集合。互联网内容集合可以以“if this then that”(如果满足这样,那么那样)的形式构建,描述各个条件下的反馈。例如,描述某一问题的答案、描述某一情绪的表情或肢体动作等。控制条目产生装置1120,进一步被设置为基于互联网内容集合、预设的感知单元和预设的交互行为产生基于机器人的感知数据控制机器人的交互行为的控制条目。
在某些实施例中,可以从互联网抓取内容(例如网页等),对抓取的内容进行分析,得到用于设置控制条目的内容,根据这些内容设置触发条件和触发条件触发的交互行为。例如,从互联网中抓取到生病时拨打急救电话,可以根据感知单元设置“生病”的触发条件,并将该触发条件触发的交互行为设置为“拨打急救电话”。如果预先定义了“健康状况”这一感知单元,可以直接将感知单元的值设置为“生病”,构成的触发条件可以为{if(“health”:“sick”)}。基于上述过程,得到一条控制条目,在检测到用户1300处于生病状态时,执行拨打急救电话的交互行为。
本发明实施例实现了如下技术效果:预先定义了控制机器人交互行为的感知单元,将其作为控制机器人交互行为的最小单元,根据感知单元设置触发条件和触发条件所触发的交互行为,得到控制机器人的控制条目,统一了机器人控制的输入输出标准,使得非技术人员也可以编辑机器人的行为,从而便于控制机器人的交互行为,有效提高机器人自适应交互行为能力与智能化程度。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例 不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。