控制 Unitree G1 机器人的运动模式切换,包括零力矩、阻尼、站立、行走等状态转换
Unitree G1 人形机器人的启动和运动模式管理技能。G1 有严格的状态转换规则:零力矩模式必须先进入阻尼模式才能进行其他操作;阻尼模式是所有高级模式(站立、行走、跑步)的中转站。此技能提供完整的状态转换指引。
# G1 运动模式控制指令 ## 模式概览 G1 有以下运动模式(通过 switch_mode 工具切换): | 模式名 | 说明 | |--------|------| | zero_torque | 零力矩模式(最省电,关节完全松弛) | | damp | 阻尼模式(关节有轻微阻力,安全中间态) | | stand_up | 从蹲下站起 | | squat | 从站立蹲下 | | balance_stand | 平衡站立 | | high_stand | 高站姿 | | low_stand | 低站姿 | | continuous_gait | 持续步态(准备行走) | | stop_gait | 停止步态 | | sit | 坐下 | | lie_to_stand | 从躺卧恢复站立 | ## 状态转换规则(重要!) zero_torque ←→ damp ←→ [所有其他模式] 1. **零力矩 → 其他模式**:必须先 `damp`,再切到目标模式 2. **其他模式 → 零力矩**:必须先 `damp`,再 `zero_torque` 3. **其他模式之间互转**:可通过 `damp` 中转,部分可直接转换(如 squat ↔ stand_up) ## 启动序列(从关机/零力矩到可行走) 1. `switch_mode(mode="damp")` — 进入阻尼模式 2. 等待 1-2 秒稳定 3. `switch_mode(mode="stand_up")` — 站起 4. 现在可以使用 `loco(action="move", ...)` 行走 ## 关机序列(从任意状态到零力矩) 1. `switch_mode(mode="stop_gait")` — 如果正在走动,先停止 2. `switch_mode(mode="squat")` — 蹲下 3. `switch_mode(mode="damp")` — 进入阻尼 4. `switch_mode(mode="zero_torque")` — 零力矩(可安全断电) ## 行走控制 使用 `loco` 工具: - `loco(action="move", vx=0.3, vy=0, vyaw=0)` — 前进 - `loco(action="move", vx=0, vy=0, vyaw=0.5)` — 原地转弯 - `loco(action="stop")` — 停止移动 参数范围:vx [-1,1] m/s, vy [-1,1] m/s, vyaw [-2,2] rad/s ## 注意事项 - 在 zero_torque 模式下机器人会瘫软倒下,确保有人扶持再切换 - damp 模式是安全的"待机"状态,不确定时先切到 damp - 用户说"站起来"→ 从当前状态判断是否需要先 damp 再 stand_up - 用户说"休息/省电"→ squat → damp → zero_torque