命令机制总览
在机器人使用者选定机器人型号后,需要写一份YAML配置,让cloudroboclient启动后键盘按h/空格就能让机械臂归位。
请在本地hw_r2c_sdk-x.x.x/r2c_sdk_python/config文件夹找到机器人配置文件robot_{不同的机器人}_config.yaml,比如robot_flexiv_config.yaml,机器人配置中包含命令机制配置。
命令机制配置commands.go_home只接受 4个标准键,其余都会被拒绝。
| 键名 | 类型 | 含义 | 适用适配器 |
|---|---|---|---|
| pose_euler | [x, y, z, roll, pitch, yaw] 6 floats | 米 + 弧度,TCP目标位姿(欧拉角) | flexiv(其它适配器报NotImplementedError) |
| pose_quat | [x, y, z, qw, qx, qy, qz] 7 floats | 米 + 单位四元数,TCP目标位姿 | - |
| joints | [j1, j2, ..., jN] N floats | 各关节目标角度(弧度),N = 机器人 DOF | dummy/lerobot/flexiv |
| gripper | float或"open" / "close" | 夹爪目标宽度(m)或语义动作 | flexiv(其它适配器走no-op) |
关键约束
- pose_euler/pose_quat/joints三选一,只允许一个存在。配置里同时放多个键,启动时报ValueError。
- 三个运动键都不填,不会报错,SDK打印WARNING日志后跳过本次执行(软失败)。
- gripper是可选的,只填夹爪键不动臂是不允许的(软失败),但是臂 + 夹爪组合是允许的。
- 调用顺序固定为先臂后夹爪:臂没动成功就不会动夹爪(atomic语义,中间态不安全)。
触发方式
按键盘按键进行命令触发,默认情况下,键盘按键触发的命令如表2。
| 按键 | 命令 | 说明 | 可重映射? |
|---|---|---|---|
| 空格键 | pause_resume | 暂停/恢复推理循环 | 保留键 |
| h键 | go_home | 复位(需暂停态) | 支持 |
| q键 | graceful_stop | 退出进程 | 保留键 |
键盘触发条件:在runtime段打开keyboard_control.enabled。
典型配置片段
runtime:
keyboard_control:
enabled: true # 空格 触发暂停/恢复,在暂停时按h 触发 go_home
hardware:
type: dummy
config:
commands:
go_home: # 命令实例名称 键盘按键映射时的目标
type: go_home # 命令类型 go_home 表示复位命令 可定义多个go_home 命令实例,从而支持多个复位点
joints: [0.0, 0.1, 0.2, 0.3, 0.4, 0.5]
go_home_ready: # 命令实例名称 键盘按键映射时的目标
type: go_home # 命令类型 go_home 表示复位命令 可定义多个go_home 命令实例,从而支持多个复位点
joints: [0.0, 0.1, 0.2, 0.3, 0.4, 0.5]