基于机器人操作系统ROS的人机交互方法与流程

文档序号:12678482阅读:489来源:国知局
基于机器人操作系统ROS的人机交互方法与流程

本发明属于物理技术领域,特别涉及人机智能交互技术领域中的一种基于机器人操作系统ROS(Robot Operating System)的人机交互方法。本发明可用于人与机器人之间的语音问答交互,以及通过语音控制机器人。



背景技术:

在智能人机交互技术领域,语音作为一种直接、方便的途径,在人与机器人交互时扮演着十分重要的角色。通过语音实现人机交互,可以使得机器人能理解人们的意愿,并尽可能准确地满足人们的需求。

江西洪都航空工业集团有限责任公司在其申请的专利文献“一种智能服务机器人语音交互方法”(公开号:CN104392720A,申请号:CN201410704830,申请日:2014年12月01日)中公开了一种智能服务机器人根据本地语音问答语句表来回答人们的提问,以及反馈天气、新闻等实时性信息的方法。该方法采用存储于机器人的本地语音问答语句表来实现人与机器人之间的包括食物、笑话、历史以及音乐等多个不同领域的问答交流,而对于人们提出的实时性信息问题,比如天气查询、新闻查阅等,则是采用网上爬取的方式获得对应的回答内容。为了适应同一种问题的不同提问方式,该发明为同一种问题提供了多种不同提问方式的模板。该方法存在的不足之处是,首先,所提出的方法通过匹配人们的提问与本地语音问答语句表中的问题模板来获取对应的回答内容,对于不属于语音问答语句表中的提问,机器人则只能回答通用内容,这使得该方法通用性不强。其次,所提出的方法只适用于人与智能服务机器人之间的语音问答交互,而不能实现人们通过语音控制机器人的能力,方法功能单一,可拓展性差。

王文,赵群飞,朱特浩在其发表的“人-服务机器人交互中自然语言理解研究”(Microcomputer Applications Vol.31,No.3,2015)论文中提出了一种通过语音的方式命令服务机器人控制家用电器、播放音乐、打电话或发送电子邮件的方法。该方法根据机器人所支持的功能,设计了一套控制指令体系,通过把语音识别模块的识别结果与控制指令体系匹配来命令机器人应该做什么。该方法存在的不足之处是,只适用于通过语音控制机器人,未涉及到人与服务机器人之间的日常聊天交流功能,人机交互能力不强。此外用户语音输入必须遵循设定的控制指令模式,方法的适用面窄,不能适应人们日常的说话习惯。

综上所述,虽然现有方法都可以实现通过语音与机器人交互,但方法的适用面往往较窄,并且不能很好的适应机器人功能的拓展需求。



技术实现要素:

本发明的目的是针对上述已有技术的不足,提出了基于机器人操作系统ROS(Robot Operating System)的人机交互方法,以扩展人机交互方法的适用面,满足机器人功能的拓展需求。本发明通过建立常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库,方便库内容的修改、增添和删减管理;利用常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库训练贝叶斯分类器,采用贝叶斯分布器将从语音识别功能获取的文字信息划分为上述三种库中的某一类,然后再进行语义分析,提高了语义分析时的运算速度;采用机器人操作系统ROS(Robot Operating System),实现机器人各个功能之间的信息传输,满足机器人功能的拓展需求。

为实现本发明的目的,需要在微型主机中安装机器人操作系统ROS(Robot Operating System),并定义机器人各个功能之间传输的信息格式;在微型主机中建立人机交互时所需的常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库,并利用常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库训练贝叶斯分类;采用贝叶斯分类器将从语音识别功能获取的文字信息划分为常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库中的某一类。

实现本发明目的的具体步骤如下:

(1)安装系统:

在微型主机中安装机器人操作系统ROS(Robot Operating System);

(2)创建人机交互库:

在微型主机中创建人机交互所需的常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库;

(3)初始化分类器:

利用常问问答FAQ(Frequently Asked Question)库中的所有问题、实时性问题库中的所有问题、机器人控制指令库中的所有指令训练贝叶斯分类器,完成分类器初始化;

(4)获取文字信息:

将机器人外置麦克风采集的语音信息识别为文字信息,将识别的文字信息发送到贝叶斯分类器;

(5)对文字信息进行语义分析:

(5a)利用中文分词方法,对贝叶斯分类器接收到的文字信息进行分词、停用词去除处理,收集处理后的文字信息包含的词语,得到文字信息词语集;

(5b)依照贝叶斯分类词表中词语的顺序,将文字信息词语集中每个词语在贝叶斯分类词表中出现的次数组成一维向量;利用贝叶斯分类器计算一维向量属于常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库的概率值,选取最大概率值对应的类别库,作为文字信息所属类别库;

