本项目是基于 MuJoCo 物理引擎的 天工3.0 机器人仿真环境,用于开发和测试机器人控制算法。
.
├── README.md # 项目说明文档
├── resources # 机器人模型文件
│ ├── tiangong3 # 天工3.0 机器人模型
│ └── terrain # 地形高程图等资源
│ ├── evt2
└── scripts # Python 脚本目录
├── convert_xml.py # URDF 到 XML 转换工具
├── elastic_band.py # 弹性带控制器
├── terrain_generator.py # 地形场景生成工具
└── simulator_view_asyn.py # 异步仿真器(支持 ROS2)
- 包含完整的 天工3.0 机器人模型,具有多个自由度
- 支持腿部、腰部和手臂关节控制
- 集成 IMU 传感器和关节传感器
- 支持位置控制和力矩控制模式
- 实现 PVD(位置-速度-力矩)混合控制器
- 提供传感器数据读取接口
- 实时物理仿真
- 3D 可视化显示
- 数据记录和绘图功能
- ROS2 集成支持(通过 simulator_view_asyn.py)
# 建议使用虚拟环境
pip install mujoco numpy matplotlib pynput pillowbodyctrl_msg 位于xmigcs/lib/下
# ros2 = jazzy
sudo dpkg -i ros-jazzy*.deb
# ros2 = humble
sudo dpkg -i ros-humble*.deb# ros2 = jazzy
source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=your_domain_id
python scripts/simulator_view_asyn.py -m tg3(机器人名称)
# ros2 = humble
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=your_domain_id
python scripts/simulator_view_asyn.py -m tg3(机器人名称)项目内置一组综合地形测试场地,包含:
- 三档楼梯:台阶高度 8cm / 12cm / 18cm,每档含上楼梯与下楼梯首尾相连
- 三档上下坡:坡度 10° / 20° / 30°,每档含上坡与下坡首尾相连
- 梅花桩:交错排列圆柱踏桩
- 随机起伏地形:Perlin 风格高度场
- 随机路面:随机高度与姿态的路面砖块
地形场景使用 tiangong3 (tg3) 机器人,生成与加载方式:
# 生成地形
python scripts/terrain_generator.py
# 地形场景
机器人出生点在场地原点,沿 +X 方向依次经过:起伏地形 → 随机路面 → 梅花桩 → 楼梯 → 上下坡。
# 以ros2 = humble 为例
source /opt/ros/humble/setup.bash
export ROS_DOMAIN_ID=your_domain_id
python scripts/simulator_view_asyn.py -m tg3_terrain异步版本的机器人仿真器,支持:
- 多线程运行
- ROS2 集成
- 键盘控制
- 实时数据发布
弹性带控制器
DEX 机器人包含以下关节组:
-
腿部关节:
- hip_pitch_l_joint, hip_roll_l_joint, hip_yaw_l_joint
- knee_pitch_l_joint, ankle_pitch_l_joint, ankle_roll_l_joint
- 右腿对应关节
-
腰部关节:
- waist_yaw_joint, waist_roll_joint, waist_pitch_joint
-
手臂关节:
- 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 方向、加速度、位置数据
- 确保 MuJoCo 模型文件路径正确
- 如需 ROS2 支持,请先启动 ROS2 环境
- 仿真速度受系统性能影响,可通过调整 timestep 参数优化