文档库 最新最全的文档下载
当前位置:文档库 › NAO机器人编程学习

NAO机器人编程学习

NAO机器人编程学习
NAO机器人编程学习

NAO机器人编程学习

目录

1、基本介绍 (1)

1.1实体平台 (2)

1.1.1运动 (2)

1.1.2视觉 (2)

1.1.3语音 (2)

1.1.4触摸传感器和声纳测距仪 (3)

1.1.5连接性 (3)

1.1.6开源 (4)

1.2特征参数 (4)

2、Choregraphe软件 (5)

2.1Choregraphe软件介绍 (5)

2.2综合运用 (5)

2.2.1连接机器人 (6)

2.2.2程序编写 (6)

机器人NAO是各种软、硬件巧妙结合的独特产物,由大量传感器、电机和软件构成,所有软件由专门设计的操作系统NAOqi来控制。NAO虽然目前还尚未进入家庭,但已在教育界成为一颗耀眼的明星。在70多个国家里,它走入中学和大学的信息技术和科技专业课堂,许多大学生借助NAO,以寓教于乐、学以致用的方式学习编程。NAO也征服了一大批程序开发人员。在他们眼里,NAO 是一个功能强大、具有惊人表现力的应用程序创建平台,可以让大量设想变为现实,由此开辟出程序开发的新天地,也为日后创作出面向大众的机器人铺平了道路。

1、基本介绍

1.1实体平台

NAO是一个身高58cm的可编程仿人机器人,内含以下构件:

⑴拥有25个自由度的身体,主要元件为电机和电动制动器;

⑵传感器系统,包括:2个摄像头、4个麦克风、声纳测距仪、2套红外线接收

器和发送器、1个惯性器件板、9个触摸传感器和8个压力传感器;

⑶多种交流设备,包括语音合成器、LED灯及2个高保真扬声器;

⑷英特尔ATOM 1.6 GHz处理器(位于头部),运行Linux内核;

⑸第二个CPU位于躯干;

⑹27.6瓦时电池,根据使用情况,可为NAO提供超过1.5个小时的自主动力。

1.1.1运动

1.1.1.1全方位行走

NAO行走使用的是一个简单的动态模型(直线倒立摆)和二次规划,通过关节传感器反馈的信息保持稳定,保证行走的鲁棒性,免受小干扰,并可吸收躯干在正向和侧向平面上的摆动。NAO 可在多种地面上行走,如地毯、瓷砖地、木地板等,而且在行走过程中能够顺利地从一种地面走到另一种地面上。

1.1.1.2摔倒管理器

摔倒管理器可在NAO摔倒时起到一定的保护作用,其主要功能是探测NAO 的质量中心是否超出了支撑多边形。质心是否超出支撑多边形由机器人的足底与地面的接触点来决定。一旦探测到机器人摔倒状况,所有运动任务都会被终止,NAO的双臂会根据摔倒方向采取保护姿势,机器人的质心会降低,刚度会降至零。

1.1.2视觉

NAO拥有两个920P摄像头,每秒最多可摄取30个图像,可追踪、记忆并识别不同的图像和人脸。一个摄像头位于NAO前额,负责水平扫视。另一个位于嘴部,扫描周围环境。用户可通过软件获得NAO看到的图片和视频流。NAO 包含有一系列算法,可帮助机器人探测并识别出看到的人脸或形状。这样,NAO 就可以认出和它说话的人,也可以找到皮球或更加复杂的物品。

1.1.3语音

NAO使用4个麦克风来探测声音,并可通过语音识别和声音合成功能,运用8种语音与人交流。

1.1.3.1声源定位

声源定位功能帮助机器人辨别出声源方向。NAO的声源定位基于一个名为“到达时间差”的方法,当一个声源发出声音时,NAO的4个麦克风接受到声波的时间略有不同。如下图1,如果一个人站在NAO 左边和它说话,其声波会首先到达左侧麦克风,在几微秒后到达位于前方和后方的麦克风,最后到达右侧麦克

风。这种时间差名为“双耳时间差”,可对其进行数学处理,以确定声源的位置。在Choregraphe软件中也有相关的指令盒,方便用户在行为程序中运用该功能。

图1

1.1.3.2音频信号处理

在NAO机器人上,嵌入式处理器的运算能力往往很有限,因此有必要在电脑或服务器上进行某些远程运算。这一点在处理音频信号时尤其重要,在一个远程处理器上进行语音识别往往会更加有效、快速和准确。

1.1.4触摸传感器和声纳测距仪

1.1.4.1触摸传感器

