
# 命令与按键关联
#### 关联到已注册的命令实例
keymap的value是命令实例名（YAML commands段的key）
```
hardware:
  config:
    commands:
      go_home:              # ← 实例名
        type: go_home
        joints: [0, 0, 0, 0, 0, 0]
      state:                # ← 实例名
        type: get_state
runtime:
  keyboard_control:
    enabled: true
    keymap:
      "h": go_home          # → 执行 go_home 实例
      "s": state            # → 执行 state 实例
```
#### 关联到生命周期命令
pause_resume和graceful_stop是内置保留命令，不需要在commands段声明，只能通过保留键触发。
#### 启动时校验
- **配置校验**（from_config）：keymap结构、保留键、类型正确性，有错立即报错退出。
- **命令存在性校验**（from_config）：keymap值对应的命令实例是否存在，有错立即报错退出。
```
keymap:
  "x": unknown_cmd     # ← 如果 unknown_cmd 未注册 → ValueError 退出
```
错误消息示例
```
ValueError: keymap key 'x' → 'unknown_cmd': no such command.
  Available commands: ['go_home', 'state']
  Fix: register a command named 'unknown_cmd' or change the keymap.
```
