人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

近日,HuggingFace 开源了低成本 AI 机器人 LeRobot,并指导大家从头开始构建 AI 控制的机器人,包括组装、配置到训练控制机器人的神经网络。当前的 AI 机器人,已经可以上蹿下跳后空翻、再接闪电五连鞭,代替人类承担各种工作。哪怕是当大号手办,咱也想整一个玩玩。但无奈目前大多公司还在研发阶段,少数能量产的又有亿点小贵。当然了,小编相信 AI 和机器人最终会走进千家万户。而现在,我们可以玩到一个低成本的解决方案 ——LeRobot:—— 不知诸位可还记得「炒菜大师」ALOHA?而这个 LeRobot

近日,HuggingFace 开源了低成本 AI 机器人 LeRobot,并指导大家从头开始构建 AI 控制的机器人,包括组装、配置到训练控制机器人的神经网络。

当前的 AI 机器人,已经可以上蹿下跳后空翻、再接闪电五连鞭,代替人类承担各种工作。哪怕是当大号手办,咱也想整一个玩玩。

但无奈目前大多公司还在研发阶段,少数能量产的又有亿点小贵。当然了,小编相信 AI 和机器人最终会走进千家万户。

而现在,我们可以玩到一个低成本的解决方案 ——LeRobot:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

—— 不知诸位可还记得「炒菜大师」ALOHA?

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

而这个 LeRobot,就是我们自己可以拥有的 ALOHA,能够模仿人类完成一些简单的任务。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

单个机械臂的成本在 200 美元左右,而后端的模型训练在自己的笔记本上就可以搞定。

官方开源了全部的硬件和软件,包括训练和控制程序、AI 模型、SolidWorks 文件等。

我们可以从零组装出机械臂,并发挥想象教会它一些事情。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

LeRobot 项目由前特斯拉工程师 Remi Cadene(现在是 HuggingFace 的 principal research scientist)所领导,并给出了一份详细的指南,包括如何从头开始构建 AI 控制的机器人,—— 组装、配置,以及训练控制机器人的神经网络

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

项目基于开源的 Koch v1.1 机器人套件(也可以是别的硬件或者虚拟平台),包含两个六电机的机械臂,可使用一个或多个摄像头作为视觉传感器。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

项目地址:https://github.com/huggingface/lerobot

LeRobot 还计划在未来开发更具性价比的 Moss v1 版本,定价仅为 150 美元。

连 Mobile ALOHA 的作者也表示“Amazing”:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

对于 AI 机器人,专业人士认为它将成为这个时代的 PC:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

我一直在等待两个平台的转变:

-相当于早期 PC 的 AR / VR

-相当于早期个人电脑的机器人

而大多数网友则更加直接:这是我过去十年来一直想要的机械手,必须得到它!

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

说到开源的力量,项目刚刚发布就有网友玩了起来:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

因为他表示自己的视频没有加速,所以小编也没给他加速。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

目前的 HuggingFace 上给出了四种模型,以及 98 个数据集,开发者还可以选择在训练过程中上传自己的数据集。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

制作自己的 AI Robot

LeRobot 目前使用的机械臂来源于 Alexander Koch 在几个月前开源的项目:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

下图是前辈的样子,总体的硬件差别不大,但为了方便大家复刻和使用,LeRobot 做了一些改进。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

Koch v1.1 拿掉了之前硬件模型中一些干扰材料,让尺寸标准化,并为引导臂添加了一个平台,允许从动臂从地面拾取物体。

通过更换直流转换器,Koch v1.1 无需使用烙铁进行组装,也无需手动调节电压转换器。

项目还添加了机械臂的 SolidWorks 模型、接线图以及装配视频。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

材料清单

以引导臂(Leader Arm)为例:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

下表是需要购买的部件,主要的开销在 6 个舵机上面,剩下的包括电机驱动板、固定装置、电源、杜邦线之类的。

而手臂结构的塑料片,则需要根据给出的文件通过 3D 打印获得。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

实际上对于相关爱好者来说,这些零件基本都能凑出来,而且咱们国内买这些东西也要便宜得多。

另外,如果需要平替或者升级伺服电机的话,记得修改控制程序。

他这里给出的两种电机扭矩都不大,但精度和转速倒是都挺高,不知道替换后会有多大影响,感兴趣的小伙伴不妨一试。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

配置和校准

首先安装 Koch v1.1 所需的依赖:

pip install -e “.[koch]”

然后按照接线图给驱动板和电机供电,USB 连接到电脑:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

注意从动臂这边有俩大一点的电机需要 12V 供电,以及 USB 不能作为电源。

通过以下命令进行电机的配置和校准:

python lerobot/scripts/control_robot.py teleoperate \

–robot-path lerobot/configs/robot/koch.yaml \

–robot-overrides ‘~cameras’  # do not instantiate the cameras

程序实例化一个类来调用 SDK 操作电机(port 改为自己设备上检测到的端口):

DynamixelMotorsBus(port=”/dev/tty.usbmodem575E0031751″)

接下来配置每个电机的索引(相当于在总线上控制时的地址):

