mi-task/task_2/README_crawl_gait.md

182 lines
5.1 KiB
Markdown
Raw Normal View History

2025-08-18 12:53:35 +08:00
# 低头匍匐前进步态设计
## 概述
本模块为小米CyberDog机器狗设计了一套低头匍匐前进的自定义步态实现保持低身位、头部下垂的四足步态行走。
## 特点
- **低身位姿态**: 机器人身体降低约5-8cm保持稳定的低重心
- **头部下垂**: 通过调整pitch角实现约14度的低头姿态
- **稳定匍匐**: 采用对角步态,确保至少三足支撑的稳定性
- **可控速度**: 缓慢而稳定的前进速度,适合低姿态移动
- **安全恢复**: 提供完整的姿态过渡和恢复机制
## 文件结构
```
task_2/
├── crawl_gait.py # 主要步态控制模块
├── Gait_Def_crawl.toml # 步态定义文件
├── Gait_Params_crawl.toml # 步态参数文件
├── file_send_lcmt.py # LCM文件传输消息
├── robot_control_cmd_lcmt.py # 机器人控制命令消息
├── task_2.py # 集成了匍匐步态的任务2
└── README_crawl_gait.md # 本说明文件
```
## 步态设计原理
### 1. 步态定义Gait_Def_crawl.toml
采用16段式对角步态循环
- **四足着地期**: 提供稳定支撑持续8个时间单位
- **单足摆动期**: 每次只有一条腿离地持续6个时间单位
- **步态顺序**: FL → RR → FR → RL对角步态模式
### 2. 步态参数Gait_Params_crawl.toml
关键参数设置:
- `body_pos_des`: [0.0, 0.25, 0.0, 0.0, 0.0, -0.05] - 低头且身体下降
- `body_vel_des`: [0.08, 0.0, 0.0] - 缓慢前进速度8cm/s
- `step_height`: [0.0, 0.06, 0.0, 0.0] - 摆动腿抬高6cm
- `landing_gain`: 2.0 - 增加落地增益适应低姿态
- `mu`: 0.25 - 摩擦系数
### 3. 姿态控制
- **Roll**: 0.0° - 保持水平
- **Pitch**: 14.3° (0.25 rad) - 实现低头姿态
- **Yaw**: 0.0° - 保持朝向
- **Height**: -5cm - 身体降低到匍匐位置
## 使用方法
### 1. 基本使用
```python
from task_2.crawl_gait import run_low_crawl_demo
# 执行完整的匍匐前进演示(包含姿态过渡)
success = run_low_crawl_demo(ctrl, msg, distance=2.0, observe=True)
```
### 2. 分步控制
```python
from task_2.crawl_gait import (
transition_to_crawl_position,
low_crawl_gait,
recover_from_crawl_position
)
# 步骤1: 过渡到匍匐姿态
transition_to_crawl_position(ctrl, msg, observe=True)
# 步骤2: 执行匍匐步态8步约1米
low_crawl_gait(ctrl, msg, step_count=8, observe=True)
# 步骤3: 恢复正常姿态
recover_from_crawl_position(ctrl, msg, observe=True)
```
### 3. 与任务2集成
```python
from task_2.task_2 import run_task_2_with_crawl_demo
# 执行S型弯道 + 匍匐演示的完整任务
arrow_direction, crawl_success = run_task_2_with_crawl_demo(ctrl, msg, crawl_distance=1.5)
```
### 4. 测试函数
```python
from task_2.task_2 import test_crawl_gait_only, test_crawl_transition_only
# 仅测试匍匐步态
test_crawl_gait_only(ctrl, msg, distance=2.0)
# 仅测试姿态过渡
test_crawl_transition_only(ctrl, msg)
```
## 参数调整指南
### 速度调整
修改`Gait_Params_crawl.toml`中的`body_vel_des`
- 降低值 (如0.05) → 更慢更稳定
- 提高值 (如0.12) → 更快但可能不够稳定
### 身体高度调整
修改`body_pos_des`的第6个值
- -0.03 → 身体降低3cm较轻度匍匐
- -0.08 → 身体降低8cm更深度匍匐
### 低头角度调整
修改`body_pos_des`的第2个值
- 0.15 → 轻度低头约8.6度)
- 0.35 → 深度低头约20度
### 步高调整
修改`step_height`值:
- [0.0, 0.04, 0.0, 0.0] → 降低摆动高度4cm
- [0.0, 0.08, 0.0, 0.0] → 增加摆动高度8cm
## 安全注意事项
1. **地面要求**: 确保地面平整,避免障碍物
2. **空间需求**: 保证足够的头部空间,避免碰撞
3. **监控状态**: 使用`observe=True`监控执行状态
4. **急停机制**: 支持KeyboardInterrupt安全停止
5. **故障恢复**: 自动尝试恢复到安全姿态
## 性能指标
- **前进速度**: 约8cm/s
- **每步距离**: 约10-15cm
- **姿态稳定性**: 始终保持三足以上支撑
- **能耗效率**: 低速步态,较为节能
- **适用场景**: 低空间、需要低姿态通过的环境
## 故障排除
### 常见问题
1. **步态不执行**
- 检查TOML文件路径是否正确
- 确认LCM通信正常
- 验证机器人处于正确的初始状态
2. **姿态不稳定**
- 降低前进速度
- 增加步态持续时间
- 检查地面平整度
3. **无法恢复正常姿态**
- 手动调用`recover_from_crawl_position()`
- 检查机器人关节状态
- 重启机器人系统
### 调试模式
启用详细日志输出:
```python
# 在导入后设置
import logging
logging.basicConfig(level=logging.DEBUG)
```
## 技术参考
- 基于小米CyberDog自定义步态API
- 参考文档:[小米机器人实验室自定义步态设计](https://miroboticslab.github.io/blogs/#/cn/cyberdog_loco_cn?id=_233-%e8%87%aa%e5%ae%9a%e4%b9%89%e6%ad%a5%e6%80%81)
- 步态设计参考task_4的框架设计
## 版本历史
- v1.0 - 初始版本,实现基本低头匍匐步态
- 设计日期2024年
- 作者基于task_4步态框架设计