PepperNao中级教程:第三章 如何在Choregraphe中新建Python指令盒

xiaoxiao2025-05-31  45

关于Naoqi之家

欢迎访问Naoqi之家,一个提供Pepper/Nao机器人中文开发手册的站点。 http://www.naoqi.net

3.1 目标

我有一段Python代码,并且这段Python代码没有引用外部lib库。 那么如何在Choregraphe中调用这段Python代码呢?

3.2 原理

Choregraphe中支持创建自定义Python指令盒, 在这个指令盒中就可以执行Python代码了。

3.3 动手实践

在Choregraphe的流程面板中,如下图新建一个Python指令盒

双击新建好的Python指令盒,你可以看到下面的代码编辑器。

为Python指令盒追加参数。 增加下图三个参数。 第一个参数是解析度。 第二个参数是图片的保存路径。 第三个参数是选择机器人的哪个摄像头。

三个参数的设定方式如下图所示。

在onInput_onStart()下面填写你的逻辑代码。 例如下面是拍照的例子。

上图的代码如下。

import time class 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 = False try: # 获取Naoqi中的ALPhotoCapture服务 self.photoCapture = ALProxy( "ALPhotoCapture" ) except Exception as e: self.photoCapture = None self.logger.error(e) def onUnload(self): pass def onInput_onStart(self): if( self.bIsRunning ): return self.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 = False self.onStopped()

本章源代码

https://download.csdn.net/download/weixin_43509791/10746661 不推荐下载,建议自己动手做一遍。

转载请注明原文地址: https://www.6miu.com/read-5031040.html

最新回复(0)