# demo-e3 **Repository Path**: wytj0304/demo-e3 ## Basic Information - **Project Name**: demo-e3 - **Description**: mujoco e3 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MUJOCOOO - 机器人仿真训练平台 基于 MuJoCo 的机器人运动控制仿真平台,支持手柄控制、策略训练、数据监控和可视化。 ## 功能特性 ### 1. 图形化主界面 (`main.py`) - **模型管理**:支持 XML/YAML 配置文件加载 - **实时仿真**:嵌入式 MuJoCo 窗口,支持开始/暂停/停止控制 - **关节监控**:实时显示选定关节的位置和速度数据 - **数据可视化**:实时绘制关节力矩和速度曲线 - **奖惩调参**:可视化配置奖励/惩罚规则 - **数据窗口**:支持拖放式关节数据筛选和排序 ### 2. 手柄控制仿真 (`deploy_gamepad_embed.py`) - **手柄输入**:支持 Logitech/Betop 游戏手柄 - **键盘控制**:WASD/QE 控制,Y 键切换相机跟踪 - **策略加载**:支持 PyTorch 策略模型 - **自适应窗口**:支持多分辨率和全屏显示 - **数据导出**:实时输出关节数据到临时文件 ### 3. 手柄校准工具 (`calibrate_gamepad.py`) - 游戏手柄摇杆和死区校准 - 自动生成校准配置文件 ## 安装依赖 ### 1. 创建虚拟环境(推荐) ```bash # Windows python -m venv venv venv\Scripts\activate # Linux/Mac python -m venv venv source venv/bin/activate ``` ### 2. 安装依赖包 ```bash pip install -r requirements.txt ``` ## 快速开始 ### 1. 启动主界面 确保已激活虚拟环境后运行: ```bash python main.py ``` ### 2. 选择模型 - 点击工具栏的 " 选择模型文件" 按钮 - 选择配置文件(如 `configs/e3.yaml`)或模型文件(如 `models/e3/scene_terrain.xml`) ### 3. 开始仿真 - 点击绿色 "▶" 按钮开始仿真 - 使用黄色 "⏸" 按钮暂停/继续 - 使用红色 "⏹" 按钮停止仿真 ### 4. 手柄控制 如果使用游戏手柄: - 连接手柄后在配置文件中设置 `use_gamepad: true` - 左摇杆控制 X/Y 方向移动 - 右摇杆控制旋转(Yaw) - 键盘 WASD/QE 可替代手柄输入 - 按 Y 键切换相机跟踪模式 ### 5. 关节监控 1. 点击左下角 "选择关节" 按钮 2. 点击关节前的 "+" 按钮添加到监控列表(点击 "√" 取消) 3. 点击 "完成",右下角将实时显示关节数据 ### 6. 数据可视化 - 右侧 "数据监控" 面板实时显示关节力矩和速度曲线 - 自动记录最近 3 秒的数据 ### 7. 奖惩调参 1. 点击工具栏 "奖惩调参" 按钮 2. 点击 "+ 添加规则" 创建新规则 3. 配置规则:选择关节 → 选择参数(位置/速度)→ 选择条件(> / <)→ 输入阈值和奖励值 4. 点击 "保存" 保存规则到 `reward_penalty_rules.yaml` ### 8. 数据窗口 1. 点击工具栏 "数据窗口" 按钮 2. 从左侧拖动关节到右侧列表 3. 在右侧拖动调整排序 4. 支持重复添加同一关节 5. 选中项目后按 Delete 键或右键菜单删除 ## 项目结构 ``` MUJOCOOO/ ├── main.py # 主程序界面 ├── deploy_gamepad_embed.py # 嵌入式仿真部署脚本 ├── calibrate_gamepad.py # 手柄校准工具 ├── configs/ # 配置文件 │ ├── e3.yaml # 标准配置 │ ├── e3_train.yaml # 训练配置 │ └── e3_walking.yaml # 行走配置 ├── models/ # 机器人模型 │ └── e3/ # E3 机器人模型及网格文件 ├── policies/ # 策略模型 │ └── motion_5000.pt # 训练好的策略 ├── utils/ # 工具函数 │ ├── gamepad_utils.py # 手柄输入处理 │ ├── viewer_utils.py # 相机控制 │ ├── plot_utils.py # 数据绘图 │ ├── disturbance_utils.py # 扰动控制 │ └── ... ├── icon/ # UI 图标 │ ├── start.svg │ ├── pause.svg │ ├── continue.svg │ └── stop.svg ├── data/ # 手柄校准数据 │ ├── gamepad_calibration_logitech.json │ └── gamepad_calibration_betop.json └── reward_penalty_rules.yaml # 奖惩规则配置 ``` ## 配置文件说明 ### YAML 配置参数 ```yaml policy_path: "policies/motion_5000.pt" # 策略模型路径 xml_path: "models/e3/scene_terrain.xml" # 机器人模型路径 simulation_duration: 600.0 # 仿真时长(秒) simulation_dt: 0.002 # 仿真时间步长 control_decimation: 10 # 控制频率分频 kps: [...] # PD 控制器 P 增益 kds: [...] # PD 控制器 D 增益 default_angles: [...] # 关节初始角度 num_actions: 21 # 可控关节数 num_obs: 72 # 观测空间维度 cmd_init: [0., 0, 0] # 初始命令 [vx, vy, yaw] gamepad_type: logitech # 手柄类型 use_gamepad: true # 是否启用手柄 ``` ## UI 功能说明 ### 工具栏按钮 | 按钮 | 功能 | |------|------| | 📁 选择模型文件 | 打开文件选择对话框 | | ▶ (绿色) | 开始仿真 | | ⏸ (黄色) | 暂停/继续仿真 | | ⏹ (红色) | 停止仿真 | | 奖惩调参 (紫色) | 打开奖惩规则配置 | | 数据窗口 (青色) | 打开数据筛选窗口 | ### 侧边栏 - **资源视图**:显示当前加载的模型和配置文件 - **任务列表**:任务管理(预留) - **关节监控**:实时显示选定关节的位置和速度 ### 数据监控面板 - **关节力矩曲线**:实时绘制关节力矩变化 - **关节速度曲线**:实时绘制关节速度变化 - 自动显示最近 3 秒数据 - 支持最多显示 6 个关节 ## 故障排除 ### 1. 手柄无法识别 - 确保手柄已正确连接 - 运行 `calibrate_gamepad.py` 进行校准 - 检查配置文件中的 `gamepad_type` 设置 ### 2. 窗口无法嵌入 - Windows 系统可能需要管理员权限 - 尝试重启程序或调整窗口大小 ### 3. 数据不更新 - 确保仿真正在运行(未暂停) - 检查是否已添加监控关节 - 查看控制台是否有错误信息 ### 4. 相机跟踪不工作 - 确保已按 Y 键启用跟踪 - 检查 pelvis(骨盆)关节是否存在 - 尝试使用 WASD/QE 手动调整相机 ## 性能优化 - **待机模式**:未运行仿真时,定时器自动停止,CPU 占用接近 0% - **自适应刷新**:关节数据 10Hz,绘图 5Hz - **窗口大小**:支持从配置文件自定义窗口分辨率