首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中执行NAO Choregraphe时间线

在python中执行NAO Choregraphe时间线
EN

Stack Overflow用户
提问于 2020-05-19 20:45:13
回答 2查看 258关注 0票数 0

我需要让一个虚拟NAO机器人通过Python说话和移动。我通过在Choregraph中进行移动并将其导出到python来做到这一点。但我不知道如何在Python中执行这些。我是一个编程的初学者,所以我将感谢任何帮助!

(这个动作的代码很长,所以我只复制了开头和结尾。我将中间部分替换为....)

编辑=我遵循Hello World脚本。我的机器人会“说话”并执行句子。但不执行代码的其余部分。没有错误。我的机器人的端口号是9559。这就是我所拥有的:

代码语言:javascript
复制
from naoqi import ALProxy
tts = ALProxy ("ALTextToSpeech","127.0.0.1",9559)
tts = ALProxy ("ALMotion","127.0.0.1",9559)

import qi
import argparse
import stk.services
import os
import sys
import time

from naoqi import ALProxy

import time
import argparse
from naoqi import ALProxy
tts = ALProxy ("ALTextToSpeech","127.0.0.1",9559)


tts.say ("Hello my name is Nao \\pau=1000\\ and I am a robot")
#moving his arms welcoming

def main(robotIP, PORT = 9559):

    motion.Proxy.wakeUp()

    names = list()
    times = list()
    keys = list()

    names.append("HeadPitch")
    times.append([0, 0.48, 1, 1.48])
    keys.append([-0.0429941, -0.2102, 0.0820305, -0.16418])

    names.append("HeadYaw")
    times.append([0, 0.48, 1, 1.48])
    keys.append([0.0858622, 0.0398422, 0.0398422, 0.0536479])

    names.append("LAnklePitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([-0.023052, 0.030638, -0.0583338, -0.062936])

    names.append("LAnkleRoll")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.00771189, -0.05825, -0.0628521, -0.05825])

    names.append("LElbowRoll")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([-1.24403, -1.52015, -1.15715, -1.30027])

    names.append("LElbowYaw")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([-0.849878, -1.15054, -1.71812, -1.77181])

    names.append("LHand")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([0.2132, 0.2132, 0.68, 0.7728])

    names.append("LHipPitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.242414, 0.44797, -0.115008, -0.0122299])

    names.append("LHipRoll")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.01845, 0.112024, -0.00916195, 0.0123138])

    names.append("LHipYawPitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([-0.352778, -0.338973, -0.366584, -0.371186])

    names.append("LKneePitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.128814, -0.0859461, 0.400331, 0.312894])

    names.append("LShoulderPitch")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([1.46186, 1.333, 1.32687, 1.40817])

    names.append("LShoulderRoll")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([0.0827939, -0.0414601, -0.00924586, -0.030722])

    names.append("LWristYaw")
    times.append([0, 0.4, 0.92, 1.4])
    keys.append([0.539926, 0.21932, -0.70875, -0.808459])

    names.append("RAnklePitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.00157595, -0.06592, -0.266875, -0.251533])

    names.append("RAnkleRoll")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.127364, 0.0706061, 0.016916, 0.0337899])

    names.append("RElbowRoll")
    times.append([0, 0.52, 1, 1.52])
    keys.append([1.26559, 1.51717, 1.15715, 1.30027])

    names.append("RElbowYaw")
    times.append([0, 0.52, 1, 1.52])
    keys.append([1.39436, 1.17807, 1.87297, 1.94201])

    names.append("RHand")
    times.append([0, 0.52, 1, 1.52])
    keys.append([0.0456001, 0.0456001, 0.68, 0.7692])

    names.append("RHipPitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.306757, 0.466294, -0.24088, -0.099752])

    names.append("RHipRoll")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([-0.171766, -0.130348, -0.0720561, -0.078192])

    names.append("RHipYawPitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([-0.352778, -0.338973, -0.366584, -0.371186])

    names.append("RKneePitch")
    times.append([0, 0.4, 0.96, 1.36])
    keys.append([0.0245859, -0.0122299, 0.698011, 0.559952])

    names.append("RShoulderPitch")
    times.append([0, 0.52, 1, 1.52])
    keys.append([1.83778, 1.29934, 1.5141, 1.52944])

    names.append("RShoulderRoll")
    times.append([0, 0.52, 1, 1.52])
    keys.append([-0.136568, -0.019984, 0.0413762, 0.0398422])

    names.append("RWristYaw")
    times.append([0, 0.52, 1, 1.52])
    keys.append([-0.339056, 0.0889301, 0.935697, 1.1029])

    try: 
      motion = ALProxy("ALMotion", "127.0.0.1", 9559)
      motion = ALProxy("ALMotion")
      motion.angleInterpolation(names, keys, times, True)
    except BaseException, err:
      print err

有人知道我应该添加什么才能通过Python执行吗?

EN

回答 2

Stack Overflow用户

发布于 2020-05-19 23:39:03

欢迎来到堆栈溢出!

要在NAO (真实的或虚拟的)上运行python脚本,请参阅this basic hello world explanation -不过请确保将9559替换为虚拟机器人的实际端口,并小心该端口在您关闭并重新打开Choregraphe后可能会更改!

一旦"hello world“开始工作,就可以像使用ALTextToSpeech一样使用ALMotion。

如果你得到一个错误,你可以试着在这里发布它(只用你的代码很难判断你做错了什么,代码本身看起来很好,除了端口号)。

票数 0
EN

Stack Overflow用户

发布于 2020-05-21 15:29:46

根据您更新的代码,看起来您只是对Python使用了错误的main公式,所以main函数中的所有代码都没有运行,因为它从未被调用过。

在Python中,您可以像这样定义一个main函数。

代码语言:javascript
复制
from naoqi import ALProxy
# rest of setup code...

if __name__ == "__main__":
    tts = ALProxy ("ALTextToSpeech","127.0.0.1",9559)
    tts.say("hello")
    # the rest of your code
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61891354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档