DIAL-MPC: 腿式机器人精确敏捷控制的开源框架
1. 项目介绍
DIAL-MPC 是一个基于采样模型的模型预测控制(MPC)框架,专为腿式机器人全阶转矩级控制设计。它能够在无需训练的情况下实现精确和敏捷的控制。DIAL-MPC 框架简单灵活,对特定的奖励设计动力学模型的要求最小。它直接在基于物理的仿真(Brax)中进行采样和展开,无需降阶建模、线性化、凸化或预定义的接触序列。这意味着您可以在最小设置的情况下,以即插即用的方式测试控制器。
2. 项目快速启动
环境准备
- 操作系统:Ubuntu 20.04 或更高版本
- Python:3.10 或更高版本
- CUDA:12.3 或更高版本
您可以使用 mamba 或 conda 创建一个虚拟环境,然后执行以下命令克隆项目:
git clone https://github.com/LeCAR-Lab/dial-mpc.git --depth 1
cd dial-mpc
pip3 install -e .
同步仿真
在同步仿真模式下,仿真会等待 DIAL-MPC 完成计算后才进行下一步。这种方式适合调试和执行当前不需要实时反馈的任务。
运行示例:
dial-mpc --list-examples
dial-mpc --example unitree_h1_jog
完成仿真后,您可以通过访问 127.0.0.1:5000
来可视化结果。
异步仿真
异步仿真用于在实际应用前测试算法。仿真以实时(或通过 real_time_factor
缩放)进行,DIAL-MPC 可能会遇到延迟。
运行示例:
dial-mpc-sim --list-examples
dial-mpc-sim --example unitree_go2_seq_jump_deploy
# 在另一个终端
dial-mpc-plan --example unitree_go2_seq_jump_deploy
实际部署
实际部署的步骤与异步仿真非常相似。使用 unitree_sdk2_python
通过 CycloneDDS 直接与机器人通信。
步骤 1: 状态估计
项目支持多种状态估计插件,如 ROS2 里程计消息、Vicon 动作捕捉系统,或者您自定义的插件。
步骤 2: 安装 unitree_sdk2_python
按照 unitree_sdk2_python
的说明进行安装。
步骤 3: 配置 DIAL-MPC
在相应的 YAML 配置文件中修改 network_interface
以匹配连接到 Go2 的网络接口。
步骤 4: 启动机器人
按照官方 Unitree 文档关闭 Go2 的运动模式,将机器人平放在地面上。
步骤 5: 运行机器人
dial-mpc-real --list-examples
dial-mpc-real --example unitree_go2_seq_jump_deploy
3. 应用案例和最佳实践
- 同步仿真:用于开发和调试控制器。
- 异步仿真:在接近实时条件下测试算法性能。
- 实际部署:将算法部署到实体机器人上。
4. 典型生态项目
DIAL-MPC 可以与多种腿式机器人平台和仿真环境配合使用,如 Unitree Go2、Brax 等。社区中还有许多扩展项目,例如自定义机器人模型和环境,以及集成其他传感器和控制系统。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考