Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions src/mujoco_running/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# 人形机器人 CPG 步态控制仿真系统
## 1. 项目概述
本项目基于 MuJoCo 物理仿真平台,实现了一套**基于 CPG(中枢模式发生器)的人形机器人步态生成与控制系统**。系统以仿生节律算法为核心,完成机器人双腿交替摆动的自然步态生成,并支持键盘实时控制、多模式步态切换、状态机管理与多级安全保护。

受限于简化机器人模型结构,项目重点验证 **CPG 步态生成算法有效性** 与**基础运动控制框架**,可为后续双足机器人平衡控制、重心规划、动态行走等高级算法提供可扩展的开发平台。

## 2. 功能
- **CPG 仿生节律步态**:模拟生物中枢神经模式,实现平滑、周期性的双腿交替运动
- **多状态控制逻辑**:STAND / WALK / STOP / EMERGENCY 状态管理
- **键盘实时控制**:W/S 行走启停,A/D 转向控制
- **多步态模式切换**:慢走 / 正常 / 快速 / 原地踏步
- **IMU 姿态传感器模拟**:获取机器人倾斜角与角速度
- **关节安全限位**:防止运动超限与姿态畸变
- **纯 Python 轻量化运行**:Windows 直接启动

## 3. 环境依赖
bash
pip install mujoco numpy
- Python 3.8 ~ 3.11
- MuJoCo 2.3.0 及以上

## 4. 项目结构
├── models/
│ └── humanoid.xml # MuJoCo 简化人形机器人模型
├── humanoid_stabilizer.py # 主控制程序(仿真入口)
├── cpg_oscillator.py # CPG 中枢模式发生器
├── sensor_simulator.py # IMU 姿态传感器模拟
├── keyboard_handler.py # 键盘控制线程
├── utils.py # 工具函数(数值裁剪、角度转换等)
└── README.md # 项目说明文档
## 5. 核心模块说明
### 5.1 CPG 步态生成模块
- 采用正弦振荡器生成连续、周期性控制信号
- 输出信号直接驱动左右髋关节、膝关节交替运动
- 可在线调节频率、振幅,实现步态速度与步幅控制
### 5.2 运动控制模块
- 状态机控制机器人行为模式
- 行走状态:CPG 节律输出
- 停止/站立状态:关节归零,保持静止
- 紧急状态:控制量强制清零,安全停机
### 5.3 传感器模拟模块
- 模拟机器人躯干 IMU 传感器
- 输出滚动角(roll)、俯仰角(pitch)及其角速度
- 为后续平衡控制提供状态反馈
### 5.4 键盘控制模块
- 独立线程监听键盘输入
- 支持实时启停、转向、步态切换
- 操作简单、便于调试与演示

## 6. 使用方法
### 6.1 启动仿真
bash
python humanoid_stabilizer.py

### 6.2 键盘控制说明
- `W`:进入行走模式,启动 CPG 步态
- `S`:停止步态,关节归零保持静止
- `A/D`:左右转向控制
- `1/2/3/4`:切换步态速度(慢走/正常/快速/踏步)
- `Q`:退出仿真

## 7. 改进方向
- 更换高精度双足机器人模型
- 加入 ZMP 稳定控制与倒立摆平衡算法
- 引入强化学习实现自适应步态优化
- 接入 ROS 实现多机通信与真实机器人部署
- 增加足底压力传感器、力控反馈

## 参考资料
- [ROS 1 Noetic 官方文档](http://wiki.ros.org/noetic)
- [Mujoco 官方用户手册](https://mujoco.readthedocs.io/)
- [中枢模式发生器(CPG)步态控制综述](https://arxiv.org/abs/2003.02893)
- [ROS 包封装规范指南](http://wiki.ros.org/Packages)
Loading