当前位置: 首页 > 知识库问答 >
问题:

我可以在Naoqi2.9(QiSDK)机器人(Pepper)上使用Naoqi2.5(C++/Python SDK)功能吗?

白学
2023-03-14
from naoqi import ALProxy
tts = ALProxy("ALTextToSpeech", "<IP of your robot>", 9559)
tts.say("Hello, world!")

我可以在Android Studio中通过SSH、FTP、QiSDK连接到机器人,但不能以任何方式通过Naoqi2.5 SDKs for C++或Python连接到机器人。因为QiSDK很可能是在C++SDK之上构建的,所以肯定有一种方法可以让它发挥作用。

任何信息都会有不可估量的帮助。

共有1个答案

金毅
2023-03-14

编辑

还有另一种方法,您可以使用Pepper head中的qi Python库来使用服务,例如ALTextToSpeech或ALMotion,这里有一个简单的示例。还可以只使用SSH来启动Python服务器,这样可以通过endpoint访问这些功能。

import qi

app = qi.Application()
app.start()
session = app.session
tts = session.service("ALTextToSpeech")
tts.say("Hello Word")

如果在Pepper的头部运行上面的代码片段,它会产生预期的输出(say Hello world)。这里记录了几乎所有的服务。还可以通过调用会话对象上的。services()来列出它们

因此,可以为这个二进制文件编写一个包装器,并通过SSH以编程方式调用它,对于这种任务来说,这似乎需要大量的工作,但我没有发现其他任何东西。

我有Python的Paramiko库可以工作:

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname='ip-of-robot', username='nao', password='your-pass')

stdin, stdout, stderr = client.exec_command('pwd')
print(stdout.read())

client.exec_command('qicli call ALMotion.setAngles HeadYaw -0.7 0.2')

client.close()    

我也尝试过。NET的SSH.NET库,但几乎没有成功。

 类似资料:
  • 我们想在Pepper机器人上拍摄一张照片并保存它(不知何故)->第一个想法是压缩到.jpg文件。 TakePicture操作来自QISDK教程,然后我们如下所示创建文件:

  • Windows10上的Python 2.7。

  • 问题内容: 如果我有一个实用函数,我希望能够从我的声明内的任何地方调用。是否可以在模块设置中使它全局访问,还是需要将其添加到每个控制器的作用域中? 问题答案: 基本上,您有两个选择,要么将其定义为服务,要么将其放在根范围内。我建议您使用它来提供服务,以避免污染根范围。您创建一个服务,并使其在控制器中可用,如下所示: 如果那不是您的选择,则可以将其添加到根范围中,如下所示: 这样,您所有的模板都可以

  • 我必须以某种方式注册/安装所有这些动画才能使用它们吗?你能在这方面指导我吗?谢谢

  • 问题内容: 我有一个在Go中使用接口定义RPC样式接口的想法。因此,对于给定的服务,我可能会创建一个像这样的接口: 我想做的是使用反射来实现该接口,将方法调用转换为RPC调用,将输入参数编组,然后将结果编组回方法的输出。我知道,如果可以获取输入参数的[] interface {}接口,则可以使用反射进行服务调用。但是,我看不到有任何方法可以使用反射来动态创建一个值,该值可以通过调用使用反射的函数来

  • 问题内容: 示例程序: 因此,为简化起见,没有最终转换,因此生成的代码非常简单。 现在,产生一个顺序流。我只是将结果装箱到s中,然后将其收集到中。很简单 而且,无论我运行此示例程序多少次,都不会成功,这意味着永远不会调用我的虚拟组合器。 我有点期望,但是后来我已经误解了流,以至于我不得不问这个问题… 可以将的组合时,流过被称为 保证 是连续的? 问题答案: 仔细阅读ReduceOps.java中的