(二) NAO(V5) Choregraphe 开发环境介绍

一、前言

第二篇为开发环境介绍,Choregraphe在官网有很详尽的教学,Choregraphe为图形化介面,可以轻鬆的写出说话、移动、人脸辨识的程式,而无需写任何程式码,当然,较为複杂的功能还是需要,建议新手把基础介绍的hello world三个部分看完,要更仔细的介绍就看Tutorial。
Choregraphe基础介绍: What is Choregraphe
Choregraphe Tutorials: Choregraphe Tutorials

二、环境介面

http://img2.58codes.com/2024/20123336rCeo2eoAgL.jpg
上图为choregraphe环境介面,大概分为八个部分,分别为:

基本操作区: 有开档、读档、连接机器人、调整机器人声音及状态、看机器人目前电量等。专案目录区(Project content): 可看到专案大概的档案架构,Choregraphe中设计好的流程为一个behavior,其中会有一个或多个Box,Properties中可描述专案及改专案名称等。函式库区(Box libraries): 里面提供已写好的各种功能的Box可以直接使用,可直接拖曳去4号的工作执行区使用。工作执行区(grey area): 可以在里面新增Box或dialog,透过右键新增或拖曳函式库区的Box使用。讯息输出区(Log viewer): 专案执行后的输出都会在这,log有分level,输出则是看你怎么设定log,通常我是用Info level输出资料。对话区(Dialog): 正常不会显示,在view中选取Dialog打勾后就会出来,可以在里面打字与机器人对话,在behavior中有设定Dialog或Speech Reco. 的Box时,在跑专案时可透过Dialog区打字使机器人辨识,也会输出机器人说出的话等。影像区(Video monitor)、标準动作函式库(Pose library): video monitor显示目前NAO拍摄的影像。 Pose library有基本动作,点下去机器人会即时做出相应的动作。机器人应用区(Robot Applications)、机器人视图区(Robot View): 显示目前机器人已安装的专案,也可设定开机直接启动哪一个专案,里面的Animation library内建了许多机器人已设定好动作的behavior,使用时直接call非常方便。 视图区可看到目前机器人的模拟的动作等,如果侦测到人脸会出现黄色球。

三、程式设计

基本的专案执行在hello world 1(Choregraphe基础介绍网址中)有讲解,我主要介绍Box如何设计,从下图的BOX中开始,在Choregraphe上开发上的好处是能够看到目前在哪个Box中运作,方便程式设计者掌控系统的流程,每个Box都是一个class,需要设定输入的资料型态以及输出的格式并有特定的写法,从Box中http://img2.58codes.com/2024/20123336teFdASVFWC.png 点右键选取Edit box可看到目前box的input/ouput及拥有的变数

http://img2.58codes.com/2024/20123336twK6mjhaE7.png

我们接着点击inputs中的中间的蓝色方块,目前选择的是onStart的input,所以会看到下图的画面,对应到的是Box图左上角黑色箭头的进入点
http://img2.58codes.com/2024/201233368DFIi8KKic.png

其中要修改的为Name、Type跟Nature,Name为你的method名称,程式码的method名称必须与Name一致,input的method必须加上onInput及底线写为def onInput_yourmethodname(self):,Type为输入的资料型态,Nature为输入点的型态。

Type可设为:

Dynamic: 输入甚么型态都可以"Bang": 不输入资料String: 字串number: 数字

Nature可设为:

onStart: 通常会写为初始化Box会使用到的变数,设定一些要用的状态等,基本上只会设一个input的Nature为onStart。onEvent: 对应到Box的class中写好的method。onStop: 取消使用此Box,对应的method中大多会写为清除使用的变数。

以下图来讲解Box的功能设计範例,使用内建的Speech Reco. Box以及为其所对应的内容程式码讲解。

http://img2.58codes.com/2024/20123336jwB5IFIhLX.png

每一个Box的进入点以及离开点都有各自设定好的输入输出,其根据不同的输出资料型态而有不同的颜色,例如Type为String输出线条为蓝色,要输出的型态以及资料数量都需要预先设定好,否则程式会出现错误,或者是没有接收到应该取得的资料。上图中的语音辨识进入点会跑到def onInput_onStart(self): 这一行的method开始运作,而如果要接收资料就要在Box那边设定Type为String,然后程式码部分改成def onInput_onStart(self, data): 才能够取得传输过来的资料。
http://img2.58codes.com/2024/20123336VGTbJZRwpT.png

以上大概是设计每一个Box的初步流程,在里面有要求使用麦克风等要透过NAO SDK中宣告变数才能使用ALSpeechRecognition模组以及ALMemory的模组,在透过里面的methods才能够开启语音辨识功能,以上则是choregraphe的Box大致上的开发流程,更多的请找Tutorials。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章