这次我们不看大模型,看一台能跑具身智能的真实机器人。
Hugging Face CEO 在公开动态里推荐过一台叫 Reachy mini 的机器人,这台设备来自法国开源机器人公司 Pollen Robotics。它不是一个只存在于 PPT 里的概念机器人,而是一台可以放在桌面上、带机械臂、夹爪、深度相机、麦克风和扬声器的仿人上半身机器人。更值得关注的是,它的软件栈不是封闭的,而是和 Hugging Face 的开源生态深度绑定,从数据集、预训练模型到机器人控制策略,都有对应的开源工具链。
如果你在做具身智能、机器人抓取、VLA 模型验证,或者想找一个能把大模型接进真实世界硬件的平台,这篇内容应该适合你。我会从推荐理由、硬件定位、软件栈、数据集下载、模型接入、批量任务设计到最后怎么判断“要不要买”,完整拆解这台机器人背后的技术判断。先给结论:Reachy mini 的看点不是机械结构多复杂,而是它把“开源模型 + 机器人硬件 + 可复现数据”这条路走通了。
1. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 项目类型 | 开源仿人上半身机器人整机 |
| 开发方 | Pollen Robotics,法国开源机器人公司 |
| 硬件主体 | 桌面级机器人上半身,含机械臂、夹爪、深度相机、麦克风、扬声器 |
| 主控方案 | 以 Raspberry Pi 为主控,运行机器人操作系统 ROS 2 |
| 软件生态 | 支持 ROS 2、Python SDK,以及 Hugging Face LeRobot、Hub 生态 |
| 主要应用方向 | 抓取操作、遥操作数据采集、模仿学习、多模态模型实体部署 |
| 推荐受众 | 高校机器人实验室、AI 研究者、具身智能开发者、进阶创客 |
| 是否适合工业作业 | 否,属于教学/科研级负载,不是工业机械臂 |
| 购买门槛 | 需通过 Pollen Robotics 官方渠道询价,价格不低 |
| 上手成本 | 需要一定的 Python、ROS 2、Linux 基础 |
这里先把边界划清楚:Reachy mini 不是消费级玩具,也不是“买回来双击就能跑”的一键包,它是一个偏科研教育的整机平台。买它的人,通常不是为了让它干活,而是为了研究“机器人如何学会干活”。
2. 为什么 Hugging Face CEO 会推荐它
Hugging Face 在 2024 年到 2025 年明显加大了在机器人方向的投入,内部孵化了 LeRobot,并把它定位成“物理世界的 AI 开源库”。在这个背景下看 Reachy mini,就能明白推荐理由不是偶然。
2.1 Reachy mini 把“开源硬件 + 开源模型”放在同一套体系里
大多数机器人厂商的硬件软件是封闭的,买回来只能用厂商给的工具,想接入 Hugging Face 模型、自己重新训练策略,难度很高。Reachy mini 则主动把软件栈向开源生态靠拢,支持 ROS 2 和 Python SDK,同时官方在 Hugging Face 上维护机器人相关的模型、数据集和文档。这意味着你在 Hugging Face 上找到的预训练视觉模型、语言模型、机器人操作数据集,可以直接拿来做实验,不必重写底层通信。对于 Hugging Face CEO 经常强调的“开放 AI + 开源社区”路线来说,这台机器人是一个很自然的物理载体。
2.2 它是 LeRobot 方向落地比较完整的硬件之一
LeRobot 的核心思路是:用低成本硬件采集遥操作数据,再把数据交给模仿学习模型,最后把训练好的策略部署回机器人。这个流程需要硬件具备几个条件:关节能高精度回读角度、夹爪能够执行抓取、相机能提供第一人称视觉、主控能跑 Linux 和 Python。Reachy mini 恰好是围绕这类工作设计的,桌面级、安全、自带深度相机和扬声器,特别适合做“语言指令 -> 机器人动作”的实验。也就是说,推荐这台机器人,本质上是在推荐一个完整的 Reproducible Embodied AI 工作流。
2.3 教育科研场景需要开放可复现的机器人平台
现在很多高校都在开具身智能、机器人学课程,最缺的不是算法,而是一台学生能反复折腾、坏了能重新刷固件、代码能开放评审的机器人。Reachy mini 作为开源整机,用户至少能接触到视觉标定、关节控制、数据采集、策略训练和真机部署的全部环节,而不是只在一个黑盒 API 里调效果。这一点是 CEO 这类技术型推荐者非常看重的。
3. 适用场景与使用边界
3.1 适合谁用
如果你属于下面几类人,Reachy mini 值得认真评估:
- 高校机器人或 AI 实验室,需要一台稳定的桌面级机械臂来做抓取、模仿学习、多模态交互实验。
- 算法工程师,想在真实硬件上验证 VLA 模型、视觉语言模型生成的机器人动作,而不是只在仿真器里看曲线。
- 机器人竞赛或课程团队,希望学生接触从 ROS 2 节点到模型部署的完整链路。
- 开源社区开发者和独立研究者,愿意参与机器人数据集建设、模型微调和基于该平台的应用开发。
Reachy mini 单臂或双臂版本都能覆盖大部分基础操作任务,深度相机可以做人脸识别、目标检测、3D 空间定位,麦克风和扬声器则让“语音对话 + 动作执行”这类多模态实验成为可能。
3.2 不适合谁用
- 想让它替代工业机械臂做高精度重复装配的用户,不要选这种桌面科研级关节模组。
- 想“零代码跑通机器人控制”的入门者,需要重新评估预算和投入,这个平台对软件基础有明确要求。
- 需要高负载、高速度、连续 24 小时运转的生产场景,Reachy mini 的机械结构和定位都不支持。
3.3 合规与安全边界
机器人是物理设备,哪怕它是桌面级,也存在夹手、撞到物品、损坏相机等风险。开始操作前至少注意三点:
- 使用任何开源数据、模型、机器人 SDK 前,先看许可证,尤其是 Hugging Face 数据集页面里的 License 字段。
- 如果机器人会被部署在公共场合或面向其他人演示,涉及人脸、声音、行动录像时,必须提前获得当事人授权,并对数据进行匿名化处理。
- 任何遥控、部署实验都要设置安全停止机制,不要在没有急停开关和人工看护的情况下让机器人自己长时间运行。
这里不评价任何具体版本的执行能力,但“先安全、后效果”这条原则适用于所有真实机器人项目。
4. 先理解技术栈,再决定要不要买
很多人在 Reachy mini 之前可能先接触过机械臂整机,但 Reachy mini 不是“插上电按一下按钮就能跑”的产品。它的软件栈里同时存在 ROS 2、Raspberry Pi、Python SDK 和 Hugging Face Hub 这几套体系,先把结构搞清楚,后面部署才不会懵。
4.1 硬件层的控制链路
Reachy mini 的整机控制链路大体是:机器人关节驱动器和传感器连接到主控板,主控板一般跑在基于 Linux 的 Raspberry Pi 环境下,向上通过 ROS 2 话题和服务暴露机器人的状态。机械臂的每个关节都能回读角度、速度和力矩,深度相机负责提供空间感知能力。
这意味着,最终你操作机器人时不是在直接写底层舵机控制代码,而是通过 ROS 2 话题订阅关节状态、发布运动目标。这种设计的好处是:你可以用一套 Python 脚本同时控制手臂、夹爪、头部相机,甚至加入大模型推理,而不需要了解每个电机的通信协议。
4.2 软件层的 Python 接口
Pollen Robotics 为 Reachy mini 提供了 Python API,你可以在 Ubuntu 主机上创建机器人实例,然后查询关节位置、执行运动指令、读取相机帧。类似这种结构:
import reachy_sdk # 以实际 SDK 文档为准,这里只表达典型调用流程 robot = reachy_sdk.ReachySDK(host="192.168.1.100") # 读取当前左臂关节位置 left_arm_position = robot.l_arm.get_current_positions() print(left_arm_position) # 让右臂转动到目标位置 target_position = {"r_shoulder_pitch": 10.0, "r_elbow_pitch": 20.0} robot.r_arm.goto(target_position, duration=2.0)这类 API 的抽象层次非常适合做模型验证:你用视觉模型得到目标坐标后,直接转化成机器人关节指令即可,不用处理底层逆运动学细节。
4.3 与 Hugging Face LeRobot 的关系
在 Hugging Face 的机器人技术栈里,LeRobot 更像是一套“数据采集 + 模仿学习 + 部署”的工具链。标准流程是:
- 通过遥操作设备或直接拖动机械臂,采集一批包含相机画面、关节角度和动作指令的数据。
- 把数据处理成统一格式,上传到 Hugging Face Hub。
- 使用 LeRobot 提供的模仿学习算法跑离线训练。
- 把训练好的策略模型下载到本地,接收机器人实时输入,输出动作。
Reachy mini 这类带伺服关节回读、相机和 Python SDK 的机械臂,天然适合这个流程。从公开资料看,Pollen Robotics 也有把 Reachy 系列和 Hugging Face Hub 上的数据集、模型放一起维护的动作,这意味着你研究过程中大部分学习素材都可以从开源社区直接找到。
5. 仿真先行:不买实体也能先体验
Reachy mini 价格不低,如果你还在评估阶段,不建议直接下单。先用 NVIDIA Isaac Lab、MuJoCo 或 ROS 2 Gazebo 这类仿真环境把流程跑起来,是更稳妥的做法。Pollen Robotics 部分版本和社区工作提供了 URDF、Mesh 文件和仿真配置,你可以把它们导入常见的机器人仿真环境。
仿真能解决的问题有三个:
- 验证 Python API 调用的数据格式是否正确。
- 跑通“相机图像输入 -> 模型推理 -> 输出关节目标位置”的闭环。
- 提前暴露坐标系、单位、指令周期等细节问题。
同时,仿真也有限制。机械臂抓取涉及的摩擦力、柔性物体形变、相机真实噪声在仿真里都过于“干净”,所以仿真通过以后,你仍然需要真机小规模验证。把这步当作“预算审核阶段”:先用仿真判断软件栈你是否能接受,再花大钱买实体硬件。
6. Hugging Face 数据集与模型下载方法
Reachy mini 相关的模型、数据集大多放在 Hugging Face Hub。即使你没有机器人,懂“如何下载数据、管理模型版本”也有价值。这里给出一套标准流程。
6.1 使用 huggingface_hub 下载数据集
你可以先用 Python SDK 下载整个仓库:
from huggingface_hub import snapshot_download # repo_id 需要替换成你实际要下载的数据集,例如 pollen-robotics 下的公开数据集 snapshot_download( repo_id="pollen-robotics/reachy-example-dataset", repo_type="dataset", local_dir="./datasets/reachy_demo", )设置local_dir是为了把数据直接放到项目目录,方便后续处理。
6.2 使用命令行下载
如果你更习惯终端操作:
huggingface-cli download pollen-robotics/reachy-example-dataset \ --repo-type dataset \ --local-dir ./datasets/reachy_demo需要先安装并登录:
pip install -U huggingface_hub huggingface-cli login如果没有在终端写入 token,下载私有数据集时会报 401。
6.3 下载慢或失败时的镜像配置
国内网络环境下载 Hugging Face 资源时,经常出现连接超时、中断的问题。常见做法是配置 Hugging Face 镜像加速:
export HF_ENDPOINT=https://hf-mirror.com之后再执行下载脚本,SDK 会优先走镜像地址。镜像主要用于加速访问公开模型和数据资源,使用前请确认你下载的数据集许可证允许该用途,同时不要用镜像下载任何不允许公开分发的私有数据。
6.4 查看数据集的目录与格式
机器人数据集通常不是一张图片“丢进去”那么简单。下载后先检查目录结构:
find ./datasets/reachy_demo -maxdepth 2 -type f | head -30常见结构包括:
videos/:第一人称相机视频帧或 mp4。observations/:关节角度、末端位置、时间戳。actions/:人类遥操作产生的动作指令。metadata/:机器人型号、相机内外参、授权信息。
如果你拿到的是包含parquet、jsonl的数据集,也可以直接用 Hugging Face 的datasets库读取,然后格式化成自己的训练脚本输入。
7. 批量任务与数据工作流设计
机器人领域经常说的“批量任务”,和普通后端任务不太一样。它通常不是批量处理几千张图片,而是反复采集多条操作轨迹、对轨迹做后处理、组织成训练集、跑离线评估。
7.1 批量遥操作数据采集
Reachy mini 这类平台支持通过操作杆或演示器记录关节轨迹。你需要设计一个简单的采集脚本,保存每次演示的数据。伪代码思路:
import csv import time def record_episode(robot, duration=5.0): frames = [] start = time.time() while time.time() - start < duration: obs = { "timestamp": time.time(), "joint_positions": robot.r_arm.get_current_positions(), "joint_velocities": robot.r_arm.get_current_velocities(), # 如果有相机,这里还需要保存图像帧的路径 } frames.append(obs) time.sleep(0.05) return frames # 执行 50 条演示,生成不同摆放位置、不同物体姿态的轨迹 for episode_id in range(50): episode = record_episode(robot, duration=5.0) save_episode_to_disk(episode, f"episode_{episode_id:04d}")这里每 50ms 记录一次状态,50 条 5 秒演示会产生约 5000 个状态帧。这个量级不算大,但如果你同时保存 1280x720 的相机画面,也需要几百 MB 到几 GB 的磁盘空间。批量任务开始前,先检查磁盘空间和写入频率是否够用。
7.2 批量后处理任务
采集完原始轨迹后,下一步是把原始数据清洗成模型可用的格式,常见步骤包括:裁剪无效帧、统一图像尺寸、换算关节角度单位、划分 train/val 集、压缩视频。
你可以写一个 Python 脚本,遍历目录里所有 episode:
from pathlib import Path source_root = Path("./raw_episodes") target_root = Path("./processed_dataset") target_root.mkdir(exist_ok=True) for episode_dir in sorted(source_root.iterdir()): if not episode_dir.is_dir(): continue # 这里执行图像缩放、状态对齐、写入目标目录 print("processing", episode_dir.name)建议用显式的主循环而不是 Shell 通配符直接并行跑,因为机器人数据往往包含时间戳对齐的问题,并行任务一旦乱序,后续匹配很容易出错。
7.3 数据上传与版本管理
处理好的数据建议直接上传到 Hugging Face Hub,方便团队协作和复现。
from huggingface_hub import HfApi api = HfApi() api.upload_folder( repo_id="your-name/reachy-grasping-dataset", repo_type="dataset", folder_path="./processed_dataset", commit_message="add grasping episodes", )上传后可以在数据集卡片里写清楚机器人型号、相机参数、采样频率、授权协议。这些元信息越好,复现成本越低。
8. 模型接入:机器人调用 Hugging Face 推理接口
Reachy mini 能成为实验平台的一个重要原因是它可以外接模型推理。常见模型接入方式有两种。
8.1 端侧部署小模型策略
如果是动作策略,例如 LeRobot 训练出的扩散策略或 ACT 策略,通常是把模型跑在带 GPU 的上位机或本地容器中,机器人本体只负责执行。你可以把它封装成一个 HTTP 推理接口:
from flask import Flask, request, jsonify import numpy as np import joblib # 实际用 torch 加载策略 app = Flask(__name__) policy = None def load_policy(): global policy # 实际代码需要按模型格式加载 policy = joblib.load("./checkpoints/act_policy.pkl") @app.post("/infer") def infer(): data = request.get_json() obs = np.array(data["observation"]) action = policy.predict(obs) return jsonify({"action": action.tolist()}) if __name__ == "__main__": load_policy() app.run(host="0.0.0.0", port=8000)之后 Reachy mini 上的 Python 脚本只需要定期请求这个服务,把当前位置和图像输入进去,拿到动作指令再执行即可。
8.2 接入远程大模型推理
如果你希望机器人能听懂“帮我把红色方块推到左侧”这类自然语言指令,可以把视觉语言大模型跑在 Hugging Face Inference Endpoints 或本地 vLLM 服务上。流程是:
- Reachy mini 用深度相机拍照并检测物体。
- 把自然语言指令、物体位置、历史对话发送到模型接口。
- 模型返回结构化指令,例如“移动到坐标 A,执行夹取”。
- 机器人 Python SDK 执行最终动作。
这类系统在逻辑上已经接近一个简单的 VLA 原型了。需要注意的是真实机器人执行不是“模型说做什么就做什么”,每个动作指令都要增加关节角度上下限、位置边界等校验逻辑。
8.3 接口调用示例
调用推理接口时,用 requests 就够:
import requests url = "http://127.0.0.1:8000/infer" payload = { "observation": { "joint_positions": [0.1, -0.2, 0.15], "crop_image": "base64_string_or_path", } } resp = requests.post(url, json=payload, timeout=10) print(resp.json())实际部署时建议增加超时处理和失败重试。因为机器人通信链路一旦因为网络超时中断,真实硬件可能停在半空,这是必须避免的。
9. 性能与资源占用观察方法
仿真或真机测试时,性能观察不能只盯“GPU 占用率”。对机器人系统来说,端到端延迟比单点吞吐量更重要。
9.1 观察指标
建议从三个层面观察:
- 机器人控制频率:Reachy mini 的控制服务能不能稳定在 20Hz 到 100Hz,数值需要按实际 SDK 测试。
- 推理延迟:模型从输入一组图像和关节状态到输出动作,到底花了多少毫秒。
- 通信延迟:从机器人端到推理服务端再返回机器人端的网络时间。
import time import requests start = time.time() response = requests.post("http://127.0.0.1:8000/infer", json=payload, timeout=10) elapsed_ms = (time.time() - start) * 1000 print(f"inference latency: {elapsed_ms:.1f} ms")9.2 谁负责重计算
Reachy mini 的主控通常负责读取传感器、执行关节控制,不适合跑大型视觉语言模型。常见分工是:
| 任务 | 建议运行位置 |
|---|---|
| 关节状态读取与运动执行 | Reachy mini 主控 / Raspberry Pi |
| 相机图像采集与预处理 | Reachy mini 或研究主机 |
| 轻量视觉检测、动作策略 | 带 GPU 的研究主机 |
| 视觉语言大模型、VLM 推理 | GPU 服务器或远程推理服务 |
如果你把所有处理都压在 Raspberry Pi 上,CPU 会很快跑满。正确做法是机器人端只做低延迟控制,模型推理通过局域网接口完成。
9.3 性能瓶颈定位
如果出现“机器人动作卡顿”,不要只怪模型。先分步排查:
- 机器人执行脚本里是不是有阻塞式等待。
- 相机读流是否占了太多 CPU。
- HTTP 推理是否没有设置长连接,导致反复建连。
- 机械臂的起点和目标点是不是离得太远,运动时间自然很长。
在真实机器人上,稳定性比峰值性能更重要。先用最低分辨率、最少关节参与测试,逐层加复杂度。
10. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 无法连接 Reachy mini 主控 | 网线/无线网络不通,IP 变了 | 用 SSH ping 机器人 IP | 检查网络配置,改用 USB 直连或固定 IP |
| 读不到相机画面 | 相机驱动未加载、USB 权限不足 | 执行 lsusb 和 v4l2 工具查看设备 | 重新插拔并配置 udev 权限 |
| SDK 调用时报连接失败 | SDK 使用了默认 IP,和实际不对应 | 打印返回的异常,核对连接地址 | 在配置里改成机器人实际 IP |
| Hugging Face 数据集下载超时 | 网络连接不稳定 | 观察下载中断位置 | 设置 HF_ENDPOINT 镜像加速并重试 |
| 推理接口返回超时 | 模型太大、请求频率太高 | 查看推理服务日志和 GPU 使用率 | 换小模型、降分辨率、增加超时时间 |
| 关节运动到目标位置后抖动 | 目标位置不合理,或控制频率太低 | 打印关节实际角度和目标角度的误差 | 检查运动学约束,降低步幅 |
| 机械臂突然停止 | 急停触发、通信断开、异常检测启动 | 检查机器人日志和服务进程 | 恢复后重新初始化控制服务 |
| 训练/采集数据时间戳对不上 | 各传感器采集频率不同,缺少统一时钟 | 对比图像时间戳和关节状态时间戳 | 使用同一时间源同步记录,统一用毫秒时间戳 |
如果出现机器人突然不动,第一优先级不是查模型,而是确认急停状态和通信是否正常。真实机器人安全大于一切。
11. 最佳实践与使用建议
11.1 先小规模跑通再放大
第一次使用 Reachy mini,不要直接接视觉语言大模型。先试着用 Python SDK 让手臂回到零点,再让夹爪开合,然后做一个简单的固定轨迹动作。确认这些基础控制稳定后,再引入视觉检测和模型推理。
11.2 管理好三个目录
建议项目中始终区分:
raw_data/:采集的原始轨迹、相机原始画面。processed_data/:清洗后的模型训练数据、算好的归一化参数。checkpoints/:训练好的策略权重、推理配置文件。
机器人项目的文件类型非常杂,视频、图像、关节状态、模型权重交错堆放会很快失控。用 Git 管理代码,用 Hugging Face Hub 管理数据集和模型,不要用 Git 管理大文件。
11.3 模型服务要设置访问边界
如果你把推理服务跑在局域网供机器人调用,建议只绑定到机器人实际使用的网段,不要直接监听 0.0.0.0 并放到公网。机器人控制接口一旦被外部调用,会造成不可预料的物理风险。
# 只允许局域网内机器人访问 app.run(host="192.168.1.50", port=8000)11.4 合规使用模型、数据集和机器人
- 上传或下载数据集前,检查许可证,不要把人脸照片、私人录音、未经授权视频放进公开数据集。
- 使用 Reachy mini 相机采集真实环境数据前,告知周边人员,并对敏感画面做模糊处理。
- 不要使用机器人对人或动物执行未经验证的动作,哪怕只是研究用途。
- 涉及商用或发布演示前,确认你使用的模型权重、数据集、机器人 SDK 的 License 允许商用。
11.5 保留一套最小可用配置
在你不断尝试新模型、新功能后,代码会变得非常复杂。建议保留一个经过验证的最小启动脚本,只包含:连接机器人、读取相机、执行一个安全动作。后面改动出问题,直接切回这一套配置重新排查。
12. 总结与下一步
Hugging Face CEO 推荐 Reachy mini,不只是推荐一台机器人,而是在推荐一条“开源硬件 + Hugging Face Hub + LeRobot 训练 + 真机部署”的闭环路线。Reachy mini 的价值在于它把模型与真实物理世界之间的桥搭得足够深,从电机控制到视觉语言模型接入都能在一个社区生态里完成。
如果你已经被这台机器人吸引,下一步应该做三件事:
- 去 Hugging Face 和 Pollen Robotics 官方页面,查看 Reachy mini 的公开数据集、模型和 SDK 文档,确认你的编程环境和现有技术栈是否匹配。
- 用仿真环境和已有数据集跑通一次“读取观测、调用推理、生成动作”的模拟流程,不要先买实体。
- 如果仿真流程里的大部分环节你能理解并掌控,再联系官方询价和采购,同时提前规划好安全授权、数据合规和实验室部署空间。
最容易踩的坑,是看到一个真实的仿人机器人后过度兴奋,跳过了仿真和最小测试,直接接模型。机器人领域最麻烦的问题往往不是模型效果不好,而是真实系统一旦出现通信断连、关节限位错误、传感器标定偏差,排查时间会远超训练时间。
先跑通一条最短的可用链,再谈扩展,这才是 Reachy mini 真正教给你的第一课。