First Commit
This commit is contained in:
109
xSIM_MUJOCO/README.md
Normal file
109
xSIM_MUJOCO/README.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# MuJoCo DEX 机器人仿真项目
|
||||
|
||||
本项目是基于 MuJoCo 物理引擎的 DEX 机器人仿真环境,用于开发和测试机器人控制算法。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
.
|
||||
├── README.md # 项目说明文档
|
||||
├── resources # 机器人模型文件
|
||||
│ ├── evt2
|
||||
└── scripts # Python 脚本目录
|
||||
├── convert_xml.py # URDF 到 XML 转换工具
|
||||
├── elastic_band.py # 弹性带控制器
|
||||
└── simulator_view_asyn.py # 异步仿真器(支持 ROS2)
|
||||
```
|
||||
|
||||
## 主要功能
|
||||
|
||||
### 1. 机器人模型
|
||||
- 包含完整的 DEX 机器人模型,具有多个自由度
|
||||
- 支持腿部、腰部和手臂关节控制
|
||||
- 集成 IMU 传感器和关节传感器
|
||||
|
||||
### 2. 控制系统
|
||||
- 支持位置控制和力矩控制模式
|
||||
- 实现 PVD(位置-速度-力矩)混合控制器
|
||||
- 提供传感器数据读取接口
|
||||
|
||||
### 3. 仿真功能
|
||||
- 实时物理仿真
|
||||
- 3D 可视化显示
|
||||
- 数据记录和绘图功能
|
||||
- ROS2 集成支持(通过 simulator_view_asyn.py)
|
||||
|
||||
## 安装依赖
|
||||
|
||||
```bash
|
||||
# 建议使用虚拟环境
|
||||
pip install mujoco numpy matplotlib pynput
|
||||
```
|
||||
bodyctrl_msg 位于xmigcs/lib/下
|
||||
```bash
|
||||
sudo dpkg -i ros-jazzy*.deb
|
||||
```
|
||||
## 使用方法
|
||||
|
||||
### 异步仿真(支持 ROS2)
|
||||
|
||||
```bash
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
export ROS_DOMAIN_ID=your_domain_id
|
||||
python scripts/simulator_view_asyn.py -m evt2(机器人名称)
|
||||
```
|
||||
|
||||
## 主要脚本说明
|
||||
|
||||
### simulator_view_asyn.py
|
||||
异步版本的机器人仿真器,支持:
|
||||
- 多线程运行
|
||||
- ROS2 集成
|
||||
- 键盘控制
|
||||
- 实时数据发布
|
||||
|
||||
### elastic_band.py
|
||||
弹性带控制器
|
||||
|
||||
## 机器人关节结构
|
||||
|
||||
DEX 机器人包含以下关节组:
|
||||
|
||||
1. **腿部关节**:
|
||||
- hip_pitch_l_joint, hip_roll_l_joint, hip_yaw_l_joint
|
||||
- knee_pitch_l_joint, ankle_pitch_l_joint, ankle_roll_l_joint
|
||||
- 右腿对应关节
|
||||
|
||||
2. **腰部关节**:
|
||||
- waist_yaw_joint, waist_roll_joint, waist_pitch_joint
|
||||
|
||||
3. **手臂关节**:
|
||||
- shoulder_pitch_l_joint, shoulder_roll_l_joint, shoulder_yaw_l_joint
|
||||
- elbow_pitch_l_joint, elbow_yaw_l_joint, wrist_pitch_l_joint, wrist_roll_l_joint
|
||||
- 右臂对应关节
|
||||
|
||||
## 控制接口
|
||||
|
||||
通过修改 `data.ctrl[]` 数组来控制关节力矩,通过读取 `data.sensordata[]` 获取传感器数据。
|
||||
|
||||
## 键盘控制
|
||||
|
||||
在仿真运行时:
|
||||
- end:切换力控、位控
|
||||
- numlock: 暂停、继续
|
||||
- up: 升起机器人
|
||||
- down: 降下机器人
|
||||
- ESC: 释放机器人,可以自由运动
|
||||
|
||||
|
||||
## 数据记录
|
||||
|
||||
仿真器会自动记录以下数据用于后续分析和可视化:
|
||||
- 关节位置、速度、力矩
|
||||
- IMU 方向、加速度、位置数据
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 确保 MuJoCo 模型文件路径正确
|
||||
2. 如需 ROS2 支持,请先启动 ROS2 环境
|
||||
3. 仿真速度受系统性能影响,可通过调整 timestep 参数优化
|
||||
Reference in New Issue
Block a user