基于Choregraphe的Pepper机器人智能交互开发与应用
2020-12-09张欣婷
◆张欣婷
(国家特种机器人产品质量监督检验中心(福建)福建 362011)
1 引言
在现代信息技术的浪潮中,人工智能已经成为当前最为热门的话题之一。AI+应用于服务业等各个领域。目前,我国正处于中国制造向中国智造迈进的大背景下,机器人产业迎来了全新机遇[1]。在各种机器人品类中,比较典型的就是基于人机交互的智能机器人。Pepper在教育及商业的应用领域极其广泛,但由于目前日本软银已针对中国大陆禁止下载使用应用商店的APP,因此国内使用Pepper的机构纷纷开始加入基于Pepper的应用开发中。对此本文则基于Pepper智能机器人Naoqi平台进行二次开发,构建一个可用于智能讲解的定制化交互解决方案,并对该应用的设计与实现进行详细叙述。
2 应用整体架构设计
本文主要以智能讲解的定制化需求为前提,对Pepper机器人进行研究与设计。设计工作主要以日常讲解、规划引导路径、人机交互情感交流为目标,采用语音对话方式构建来访者与机器人之间沟通的桥梁,涉及机器人脸部识别、听说、肢体表达、周围环境雷达探测排障等行为方式,以此对来访者的下一步行为进行判断与规划,使Pepper机器人形成闭环系统。具体Pepper机器人交互系统实现框架如图1所示[2]。
图1 Pepper机器人交互应用实现框架
根据图 1看出,本文所设计的智能讲解机器人解决方案主要是在Pepper机器人平台的Naoqi系统进行设计与开发,通过系统中所支持的接口模块进行二次开发,使该应用能够满足引导讲解过程中的功能需求。在应用的基本功能中,智能讲解机器人通过红外追踪和脸部识别模块唤醒应用的执行,在根据识别到的对话做出不同的行为反馈。语音处理主要由语音识别以及语音合成两部分构成,智能讲解机器人主要通过肢体动作结合语音的方式,来对其情感进行表达,再利用网络通信功能对系统服务器中的语音功能进行调用,以此实现与来访者之间的沟通与交互。
3 开发环境介绍与搭建
3.1 硬件环境介绍
本文主要选用 Pepper机器人作为本次设计的开发平台。Pepper机器人是一种由法国Aldebaran Robotic公司和日本软银集团所设计研发的一种可编程仿人机器人。该机器人高约120cm,全身上下遍布着20个自由度及系列传感器,具体包括红外线传感器、声纳传感器等。同时,Pepper机器人还拥有2个摄像头以及4个麦克风,CPU主要运行于Linux内核之上。相较于同类型的机器人平台,Pepper机器人的Naoqi系统具备基础功能模块全面这一显著特征,并且拥有多种传感器以及丰富的开发接口,能够为本次智能讲解解决方案的设计提供极大的支持。如Pepper机器人内部具备平面运动模块,能够对机器人的运动控制起到支持,实现机器人在既定平面进行轨迹直线或者曲线运动;Pepper机器人还具备语音识别功能,能够根据识别到不同的语言根据既定的代码触发不同的事件,这些基础核心接口的实现使得基于Naoqi的自定义开发提供了强有力的支持。
3.2 软件开发环境介绍与搭建
Choregraphe 是一款多平台的应用软件,用 Choregraphe 可以创建应用于Pepper机器人的行为模块,并连接到Pepper机器人上,从而测试用户所创建的行为模块。简而言之,Choregraphe 是一款专门用于Pepper机器人应用开发的控制软件。它采用的是图形化编程,通过一些指令盒的组合形式,足以实现多种复杂行为,并且Choregraphe还提供给用户自定义使用 Python 语言编写模块和调用SDK接口的功能。通过如下步骤就可以完成无线化进行Pepper应用方案的设计和开发:
(1)将Pepper机器人开启,在“设置”面板中会显示当前Pep per机器人的Naoqi版本。将Pepper机器人连接至可用的WIFI中,按下其腹部中的白色按钮,当WIFI连接成功的情况下 Pepper会说出自己当前的IP地址。
(2)在 https://community.aldebaran.com/en/resources/software中设置机器人为Pepper,Naoqi系统版本为2.5.5后下载对应的Choreg raphe 2.5.10版本。安装好后启动Choregraphe 2.5.10,择“连接”>连接到”,如图2所示,输入Pepper当前的IP地址,端口默认是95 59,点击连接。连接到Pepper的Naoqi系统后即可进行开发和联机测试。
图2 Choregraphe 2.5.10软件与Pepper机器人的连接设置
3.3 应用详细设计
整体的智能讲解的定制化交互解决方案具体的应用流程图如图3所示。
图3 智能讲解定制化交互解决方案流程图
从图 3可知,本文中提到的应用在机器人开机后是给其设置了一个触发器条件('Launchpad/RobotType'=="Pepper")当开机程序识别到当前机器人名称为 Pepper时自启动该应用。该应用调用Choregraphe中的Face Detection指令盒,当Pepper机器人识别到人脸时即传递输入信号到Face Detection中,并且Face Detection的输出端激活信号,运行到下一个Human Detected时间轴指令盒和Hello时间轴指令盒中。此时机器人会做出招手动作,并对来访者发出hello的发音同时Pepper的平面展示器上显示Hello的动态图片。整个人脸识别和反馈行为的设计如图4所示。
识别到人脸后在连续 120秒的时间内如果机器人有识别到匹配的语言会根据usual/usual_mnc.top中的rules给出对应反馈的内容。会话编程在Choregraphe中需要先添加一个Set Language指令盒将语言设置为将语言设置为Chinese,接着添加一个对话框指令盒usual,添加usual主题后生成usual/usual_mnc.top的对话文件。输入对话规则即可。在该应用方案中也有多个功能性时间轴模块,在会话中要将输出端指向对应的功能性时间轴指令盒的方式就是将输出端名称设置成一个参数,将这个参数赋值为1即可。整个会话模块的详细实现如图5所示。
图4 人脸识别模块的实现示意图
图5 会话模块的实现示意图
在智能讲解机器人解决方案中除了语音会话模块上,还具备交互行为。例如弹吉他、绕口令、跟来访者玩游戏互动、按路线进行讲解等。这些交互行为都是通过一个或者多个时间轴指令盒编程来实现的。时间轴指令盒分成动作和行为层。整个时间轴都基于时间标尺。运动层就是存储在时间线上的动作。每个帧对应于机器人关节的位置。当时间轴开始时,时间光标位于开始帧上。然后定期将其增加到下一帧,直到到达“结束帧”。而行为层表示Pepper除了动作之外还将要执行的其他操作,例如播放音乐、播放视频、发出指定的对话、按照规划的路径进行平面移动等。其中平面移动是Pepper特有的一个核心模块。平面移动的时候,Pepper机器人为了实现避障控制,需要从它的两个前端声纳获取信息,对这些数据进行处理,并将清晰的输出发送给速度和角度控制模块。为了在未知环境中导航,机器人必须获取信息、处理信息并为任务提供最佳解决方案。实现其按照规定路径移动每一条路径需要新建一个.pmt平面移动项目,在一个时间轴指令盒中行为层插入“面移动项目,在一个时间指令盒,将其参数设置为pmt文件的路径,如图6所示。
图6 平面移动的实现示意图
另外弹吉他、绕口令、互动游戏的行为层实现如图7所示。每个行为层的实现还有出现时间轴指令盒嵌套的情况。绕口令中的//部分引用的是Naoqi系统中对于声音参数的设置,例如音调、语速等等,使得机器人的发音更加贴切和生动。
图7 交互功能行为层的实现示意图
4 测试和总结
将程序打包安装到机器人的Naoqi系统中。按照黑盒测试中的场景法进行功能测试。发现无论是对话功能,还是交互行为,该智能讲解机器人都可给出很好的反馈,满足日常接待来访参观人员的需求。但是在运行应用过程中有如下注意事项,在本文中汇总供读者和广大Pepper开发人员参考。
(1)Pepper在充电状态下无法让其行走。
(2)Pepper在充电口没有往下盖好的情况下也不能触发行走相关的行为。
(3)Pepper电量过低也会导致行为触发失败。