除摄像头和麦克风以外,NAO机器人还配备了电容式传感器。分别位于头部(三个)和双手,用户可以通过触摸传感器向NAO机器人发送指令。例如,轻按头部可以让NAO停止动作或则触发一些列动作。

1.1.4.2声纳测距仪

NAO配备有2个声纳通道,2个发送器和2个接收器。由此,NAO可估测与周围障碍物之间的距离,探测范围为0-70cm。如果与障碍物相距不到15cm,NAO 不会收到具体的距离数据,只会知道附近有一个物体。

1.1.5连接性

1.1.5.1以太网及无线上网

目前,NAO支持以太网和WIFI无线上网。NAO的联网功能为开发其应用提供了大量的空间,用户可以在网络上的任意一台电脑来控制NAO或为其编程。如:

⑴通过IP地址,NAO可以知道自己身处何处,并向用户提供个性化的天气预报;

⑵向NAO提出一个关于某主题的问题,它会自动连接到维基百科,找到并读出相应的解释;

⑶将NAO连接至一个音频流,它会为用户播放某个在线电台的广播节目;

⑷使用XMPP技术,可远程控制NAO并获得其摄像头的视频流。

1.1.5.2红外线

NAO可凭借红外线技术与其它NAO及其它使用红外线的设备进行交流。用户可设置NAO,通过红外线交流来控制其它设备,如“NAO请把电视机打开”。NAO还可以接受由遥控器等红外线发射器发出的指令,并确定信号的方向。

1.1.6开源

多年来,Aldebaran Robotics一直致力于为机器人平台开发嵌入式系统,并希望与广大机器人研究员和程序开发员分享多平台建设工具和其它基本模块。

因为NAO机器人采用嵌入式系统,所以NAO的开发空间还很大。人们可以根据自己的想象力对NAO进行综合开发,实现各种不同的功能。例如:1)语音对话,实现人机交流互动。2)人脸追踪和识别,可以根据声源的位置,自动面向声源并开启人脸识别模式,识别人脸、进行学习。当识别到人脸之后会主动问好、握手。3)红外遥控,通过红外遥控技术可以让NAO完成一系列复杂的动作,如拾取物体,模仿人的动作等。4)走迷宫,在迷宫的各个拐角处设置一些转向图标,NAO会根据识别到的转向信号作出相应的转向,直到走出迷宫。5)远程iPad控制,可以远程控制NAO并获得其摄像头的视频流。6)自闭症治疗,提前为NAO 机器人编程,设定简单的动作和交流语言,并根据自闭症患者的语言或者肢体反应,进行重复或者鼓励。例如某患者对音乐有特别喜好,在他根据机器人要求完成某组动作或者回答问题后,机器人会自动播放音乐并配合舞蹈,进一步激发患者的学习热情。7)人形编程,NAO不仅支持多种语言和图形编程,还支持人形编程。在舞蹈编写过程中,直接扳动NAO机器人的相应关节使其完成相应的动作,即可完成相关的编程。

1.2特征参数

2、Choregraphe软件

2.1Choregraphe软件介绍

Choregraphe软件是阿尔德巴兰公司开发的一款编程软件,可以编写程序、与NAO连接、灌输和下载程序、与Webots连接可以仿真执行程序(检测程序的可靠性,安全性)、与Monitor连接检测机器人的实时数据。Choregraphe软件界面见图2。

图2

在运用Choregraphe软件编写程序时的注意事项:

⑴输入内容不论是中文还是英语,其标点符号都是在英文状态下输入;

⑵行为管理器,显示机器人中已有程序,也可以给机器人灌输、导出和删除程序;

⑶在给机器人灌输程序时,软件的版本一定要和机器人的版本一样;

⑷在程序的编写过程中,一定要随时保存程序;

⑸在机器人空闲时,卸载电机刚度,以免电机过热。

2.2综合运用

以一个比较综合的程序的编写过程为例,来介绍Choregraphe软件的编程过程。该程序的功能有语音对话、人脸识别、球体追踪、跳舞。

2.2.1连接机器人

启动Choregraphe软件→通过网线连接机器人和电脑→点击连接至图标→双击机器人头像(见图3)。

图3

2.2.2程序编写

B、人脸识别:其中有一个声源定位功能,机器人能判断出声源的位置,并主动将头部面向声源,机器人在捕捉到人脸之后会主动问好(你好,人类)。

C、球体追踪:手持一个红色的小球,再离机器人头部40cm的位置缓慢移动小球,机器人的头部会跟随小球的移动而移动。

D、跳舞:机器人可以跳骑马舞。

