mi-task/task_2/README_crawl_gait.md
2025-08-18 12:53:35 +08:00

182 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 低头匍匐前进步态设计
## 概述
本模块为小米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步态框架设计