news 2026/10/24 7:27:26

开源桌面机器人 Reachy Mini:六自由度平台控制好不好上手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开源桌面机器人 Reachy Mini:六自由度平台控制好不好上手

开源桌面机器人 Reachy Mini:六自由度平台控制好不好上手

【免费下载链接】reachy_miniReachy Mini's SDK项目地址: https://gitcode.com/GitHub_Trending/re/reachy_mini

Reachy Mini 是一款开源桌面机器人,头部是六自由度斯图尔特平台,配两根天线和一套 Python SDK。它的主打点就一个:仿真、Lite 版(USB 接电脑)、无线版(Raspberry Pi CM4 独立运行)三套硬件,用的都是同一套 API。

30 秒跑通验证:仿真模式先跑起来

不用接硬件,最短路径是仿真模式。安装 SDK 然后启动 MuJoCo 仿真 daemon:

uv pip install reachy_mini[all,mujoco] reachy-mini-daemon --sim

你输入这两条命令后,浏览器打开http://localhost:8000/docs,看到 REST API 文档页说明 daemon 已就绪;同一目录下写个脚本python hello.py,你看到仿真窗口里的机器人动了一下。这就是入门的全部动作:daemon 常驻,SDK 只是它的客户端。

Reachy Mini Control 控制应用的仪表板,开源桌面机器人开源桌面机器人的关节状态、媒体状态都在这里

它到底替你省了什么事

笔记本上跑仿真,不接硬件。以前想试一个转头逻辑,得先装配好机器人、刷好电机固件;现在reachy-mini-daemon --sim起来就能写代码,逻辑验证完再搬到真机。

让机器人追着说话人转头。以前声源定位要自己调 ReSpeaker 麦克风阵列、算 DoA、再做坐标变换;现在 examples/sound_doa.py 已经轮询/api/state/doa接口、把角度转成世界坐标、调look_at转头,通读一遍就能抄到自己的应用里。

AI 代码和机器人分开部署。以前控制代码只能写在机器人那颗性能有限的主板上;现在 SDK 是纯客户端,走 WebSocket 连 daemon,重活(视觉模型、LLM 调用)放你自己的电脑或服务器上,Raspberry Pi 机器人本体只负责硬件 I/O 和安全限位,这就是典型的 Raspberry Pi 机器人部署里"强弱分工"的玩法。

架构一张图看懂:从 SDK 到六自由度关节

Reachy Mini 开源桌面机器人开源桌面机器人的斯图尔特平台组件分解,六根执行器撑起头部的六自由度

整条链路分四层:

  • src/reachy_mini/reachy_mini.py的ReachyMini类是 SDK 入口,管连接和高层动作(wake_up、goto_target、look_at_world)。
  • src/reachy_mini/io/是通信层,WebSocket 客户端把命令发给 daemon,同时订阅状态广播。
  • src/reachy_mini/daemon/是 FastAPI 服务,跑在连着机器人的机器上,负责命令排队、状态发布、安全检查。
  • daemon/backend/提供三个可替换后端:真机串口、MuJoCo 仿真、mockup,上层对它们一视同仁。

核心调用就这几行,位姿目标传 4x4 矩阵,插值在客户端算好逐帧下发:

from reachy_mini import ReachyMini from reachy_mini.utils import create_head_pose with ReachyMini() as mini: mini.wake_up() mini.goto_target(head=create_head_pose(z=10, roll=15), duration=1.0)

head frame 坐标系:goto_target 的开源桌面机器人开源桌面机器人位姿目标都以这个基准为准

三个值得你翻源码的点

三套运动学引擎共用一个接口。src/reachy_mini/kinematics/ 里 analytical、nn(ONNX 推理,含 int8 量化模型)、placo(物理引擎)三个实现都是ik(pose) / fk(joints)签名,daemon 启动参数kinematics_engine切换。这样设计是因为三种方案各占一头:解析解最准但有边界特例,NN 在 Pi 上推理快,placo 能算重力补偿和碰撞检测。你复用时能学到:给算法留同一个接口,上层代码就不怕换实现。

