You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode的Python脚本中手动触发NAO机器人语音命令

解决方案:手动触发机器人流程

一、修改脚本实现手动触发

方式1:基于终端输入的简单触发

直接用Python内置的input()函数,在需要等待实验者确认的位置插入等待逻辑,实验者在终端按下回车或输入任意内容后回车,即可触发后续流程:

nao1speech.say("Hello, what is your name?")
# 等待实验者触发:终端按下回车键即可继续
input("请确认参与者应答完成,按下回车键触发机器人2发声...")
nao2speech.say("Hi.")
nao3speech.say("Hello.")
nao4speech.say("Hey!")

方式2:基于按键监听的快速触发(无需回车)

如果需要更快捷的单键触发(比如按空格键直接继续),可以使用pynput库监听键盘事件。先安装依赖:

pip install pynput

修改后的代码示例:

from pynput.keyboard import Listener, Key

# 定义触发标志
triggered = False

def on_press(key):
    global triggered
    # 设置触发按键为空格键
    if key == Key.space:
        triggered = True
        return False  # 停止监听

nao1speech.say("Hello, what is your name?")
print("请确认参与者应答完成,按下空格键触发机器人2发声...")
# 启动键盘监听
with Listener(on_press=on_press) as listener:
    listener.join()

# 触发后执行后续流程
nao2speech.say("Hi.")
nao3speech.say("Hello.")
nao4speech.say("Hey!")

二、Python手动步骤控制的最佳实践

  • 模块化流程拆分:把每个机器人的动作封装成独立函数,比如nao1_greet()、nao2_intro(),方便调整触发逻辑,也利于代码复用。
  • 明确状态提示:在等待触发时,在终端输出清晰的提示信息(比如“等待实验者确认,按空格继续”),避免实验者误操作或不清楚当前状态。
  • 容错处理:针对输入/按键监听添加异常捕获,比如处理用户输入非预期内容、键盘监听中断的情况,避免脚本直接崩溃。
  • 可配置触发方式:通过配置变量或命令行参数选择触发方式(比如输入回车/空格键/特定指令),适配不同实验场景需求。
  • 日志记录:在每个步骤执行前后记录日志(比如“机器人1问候完成”“已触发机器人2发声”),方便后续复盘实验过程。
  • 避免阻塞核心逻辑:确认机器人API的say()方法是同步还是异步执行,必要时添加等待逻辑,确保手动触发逻辑不会干扰机器人动作的正常执行。

内容的提问来源于stack exchange,提问作者Ada Shi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 21:03:13