SDK开发指南:
具身睿眼最小模块 1. 概述
具身睿眼产品的最小功能模块 ACT 已完成标准化 SDK 接口封装,实现模块能力的统一接口化调用。
2.功能介绍
具身睿眼是面向机器人领域的动作理解与学习系统,支持通过演示学习完成抓取、操作等复杂任务,实现 “感知、理解、执行” 一体化的智能演示能力。
功能参数
- 操作成功率:80%。
- 模型参数:89M。
3. 准备工作
基础环境准备
| 项目 | 版本 |
|---|---|
| 操作系统 | ubuntu20.04 |
| 架构 | x86 |
| 显卡驱动 | 535.183.01 |
| Python | 3.10 |
| pip | 25.1 |
Python环境准备
| 包 | 版本 |
|---|---|
| cuda | 12.4 |
| cudnn | 8.0 |
| torch | 2.7.1 |
| torchvision | 0.22.1 |
| accelerate | 1.13.0 |
确保已经安装了基本环境
安装Nvidia驱动,详细参考安装Nvidia显卡环境
安装conda包管理工具和python对应环境,详细参考安装conda和python环境
构建python环境
创建conda虚拟环境
bashconda create -n [conda_env_name] python==3.10 -y激活conda虚拟环境
bashconda activate [conda_env_name]查看python版本
bashpython -V查看pip版本
bashpip -V更新pip到最新版本
bashpip install -U pip代码获取
代码可以在GitHub: 具身睿眼最小模块获取最新代码。
安装python环境三方包依赖
安装编译模块lerobot
bashcd lerobot pip install -e .安装ffmpeg
bashconda install ffmpeg -c conda-forge -y安装accelerate
bashpip install accelerate
硬件准备
基本参数
| 硬件 | 规格 |
|---|---|
| 机械臂 | RM65-B-V |
| 相机 | 广角相机 (hx200) |
| GPU | 3060Ti及以上 |
| 夹爪 | 两指夹爪 (知行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 数据采集操作规则:
运行采集程序后,按键盘方向键左键 → 重新采集当前条数据。
按键盘方向键右键 → 保存当前条数据,保存后需按回车键触发下一条数据采集。
按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", # 任务描述(与采集一致)
)
