# Web 仿真控制脚本 该目录存放可由 MuJoCo Web 平台“控制 → Python 控制器”直接导入的可信本地脚本。 ## Go2-W 平衡控制 文件:`go2_w_balance.py` 使用条件: 1. 可导入 `/home/cen/Embodied_Workspace/unitree_ros/robots/go2w_description/` 文件夹/ZIP,或 Unitree 官方 `/home/cen/Embodied_Workspace/unitree_mujoco/unitree_robots/go2w/` MJCF 工程; 2. 使用 URDF 时选择“转换为 MJCF”和“浮动基座”; 3. 使用 URDF 时勾选“为关节添加驱动器”和“添加传感器”,平台会在浮动基座注入6轴 IMU; 4. 模型加载后进入“控制 → Python 控制器”,导入本文件; 5. 点击“加载脚本”或直接导入后,点击“启用”,再播放仿真。 控制器兼容两套命名: - Body:官方 MJCF 的 `base_link` 或 URDF 转换模型的 `base` - 腿关节:`FL/FR/RL/RR_{hip,thigh,calf}_joint` - 轮关节:官方 `*_wheel_joint` 或 URDF 转换后的 `*_foot_joint` - actuator:官方 `FL_hip`/`FL_wheel` 风格,或平台生成的 `_motor` - 6轴 IMU:`imu_gyro`(三轴角速度)和 `imu_acc`(三轴加速度) 脚本在原地站立和 IMU roll/pitch 调平基础上,实现平台 Python SDK 的标准基本移动指令:停止、前进、后退、左转、右转和原地起跳。加载并启用脚本后,可在“基本移动指令”面板直接操作。前后移动采用四轮速度闭环;转向采用前轮主导、后轮限幅的左右差速,减小后腿 hip 关节摆幅;起跳采用“下蹲—爆发伸腿—腾空收腿—落地准备—恢复”的一次性轨迹。 控制脚本可选定义同步函数 `command(name, state)` 接收指令。当前标准指令名为: - `stop` - `forward` - `backward` - `turn_left` - `turn_right` - `jump` 其中移动/转向指令会持续生效,直到收到另一条移动指令或 `stop`。`stop` 会在轮速降为零后继续执行带积分补偿的站立姿态恢复,使机身自动回正。`jump` 是一次性原地起跳指令,会先切换到 `stop`。控制器在下蹲阶段保持完整重心补偿,爆发阶段以小腿竖直推力和轮毂反作用力矩抑制后仰,并记录起跳点;落地接触后会沿机身前向轴自动收回水平漂移。控制器必须确认位置、机身高度、姿态和角速度重新稳定,才会执行下一次已排队的起跳,避免连续起跳逐步后仰。不同接触参数、质量或初始姿态下,可调整 `NOMINAL`、`KP_FINAL`、`KD`、`DRIVE_SPEED`、`DRIVE_ACCELERATION`、`TURN_RATE`、`TURN_ACCELERATION`、`WHEEL_VELOCITY_KP` 和 `MAX_WHEEL_TORQUE`。速度指令采用斜坡限制,避免轮毂力矩阶跃导致机身后仰;起跳会等待轮速和重心稳定,随后以小腿满力矩爆发伸展,并在腾空阶段主动收腿和持续控制俯仰。