Skip to content

具身睿眼最小模块

1. 概述

具身睿眼产品的最小功能模块 ACT 已完成标准化 SDK 接口封装,实现模块能力的统一接口化调用。

2.功能介绍

具身睿眼是面向机器人领域的动作理解与学习系统,支持通过演示学习完成抓取、操作等复杂任务,实现 “感知、理解、执行” 一体化的智能演示能力。

功能参数

  • 操作成功率:80%。
  • 模型参数:89M。

3. 准备工作

基础环境准备

项目版本
操作系统ubuntu20.04
架构x86
显卡驱动535.183.01
Python3.10
pip25.1

Python环境准备

版本
cuda12.4
cudnn8.0
torch2.7.1
torchvision0.22.1
accelerate1.13.0
  1. 确保已经安装了基本环境

    安装Nvidia驱动,详细参考安装Nvidia显卡环境

    安装conda包管理工具和python对应环境,详细参考安装conda和python环境

  2. 构建python环境

    创建conda虚拟环境

    bash
    conda create -n [conda_env_name] python==3.10 -y

    激活conda虚拟环境

    bash
    conda activate [conda_env_name]

    查看python版本

    bash
    python -V

    查看pip版本

    bash
    pip -V

    更新pip到最新版本

    bash
    pip install -U pip
  3. 代码获取

    代码可以在GitHub: 具身睿眼最小模块获取最新代码。

  4. 安装python环境三方包依赖

    安装编译模块lerobot

    bash
    cd lerobot
    pip install -e .

    安装ffmpeg

    bash
    conda install ffmpeg -c conda-forge -y

    安装accelerate

    bash
    pip install accelerate

硬件准备

基本参数

硬件规格
机械臂RM65-B-V
相机广角相机 (hx200)
GPU3060Ti及以上
夹爪两指夹爪 (知行90D)

硬件接线及连接示意图

硬件布局示意图

硬件布局示意图

从臂(机械臂)端接线

从臂(机械臂)端接线

主臂端接线

主臂端接线

电脑端接线示意图

电脑端接线示意图

4. 快速开始示例

确认相机端口号

# 在终端执行
python SDK/find_cameras.py

打开 lerobot/outputs_camera 查看对应相机视角和端口号。 图像名为端口号如:
opencv__dev_video0.png
type: opencv
index_or_path: 0

采集数据

from SDK.record import record_rm65_single_api

if __name__ == "__main__":
    record_rm65_single_api(
        ip="192.168.1.18",  # 机械臂IP
        port=8080,  # 机械臂端口号
        cameras={
            "head": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30},  # 根据find_cameras.py执行结果填写参数
        },
        dataset_root="/home/xxx/lerobot/data/xxx",  # 具身数据保存路径
        dataset_repo_id="lerobot/data",  # 数据ID 
        dataset_single_task="grab the toy",  # 任务描述(修改为自己的任务)
        dataset_num_episodes=120,  # 采集任务总轮数:共采集120个episode(任务回合)的具身数据
        dataset_episode_time_s=600,  # 单轮采集时长:每个episode的最大采集时间(单位:秒),默认600秒/10分钟
        dataset_reset_time_s=1,  # 轮次间隔时间:相邻两个episode之间的重置等待时间(单位:秒),默认1秒
        resume=False,  # 采集模式:False=全新采集(不续采),True=从上次中断处继续采集
        display_data=True,  # 采集数据界面可视化
    )

说明

LeRobot 数据采集操作规则:

  1. 运行采集程序后,按键盘方向键左键 → 重新采集当前条数据。

  2. 按键盘方向键右键 → 保存当前条数据,保存后需按回车键触发下一条数据采集。

  3. 按ESC键后回车 → 退出采集流程并保存所有已采集数据。

训练模型

from SDK.train_act import train_api


if __name__ == "__main__":
    train_api(
        dataset_root="/home/xxx/data/xxx",  # 具身数据路径
        output_dir="outputs/train/xxx",  # 模型权重保存路径
        batch_size=48,  # 训练批次大小
        steps=60000,  # 总训练的步长
        save_freq=10000,  # 控制模型权重的保存频率,此处为每10000步保存一次
    )

推理模型

from inference_act import inference_rm65_single_api


if __name__ == "__main__":
    inference_rm65_single_api(
        ip="192.168.1.18",  # 待推理机械臂IP
        port=8080,  # 待推理机械臂端口号
        cameras={  
            "head": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30},  # 相机类型与名称和采集保持一致
        },
policy_path="/home/xxx/lerobot/SDK/outputs/train/xxx/checkpoints/060000/pretrained_model",  # 训练好的权重地址,需修改
        dataset_single_task="grab the toy",  # 任务描述(与采集一致)
    )