【问题标题】:Unable to run code on Aldebaran Nao无法在 Aldebaran Nao 上运行代码
【发布时间】:2013-03-09 22:28:29
【问题描述】:

我在 say.py 文件中使用 Python SDK 制作了一个简单的程序。 Aldebaran Nao 连接到 IP 172.26.96.164 的网络

from naoqi import ALProxy
pr = ALProxy("ALTextToSpeech", "172.26.96.164", 9559)
pr.say("Hello, You are awesome !")

代码运行良好。但是当我在电脑上启动本地版的Naoqi时

> & 'C:\Program Files (x86)\Aldebaran\Choregraphe 1.12.5.3\bin\naoqi-bin.exe'

say.py 的代码停止运行并出现以下错误。

PS C:\Users\admin\Desktop\nehchal> python say.py
[INFO ] Starting ALNetwork
[ERROR] Connection failed ! Port 54010 is already in use. Are you already running NaoQi? Use --broker-port option to specify a different port.
[INFO ] Stopping ALNetwork
[INFO ] Exit
Traceback (most recent call last):
  File "say.py", line 2, in <module>
pr = ALProxy("ALTextToSpeech", "172.26.96.164", 9559)
  File "C:\Python27\lib\site-packages\naoqi.py", line 230, in __init__
inaoqi.proxy.__init__(self, args[0], args[1], args[2])
  File "C:\Python27\lib\site-packages\inaoqi.py", line 322, in __init__
this = _inaoqi.new_proxy(*args)
RuntimeError:   ALBroker::runBroker
    Port 54010 is not free. Another broker is using this port.

谁能解释一下这个错误到底是什么意思?如何知道谁在使用这个端口?如何释放端口或如何使用备用端口?

【问题讨论】:

  • 更新:我认为获取端口存在一些竞争条件。我已经通过在 while 循环中使用 解决了这个问题,如果失败,它会再次尝试。现在,通常它通过尝试最多 4-5 次来连接。

标签: python nao-robot


【解决方案1】:

看naoqi命令行选项:

  • -p [ --broker-port ] arg (=9559) 服务器端口,默认9559

  • --pport arg (=0) 父broker的端口,默认为no 父级 (0)。

【讨论】:

    【解决方案2】:

    您应该能够在提示符下使用 netstad 命令查看是否/以及什么正在使用该端口。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-31
        • 2021-08-29
        • 2017-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多