follower_arm = DynamixelMotorsBus(

port=follower_port,

motors={

# name: (index, model)”shoulder_pan”: (1, “xl430-w250”),

“shoulder_lift”: (2, “xl430-w250”),

“elbow_flex”: (3, “xl330-m288”),

“wrist_flex”: (4, “xl330-m288”),

“wrist_roll”: (5, “xl330-m288”),

“gripper”: (6, “xl330-m288”),

},

)

DynamixelMotorsBus 会自动检测当前电机索引,如果电机中保存的索引与配置文件中不匹配,会触发一个配置过程,需要拔掉电机的电源,按顺序重新连接电机。

读写测试

运行以下代码:

leader_pos = leader_arm.read(“Present_Position”)

follower_pos = follower_arm.read(“Present_Position”)

print(leader_pos)

print(follower_pos)

配置成功后可以得到所有 12 个电机的当前位置:

array([2054,  523, 3071, 1831, 3049, 2441], dtype=int32)

array([2003, 1601,   56, 2152, 3101, 2283], dtype=int32)

校准

手动调节机械臂到几个固定的位置,相当于给电机一个相对的归零位置,同时也保证引导臂和从动臂的静止位置大致对齐。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

通过校准程序之后,这几个位置会被写入配置文件,作为之后运行的基准。

—— 温馨提示:记得不要在 Torque_Enable 的情况下硬掰。

开玩!

准备就绪,下面可以开始控制机械臂了,比如让从动臂模仿引导臂,设置采样频率 200Hz,操作 30 秒:

import tqdm

seconds = 30

frequency = 200

for _ in tqdm.tqdm(range(seconds*frequency)):

leader_pos = robot.leader_arms[“main”].read(“Present_Position”)

robot.follower_arms[“main”].write(“Goal_Position”, leader_pos)

—— 是不是很简单?

那么由此可知,训练机械臂模仿人类的原理就是,在从动臂模仿引导臂的同时,加上一个摄像头的实时画面,

在模仿(训练)的过程中,模型收集了手臂位置和对应的图像数据,之后(推理)就可以根据当前摄像头看到的画面来预测各个电机需要到达的角度。

小编翻了一下项目的代码,发现这个「模仿游戏」所用的 AI 模型居然就是 ALOHA 用的 Action Chunking with Transformers (ACT)。

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

论文地址:https://arxiv.org/pdf/2304.13705

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

除了 ACT,你也可以使用或者训练自己的模型,可以改成 ALOHA 那样的双臂模式,或者在虚拟环境中进行训练和验证。

加入摄像头

项目使用 opencv2 库来操作 camera,以下代码同时配置了机械臂和摄像头:

robot = KochRobot(

leader_arms={“main”: leader_arm},

follower_arms={“main”: follower_arm},

calibration_path=”.cache/calibration/koch.pkl”,

cameras={

“laptop”: OpenCVCamera(0, fps=30, width=640, height=480),

“phone”: OpenCVCamera(1, fps=30, width=640, height=480),

},

)

robot.connect()

使用下面的代码尝试以 60 fps 录制视频 30 秒(busy_wait 负责控制帧率):

import time

from lerobot.scripts.control_robot import busy_wait

record_time_s = 30

fps = 60

states = []

actions = []

for _ in range(record_time_s * fps):

start_time = time.perf_counter()

observation, action = robot.teleop_step(record_data=True)

states.append(observation[“observation.state”])

actions.append(action[“action”])

dt_s = time.perf_counter() – start_time

busy_wait(1 / fps – dt_s)

摄像头拍摄的图像帧会以线程的形式保存在磁盘上,并在录制结束时编码为视频。

也可以将视频流显示在窗口中,以方便验证。

还可以使用命令行参数设置数据记录流程,包括录制开始前、录制过程和录制结束后停留的时间。

可视化

python lerobot/scripts/visualize_dataset_html.py \

–root data \

–repo-id ${HF_USER}/koch_test

以上命令将启动一个本地 Web 服务器,如下所示:

人人都能玩得起 AI 机器人,HuggingFace 开源低成本解决方案 LeRobot

建议

一旦您熟悉了数据记录,就可以创建更大的数据集进行训练。一个好的开始任务是在不同位置抓取一个物体并将其放入箱子中。

建议至少录制 50 集,每个地点 10 集。在整个录制过程中保持摄像机固定并保持一致的抓取行为。

实现可靠的抓取性能后,您可以开始在数据收集过程中引入更多变化,例如额外的抓取位置、不同的抓取技术以及改变相机位置。

避免过快地添加太多变化,因为这可能会影响您的结果。

本文来自微信公众号:微信公众号(ID:null),作者:alan,原标题《人人都能玩得起 AI 机器人!HuggingFace 开源低成本解决方案》

给TA打赏
共{{data.count}}人
人已打赏
应用

书生・天际 3.0 实景三维大模型开源发布:城市级 100 平方公里全范围实时渲染,VR 设备可用

2024-8-29 12:27:13

应用

谷歌推世界首个 AI 游戏引擎 GameNGen:0 代码生成《毁灭战士》,有望颠覆 2000 亿美元产业

2024-8-29 13:02:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索