Skip to content

guardstrikelab/UMI

Repository files navigation

FlexUMI

FlexUMI 基于 FastUMI,将其扩展、适配至更多的实物机械臂、仿真环境与算法模型

FlexUMI 包含从硬件适配、数据采集、模型训练、到实机/仿真部署的全流程与框架

已集成 Realman Gen72 机械臂✅,Isaac Sim 仿真平台✅,Piper 机械臂/Pika 方案❎,Dora-kit❎

📚 目录

1. 🗂 项目结构

FlexUMI/
├─ assets/          # 资源文件
│  ├─ ckpt/           - 模型权重
│  ├─ media/          - 图片/视频素材
│  ├─ models/         - 3D 模型文件
│  └─ urdf/           - urdf 文件
├─ data/            # 数据文件
│  ├─ input/          - 模型训练输入数据
│  ├─ output/         - 模型推理输出数据
│  └─ raw/            - 原始采集数据
├─ docs/            # 说明文档
├─ examples/        # 案例
├─ scripts/         # 相关脚本
├─ src/             # 核心代码
│  ├─ collection/     - 数采相关代码
│  ├─ hardware/       - 硬件相关代码
│  ├─ policies/       - 模型相关代码
│  ├─ simulation/     - 仿真相关代码
│  └─ utils/          - 实用函数
└─ tests/           # 测试脚本

2. 🧪 环境安装

2.1 📝 安装要求

  • Ubuntu 20.04
  • Python 3.10.4
  • CUDA
  • ROS1 noetic

2.2 🛠 安装步骤

2.2.1 克隆仓库:

git clone https://github.com/CortexNest/FlexUMI.git
cd FlexUMI

2.2.2 创建虚拟环境:

conda create -n FlexUMI python=3.10.4
conda activate FlexUMI

2.2.3 安装依赖:

pip install -r requirements.txt

2.2.4 安装 pre-commit hooks:

pre-commit install

2.2.5 添加项目根目录:

# 确保当前工作目录(cwd)目前处于项目根目录,conda环境为FlexUMI
# 此脚本将在当前conda环境下添加包含cwd绝对路径的pth文件,后续若移动了项目需要再次添加
bash scripts/add_project_root.sh

2.2.6 ROS 1 安装

(1) 设置 ROS1 的软件源

使用一下命令添加 ROS1 的仓库

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

添加 ROS1 的 GPG 密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

(2) 安装 ROS1 Noetic

sudo apt update
sudo apt install ros-noetic-ros-base

(3) 将 ROS1 添加到环境变量

echo "source /opt/ros/noetic/setup.sh" >> ~/.bashrc source ~/.bashrc

(4) 验证 ROS1 的安装

启动 ros 服务器,如果没报错则说明成功安装

roscore

2.2.7 机械臂环境安装 (可选)

2.2.7.1 Realman Gen72 机械臂
conda activate FlexUMI
pip install Robotic_Arm==1.0.1
2.2.7.2 Piper 机械臂 & Pika 方案

(1) Piper 机械臂 SDK 安装

参照 piper sdk repo

conda activate FlexUMI
pip3 install python-can
pip3 install piper_sdk
sudo apt update && sudo apt install can-utils ethtool

(2) Pika ros 安装

参照 pika ros repo

2.2.8 数据采集软件环境安装 (可选)

推荐使用:

  • Librealsense v2.53.1 (T265 不支持后续版本)
  • realsense2_camera v2.3.2

(1) 安装 ROS 包

sudo apt install python3-catkin-tools python3-rospkg python3-rosdep python3-rosinstall-generator
sudo apt install ros-noetic-geometry-msgs ros-noetic-sensor-msgs ros-noetic-nav-msgs
sudo apt install ros-noetic-cv-bridge
sudo apt install ros-noetic-usb-cam

(2) 安装 Intel RealSense 依赖

  • 手动安装 Intel RealSense library

  • 或者只安装必要依赖:

    sudo apt install ros-noetic-realsense2-camera
    sudo apt-key adv --keyserver keys.gnupg.net --recv-key 04A3CF2E
    sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo $(lsb_release -cs) main"
    sudo apt update
    sudo apt install librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg

2.2.9 Isaac Sim 仿真平台安装 (可选)

为了运行仿真环境,需要安装 Isaac Sim 4.5,参考:Isaac Sim Installation

(1) 下载 isaac sim 二进制文件

wget https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone%404.5.0-rc.36%2Brelease.19112.f59b3005.gl.linux-x86_64.release.zip
# 解压到 ~/isaac_sim
unzip isaac-sim-standalone@4.5.0-rc.36+release.19112.f59b3005.gl.linux-x86_64.release.zip -d ~/isaac_sim

(2) 将 isaac sim 添加到 PATH

echo 'export ISAAC_SIM_ROOT=~/isaac_sim' >> ~/.bashrc
echo 'export PATH="$ISAAC_SIM_ROOT:$PATH"' >> ~/.bashrc
source ~/.bashrc

测试是否安装成功:

isaac-sim.sh
# 或者在 FlexUMI 项目根目录执行: bash scripts/sim/run_isaac.sh

如果没有报错,并且出现了 isaac sim 的 GUI 界面,则说明安装成功

(3) 安装依赖包 需要安装一些依赖包到 isaac sim 的环境中

$ISAAC_SIM_ROOT/python.sh -m pip install omegaconf==2.3.0 \
              hydra-core==1.3.2 \
              debugpy \
              rospkg==1.6.0 \
              h5py==3.13.0 \
              pyparsing==2.4.6 \
              pyyaml==5.3.1 \
              empy==3.3.2 \
              scipy

2.3 🧹 代码质量工具

项目使用 pre-commit 在提交代码前自动运行检查:

pre-commit run --all-files  # 手动运行所有检查

3. 🧱 实物闭环流程

硬件、数据采集与数据处理过程基于 FastUMI 仓库,进行了少许改动。

3.1 🧰 硬件采购与安装

参考 硬件采购与安装流程

3.2 📷 数据采集

参考 数据采集流程

3.3 📊 数据处理

参考 数据处理流程

3.4 🧠 算法模型

目前已整合算法模型:

  • ACT (Action Chucking with Transformer),基于 ACT
  • DP (Difussion Policy),基于 UMI

参考 训练推理流程

3.5 🎯 执行效果

ACT 模型推理执行的效果

推理及执行效果

4. 🧪 仿真闭环流程

参考 仿真闭环教程

5. ❓ 常见问题及解答 (FAQ)

可以把遇到的问题及解决方案放到这

6. 🗺 路线图

  • 适配 Realman Gen72 机械臂与乐百夹爪
  • 集成 Isaac Sim 仿真平台
  • 集成 ACT 算法
  • 集成 DP 算法
  • 集成 Dora-kit
    • 基于 Dora 框架使用 Realman Gen72 机械臂执行推理
  • 适配 Piper 机械臂/Pika 方案
    • 集成 Pika 采集方案
    • 适配 Piper 机械臂与 Pika 夹爪

7. 🧩 现状和不足

8. 🤝 贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

9. 📐 代码提交规范

  • 提交前请确保通过所有代码检查
  • 遵循项目的代码风格指南
  • 添加适当的类型注解
  • 编写清晰的文档字符串
  • 添加必要的单元测试

10. 📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

11. 📬 联系方式

项目维护者 - @CortexNest‌

项目链接: https://github.com/Core/CortexNest‌/FlexUMI

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published