5.1 KiB
Executable File
5.1 KiB
Executable File
低头匍匐前进步态设计
概述
本模块为小米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] - 摆动腿抬高6cmlanding_gain
: 2.0 - 增加落地增益适应低姿态mu
: 0.25 - 摩擦系数
3. 姿态控制
- Roll: 0.0° - 保持水平
- Pitch: 14.3° (0.25 rad) - 实现低头姿态
- Yaw: 0.0° - 保持朝向
- Height: -5cm - 身体降低到匍匐位置
使用方法
1. 基本使用
from task_2.crawl_gait import run_low_crawl_demo
# 执行完整的匍匐前进演示(包含姿态过渡)
success = run_low_crawl_demo(ctrl, msg, distance=2.0, observe=True)
2. 分步控制
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集成
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. 测试函数
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)
安全注意事项
- 地面要求: 确保地面平整,避免障碍物
- 空间需求: 保证足够的头部空间,避免碰撞
- 监控状态: 使用
observe=True
监控执行状态 - 急停机制: 支持KeyboardInterrupt安全停止
- 故障恢复: 自动尝试恢复到安全姿态
性能指标
- 前进速度: 约8cm/s
- 每步距离: 约10-15cm
- 姿态稳定性: 始终保持三足以上支撑
- 能耗效率: 低速步态,较为节能
- 适用场景: 低空间、需要低姿态通过的环境
故障排除
常见问题
-
步态不执行
- 检查TOML文件路径是否正确
- 确认LCM通信正常
- 验证机器人处于正确的初始状态
-
姿态不稳定
- 降低前进速度
- 增加步态持续时间
- 检查地面平整度
-
无法恢复正常姿态
- 手动调用
recover_from_crawl_position()
- 检查机器人关节状态
- 重启机器人系统
- 手动调用
调试模式
启用详细日志输出:
# 在导入后设置
import logging
logging.basicConfig(level=logging.DEBUG)
技术参考
- 基于小米CyberDog自定义步态API
- 参考文档:小米机器人实验室自定义步态设计
- 步态设计参考task_4的框架设计
版本历史
- v1.0 - 初始版本,实现基本低头匍匐步态
- 设计日期:2024年
- 作者:基于task_4步态框架设计