NAO机器人的编程入门pptx

文章来源:行业新闻 2023-10-20

  仿人机器人入门实训教程 NAO机器人的编程入门;内容提纲;Hello World;2. 机器人跳舞----dance指令盒: 将左下角指令盒库中:Animation-Entertainment-dances-NAO-Tai Chi Chuan拖到中间项目编辑界面中 连接参数盒 安装下图中连接顺序将指令盒相连,然后运行;;步骤: 项目栏中,单击属性按钮 在项目属性窗口右边支持的语言中勾选“Chinese(simplified)” 勾选左边的“behavior_1”,找到触发器语句,单击下面的空白处。 在右边触发器语句下的“Chinese(simplified)”文本框中输入触发的语音命令,比如舞蹈展示,然后单击“添加”按钮 单击权限的空白格,将右边三个选择(此行为能在充电站执行、此行为运行时机器人能站起来、此行为运行时机器人能坐下)全部勾选 单击“确定”按钮,关闭当前对话框,再将程序安装到 NAO 机器人上 当 NAO 机器人的眼睛变蓝时,说出触发自动运行的语音命令,即可自动运行程序;4.2 人机交互;2.语音识别——Speech Reco. 在指令盒库中搜索 Speech Reco.指令盒,将该指令盒拖动到图表空间中,Speech Reco.指令盒。单击设置按钮,设置相关参数及能够识别的语句。 在“Word list”文本框中输入能够识别的语句,不同语句之间一定要使用英文分号隔开。在“Confidence threshold”数值框中设置语音的置信度,数值越大识别越严格,一般设置在 30%~50%。;3.机器人反应——Switch Case 在指令盒库中搜索 Switch Case 指令盒,将该指令盒拖动到图表空间中,该指令盒相当于一个条件分支语句,根据 Speech Reco.指令盒中 Word list 参数的设置,将每个句子分别填入 Switch Case 的参数栏中,内容务必保持一致,每个句子加上英文双引号,每个选项框对应一个 case 分支,分别对应指令盒的结束输出,将每个结束输出与相应的机器人行为指令盒相连,就可以实现人机交互功能。 ;4.2.2 项目实现 1.指令盒需求 人机交互项目除需要 4.2.1 节中的三个指令盒之外,还需要两个 Say 指令盒和一个Tai Chi Chuan 指令盒。在两个 Say 指令盒中可以输入如下内容:“我是机器人 NAO,今天天气非常好,我很开心”。 *注意,输入的内容中的标点符号必须为英文的符号!;带子网划分的编址;子网划分(没有划分子网时);子网掩码;缩写 “/24” 表示掩码中有连续的24个1。 子网掩码与 IP 地址一一对应,是32 bit 的二进制数 子网掩码为1表示网络位,0表示主机位;1 0 0 0 0 0 0 0 = 128 1 1 0 0 0 0 0 0 = 192 1 1 1 0 0 0 0 0 = 224 1 1 1 1 0 0 0 0 = 240 1 1 1 1 1 0 0 0 = 248 1 1 1 1 1 1 0 0 = 252 1 1 1 1 1 1 1 0 = 254 1 1 1 1 1 1 1 1 = 255;;没有子网划分的子网掩码;带子网划分的子网掩码;;;;;;;;;;;;;;2.指令盒连线 按程序逻辑将各指令盒的输入端和输出端依次相连,如图 4.12 所示。当对 NAO 机器人说“你好”时,NAO 机器人回答“我是机器人 NAO”;当对 NAO 机器人说“跳支舞吧”,NAO 机器人会表演一段舞蹈。 ;其中,Speech Reco.指令盒本身的连线 所示。如果由于吐词不清、环境嘈杂或置信度阈值过高等,NAO 机器人没听到或识别失败,那么需要识别失败输出端连接开始输入端,即右边第二个端出端连接左边第一个端入端;如果 NAO 机器人识别响应快或者连说两句都被 NAO 机器人识别到,那么会造成资源冲突,需要将识别成功输出端连接接收输入端,即右边第一个输出端连接左边第二个端入端。;4.3 机器人行走;;参数说明: Distance X:单位是 m,若给定正值,则相对 NAO 机器人的方向是向前,若给定负值则是向后。 Distance Y:单位是 m,若给定正值,则相对 NAO 机器人的方向是向左,若给定负值则是向右。 Theta:NAO 机器人的转角,单位为°。 Arms movement enabled:在 NAO 机器人走动时,允许手臂运动。 在设置 Y 值后,NAO 机器人并没有转向,NAO 机器人始终面向前方,要转向需要设置 Theta。以 NAO 机器人为原点,建立坐标系(见图 4.16),在编程时可依据此坐标系确定机器人移动方向;4.3.2 项目实现 语音控制移动 NAO机器人的语音控制移动的指令盒如下表;2. 指令盒连线 将各指令盒按如下图所示连接顺序连线。单击“运行”之后,Stand up 指令盒保持 NAO 机器人站直; Set Reco. Lang.指令盒设置 NAO 机器人识别的语言为中文; Speech Reco.指令盒进行语音识别,当听到向前走的指令时,执行 Move To 指令盒; 当听到向右走的指令时,执行 Move TO(1)指令盒。 Move To 与 Move To(1)指令盒是同一个指令盒,但是设置参数不同,一个设置参数 Distance X,另一个设置参数 Distance Y;4.4 LED设置;单击 Set LEDs 指令盒的参数设置按钮,设置相关参数;参数说明: (1)LEDs group:选择 NAO 机器人哪个部位的 LED,比如眼睛或者耳朵等。 (2)Intensity:设置 LED 的亮度。 (3)Duration:设置 LED 的维持的时间。;2.设置 LED 随机颜色——Random Eyes 在 Chore graphe 的指令盒库中搜索 Random Eyes 指令盒,将该指令盒拖动到图表空间中 双击指令盒可查看Python代码;4.4.2 修改代码 1.编辑 Set LEDs指令盒 单击 Set LEDs 指令盒,选择“编辑指令盒”命令,单击“输出点”下拉列表后的加号按钮,弹出“添加一个新输出点”对话框。在该对话框的“类型”下拉列表中选择“字符串”后,单击“OK”按钮,Set LEDs 指令盒会多出一个输出端。;双击 Set LEDs 指令盒,在 onInput_onSet(self)下修改代码,代码如下: 1 def onInput_onSet(self): 2 self.leds.fade(self.getParameter(LEDs group), self.getParameter(Intensity (%))/100., 3 self.getParameter(Duration (s))) 4 p=self.getParameter(LEDs group) 5 self.logger.warning(p) 6 elf.output(p) ;2.编辑 Random Eyes 指令盒 编辑 Random Eyes 指令盒的目的是改变开始输入的类型,将默认的类型“激活”改成“字符串”,接收 Set LEDs 指令盒输出的字符串。单击 Random Eyes 指令盒,选择“编辑指令盒”命令,单击“输入点”下拉列表后的编辑按钮(铅笔图标),弹出“编辑已有输入点”对话框,在“类型”下拉列表中选择“字符串”后,单击“OK”按钮;双击 Random Eyes 指令盒,在 onInput_onStart(self)下修改代码,代码如下: 1 def onInput_onStart(self,p): 2 if( self.bIsRunning ): 3 return 4 self.bIsRunning = True 5 self.bMustStop = False 6 self.logger.warning(p) 7 while( not self.bMustStop ): 8 rRandTime = random.uniform(0.0,2.0) 9 self.leds.fadeRGB(p, 256*random.randint(0,255) + 256*256*random.randint(0,255) + 10 random.randint(0,255), rRandTime) 11 time.sleep(random.uniform(0.0,3.0)) 12 self.bIsRunning = False 13 self.onStopped() 修改内容如下: (1)将 onInput_onStart(self)改成 onInput_onStart(self,p)。目的是将 Set LEDs 指令盒输出的字符串输入到 Random Eyes 指令盒中。 (2)将 self.leds.fadeRGB 函数的一个参数改为 p。;3. 指令盒连线 将Set LEDs和Random Eyes指令盒按如下图所示的顺序连接,只用单击Set LEDs指令盒设置按钮设置参数,即可设置 NAO 机器人相应部位 LED 灯的随机颜色闪烁。;4.5 音频处理;2. 编辑指令盒 新建一个 Python 语言指令盒用来录音,双击该指令盒能查看代码,需要更改 def _init_(self)、def onUnload(self)、def onInput_onStart(self)三个函数,更改后代码如下:;对_init_(self)函数内代码的更改:self.record=ALProxy(ALAudioRecorder)。实例化一个 record 对象。 对 onInput_onStart 函数内代码的更改: (1)self.record.startMicrophonesRecording(record_path,wav,16000,(0,0,1,0))。以格式.wav、采样频率 16 000Hz 存储在 record_path 路径中。 (2)self.record.stopMicrophonesRecording()。结束录音。 播放录音指令盒的创建与上述步骤相同,也需要新建一个 Python 语言指令盒,这里只展示更改后的代码。;2.指令盒连接 将各指令盒按如下图所示的顺序连接。在程序运行后,对着 NAO 机器人的麦克风说话,NAO 机器人会录音 5s,然后复述录音内容。此处没有设置录音提示,能加入 LED 指令盒或者 Say 指令盒,提示开始录音,尝试优化程序。;4.6 NAOMark学习;2. Say指令盒 通过调用 Say 指令盒,NAO 机器人将检测到的 NAOMark 编号说出来。此处需要对 Say 指令盒做修改。双击 Say 指令盒,修改代码如下: (1)将指令盒中 def onInput_onStart(self):改成 def onInput_onStart(self, p):。 (2)将指令盒中 sentence 部分改成 sentence += 我看到的标签的编号是 + str(p)。 只修改上述提到的地方,其他代码不变,更改后的代码如下:;4.6.2 项目实现 将指令盒按如下图所示的顺序连接,在程序运行后,NAOMark 指令盒会调用NAO 机器人内部的视觉模块,识别机器人视野内 NAOMark 上的编号,将编号作为该指令盒的输出信号,输入到 Say 指令盒中,NAO 机器人即可说出该编号。;4.6.3 实验步骤 案例的具体实验步骤如下: (1)将 NAOMark 打印在 A4 纸上。 (2)将该 A4 纸移到 NAO 机器人摄像头前 1m 左右。 (3)执行程序。 (4)当 NAO 机器人识别到 NAOMark 标记之后,它将会说出视野中的 NAOMark的编号。;4.7 实践练习;4.7.2 任务需求 (1)NAO 机器人从入口进场。 (2)NAO 机器人到达舞台后朝向正前方。 (3)NAO 机器人向观众致辞。 (4)NAO 机器人和观众互动。 (5)NAO 机器人跳舞暖场。 (6)NAO 机器人报幕,介绍下一个表演的内容。 (7)NAO 机器人从出口离场。仿人机器人入门实训教程 NAO机器人的编程入门;内容提纲;Hello World;2. 机器人跳舞----dance指令盒: 将左下角指令盒库中:Animation-Entertainment-dances-NAO-Tai Chi Chuan拖到中间项目编辑界面中 连接参数盒 安装下图中连接顺序将指令盒相连,然后运行;;步骤: 项目栏中,单击属性按钮 在项目属性窗口右边支持的语言中勾选“Chinese(simplified)” 勾选左边的“behavior_1”,找到触发器语句,单击下面的空白处。 在右边触发器语句下的“Chinese(simplified)”文本框中输入触发的语音命令,比如舞蹈展示,然后单击“添加”按钮 单击权限的空白格,将右边三个选择(此行为能在充电站执行、此行为运行时机器人能站起来、此行为运行时机器人能坐下)全部勾选 单击“确定”按钮,关闭当前对话框,再将程序安装到 NAO 机器人上 当 NAO 机器人的眼睛变蓝时,说出触发自动运行的语音命令,即可自动运行程序;4.2 人机交互;2.语音识别——Speech Reco. 在指令盒库中搜索 Speech Reco.指令盒,将该指令盒拖动到图表空间中,Speech Reco.指令盒。单击设置按钮,设置相关参数及能够识别的语句。 在“Word list”文本框中输入能够识别的语句,不同语句之间一定要使用英文分号隔开。在“Confidence threshold”数值框中设置语音的置信度,数值越大识别越严格,一般设置在 30%~50%。;3.机器人反应——Switch Case 在指令盒库中搜索 Switch Case 指令盒,将该指令盒拖动到图表空间中,该指令盒相当于一个条件分支语句,根据 Speech Reco.指令盒中 Word list 参数的设置,将每个句子分别填入 Switch Case 的参数栏中,内容务必保持一致,每个句子加上英文双引号,每个选项框对应一个 case 分支,分别对应指令盒的结束输出,将每个结束输出与相应的机器人行为指令盒相连,就可以实现人机交互功能。 ;4.2.2 项目实现 1.指令盒需求 人机交互项目除需要 4.2.1 节中的三个指令盒之外,还需要两个 Say 指令盒和一个Tai Chi Chuan 指令盒。在两个 Say 指令盒中可以输入如下内容:“我是机器人 NAO,今天天气非常好,我很开心”。 *注意,输入的内容中的标点符号必须为英文的符号!;带子网划分的编址;子网划分(没有划分子网时);子网掩码;缩写 “/24” 表示掩码中有连续的24个1。 子网掩码与 IP 地址一一对应,是32 bit 的二进制数 子网掩码为1表示网络位,0表示主机位;1 0 0 0 0 0 0 0 = 128 1 1 0 0 0 0 0 0 = 192 1 1 1 0 0 0 0 0 = 224 1 1 1 1 0 0 0 0 = 240 1 1 1 1 1 0 0 0 = 248 1 1 1 1 1 1 0 0 = 252 1 1 1 1 1 1 1 0 = 254 1 1 1 1 1 1 1 1 = 255;;没有子网划分的子网掩码;带子网划分的子网掩码;;;;;;;;;;;;;;2.指令盒连线 按程序逻辑将各指令盒的输入端和输出端依次相连,如图 4.12 所示。当对 NAO 机器人说“你好”时,NAO 机器人回答“我是机器人 NAO”;当对 NAO 机器人说“跳支舞吧”,NAO 机器人会表演一段舞蹈。 ;其中,Speech Reco.指令盒本身的连线 所示。如果由于吐词不清、环境嘈杂或置信度阈值过高等,NAO 机器人没听到或识别失败,那么需要识别失败输出端连接开始输入端,即右边第二个端出端连接左边第一个端入端;如果 NAO 机器人识别响应快或者连说两句都被 NAO 机器人识别到,那么会造成资源冲突,需要将识别成功输出端连接接收输入端,即右边第一个输出端连接左边第二个端入端。;4.3 机器人行走;;参数说明: Distance X:单位是 m,若给定正值,则相对 NAO 机器人的方向是向前,若给定负值则是向后。 Distance Y:单位是 m,若给定正值,则相对 NAO 机器人的方向是向左,若给定负值则是向右。 Theta:NAO 机器人的转角,单位为°。 Arms movement enabled:在 NAO 机器人走动时,允许手臂运动。 在设置 Y 值后,NAO 机器人并没有转向,NAO 机器人始终面向前方,要转向需要设置 Theta。以 NAO 机器人为原点,建立坐标系(见图 4.16),在编程时可依据此坐标系确定机器人移动方向;4.3.2 项目实现 语音控制移动 NAO机器人的语音控制移动的指令盒如下表;2. 指令盒连线 将各指令盒按如下图所示连接顺序连线。单击“运行”之后,Stand up 指令盒保持 NAO 机器人站直; Set Reco. Lang.指令盒设置 NAO 机器人识别的语言为中文; Speech Reco.指令盒进行语音识别,当听到向前走的指令时,执行 Move To 指令盒; 当听到向右走的指令时,执行 Move TO(1)指令盒。 Move To 与 Move To(1)指令盒是同一个指令盒,但是设置参数不同,一个设置参数 Distance X,另一个设置参数 Distance Y;4.4 LED设置;单击 Set LEDs 指令盒的参数设置按钮,设置相关参数;参数说明: (1)LEDs group:选择 NAO 机器人哪个部位的 LED,比如眼睛或者耳朵等。 (2)Intensity:设置 LED 的亮度。 (3)Duration:设置 LED 的维持的时间。;2.设置 LED 随机颜色——Random Eyes 在 Chore graphe 的指令盒库中搜索 Random Eyes 指令盒,将该指令盒拖动到图表空间中 双击指令盒可查看Python代码;4.4.2 修改代码 1.编辑 Set LEDs指令盒 单击 Set LEDs 指令盒,选择“编辑指令盒”命令,单击“输出点”下拉列表后的加号按钮,弹出“添加一个新输出点”对话框。在该对话框的“类型”下拉列表中选择“字符串”后,单击“OK”按钮,Set LEDs 指令盒会多出一个输出端。;双击 Set LEDs 指令盒,在 onInput_onSet(self)下修改代码,代码如下: 1 def onInput_onSet(self): 2 self.leds.fade(self.getParameter(LEDs group), self.getParameter(Intensity (%))/100., 3 self.getParameter(Duration (s))) 4 p=self.getParameter(LEDs group) 5 self.logger.warning(p) 6 elf.output(p) ;2.编辑 Random Eyes 指令盒 编辑 Random Eyes 指令盒的目的是改变开始输入的类型,将默认的类型“激活”改成“字符串”,接收 Set LEDs 指令盒输出的字符串。单击 Random Eyes 指令盒,选择“编辑指令盒”命令,单击“输入点”下拉列表后的编辑按钮(铅笔图标),弹出“编辑已有输入点”对话框,在“类型”下拉列表中选择“字符串”后,单击“OK”按钮;双击 Random Eyes 指令盒,在 onInput_onStart(self)下修改代码,代码如下: 1 def onInput_onStart(self,p): 2 if( self.bIsRunning ): 3 return 4 self.bIsRunning = True 5 self.bMustStop = False 6 self.logger.warning(p) 7 while( not self.bMustStop ): 8 rRandTime = random.uniform(0.0,2.0) 9 self.leds.fadeRGB(p, 256*random.randint(0,255) + 256*256*random.randint(0,255) + 10 random.randint(0,255), rRandTime) 11 time.sleep(random.uniform(0.0,3.0)) 12 self.bIsRunning = False 13 self.onStopped() 修改内容如下: (1)将 onInput_onStart(self)改成 onInput_onStart(self,p)。目的是将 Set LEDs 指令盒输出的字符串输入到 Random Eyes 指令盒中。 (2)将 self.leds.fadeRGB 函数的一个参数改为 p。;3. 指令盒连线 将Set LEDs和Random Eyes指令盒按如下图所示的顺序连接,只用单击Set LEDs指令盒设置按钮设置参数,即可设置 NAO 机器人相应部位 LED 灯的随机颜色闪烁。;4.5 音频处理;2. 编辑指令盒 新建一个 Python 语言指令盒用来录音,双击该指令盒能查看代码,需要更改 def _init_(self)、def onUnload(self)、def onInput_onStart(self)三个函数,更改后代码如下:;对_init_(self)函数内代码的更改:self.record=ALProxy(ALAudioRecorder)。实例化一个 record 对象。 对 onInput_onStart 函数内代码的更改: (1)self.record.startMicrophonesRecording(record_path,wav,16000,(0,0,1,0))。以格式.wav、采样频率 16 000Hz 存储在 record_path 路径中。 (2)self.record.stopMicrophonesRecording()。结束录音。 播放录音指令盒的创建与上述步骤相同,也需要新建一个 Python 语言指令盒,这里只展示更改后的代码。;2.指令盒连接 将各指令盒按如下图所示的顺序连接。在程序运行后,对着 NAO 机器人的麦克风说话,NAO 机器人会录音 5s,然后复述录音内容。此处没有设置录音提示,能加入 LED 指令盒或者 Say 指令盒,提示开始录音,尝试优化程序。;4.6 NAOMark学习;2. Say指令盒 通过调用 Say 指令盒,NAO 机器人将检测到的 NAOMark 编号说出来。此处需要对 Say 指令盒做修改。双击 Say 指令盒,修改代码如下: (1)将指令盒中 def onInput_onStart(self):改成 def onInput_onStart(self, p):。 (2)将指令盒中 sentence 部分改成 sentence += 我看到的标签的编号是 + str(p)。 只修改上述提到的地方,其他代码不变,更改后的代码如下:;4.6.2 项目实现 将指令盒按如下图所示的顺序连接,在程序运行后,NAOMark 指令盒会调用NAO 机器人内部的视觉模块,识别机器人视野内 NAOMark 上的编号,将编号作为该指令盒的输出信号,输入到 Say 指令盒中,NAO 机器人即可说出该编号。;4.6.3 实验步骤 案例的具体实验步骤如下: (1)将 NAOMark 打印在 A4 纸上。 (2)将该 A4 纸移到 NAO 机器人摄像头前 1m 左右。 (3)执行程序。 (4)当 NAO 机器人识别到 NAOMark 标记之后,它将会说出视野中的 NAOMark的编号。;4.7 实践练习;4.7.2 任务需求 (1)NAO 机器人从入口进场。 (2)NAO 机器人到达舞台后朝向正前方。 (3)NAO 机器人向观众致辞。 (4)NAO 机器人和观众互动。 (5)NAO 机器人跳舞暖场。 (6)NAO 机器人报幕,介绍下一个表演的内容。 (7)NAO 机器人从出口离场。

  2、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。

  3、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。

  4、VIP文档为合作方或网友上传,每下载1次, 网站将按照每个用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档

  【医学英文精品课件】心血管疾病流行病学-EPIDEMIOLOGY-OF-CARDIOVASCULAR-DISEASE-(CVD).ppt

  2022年上半年贵州茅台招聘(持续更新)上岸笔试历年难、易错点考题附带参与详解.docx

  2023年江苏盐城市教育局直属事业单位选研员4人笔试历年难易错点考题荟萃附带答案详解.docx

  2022年浙江温岭市交通旅游集团限公司公开招聘编外工作人员(4人)上岸笔试历年难、易错点考题附带参与详解.docx

  云南怒江州州级机关统一遴选公务员7人2024年国家公考试大纲历年线笔试历年难易错点考题荟萃附带答案详解.docx

  2022年杭州富春湾新城建设投资集团限公司招聘(用)国企业工作人员(12人)上岸笔试历年难、易错点考题附带参与详解.docx

  2022年内蒙古鄂尔多斯市远景动力技术限公司招聘408人上岸笔试历年难、易错点考题附带参与详解.docx

  冀教版四年级数学上册《认识平角、周角和各种角的关系》教案及教学反思.docx

  2021-2022学年江苏省连云港市新海初级中学九年级(上)期中数学试卷(附答案详解).pdf

  湖南省长沙市2022-2023学年九年级上学期期中化学试题(含答案).pdf

  原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者

...
分享到
微信扫一扫
分享到朋友圈