Naoqi之家:http://www.naoqi.net

一、简介及原理**

Naoqi是Pepper和Nao机器人内部的OS,这个系统基于Gentoo Linux。Naoqi在这个Linux之上提供了Naoqi服务。我们可以使用Python程序来远程调用它的Naoqi服务。
Naoqi用途众多,有很多的API,例如Pepper/Nao的说话、录音、拍照、视觉处理、肢体动作等。

二、下载及安装
1、在Python官网上下载Python2.7(目前Naoqi支持的唯一版本),安装完成后配置环境变量,具体操作请自行百度。笔者使用的是Ubuntu OS,系统有自带的Python2.7。
2、进入softbank官网:https://www.softbank.jp/robot/developer/dev-support/documents/ 下载对应自己OS的Python SDK(可理解为Python插件)。
3、如果是Windows OS,解压下载后的文件,打开安装包安装即可。如果是Ubuntu OS,解压之后不需要安装,但需要配置环境变量,具体操作请参照如下链接
wtyuyuyu.gitHub
4、配置完成后打开cmd(或者terminal),启动python控制台,输入

import naoqi

如果没有报错,则安装成功。

三、程序
在Python控制台中直接输入程序,你的机器人就可以做出对应的操作,
例如:让机器人说话

from naoqi import ALProxy
tts=ALProxy("ALTextToSpeech","<IP of your Pepper/Nao>",9559)
tts.say("Hello World!")

四、如何将Python程序导入Choregraphe
在Choregraphe工作区中右键点击创建新的指令盒,选择类型为Python。右击创建好的指令盒,进入编辑指令盒的界面(或者直接ctrl+e)在连接好实体机器人的前提下(否则不会出现修改参数界面),分别点击三个参数,进入参数修改界面,三个参数分别是解析度、图片的保存路径和选择是哪个摄像头。修改完成之后双击新建好的指令盒,你可以看到代码编辑器。在onInput_onStart()下面填写你的逻辑代码。例如下例是拍照的例子:

import timeclass MyClass(GeneratedClass):def __init__(self):GeneratedClass.__init__(self, False)self.resolutionMap = {'160 x 120': 0,'320 x 240': 1,'640 x 480': 2,'1280 x 960': 3}self.cameraMap = {'Top': 0,'Bottom': 1}# 照片默认保存位置self.recordFolder = "/home/nao/recordings/cameras/"def onLoad(self):self.bIsRunning = Falsetry:# 获取Naoqi中的ALPhotoCapture服务self.photoCapture = ALProxy( "ALPhotoCapture" )except Exception as e:self.photoCapture = Noneself.logger.error(e)def onUnload(self):passdef onInput_onStart(self):if( self.bIsRunning ):returnself.bIsRunning = True# 获取指令盒子的参数resolution = self.resolutionMap[self.getParameter("Resolution")]cameraID = self.cameraMap[self.getParameter("Camera")]fileName = self.getParameter("File Name")if self.photoCapture:# 调用Naoqi的ALPhotoCapture API拍照。# 照片会保存到你通过参数指定的路径下。# 使用FTP工具登录Naoqi,就可以获取这张照片。self.photoCapture.setResolution(resolution)self.photoCapture.setCameraID(cameraID)self.photoCapture.setPictureFormat("jpg")self.photoCapture.takePicture( self.recordFolder, fileName )self.bIsRunning = Falseself.onStopped()

五、如何在Choregraphe中导入外部Python lib库
Choregraphe中的指令盒的本质就是Python程序,若想要从外部导入lib库,只需要将lib库中的文件地址注册到系统环境中
按照教程上的指示,需要先用choregraphe建立一个project,并将此project保存到任意目录,再将外部lib文件夹拷贝到project所在的目录,然后就可以看到lib文件夹。
(但笔者多次将lib文件夹从外部拷贝到project所在的文件夹,打开choregraphe后在project目录下没有找到lib文件夹,可能是没有连接实体机器人的原因,也有可能是不应该建立project,而应该建立一个app)
在lib文件夹中,有__init__.py和Person.py。前者是一个空文件,意思是告诉Python这是一个可以import的包,后者是一个Python代码文件,代码如下:

def say():print "########### Hello World! ############"