第一步:跟大多数软件一样,建立一个新项目、命名和保存→拖拽(按住鼠标左键不放)“Motor On/Off”和“Stand Up”指令盒到编程区→点击鼠标右键选择“添加一个新指令盒”,并命名为“Action”,指令盒类型设为“流程图”→各指令盒的连接如图4。

图4

第二步:头部按钮设置,双击自定义的“Action”指令盒→拖拽“Tactile Head”指令盒到编程区→选中“Tactile Head”指令盒,点击鼠标右键选择编辑指令盒,将输入点“frontTouched”和输出点“onStopped”的类型改为“数字”→双击“Tactile Head”指令盒(创建头部按钮功能,机器人头部的三个按钮分别实现三个功能,前触摸按钮实现开始程序功能、头顶触摸按钮实现暂停功能、后触摸按钮实现选择翻页功能)→点击最上面一个“if”指令盒,点击右键选择编辑指令盒,增加输入点命名为“inputnum”,类型为“数字”、属性为“onEvent”;将输出点“onStopped”的属性改为“数字”→双击最上面一个“if”指令盒,将脚本编辑器的内容改为如图5→点击右键添加一个新指令盒,命名为“zijia”,输出点的类型改为“数字”、属性为“可多次激活”,将脚本编辑器的内容改为如图6→从指令盒库拖入一个“Switch Case”指令盒和四个“Say”指令盒,并改名如图7所示→双击语音对话指令盒,在四个

“Say”指令盒中分别输入:语音对话、人脸识别、球体追踪和骑马舞。

图5

图6

图7

第三步:点击中上方的“Action”→从指令盒库中,拖入“Say”box、“Switch Case”box 和“Stand Up”box各一个→将“Say”改名为“Z暂停”,同时将说话内容也改为“暂停”→添加四个新的指令盒分别命名为:“Y语音对话”、“R人脸识别”、“Q球体追踪”

和“Q骑马舞”,指令盒类型全部为“流程图”。连接详情见图8。

图8

第四步:语音对话编辑,双击“Y语音对话”Box,从指令盒中拖入一个“Speech Reco”

指令盒,并点击其左下角的小扳手,在弹出的参数设置对话框中输入“你好;坐下;

起立;你来自哪里”→从指令盒库中拖入一个“Switch Case”Box,一个“Stand

Up”Box,一个“Sit Down”Box;两个“Say”Box的内容分别输入:你好,人类;我来自重庆→拖入一个“Wait”Box,并点击其左下角的表扳手,在弹出的参数对话框中输入1秒→创建一个新的指令盒,命名为“Stop”,指令盒类型为“脚本”,双击“Stop”指令盒,将脚本内容改为图9→连接详情见图10。

图9

图10

第五步:人脸识别编辑,双击“R人脸识别”Box→从指令盒库中拖入“Stand Up”Box、“Select Camera”Box、“Face Detection”Box、“Switch Case”Box和“Say”Box各一个→

将“Say”Box的说话内容改为“你好,人类”→连接详情见图11。

图11

第六步:球体追踪编辑,双击“Q球体追踪”指令盒→拖入“Stand Up”、“Say”和“WB Tracker”指令盒各一个→将“Say”Box的内容改为“进入球体追踪模式,手持红球在距离我眼睛40厘米的地方缓慢移动”→点击“WB Tracker”Box左下角的小扳手,

在弹出的参数设置对话框中选择“Red Ball”→连接见图12。

图12

第七步:舞蹈编辑,双击“Q骑马舞”→拖入“Motor On/Off”、“Stand Up”和“Play Sound”Box各一个→点击“Play Sound”Box左下角的小扳手,导入相关的音乐文件→创建一个新的指令盒,命名为“Motions”,类型设为“流程图”→连接见图13→双击“Motion s”指令盒,创建一系列新指令盒(见图14),指令盒类型选择为“时间轴”→双击第一个新建的指令盒,将指针移动到“第14帧”,在机器人视图中点击相应的关节,在弹出的“动作”框中移动相关的滑块完成舞蹈动作的编辑→选中“第14帧”点击鼠标右键,选择“在关键帧中存储关节/全身”→依次编辑其它关键帧,并将最后一帧设为“结束帧”→详情见图15→依次编辑其它的指令盒,完

成整个舞蹈的编辑。

图13

图14

图15

第八步:给机器人灌输项目程序,在行为管理器中选择“上传至机器人”,即可将刚才编写的程序灌输给机器人。

通过以上的编写就完成了整个程序的编程和灌输,通过机器人头部的后触摸按钮可以实现翻页功能,前触摸按钮可以开始执行程序,头顶触摸按钮可以暂停正在执行的程序,机器人可以实现的功能有:语音对话、人脸识别、球体追踪和骑马

舞。

相关文档