(5c)利用相似度计算方法,分别计算文字信息与其所属类别库中每个问题、指令信息的语义相似度值,从中选取语义相似度值最大的问题、指令信息;

(5d)采用机器人操作系统ROS(Robot Operating System)提供的服务Service通信方式,将文字信息和选取的问题、指令信息以请求的形式发送至机器人服务功能节点;

(6)机器人服务功能节点响应请求:

机器人服务功能节点采用机器人操作系统ROS(Robot Operating System)提供的服务Service通信方式,响应客户Client的请求,为客户Client提供服务。

本发明与现有技术相比较具有如下的优点:

第一,本发明通过使用创建的常问问答库、实时性问题库、机器人控制指令库,进行人机交互库的分开增添、删减和修改管理,克服了现有技术方法的适用面窄,只适用于人与智能服务机器人之间的语音问答交互,而不能实现通过语音控制机器人的不足,使得本发明在人机交互时具有更广的适用面,提高了人机交互方法的适用范围。

第二,本发明通过采用语义分析,对从用户语音中识别出的文字信息进行处理,理解用户使用机器人时的意愿需求,克服了现有技术方法对于不属于语音问答语句表中的提问,机器人只能回答通用内容,用户语音输入必须遵循设定的模式的不足,使得本发明提高了机器人接收信息的内容范围,更加适应人们日常的语言表达习惯,人机交互时具有更强的通用性。

第三,本发明采用机器人操作系统ROS(Robot Operating System),由于机器人操作系统ROS(Robot Operating System)是一种分布式的进程框架,使得执行程序可以独立设计、松散地、实时地组织起来,使用机器人操作系统ROS(Robot Operating System)可以独立开发、调试和优化人机交互时各个部分,并且具有后期功能拓展能力强的特点,克服了现有技术方法功能拓展性差的不足,使得本发明能更好的满足机器人功能拓展的需求。

附图说明

图1为本发明的流程图;

图2为本发明的语义分析步骤的流程图。

具体实施方式

下面结合附图对本发明做进一步的描述。

参照图1,本发明的具体实施步骤如下:

步骤1,安装系统。

在微型主机中安装机器人操作系统ROS(Robot Operating System)。

所述的机器人操作系统ROS(Robot Operating System)支持C++、Python、Octave和LISP编程语言,并且体积小,适合嵌入式设备。

步骤2,创建人机交互库。

在微型主机中创建人机交互所需的常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库。

常问问答FAQ(Frequently Asked Question)库是指,通过采用上下罗列“常问问题+常问问题答案”内容的形式编写的人机交互时有固定回答内容的日常交流问题。

实时性问题库是指,通过采用上下罗列“实时性问题”内容的形式编写的人机交互时实时性变动不固定回答内容的日常交流问题。

机器人控制指令库是指,通过采用上下罗列“控制指令”内容的形式编写的人机交互时控制机器人的指令文字信息。

在本发明的实施例中,常问问答FAQ(Frequently Asked Question)库包含122条问题答案对,内容涉及图书馆信息查询和银行业务咨询。实时性问题库包含12条问题,内容涉及天气查询、时间查询和日期查询。机器控制指令库包含28条控制指令,内容涉及机器人行走和音乐播放。

步骤3,初始化分类器。

利用常问问答FAQ(Frequently Asked Question)库中的所有问题、实时性问题库中的所有问题、机器人控制指令库中的所有指令训练贝叶斯分类器,完成分类器初始化。

所述的训练贝叶斯分类器的具体步骤如下:

第一步,利用中文分词工具对常问问答FAQ(Frequently Asked Question)库中的所有问题、实时性问题库中的所有问题、机器人控制指令库中的所有指令进行分词、停用词去除处理,收集处理后的常问问答FAQ(Frequently Asked Question)库中的所有问题包含的词语,组成常问问答FAQ(Frequently Asked Question)库问题词语集;收集处理后的实时性问题库中的所有问题包含的词语,组成实时性问题库问题词语集;收集处理后的机器人控制指令库中的所有指令包含的词语,组成机器人控制指令库指令词语集。

第二步,将常问问答FAQ(Frequently Asked Question)库问题词语集、实时性问题库问题词语集、机器人控制指令库指令词语集组成贝叶斯分类词表。

第三步,按照下式,计算先验概率值:

其中,P(wk|vj)表示在vj的条件下wk出现的先验概率值,wk表示贝叶斯分类词表中的第k个词语,vj表示常问问答FAQ(Frequently Asked Question)库问题词语集、实时性问题库问题词语集或者机器人控制指令库指令词语集,nk表示wk在vj中出现的次数,nj表示vj包含的词语个数,Vocabulary表示贝叶斯分类词表,|·|表示统计总数操作。

