f4b415c54f
web-platform-ci / TypeScript、Lint、Unit、Build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
web-platform-ci / TypeScript、Lint、Unit、Build (pull_request) Has been cancelled
web-platform-ci / Playwright E2E (pull_request) Has been cancelled
37 lines
2.8 KiB
Markdown
37 lines
2.8 KiB
Markdown
# 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` 风格,或平台生成的 `<joint-name>_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`。速度指令采用斜坡限制,避免轮毂力矩阶跃导致机身后仰;起跳会等待轮速和重心稳定,随后以小腿满力矩爆发伸展,并在腾空阶段主动收腿和持续控制俯仰。
|