指令流和状态流分开两个通道。SDK 发命令走请求-回执,daemon 的关节角、IMU、媒体状态走独立广播(io/publisher.py+ws_server.py),互不阻塞。原因是 WebSocket 长连接下,如果 UI 每帧都等回执,后台任务会互相卡死。这是做机器人前端时很实用的模式:状态用发布,动作用任务加完成通知。

安全限位长在 API 里,不靠自觉。create_head_pose收毫米和角度,SDK 把请求自动 clamp 到关节限位(head pitch/roll ±40°、body yaw ±160°);越界目标被截断而不是抛异常。翻源码会发现 clamp 逻辑在 daemon 侧而不是客户端,任何客户端都绕不过去。你的项目如果是"上位机发指令、下位机执行"的结构,把安全边界放在服务端而不是 SDK 里,这个思路可以直接搬。

踩坑提醒

连不上机器人。现象:ReachyMini()构造时超时。原因:默认走 mDNS 发现reachy-mini.local,公司网络常禁组播广播。处理:先用find_robots()(src/reachy_mini/utils/discovery.py)看局域网里实际发现了什么,发现不了就构造时显式传host="192.168.x.x", connection_mode="network"。

扫描电机时一个都找不到。现象:Testbench 里 scan 全空,但 daemon 明明正常。原因:扫描要求独占串口,daemon 占着就不行。处理:先停掉 daemon(桌面应用设置里关掉 motor backend)再扫描,扫完重启 daemon 即可,详见 docs/source/troubleshooting/motors_diagnosis.md。

macOS 上仿真段错误。现象:reachy-mini-daemon --sim起来就崩。原因:uv装的 MuJoCo 相关包在 macOS 有兼容问题,libgstpython也可能段错误。处理:按 docs/source/platforms/simulation/get_started.md 的建议,Mac 上用pip而不是uv装 MuJoCo 相关依赖,必要时改用mjpython -m reachy_mini.daemon.app.main --sim启动。

下一步往哪走

路径由轻到重。先跑 examples/ 里三个脚本:sound_doa.py 看声源追踪、look_at_image.py 看图像坐标转头、sequence.py 看动作编排。再翻 src/reachy_mini/kinematics/,对比三套ik/fk实现的输入输出,顺手看 docs/source/SDK/core-concept.md 里的坐标系和限位表。最后尝试接自己的传感器:把任何方位估计接进look_at_world(x, y, z),六自由度平台的运动控制部分就归你调了。

把reachy-mini-daemon --sim拉起来,今天就能让机器人在你屏幕上动一下。

【免费下载链接】reachy_miniReachy Mini's SDK项目地址: https://gitcode.com/GitHub_Trending/re/reachy_mini

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/24 7:25:34

Mybatis调用存储过程返回sys_refcursor,对象集合映射配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 7:20:46

Redisson延迟队列实现原理与电商应用实践

1. Redisson延迟队列实现方案解析 延迟队列作为分布式系统中常见的解耦利器,在订单超时取消、定时任务触发等场景中扮演着重要角色。Redisson这个Java界的Redis客户端之王,提供了开箱即用的延迟队列实现方案,相比自己造轮子,它解…

作者头像 李华
网站建设 2026/10/24 7:19:17

Hello World程序:编程入门的核心价值与技术演进

1. 从"Hello"看编程世界的入门仪式在计算机科学的世界里,"Hello"这个简单的单词承载着特殊的意义。1978年,Brian Kernighan在他撰写的《C程序设计语言》中首次使用了"Hello, World!"作为演示程序,从此这个短语…

作者头像 李华
网站建设 2026/10/24 7:14:38

XAF框架GridView定制化实战:从列控制到报表改造的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 7:14:36

PCA9422与STM32F373RC协同电源管理实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华