在Choregraphe工作区新建一个Python指令盒,例如叫作set path to folder
双击上述指令盒,按照下图编写程序

class MyClass(GeneratedClass):def __init__(self):GeneratedClass.__init__(self)def onLoad(self):self.pathModified = Falsedef onUnload(self):if self.pathModified and self.folderName and self.folderName in sys.path:sys.path.remove(self.folderName)self.folderName = Nonedef onInput_onStart(self):# 计算lib在机器人磁盘中的位置appFolder = self.behaviorAbsolutePath().replace(self.behaviorRelativePath(), "")self.folderName = os.path.join(appFolder, "lib")# 将lib注册到机器人Naoqi系统环境变量中if self.folderName not in sys.path:sys.path.append(self.folderName)self.pathModified = Trueself.onStopped()def onInput_onStop(self):self.onUnload() self.onStopped() 

现在后面的CallMyLib指令盒就可以import这个lib库了,CallMyLib中的代码如下:

class MyClass(GeneratedClass):def __init__(self):GeneratedClass.__init__(self)def onLoad(self):#put initialization code herepassdef onUnload(self):#put clean-up code herepassdef onInput_onStart(self):import mylib.Personmylib.Person.say()self.onStopped()            #activate the output of the boxpassdef onInput_onStop(self):self.onUnload()           #it is recommended to reuse the clean-up as the box is stoppedself.onStopped()         #activate the output of the box

运行该project,就可以看到日历面板中输出了Hello。

六、Naoqi OS
NAOqi OS是Pepper的操作系统。可以满足人行机器人的一般需要,诸如兼并性、资源、同步、事件等

是一个基于Linux的人形机器人本体控制系统。
适用于Nao、Pepper和Romeo机器人的闭源系统
提供丰富的机器人管理模块和API。例如音视频、动作、情感、跟踪等
支持C++、Python、Java、JavaScript等

Naoqi API是NAOqi OS的开发接口,从下述网站上能看到详细信息
http://doc.aldebaran.com/2-5/naoqi/index.html

参考博文:
https://blog.csdn.net/weixin_43509791/article/details/83376891
https://blog.csdn.net/weixin_43509791/article/details/83378120

Naoqi 学习笔记(一)相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. C++中Ansi、Unicode、UTF8字符串之间的转换和写入
  2. ^_^ 真是Android Framework的BUG
  3. java string 常量池_用了这么久Java String,你真的懂字符串常量池吗?
  4. tyvj/joyOI 1305-最大子序和【单调队列】
  5. leetcode面试题 10.03. 搜索旋转数组(二分法)
  6. Linux head命令:显示文件开头的内容
  7. 【STM32】【STM32CubeMX】STM32CubeMX的使用之九:ADC
  8. GetTickCount函数在linux下的实现
  9. 2022版史上最牛Java学习路线图(视频教程+配套资料)
  10. 一周之内连过5人,HCIE-RS新版实验这么好考?
  11. 二十一世纪科学和数学的趋势
  12. python模拟点击屏幕ios_python模拟点击可以在ios中实现吗?
  13. pe系统进服务器2008,怎么用U盘启动win server 2008 pe?
  14. 有没有什么好的生日提醒软件推荐?3款软件让你的生活更有品质
  15. 抓阄 计算机代表什么东西,周岁抓阄准备哪些东西
  16. 为什么SEM竞价推广效果越来越差?
  17. java字符转成ncr_NCR字符编码(形如中国)转换为汉字 in JAVA
  18. UNIX环境编程(c语言)--文件I/O-文件共享
  19. 网络安全实训记录(2020.7.15-2020.7.19)
  20. 欢迎来辩到底要不要用黄金分割?

热门文章

  1. 局域网测速工具lan_speed
  2. pcy 算法_大数据分析中的PCY算法
  3. c++无限小数加法实现
  4. MySQL基础知识及其基本相关操作
  5. 使用Pyecharts进行全国水质TDS地图可视化全过程1:总体过程简述
  6. 【2018_03_01】 Postdoc in GIGA-Research, University of Liege
  7. 关于阿里云服务器自建邮箱服务器的疑问的记录
  8. animate.css、gsap
  9. 寻找第K大 --- 牛客网
  10. word巧妙设置页码(做标书文档设置页码必备方法)