# G1 sim2sim Xbox手柄无法切换FSM状态机

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-12-05-unitree-rl-lab-81
> 频道：pitfalls | 更新日期：2025-12-05 | 标签：auto, github-issue, unitree_rl_lab
> 核心摘要：Xbox手柄在sim2sim中无法触发FSM切换，因按键映射识别为Switch协议，修改config.yaml配置即可解决。

# G1 sim2sim Xbox手柄无法切换FSM状态机

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[sim2sim时xbox手柄无法遥控](https://github.com/unitreerobotics/unitree_rl_lab/issues/81)（GitHub unitreerobotics/unitree_rl_lab #81）

**状态**：已解决

## 问题

在unitree_mujoco sim2sim仿真中使用Xbox手柄时，`gamepad_test.py`测试正常，但运行`g1_ctrl`按提示按键无反应，无法进入其他FSM状态。通过`cyclonedds subscribe rt/lowstate`验证手柄输入数据有变化，但数值与宇树原厂手柄不一致，导致控制逻辑未触发。

## 环境

机型：unitree-g1；软件：unitree_rl_lab、unitree_mujoco；外设：Xbox手柄；通信：CycloneDDS

## 解决办法

1. 使用 `cyclonedds subscribe rt/lowstate` 监测手柄消息，确认物理输入已发布但数值异常。
2. 对比 `physics_joystick.h` 源码中的按键映射定义，确认当前Xbox手柄实际输出的键值匹配Switch协议而非Xbox协议。
3. 编辑 `unitree_mujoco/config.yaml` 配置文件。
4. 将 `joystick_type` 参数值由 "xbox" 修改为 "switch"。
5. 重启 `g1_ctrl` 控制程序，验证FSM状态切换功能恢复正常。

讨论原作者：@zzuli-buu 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_rl_lab #81：sim2sim时xbox手柄无法遥控](https://github.com/unitreerobotics/unitree_rl_lab/issues/81)