如何在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
相关产品推荐
相关产品推荐

