与NAO Robot的Python脚本连接

时间:2018-07-24 15:35:40

标签: python nao-robot

我的项目的目标是对NAO机器人进行编程,以使用神经网络对其进行检测和识别。我在MatLab中使用神经网络对对象进行分类,并且正在编写脚本以通过Python中的NAO机器人捕获图像。我具有所有必需的导入(来自naoqi的ALProxy,来自PIL的图像,random,time,os,sys,cv2和vision_definitions),并已在python代码中为每个代理(postureProxy,motionProxy,speechProxy)配置了ip和端口,anspeechProxy,sprecogProxy,memoryProxy和photoCaptureProxy)。

try:
    photoCaptureProxy = ALProxy("ALPhotoCapture", ip, port)
    #this was done for each proxy listed above
except Exception, error:
    print("Connection error: ", error)

如果连接出现问题,我会打印出错误,但确实如此。我收到如下错误通知:

RuntimeERror('\tALBroker::createBroker\n\tCannot connect to tcp://ip:port',))

我知道,因为涉及到TCP,所以计算机和NAO机器人之间的有线连接出现了问题。是否有针对此问题的修复程序?

这是下面的大部分代码:

ip = "192.168.208.254"
port = 9559

#ALProxy setups
try:
   postureProxy = ALProxy("ALRobotPosture", ip, port)
   motionProxy = ALProxy("ALMotion", ip, port)
   speechProxy = ALProxy("ALTextToSpeech", ip, port)
   anspeechProxy = ALProxy("ALAnimatedSpeech", ip, port)
   sprecogProxy = ALProxy("ALSpeechRecognition", ip, port)
   memoryProxy = ALProxy("ALMemory", ip, port)
   photoCaptureProxy = ALProxy("ALPhotoCapture", ip, port)
except Exception, error:
   print("Connection error: ", error)

resolution = vision_definitions.kVGA
colorSpace = vision_definitions.kYUVColorSpace
fps = 30

1 个答案:

答案 0 :(得分:1)

看起来您的ip变量的值为“ ip”,而不是机器人的实际IP地址;港口也一样。端口变量应为9559(除非您使用的是虚拟机器人)。

否则,您可能需要显示更大的代码段。

(编辑,现在有一个更大的片段)

当我尝试该代码时,我得到了一些东西

Cannot connect to tcp://192.168.208.254:9559

因此您显示的错误消息似乎与代码不匹配(或者发生了奇怪的事情-也许您有旧版的python SDK,以不同的方式显示错误消息)。

您的计算机可能与机器人不在同一网络上-只需在命令行中ping该IP地址,或使用Web浏览器将其打开即可。