本发明实施例中所采用的中文分词工具是开源分词工具结巴jieba分词。

本发明实施例中训练得到的贝叶斯分类器是个多分类器,能划分常问问答FAQ(Frequently Asked Question)库、实时性问题库和机器人控制指令库三个类。

步骤4,获取文字信息。

将机器人外置麦克风采集的语音信息识别为文字信息,将识别的文字信息发送到贝叶斯分类器。

本发明实施例中的语音识别采用科大讯飞提供的软件工具开发包SDK(Software Development Kit)。

步骤5,对文字信息进行语义分析。

第一步,利用中文分词方法,对贝叶斯分类器接收到的文字信息进行分词、停用词去除处理,收集处理后的文字信息包含的词语,得到文字信息词语集。

第二步,依照贝叶斯分类词表中词语的顺序,将文字信息词语集中每个词语在贝叶斯分类词表中出现的次数组成一维向量;利用贝叶斯分类器计算一维向量属于常问问答FAQ(Frequently Asked Question)库、实时性问题库、机器人控制指令库的概率值,选取最大概率值对应的类别库,作为文字信息所属类别库。

第三步,利用相似度计算方法,分别计算文字信息与其所属类别库中每个问题、指令信息的语义相似度值,从中选取语义相似度值最大的问题、指令信息。

第四步,采用机器人操作系统ROS(Robot Operating System)提供的服务Service通信方式,将文字信息和选取的问题、指令信息以请求的形式发送至机器人服务功能节点。

本发明的相似度计算方法融合了文字信息表面特征的方法和词语词义特征的方法。

相似度计算方法步骤如下:

第一步,采用词频率-逆文档频率TF-IDF(Term Frequency–Inverse Document Frequency)方法,计算文字信息M和N文字信息表面特征的相似度值。

计算公式如下:

其中,Sim1(M,N)表示M和N文字信息表面特征的相似度值,0≤Sim1(M,N)≤1,M表示第一个文字信息,N表示第二个文字信息,ψ1表示通过词频率-逆文档频率TF-IDF(Term Frequency–Inverse Document Frequency)方法将文字信息M映射成的特征向量,ψ2表示通过词频率-逆文档频率TF-IDF(Term Frequency–Inverse Document Frequency)方法将文字信息N映射成的特征向量,|·|表示取模操作;

第二步,利用中文知识词典,计算文字信息M和N词语词义特征的相似度值。

本发明实施例中所采用的中文知识词典是由董振东和董强编写的一个以汉语和英语词语所代表的概念为描述对象以揭示概念与概念之间以及概念所具有的属性之间关系为基本内容的常识知识库《知网》。

计算公式如下:

其中,Sim2(M,N)表示M和N词语词义特征的相似度值,0≤Sim2(M,N)≤1,M表示第一个文字信息,N表示第二个文字信息,n表示中文文字信息M经分词和停用词去除处理之后所包含的词语个数,Mi表示将M分词后得到的n个词语中的第i个词语,Nopt表示将N分词后得到的与Mi在词义上最相似的词语,γk表示simk(Mi,Nopt)所占的权重,一般取0≤γ4≤γ3≤γ2≤γ1≤1,且γ1234=1,sim1(Mi,Nopt)表示利用中文知识词典《知网》计算出的Mi和Nopt第一基本义原描述的相似度值,sim2(Mi,Nopt)表示利用中文知识词典《知网》计算出的Mi和Nopt其它基本义原描述的相似度值,sim3(Mi,Nopt)表示利用中文知识词典《知网》计算出的Mi和Nopt关系义原描述的相似度值,sim1(Mi,Nopt)表示利用中文知识词典《知网》计算出的Mi和Nopt关系符合描述的相似度值;

本发明实施例中γ1取0.5,γ2取0.2,γ3取0.17,γ4取0.13。

第三步,融合文字信息M和N文字信息表面特征的相似度值和词语词义特征的相似度值,得到文字信息M和N最终的语义相似度值:

计算公式如下:

Sim(M,N)=α*Sim1(M,N)+β*Sim2(M,N)

其中,Sim(M,N)表示M和N最终的语义相似度值,0≤Sim(M,N)≤1,M表示第一个文字信息,N表示第二个文字信息,α表示Sim1(M,N)所占的权重,Sim1(M,N)表示M和N文字信息表面特征的相似度值,β表示Sim2(M,N)所占的权重,Sim2(M,N)表示M和N词语词义特征的相似度值,一般取0≤β≤α≤1,且α+β=1;

