# Unitree G1 MuJoCo键盘控制无法转向或横移的解决

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-04-28-unitree-mujoco-104
> 频道：pitfalls | 更新日期：2026-04-28 | 标签：auto, github-issue, unitree_mujoco
> 核心摘要：G1 29DoF在MuJoCo中用键盘控制时无法转向/横移，因策略未训练零线速工况，需在线速度指令中叠加非零值。

# Unitree G1 MuJoCo键盘控制无法转向或横移的解决

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Deploying Policy and Controlling Unitree G1 29dof with Keyboard](https://github.com/unitreerobotics/unitree_mujoco/issues/104)（GitHub unitreerobotics/unitree_mujoco #104）

**状态**：有绕过办法

## 问题

在Cloud VM无手柄环境下使用键盘控制Unitree G1 29DoF仿真时，前后移动正常但无法执行转向（Turn）和横移（Strafe）。原因是RL策略训练时未包含零线速度样本，导致纯角速度或纯横向速度指令失效。

## 环境

Unitree G1 29DoF, unitree_mujoco, Cloud VM, State_RLBase.cpp, keyboard_velocity_commands

## 解决办法

1. 修改 `State_RLBase.cpp` 中的 `keyboard_velocity_commands` 观测注册逻辑，确保 `deploy.yaml` 中观测名称同步改为 `keyboard_velocity_commands`
2. 调整键盘映射表 `key_commands`，在转向或横移指令中强制叠加非零线速度分量（如 `{0.2f, 0.0f, 1.0f}`），避免发送纯角速度或纯侧向速度
3. 利用策略对线速度的泛化能力（训练0.1实测0.4可用），将前进/后退指令范围扩展至0.4/-0.3，横移限制为训练最大值50%（约0.05）
4. 如需Fix-stand等复合功能，建议封装键盘到Xbox控制器的映射端口以完整支持所有策略指令

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_mujoco #104：Deploying Policy and Controlling Unitree G1 29dof with Keyboard](https://github.com/unitreerobotics/unitree_mujoco/issues/104)