Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ IFLY_ACCENT=shanghainese

# 置信度阈值(0-1,越小越容易识别)
IFLY_CONF_THRESHOLD=0.12
ROBOT_PORT=COM12
COMMANDS_PATH=commands.yaml
23 changes: 0 additions & 23 deletions README.md

This file was deleted.

201 changes: 201 additions & 0 deletions commands.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
# ==========================================
# Voice-Robot 指令配置文件
# 用途:定义机器人动作、方言关键词、参数
# ==========================================

# 基础配置
robot:
name: "SO-101 LeRobot Arm"
description: "Remote operation data collection for LeRobot"

# 语音识别配置
speech:
engine: "ifly" # iFlytek 讯飞
language: "zh_cn"
accent: "mandarin" # 改为普通话,大幅提升非上海话识别率
vad_eos: 1500 # 句子结束检测时间(ms)
confidence_threshold: 0.12
fuzzy_match_threshold: 0.8 # 略微提高阈值以过滤干扰

# 指令定义(动作树)
commands:
# 抓取动作
PICK:
description: "拿起物体"
keywords:
- "抓取"
- "拿起来"
- "握紧"
- "抓一下"
- "拿"
- "抓"
tts_feedback: "已收到拿起指令"
action_type: "manipulate"
timeout: 30 # 秒

# 放下动作
PLACE:
description: "放下物体"
keywords:
- "放下"
- "放开"
- "松开"
- "放一下"
- "放"
- "下"
tts_feedback: "已收到放下指令"
action_type: "manipulate"
timeout: 30

# 停止动作
STOP:
description: "停止一切动作"
keywords:
- "停止"
- "放松"
- "释放"
- "停一下"
- "别动"
tts_feedback: "已停止所有动作"
action_type: "emergency"
timeout: 5

# 【新增】调试模式:进入示教状态(主臂松弛)
ARM_RELAX:
description: "进入调试/示教模式,松开机械臂力矩"
keywords:
- "进入调试"
- "示教模式"
- "松开机械臂"
- "放松"
- "手动拖动"
tts_feedback: "已进入示教模式,可以手动拖动"
action_type: "debug"
timeout: 300

# 【新增】调试模式:退出示教状态(主臂锁定)
ARM_LOCK:
description: "退出调试/示教模式,锁定机械臂力矩"
keywords:
- "退出调试"
- "锁定机械臂"
- "停止示教"
- "锁定"
tts_feedback: "已锁定机械臂"
action_type: "debug"
timeout: 5

# 【新增】故障恢复:重启舵机 6
RESET_GRIPPER:
description: "重启6号舵机(夹持器)并恢复连接"
keywords:
- "重启夹持器"
- "重置舵机"
- "6号舵机重启"
- "修复舵机"
- "舵机重启"
tts_feedback: "正在重启夹持器"
action_type: "recovery"
timeout: 10

# 数据采集:开始记录
RECORD_START:
description: "开始采集遥操作数据"
keywords:
- "开始记录"
- "开始采集"
- "开始录制"
- "开始测试" # 新增:常见误识别词
- "开始测" # 新增:简化版本
- "开始" # 新增:通用触发词
- "录制"
- "开始录"
- "来一遍"
tts_feedback: "开始记录遥操作数据"
action_type: "data_collection"
timeout: 300 # 5分钟

# 数据采集:停止记录
RECORD_STOP:
description: "停止采集遥操作数据"
keywords:
- "停止记录"
- "结束记录"
- "录好了"
- "存好"
- "存一下"
- "保存"
- "没有了"
tts_feedback: "停止记录,数据已保存"
action_type: "data_collection"
timeout: 10

# 主臂:记录当前姿态
GESTURE_RECORD:
description: "从主臂读取并记录当前姿态"
keywords:
- "记录姿态"
- "记一哈"
- "存一个"
- "保存动作"
- "哈这个"
tts_feedback: "已记录主臂姿态"
action_type: "arm_control"
timeout: 5

# 主臂:连续录制
GESTURE_START:
description: "开始连续录制主臂姿态"
keywords:
- "开始录制"
- "连续记录"
- "启动录制"
- "来一遍"
- "保存一遍"
tts_feedback: "开始连续录制主臂姿态"
action_type: "arm_control"
timeout: 300

# 主臂:停止录制
GESTURE_STOP:
description: "停止连续录制主臂姿态"
keywords:
- "停止录制"
- "录好了"
- "完了"
- "结束"
- "保存完"
tts_feedback: "停止录制"
action_type: "arm_control"
timeout: 5

# 环境变量覆盖(从 .env 读取,此处为默认值)
defaults:
app_id: "YOUR_APP_ID_HERE"
api_key: "YOUR_API_KEY_HERE"
api_secret: "YOUR_API_SECRET_HERE"
sample_rate: 16000
channels: 2
chunk_ms: 80

# 日志与输出
logging:
log_file: "commands.log"
cmd_json: "last_command.json"
lerobot_log: "lerobot_runtime.log"

# LeRobot 集成(后续扩展)
lerobot:
enabled: true
env_name: "lerobot"
robot_path: "lerobot/configs/robot/so_101"
script_path: "lerobot/scripts/control_robot.py"

# 硬件配置(主臂/从臂控制)
hardware:
leader_port: "COM12" # 主臂(Leader)串口
leader_baudrate: 115200 # 主臂波特率
follower_port: "COM13" # 从臂(Follower)串口(可选)
record_interval_ms: 100 # 连续记录间隔(毫秒)
calib_file: null # 校准文件路径(自动识别)

Loading