Reachy Mini 应用开发:3 条命令做出你的第一个机器人应用
【免费下载链接】reachy_miniReachy Mini's SDK项目地址: https://gitcode.com/GitHub_Trending/re/reachy_mini
Reachy Mini SDK 让你用 Python 给桌面机器人写应用:继承一个基类、实现一个 run 方法,再用一条命令发布到 Hugging Face Spaces,机器人主人即可一键安装。
30 秒认识 Reachy Mini SDK
一句话定位:Reachy Mini 是开源桌面机器人平台,这个仓库是它的 SDK,负责把「你的 Python 代码」和「机器人的电机、麦克风、摄像头」之间的连接、生命周期、部署全部兜住。
核心能力就 3 条:
- 一个
ReachyMiniApp基类 + 一个run()方法,就是你的应用全部契约; - 一条
reachy-mini-app-assistant命令覆盖建项目、体检、发布全流程; - 发布后变成 Hugging Face Space,Reachy Mini Control 里一键安装,同一时间只能跑一个应用。
目标读者:手里有(或想模拟)一台 Reachy Mini、会基本 Python,想把自己的玩法变成别人能直接装的应用的开发者。
上手路径:从建项目到上架
准备工作
| 项目 | 要求 | 说明 |
|---|---|---|
| Python 环境 | 已安装reachy-mini包 | uv pip install reachy-mini,装好后提供reachy-mini-app-assistant命令 |
| 机器人 / daemon | daemon 正在运行 | Lite 在localhost:8000,Wireless 在reachy-mini.local:8000;没有真机可用reachy-mini-daemon --sim仿真 |
| Hugging Face 账号 | 带 Write 权限的 token | 执行hf auth login,发布应用时才需要 |
| git | 基本命令可用 | publish 会创建带远程仓库的 Space,之后靠git push更新 |
最小可跑通:3 条命令
uv pip install reachy-mini reachy-mini-app-assistant create my_first_app /path/to/dest reachy-mini-app-assistant check /path/to/dest/my_first_app第 1 条装 SDK;第 2 条生成完整项目(应用名不能有空格、连字符、斜杠、点号,目录也不能位于某个 git 仓库内,交互式问答会拦住);第 3 条体检项目结构、入口点和元数据。生成出来的结构是:
pyproject.toml:依赖 +reachy_mini_apps入口点注册README.md:带reachy_mini_python_app标签,应用商店靠它发现你的应用index.html/style.css:Space 落地页my_first_app/main.py:你的应用逻辑
应用本体就是官方文档里这个最小形态:
class MyApp(ReachyMiniApp): def run(self, reachy_mini, stop_event): t0 = time.time() while not stop_event.is_set(): t = time.time() - t0 yaw = 30.0 * np.sin(2.0 * np.pi * 0.2 * t) reachy_mini.set_target(head=create_head_pose(yaw=yaw, degrees=True)) time.sleep(0.02)要点只有 3 个:run()里轮询stop_event以便优雅退出;__main__块里调app.wrapped_run()(daemon 是按模块方式拉起你的应用的,缺了__main__就跑不起来);额外依赖一律写进pyproject.toml。本地快速迭代直接python -m my_first_app.main即可。
跑通后上架只需 2 步:hf auth login,然后reachy-mini-app-assistant publish /path/to/my_first_app。想要进官方应用列表,就加--official参数提交审核;创建时带--publish可以把第 2 条和第 4 步合成一步。
真实场景改造:让机器人转头看说话的人
比正弦波摇头更有用的是「谁在说话就转头看谁」。音频相关能力在应用里和在独立脚本里用法完全一样,直接用 SDK 方法:start_recording()开录、get_audio_sample()取样本、play_sound()播音效,声源定位(DOA)的完整写法在 examples/sound_doa.py。改造思路就是把上面循环里的yaw换成 DOA 算出的角度:
reachy_mini.start_recording() while not stop_event.is_set(): sample = reachy_mini.get_audio_sample() # 由 sample 算出声源方向后: reachy_mini.set_target(head=create_head_pose(yaw=direction, degrees=True))录音频、播音频两个方向的完整可运行代码分别在 examples/sound_record.py 和 examples/sound_play.py,把它们的主循环搬进你的run()就是全部工作量——因为reachy_mini实例由wrapped_run()建好并传入,你不用碰任何硬件连接。
模块职责速查表
| 模块 | 职责 |
|---|---|
| src/reachy_mini/apps/ | ReachyMiniApp基类、create/check/publish 助手、Jinja2 项目模板 |
| src/reachy_mini/daemon/ | daemon 主程序与 REST 路由,以子进程方式管理应用生命周期 |
| src/reachy_mini/reachy_mini.py | ReachyMini连接对象,运动与媒体调用的统一入口 |
| src/reachy_mini/media/ | 摄像头、麦克风、音频回放,媒体后端按media_backend参数选择 |
| src/reachy_mini/motion/、src/reachy_mini/kinematics/ | goto_target/set_target等运动原语与正逆运动学 |
| examples/ | 18 个可运行示例脚本,从头部追踪到音频 DOA |
| skills/ | 给 AI 编码代理的技能指南:建应用流程、实时控制循环、LLM 集成 |
5 个常见坑位:现象 → 原因 → 解法
- 现象:启动应用报
An app is already running(400)。原因:daemon 同一时间只允许一个应用。解法:先curl -X POST http://<HOST>/api/apps/stop-current-app再启动,或经 docs/source/SDK/apps.md 里「Installing Apps」一节的小节说明换用 Control 界面操作。 - 现象:改了代码,机器人行为却没变。原因:应用是 daemon 拉起的子进程,旧进程还在跑(手动部署的还有字节码缓存)。解法:重启应用;手动部署过的清掉
__pycache__。 - 现象:
check或启动时提示 daemon 状态异常、应用起不来。原因:daemon 处于坏状态。解法:sudo systemctl restart reachy-mini-daemon,等约 30 秒再启动应用。 - 现象:应用发布了,但应用商店里搜不到。原因:
README.md的 YAML frontmatter 缺reachy_mini_python_app标签。解法:补上该标签再 push;用助手创建的项目已自动包含。 - 现象:
create时名字或路径被拒。原因:命名规则(空格、-、/、*?.都非法)或目标路径已在一个 git 仓库内。解法:改用下划线命名,换一个独立目录。
进阶玩法:3 个方向
- 给应用加 Web 配置页:在类上设置
custom_app_url(如"http://0.0.0.0:8042"),SDK 自动起 FastAPI 服务并从包内static/目录出页面,run()里可直接挂路由——适合放 API key、服务器地址等运行时配置。入口:docs/source/SDK/apps.md 的「Web UI」小节。 - 做一个会说话的 LLM 应用:创建时加
--template conversation,音频管线、LLM 工具、运动融合都预置好。入口:skills/ai-integration.md。 - 让 AI 代理替你写应用:仓库根目录的 AGENTS.md 是写给 Claude Code、Cursor 这类代理的总入口,配合 skills/ 里的控制循环、交互模式等技能文档,把需求直接丢给它。
资源索引
- 应用开发主文档(建、测、发、调试全在此):docs/source/SDK/apps.md
- 可运行示例代码:examples/;对应说明页:docs/source/examples/
- REST API 与应用 API 参考:docs/source/API/rest-api.mdx、docs/source/API/apps.mdx
- 基类与 CLI 助手源码:src/reachy_mini/apps/app.py
- AI 代理技能库:skills/
从 3 条命令建项目,到机器人转头看人、上架给全世界的 Reachy Mini 主人一键安装,这条链路上的每一环 SDK 都已铺平——你只需要把应用里那个run()循环写好玩。
【免费下载链接】reachy_miniReachy Mini's SDK项目地址: https://gitcode.com/GitHub_Trending/re/reachy_mini
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考