毕业设计(论文)-基于Choregraphe软件的NAO机器人的开发与应用(17页).doc
-毕业设计(论文)-基于Choregraphe软件的NAO机器人的开发与应用-第 9 页单位代码 密 级 公 开 学 号 学士学位论文 基于Choregraphe软件的NAO机器人的开发与应用论文作者:指导教师: 学科专业: 提交论文日期:论文答辩日期:学位授予单位:2015 年 12 月目 录摘要1Abstract21引言31.1 本课题研究的背景和意义31.2 Nao机器人简介31.3 Nao机器人的研究现状42 Nao机器人参数和常规使用52.1 Nao的结构参数52.2 Nao的使用和常见问题53 Nao机器人软件和编程63.1 Nao的编程软件63.2 Nao的编程编写83.2.1舞蹈视频的选择与动作分解83.2.2关键帧保存动作93.2.3行为层的设置103.2.4总程序的编写114结语134.1总结134.2存在的问题及下一步可能研究内容13参考文献:14致谢词:15摘要:随着科学技术的发展,机器人已经成为最能代表科技先进程度的产物,而机器人中,仿人型机器人更是集智能、高效、可靠、自动化等于一身,Aldebaran Robotics公司生产的Nao机器人是先进仿人机器人的杰出代表之一,本文主要对Nao机器人进行硬件和软件方面的学习,再使用Choregraphe软件的模块化编程方式对Nao机器人进行舞蹈程序的编写实现舞蹈动作。关键词:Nao机器人 ; Choregraphe软件 ;模块化编程 ;舞蹈程序Abstract:With the development of science and technology, robot has become the most representative of the advanced level of science and technology, and the robot, intelligent, high efficiency, reliability, automation is equal to one, Robotics Aldebaran company production of Nao robot is one of the advanced humanoid robot, this paper mainly on the Nao robot hardware and software aspects of learning, and then use Choregraphe software modular programming method for Nao robot dance program.Key words: Nao robot ; Choregraphe software ; modular programming ; dance program1引言1.1 本课题研究的背景和意义为了达到更高的生活水平,人们利用科技产物来提高生产能力,改善生活质量,最具代表性的改变就是机器人进入平常百姓家中以及机器人的工业化,而仿人型机器人1和服务型机器人2是与人们生活密切相关的高科技产物,对以Nao机器人为主要代表的仿人型机器人进行相关学科的研究是目前进行中最多的,因为Nao是先进仿人机器人的代表之一,Nao机器人诞生以来,就备受世界关注,它集智能、高效、可靠、自动化等于一身3。图1-1 Nao机器人本体 图1-2 Nao机器人现身RoboCup机器人世界杯赛随着对Nao机器人研究和开发的深入,Nao已经迈向服务型机器人,世界各知名大学和研究所都在对其进行相应的研究,就目前已有研究成果,Nao在科技竞赛4、迎宾、表演、教育等方面有很好的应用。随着今后对Nao的进一步开发,Nao将走进平常百姓家中,对助残、自闭症干预5、智能楼宇系统6等将有着很好的应用前景。对Nao的完善和研究,必将在改善生活质量,提高生活水平,提高生产效率,促进科技进步等方面做出不菲的贡献。1.2 Nao机器人简介Nao机器人是由法国Aldebaran Robotics公司制造的一款人工智能型机器人7,它是一个身高约58厘米,由工业塑料制成的可以自由编写程序的仿人型机器人。Nao是目前学术领域世界范围内运用最广泛的类人机器人,它具有很可爱的外形,研究人员可以通过编程软件对Nao进行编程,以达到不同的目的。Nao目前在各个学科和各个领域都有运用,全球各大高校将Nao运用在机器人研究8、人工智能、工程学、数学、物理学和计算机科学领域9和相关科技竞赛等,同时Nao在医学领域和物联网等领域也有很好的应用,其包括自闭症干预、智能楼宇控制等都是不菲的研究成果。Nao的身体拥有25个自由度,其中头部有2个自由度,每只手臂有5个自由度,每条腿有5个自由度,每只手有一个自由度,胯部有一个自由度;其关键部件为电机与致动器。Nao机器人能实现智能化要归功于遍布其全身的一系列传感器,包括2个位于额头和嘴部的摄像头,4个位于前后和两侧的麦克风,2个位于胸前的超声波距离传感器、2个位于眼部的红外线发射器和接收器,1个位于身体内部的惯性板、9个位于头顶和手部的触觉传感器及8个位于脚部的压力传感器。图1-3 Nao机器人硬件结构 图1-4 Nao机器人电机和自由度分布Nao的编程语言有很多,包括URBI Script、C、C+、Python等,编程软件有Aldebaran Choregraphe和Aldebaran SDK。本文则使用Aldebaran Choregraphe软件对Nao进行编程,通过软件简单易懂的模块化编程方式,可自由为Nao编写程序实现不同的功能。1.3 Nao机器人的研究现状Nao机器人目前是学术界用得最多10的类人机器人,其作为研究工具分布在全球各大高校和实验机构。现阶段的Nao主要被用来进行研究、展览、表演和相关的科技比赛,高校将Nao运用在人工智能、工程学11、物理学12和计算机学等领域,还用Nao机器人进行科技竞赛,知名的RoboCup公开赛的标准平台组就是以Nao机器人作为比赛平台13,Nao还在上海世博会、创博会、ChinaJoy盛会等大型活动中起到表演、迎宾等作用。Aldebaran Robotics公司开发了一个针对个人使用的娱乐平台,用户可以通过Nao Compagnon协会开发的Choregraphe软件自由为Nao编写程序。 图1-5 Nao机器人再自闭症干预中的表现突出 图1-6 Nao机器人在进行表演各个学科。目前正在进行将Nao应用于智能楼宇系统中,能提高智能楼宇系统的智能化15、信息化以及人性化水平,为人们提供更加舒适及安全的环境。此外,一些研究机构正在对Nao进行物联网、导游、导航等领域进行研究。2 Nao机器人参数和常规使用2.1 Nao的结构参数在完成设计之前,要先对Nao机器人的结构参数进行学习,以达到熟练使用和正确使用的目的。首先,通过Nao机器人使用说明书和相关资料了解Nao的结构参数。第一项是Nao机器人的自由度分布和关节移动范围:头部两个自由度分别控制Nao脑袋的扭转,其中控制头部关节在Z轴扭转的范围为-120°到120°,在Y轴前后运动的范围为-39°到39°;左右手臂各有5个自由度且呈对称分布,肩关节控制Y轴前后运动的范围为-120°到120°,控制Z轴左右运动的范围为0°到95°,肩关节控制在X轴扭转的范围为-90°到0°,肘关节控制在Z轴运动的范围为-120°到120°,腕关节控制在X轴扭转的范围为-105°到105°;Nao的左右手上各有一个自由度,其控制Nao的手部的打开或合拢;Nao左右腿的关节除髋关节和踝关节外其余均呈对称分布的,左髋关节控制腿部在Y轴前后运动的范围为-104.5°到28.5°,左髋关节控制腿部在X轴左右运动的范围为-25°到45°,左踝关节控制在Y轴前后运动的范围为-70.5°到54°,左控制X轴左右运动的范围为-45°到25°,右髋关节控制腿部在Y轴前后运动的范围为-104.5°到28.5°,右髋关节控制腿部在X轴左右运动的范围为-45°到25°,右踝关节控制在Y轴前后运动的范围为-70.5°到54°,右踝关节控制X轴左右运动的范围为-25°到45°;膝关节控制腿部在Y轴运动的范围为-5°到125°;髋部存在一个控制其髋部在Y轴运动的自由度,其运动范围为-65.62°到42.44°。第二项是整体特性:Nao的身高约58厘米,体重约4.3千克,机身材料是工业塑料,其配有AC 90-230V/DC24V的充电器,可以一边充电一边使用。Nao所使用的致动器包括霍尔效果传感器、dsPICS微控制器和MAXDN空芯被直流电机;Nao全身分布有很多传感器,包括陀螺仪、三轴加速器、碰撞器、双通道超声波传感器、红外线传感器、触觉传感器和压力传感器,这些传感器实现了Nao平衡控制、检测、视觉、触觉等功能,使Nao能很好地与外界环境交流,同时也是实现Nao智能化不可或缺的组件。2.2 Nao的使用和常见问题学习了Nao的结构参数之后就对Nao的常规使用和常见问题进行学习。先通过大量料资和使用手册学习最基本的操作,再到实验室进行实体机器人操作。在取出Nao的时候要注意:双手要抓住机器人的肩膀,然后双手用力向上提出机器人,这样有助于更好的保护机器人。机器人拿出来之后要让它处于一个蹲立的状态,单击机器人胸前的按钮开始启动,此时机器人眼部LED灯开始闪烁,直到变成绿色或蓝色并播放提示音即启动成功。启动后双击胸前按钮Nao全身的电机就会处于卸电状态,如果是处于网络连接状态,单击其胸前按钮则开始播报Nao的IP地址。Nao胸前的按钮有彩色的灯光,其显示的是Nao的电池电量,绿色是指机器人电池电量充足,红色并伴随着闪烁表示机器人电量不足,此时需要及时充电,充电接口在背部。机器人启动后有一个相应的语音提示,如果机器人内部安有程序,启动后它就会执行相应的程序,如果没有则处于一个初始状态。如果不使用机器人或在调试程序时,机器人处于一个闲置状态,此时最好把机器人全身卸电,然后使其处于蹲立状态,双手放在膝间,目的是保护机器人的电机和关节。图2-1 Nao机器人蹲立状态Nao机器人的外部网络连接有以太网连接和WIFI无线连接两种,本文使用的是以太网连接。将一根网线的两头分别插入Nao头部后面的接口和电脑主机网线接口,这样Nao的网络连接就搭建好了,然后只需要在电脑上打开软件进行相应的连接操作就可以对机器人进行实时控制了。Nao在运行过程中也会发出许多信号,比如当机器人在使用时间较长,或电机长期处于上电状态,机器人会自行播放motor hot的提示音,其表示为电机过热,此时需要做出相应的处理,否则机器人的电机会受到损害,处理方法是将机器人全身关节卸电,然后使其处于蹲立状态,待电机温度降低一些后再使用机器人。使用过程中可能还会发出battery low的提示音,这个提示音表示机器人电量过低,此时也应该做出相应的处理,否则机器人就将自行关机,处理方法是将电源适配器连接机器人对其进行充电即可继续使用。如果机器人电量已经低至关机,在连接电源后还应等待几分钟后再开机,否则会使开机失败。以上两点是机器人使用过程中最常见的两个问题。3 Nao机器人软件和编程3.1 Nao的编程软件Nao的编程语言包括URBI Script、C、C+、Python等。Nao的编程软件也有很多,其包含在内的有Aldebaran Choregraphe和Aldebaran SDK两种,本文所学习的为Choregraphe,该软件使用图形化、模块化编程,其编程方式简单、直观易懂,使用者可以通过软件对机器人进行各种程序的编写,以达到不同的使用目的。如图3-1所示为Choregraphe软件的初始界面,图中区域1表示项目操作按钮,其包括新建项目、保存项目、打开项目等操作,其下方的三个蓝色按钮是新项目、打开项目和保存项目的快捷操作按钮;图中区域2表示指令盒操作区,包括了新建、打开、保存、修改、增加指令盒等功能;图中区域3表示操作编辑,其主要包括对动作的撤销和恢复两个功能,下方两个灰色按钮是其快捷按钮;图中区域4是连接操作区,包括对机器人的连接、断开连接、动作播放、停止等功能,其下方圈出的区域13为其快捷操作按钮;图中区域5为视图操作区,点开后可打开视频显示器、项目内容、脚本编辑器、行为管理器和机器人视图等视图,从而达到相应的操作目的;图中区域6则为帮助按钮,其主要是对软件的相关功能和操作进行讲解和提示。图3-1中区域7为指令盒视图区,可在视图区进行隐藏和显示操作,该区域包含了很多预先设定的功能。其中Audio栏包含机器人的听和说的功能,主要实现机器人的说话、选择语音录入和识别等功能。Communication栏包含机器人的接发送邮件等相关功能。Data Edit栏主要实现机器人的数据编辑与处理等功能。Fallow Control栏主要实现机器人的逻辑运算能力,包括机器人的延时、判断、假设等语句功能,这些功能是实现机器人自我思考与判断的关键。LEDs栏主要控制机器人身上的各个LED灯。Math栏主要包含机器人的常用运算公式,比如从最小值到最大值(设置为参数)生成一个随机浮动。Motions栏主要包括几个已保存的舞蹈动作以及机器人行走动作和电机设置指令盒,通过该栏的指令盒可直接实现机器人的行走和预设的几个动作。Sensing栏主要包含的是机器人各个传感器的检测指令盒和位姿调整指令盒,利用该区域的指令盒可以实现机器人自主掌握平衡,自行监测自身各电机的温度等功能。Trakers主要是控制机器人的行走状态的指令盒,通过里面的指令盒可以实现机器人行走的细微控制。System栏主要是机器人自行报读名字和日期的指令盒。Visin栏主要是机器人实现脸部识别、跟着球走、记录声音、面部捕捉、相机控制等功能的指令盒。图3-1中空白区域为图形化软件编程区域,可以通过直接拖拽左侧指令盒库的指令盒到该区域中,然后通过相应的逻辑连接实现所设定的动作或目的。图中区域8是指令盒的层数显示与选择区,如一个指令盒作为容器使用,双击即可进入其下一层,在第二层中也可以进行相应的编辑操作,同时当点击相应的层数时视图会跳转至该层中,以进行相应的操作。图中区域9是开始点连线区域,该处只能和指令盒输入点进行连接,区域10为结束点连线,该点只能和指令盒输出点进行连接。图中区域11为姿势库,包含了3个简单的姿势,双击里面的机器人姿势便可直接实现机器人的动作,该区域可以通过视图进行隐藏和显示。图中区域12的4个按钮分别是音量控制按钮、模式选择按钮、全身电机上电或卸电按钮和机器人电量显示的图标。图3-1 Choregraphe软件界面图3-2 Choregraphe软件界面常用的几个视图3.2 Nao的编程编写本文使用Choregraphe软件的模块化编程方式来实现Nao的舞蹈动作,而在设计舞蹈动作时,要对指令盒进行相应的设置,同时还借助了一款外部软件来辅助完成设计。设计的思路是用截图软将视频分解截图为无数个小动作,然后按照所截图的动作将机器人相应的关节上电或卸电使其动作与截图上的动作一致,最后再保存动作,下面是详细步骤。3.2.1舞蹈视频的选择与动作分解第一步是舞蹈视频的选择。选好舞蹈视频后再用一款名为HyperSnap的截图软件来辅助完成舞蹈动作的分步设计,该软件能实现连续截屏并保存的功能。打开辅助软件,点击捕捉设置/更多/视频或游戏,打开之后将前面的视频捕捉打上勾,确定。图3-3 截图准备1 图3-4 截图准备2然后是进行截屏区域的选择,先打开播放器播放视频,将视频暂停在刚开始时,再点击捕捉设置/区域,然后用出现的区域选择框将视频播放区域圈起来;之后将上访的保存勾上,再打开捕捉设置/快速保存,设置好保存位置和其他设置。到这里截屏准备就绪。图3-5 截图保存设置 图3-6 截图区域选择最后是播放视频,用软件按照视频播放的时间进行一秒一截图,所截取的图片会保存在事先设置的路径,这样就得到了舞蹈视频的动作分解图片,为后面编程做好了准备,只用按shift+ctrl+F11就可以对视频进行连续截图并保存了。图3-7 辅助软件界面 图3-8 用辅助软件截取的视频的分解动作3.2.2关键帧保存动作第二步是在时间轴上保存动作。先新建一个指令盒,要求将指令盒的类型设置为时间轴。然后双击进入指令盒的第二层,将帧率设置为10,大小设置为1500,即表示每10帧为一秒,时间轴时长最多为150秒。图3-9 新建指令盒 图3-10 指令盒设置图3-11 新建行为层和编辑时间轴 图3-12 在关键帧保存关节设置好之后就将相对应的动作保存在对应时间点的时间轴上面,比如将第5秒时的分解动作直接保存在时间轴对应第5秒的帧处即第50帧处,方法是将机器人全身电机卸电,用手将机器人姿势调整为分解动作的姿势,然后点击要保存位置的关键帧,右键在关键帧中保存关节/保存全身关节,依次下去将全部的分解动作分别保存到时间轴上面,即完成了舞蹈分解动作的保存。在时间轴保存好动作后,点击单个关键帧时,机器人会实时做出该关键帧所对应的舞蹈动作,点击动作右边的运行按钮,就能让机器人做出一整套连贯的舞蹈动作。3.2.3行为层的设置第三步是行为层的建立。添加一个行为层,在行为层中拖入一个Play Sound指令盒,其作用是将舞蹈的配套音乐放入程序,以达到机器人随音乐跳舞的目的。然后点击指令盒左下角的扳手图标,添加相应的音乐文件即可完成行为层的设置。 图3-13 编辑行为层 图3-14 添加音乐文件图3-15 完整的舞蹈动作指令盒内部图3-16 机器人关键帧动作与分解动作对比图3-17 机器人关键帧动作与分解动作对比3.2.4总程序的编写程序编写到这里,机器人的舞蹈动作部分就写好了,之后点击root回到指令盒的外层,进行其他动作的编写,编写内容包括对话、选择、前进、后退、站立等。图3-18 拖入相应的指令盒 图3-19 按逻辑顺序连接各个指令盒首先是拖入Say、Move to、Choice、Stand up和两个预设动作的指令盒,然后按照所要达到的目的将各个指令盒按照逻辑顺序连接起来。点击相应的指令盒进行相应的设置。首先是Say指令盒:双击指令盒进入第二层,对Localized Text进行设置,选择所要使用的语言,本文使用的是中文,然后再在上面的方框中输入所要说的内容,右边的Say Text不用更改;其次是Choice指令盒:双击指令盒进入第二层,对Localized Text进行设置,同样先选择语言为中文,再在上面方框输入选择的内容,最后对Choice进行设置,此处意为选择的输出内容,同样需要对输出的语言进行设置,以本文为例,先选择Chinese语言,选择的结果有是和否两个,否对应下方的输出点,是对应中间的输出点,最上端的输出点为程序结束输出点;然后是Move To指令盒:点击左下角扳手按钮进入设置界面,本文只设置机器人在X轴方向移动0.3米。图3-20 Say指令盒的内部设置 图3-21 Choice指令盒的内部设置图3-22 Move to指令盒的内部设置 图3-23 Stand up指令盒内部设置图3-24 总程序组成及各指令盒功能4结语4.1总结经过两个月左右的努力,我终于完成了基于Choregraphe软件的NAO机器人的开发与应用的论文。从一开始的一无所知到最终的完成设计,不仅是对我个人学习能力和动手能力的考验,同时也磨练了我毅力,锻炼了我克服困难和挑战困难的能力。当然,这离不开老师的悉心指导和朋友的帮助。本文的成果是实现机器人的舞蹈动作,其过程则主要是对机器人的硬件、软件等进行针对性的学习以及对模块化编程的学习,整个设计流程看似简单,但也存在着诸多难题,最为困难的就是机器人舞蹈程序的编写,因为要保存的关键帧较多,且机器人各部件运动范围有限,故舞蹈程序指令盒的编写是最难的也是最重要的。由于以前没有接触过相关的知识,在学习期间我感到十分茫然,曾为了完成毕业设计加入了Nao的兴趣讨论群,也曾多次请教老师和有相关知识的同学。在大家共同的努力下,我对Nao的学习有了一定的成果,能对Nao进行常规使用,能读懂Nao所发出的信号,能对Nao进行模块化编程,最终完成了老师指导的设计。整个设计的完成是在许多人的帮助下完成的,这使我更深刻的体会到了团队合作的重要性,同时,从一无所知到颇有收获的过程,让我明白了学习是无止境的,只要端正态度,认真努力就一定会有收获,在此由衷感谢帮助和支持我的老师和朋友们。4.2存在的问题及下一步可能研究内容虽说实现了舞蹈动作的设计,但过程中也发现了许多问题。一是程序中所涉及到的动作只有机械平衡,并没有用到机器人自身的传感器,这意味着机器人在执行一些动作幅度较大的程序时可能会跌倒;二是编程编写时获取机器人姿态的方法有欠缺,即在使用软件调试机器人的过程中,机器人本体在实时执行动作时会超出预设的运动范围。为了能更好的掌握Nao机器人的编程方式,在接下来的研究中,我将会对Nao的传感器和软件中的传感器模块指令盒进行进一步的学习,之后再编写程序时充分利用机器人自身传感器来保持平衡以实现难度较高的动作。同时,可以对Python语言进行学习,这样就可以直接通过脚本编辑器写出Nao的动作。参考文献:1 戚开诚. 仿人形机器人机构设计D. 河北工业大学,20042 李瑞峰,孙笛生,阎国荣,刘广利. 移动式作业型智能服务机器人的研制J. 机器人技术与应用,2003,01:27-293 NAO创造交互型的机器人J. 机器人技术与应用,2014,03:63-654 许恒飞,李龙澍. RoboCup标准平台NAO机器人目标识别与自定位研究J. 工业控制计算机,2013,12:35-36+395 张婷. NAO机器人在自闭症干预中的应用J. 系统仿真技术,2013,04:327-331+3386 林凯. 自主服务机器人在智能楼宇系统中的应用研究D.厦门大学,20147 徐国保,尹怡欣,周美娟. 智能移动机器人技术现状及展望J. 机器人技术与应用,2007,02:29-348 东洋,宿涵,李天义. 从NAO感知系统看机器人的设计J. 机器人技术与应用,2012,06:28-309 李谷全,陈忠泽. 视觉跟踪技术研究现状及其展望J. 计算机应用研究,2010,08:2814-282110 阿伟. 全球销售量最大的仿人机器人J. 科技潮,2013,01:64-6511 周浩,浦剑涛,梁岚珍,方建军,郭浩. 基于体感的仿人机器人步态学习与控制J. 计算机应用,2015,03:787-791+80112 王晓军,王宇嘉,陈剑雪,麻超,苏晓宇. NAO机器人在运动控制概论实验教学中的应用J. 课程教育研究,2015,28:21013 NAO机器人现身RoboCup公开赛J. 机器人技术与应用,2013,06:1314 冯金珏. 教育机器人的开发与教学实践D. 上海交通大学,201215 彭楷,张菀梅. 对智能机器人功能的探究J. 小学科学,2014,06:34-35致谢词:本论文是在指导老师的悉心指导下完成的,老师认真负责的态度在精神上给了我很大的鼓舞,特别是在刚拿到论题的时候,我对这方面的知识一无所知,是老师帮我查找资料、给我详细讲解,这在行动上也很大的鼓励了我。在此,向谷老师致以衷心的感谢。其次是感谢一起参与Nao学习讨论的朋友们,在进行机器人相关学习和编写程序上,他们给了我很多的帮助,在我遇到难关时他们帮我一起克服,每一次在实验室的相互探索,每一次的相互讲解都使我感动不已,在此对大家表示由衷的感谢。最后要感谢我的父母和所有给与我帮助和支持的亲朋好友,父母给予我最大的支持使我能顺利完成学业,亲朋好友为我的生活增添不少色彩,大家的关心是我前进的动力,在此向大家致以诚挚的谢意。