本发明实施例中α取0.7,β取0.3。

步骤6,机器人服务功能节点响应请求。

机器人服务功能节点采用机器人操作系统ROS(Robot Operating System)提供的服务Service通信方式,响应客户Client的请求,为客户Client提供服务。

所述的机器人服务功能节点包括提供语音合成及音频播放服务的功能节点、实时性信息获取服务的功能节点、机器人控制服务的功能节点。提供语音合成及音频播放服务的功能节点解析请求中的问题、指令信息,获取与问题信息对应的常问问答FAQ(Frequently Asked Question)库中的“常问问题答案”,将“常问问题答案”合成为语音并播放,实现人机问答交互。提供实时性信息获取服务的功能节点解析请求中的问题、指令信息,由问题信息内容决定应该执行的服务,并且这些功能节点可以进一步去请求提供语音合成及音频播放服务的功能节点。提供机器人控制服务的功能节点解析请求中的问题、指令信息,由指令信息内容决定机器人应该执行的动作,实现控制机器人。

下面结合实施例对本发明的语义分析步骤作进一步的说明。

1.实验条件:

本发明软件实验平台为:Ubuntu 12.04 32位操作系统、机器人操作系统ROS(Robot Operating System)hydro版本。

2.实验内容与结果分析:

图2为本发明语义分析的流程图。为了检验语义分析的有效性,实验分别计算了有固定回答内容的文字信息“电子版学位论文公开时间?”与常问问答FAQ(Frequently Asked Question)库中问题的语义相似度值、实时性变化不固定回答内容的文字信息“今天天气怎么样?”与实时性问题库中问题的语义相似度值、控制机器人的指令文字信息“前进!”与机器人控制指令库中指令的语义相似度值。

语义相似度值是一个取值范围为[0,1]的实数,并且取值越接近0,则表明两个文字信息所表达的语义越不相似,反之,取值越接近1,则表明两个文字信息所表达的语义越相似。

为了便于分析对照语义分析的实验结果,表1、表2和表3分别给出了文字信息“电子版学位论文公开时间?”、“今天天气怎么样?”、“前进!”与各自自身的语义相似度值。

表1给出了文字信息“电子版学位论文公开时间?”与常问问答FAQ(Frequently Asked Question)库中部分问题的语义相似度值。比较文字信息“电子版学位论文公开时间?”与“如何提交电子版学位论文”,从词形上分析,可以看出两个文字信息包含的相同词语数目较多,从要表达的内容上分析,可以看出两个文字信息要表达的内容均和“电子版学位论文”相关,所以两个文字信息语义上的相似度应该较大,从表1可以看出,计算出的这两个文字信息的语义相似度为0.6240,非常接近于1.0。而“在图书馆丢失的物品怎么领取?”、“图书馆开馆时间?”与“电子版学位论文公开时间?”所表达的语义内容几乎完全不同,所以得到的语义相似度值也相对较小。表1中给出的结果证明了本发明中的语义分析具有很好的性能。

表1常问问答FAQ库语义分析结果一览表

表2给出了文字信息“今天天气怎么样?”与实时性问题库中部分问题的语义相似度值。比较文字信息“今天天气怎么样?”与“告诉我今天天气怎么样?”,从词形上分析,可以看出两个文字信息包含的相同词语数目较多,从要表达的内容上分析,可以看出两个文字信息要表达的内容完全相同,所以两个文字信息语义上的相似度应该较大。

表2实时性问题库语义分析结果一览表

从表2可以看出,计算出的文字信息“今天天气怎么样?”与“告诉我今天天气怎么样?”的语义相似度为0.7650,非常接近于1.0。文字信息“今天天气怎么样?”与“明天天气怎么样?”在词形上有很大的相同,并且要表达的语义均是和天气查询相关,所以两个文字信息也有较大的语义相似度。而和天气完全不相关的文字信息“今天的日期是几号?”、“现在是几点?”与文字信息“今天天气怎么样?”的语义相似度值很小。表2中给出的结果也证明了本发明中的语义分析具有很好的性能。

表3给出了文字信息“前进!”与机器人控制指令库中部分指令的语义相似度值。比较文字信息“前进!”与“向前进!”,两个文字信息要表达的语义内容完全一样,所以计算出的两个文字信息的语义相似度值0.7317,非常接近于1.0。而无论从词形还是从要表达的内容上看,“前进!”与“后退!”、“向左转!”、“向右转!”几乎不相关,所以计算出的语义相似度值很小。表3中给出的结果也证明了本发明中的语义分析具有很好的性能。

表3机器人控制指令库语义分析结果一览表

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1