Reachy Mini Robot Control
Quick Start
Use the CLI script or curl to control the robot. The script lives at:
CODEBLOCK0
Set the robot IP via REACHY_HOST env var or --host flag. Default: 192.168.8.17.
Common Commands
CODEBLOCK1
Environment
| Variable | Default | Description |
|---|
| INLINECODE4 | INLINECODE5 | Robot IP address |
| INLINECODE6 |
8000 | REST API port |
|
REACHY_SSH_USER |
pollen | SSH username (for
snap command) |
|
REACHY_SSH_PASS |
root | SSH password (for
snap command, uses
sshpass) |
Movement Guide
Head Control (6 DoF)
The head accepts pitch, yaw, roll in
radians:
- - Pitch (look up/down): -0.5 (up) to 0.5 (down)
- Yaw (look left/right): -0.8 (right) to 0.8 (left)
- Roll (tilt sideways): -0.5 to 0.5
CODEBLOCK2
Body Rotation (360°)
Body yaw in radians. 0 = forward, positive = left, negative = right.
CODEBLOCK3
Antennas
Two antennas [left, right] in radians. Range ~-0.5 to 0.5.
CODEBLOCK4
Combined Movements
CODEBLOCK5
Interpolation Modes
Use
--interp with goto:
- -
minjerk — Smooth, natural (default) - INLINECODE17 — Constant speed
- INLINECODE18 — Ease in/out
- INLINECODE19 — Bouncy, exaggerated
Emotions & Dances
Playing Emotions
80+ pre-recorded expressive animations. Select contextually appropriate ones:
CODEBLOCK6
Playing Dances
19 dance moves, great for fun or celebration:
CODEBLOCK7
Full Lists
Run
reachy.sh emotions or
reachy.sh dances to see all available moves.
Motor Modes
Before movement, motors must be enabled. Check with reachy.sh motors.
CODEBLOCK8
Volume Control
CODEBLOCK9
App Management
Reachy Mini runs HuggingFace Space apps. Manage them via:
CODEBLOCK10
Important: Only one app runs at a time. Starting a new app stops the current one. Apps may take exclusive control of the robot — stop the running app before sending manual movement commands if the robot doesn't respond.
Camera Snapshots
Capture JPEG photos from the robot's camera (IMX708 wide-angle) via WebRTC — non-disruptive to the running daemon.
CODEBLOCK11
Requirements: SSH access to the robot (uses sshpass + REACHY_SSH_PASS env var, default: root).
How it works: Connects to the daemon's WebRTC signalling server (port 8443) using GStreamer's webrtcsrc plugin on the robot, captures one H264-decoded frame, and saves as JPEG. No daemon restart, no motor disruption.
Note: The robot must be awake (head up) for a useful image. If asleep, the camera faces into the body. Run reachy.sh wake-up first.
Audio Sensing
reachy.sh doa # Direction of Arrival from mic array
Returns angle in radians (0=left, π/2=front, π=right) and speech detection boolean.
Contextual Reactions (Clawdbot Integration)
Use reachy-react.sh to trigger contextual robot behaviors from heartbeats, cron jobs, or session responses.
CODEBLOCK13
Reactions
CODEBLOCK14
Pass --bg to run in background (non-blocking).
Built-in Behaviors
- - Quiet hours (22:00–06:29 ET): All reactions except
morning, goodnight, and patrol are silently skipped. - Auto-wake: Reactions ensure the robot is awake before acting (starts daemon + wakes if needed).
- Fault-tolerant: If robot is unreachable, reactions exit cleanly without errors.
Integration Points
| Trigger | Reaction | Notes |
|---|
| Morning briefing cron (6:30 AM) | INLINECODE34 | Robot wakes up and greets |
| Goodnight cron (10:00 PM) |
goodnight | Robot plays sleepy emotion, goes to sleep |
| Heartbeat (periodic) |
idle | Subtle head tilt, antenna wave, or look-around |
| Heartbeat (~1 in 4) |
doa-track | Checks for nearby speech, turns toward it |
| Heartbeat (~1 in 6) |
patrol | Camera snapshot for room awareness |
| Important unread email |
alert | Antennas up + surprised emotion |
| Meeting <2h away |
remind | Welcoming/curious emotion |
| Request from Alexander |
ack | Quick head nod |
| Task completed |
success | Random cheerful/happy emotion |
| Good news or celebration |
celebrate | Random dance move |
DOA (Direction of Arrival) Tracking
The doa-track reaction uses the robot's 4-mic array to detect speech direction and turn the head toward the speaker. The DOA angle (0=left, π/2=front, π=right) is mapped to head yaw. Only triggers when speech is actively detected.
Camera Patrol
The patrol reaction captures a snapshot and prints the image path. Use this during heartbeats to check the room periodically. Combine with image analysis to detect activity or changes.
Direct API Access
For anything not covered by the CLI, use curl or the raw command:
CODEBLOCK15
Reference
For the complete API endpoint list, schemas (GotoModelRequest, FullBodyTarget, XYZRPYPose), and full emotion/dance catalogs, see references/api-reference.md.
Troubleshooting
- - Robot doesn't move: Check
reachy.sh motors — must be enabled. Run reachy.sh motors-enable. - No response: Check
reachy.sh status. State should be running. If not, run reachy.sh reboot-daemon. - Movements ignored: An app may have exclusive control. Run
reachy.sh app-stop first. - Network unreachable: Verify the robot IP with
ping $REACHY_HOST. Check reachy.sh wifi-status. - Snap shows black image: Robot is likely asleep (head down). Run
reachy.sh wake-up first. - Snap fails with SSH error: Ensure
sshpass is installed and REACHY_SSH_PASS is set correctly.
Reachy Mini 机器人控制
快速入门
使用 CLI 脚本或 curl 控制机器人。脚本位于:
~/clawd/skills/reachy-mini/scripts/reachy.sh
通过 REACHY_HOST 环境变量或 --host 标志设置机器人 IP。默认值:192.168.8.17。
常用命令
bash
reachy.sh status # 守护进程状态、版本、IP
reachy.sh state # 完整机器人状态
reachy.sh wake-up # 唤醒机器人
reachy.sh sleep # 进入休眠
reachy.sh snap # 摄像头快照 → /tmp/reachy_snap.jpg
reachy.sh snap /path/to/photo.jpg # 快照到自定义路径
reachy.sh play-emotion cheerful1 # 播放情绪
reachy.sh play-dance groovy
swayand_roll # 播放舞蹈
reachy.sh goto --head 0.2,0,0 --duration 1.5 # 点头
reachy.sh volume-set 70 # 设置扬声器音量
reachy.sh emotions # 列出所有情绪
reachy.sh dances # 列出所有舞蹈
环境变量
| 变量 | 默认值 | 描述 |
|---|
| REACHYHOST | 192.168.8.17 | 机器人 IP 地址 |
| REACHYPORT |
8000 | REST API 端口 |
| REACHY
SSHUSER | pollen | SSH 用户名(用于 snap 命令) |
| REACHY
SSHPASS | root | SSH 密码(用于 snap 命令,使用 sshpass) |
运动指南
头部控制(6 自由度)
头部接受
弧度单位的俯仰、偏航、翻滚:
- - 俯仰(上下看):-0.5(向上)至 0.5(向下)
- 偏航(左右看):-0.8(向右)至 0.8(向左)
- 翻滚(侧倾):-0.5 至 0.5
bash
向上看
reachy.sh goto --head -0.3,0,0 --duration 1.0
向左看
reachy.sh goto --head 0,0.4,0 --duration 1.0
头部向右倾斜,略微向上看
reachy.sh goto --head -0.1,0,-0.3 --duration 1.5
回到中间位置
reachy.sh goto --head 0,0,0 --duration 1.0
身体旋转(360°)
身体偏航以弧度为单位。0 = 向前,正数 = 向左,负数 = 向右。
bash
reachy.sh goto --body 1.57 --duration 2.0 # 向左转 90°
reachy.sh goto --body -1.57 --duration 2.0 # 向右转 90°
reachy.sh goto --body 0 --duration 2.0 # 面向前方
天线
两个天线 [左, 右] 以弧度为单位。范围约 -0.5 至 0.5。
bash
reachy.sh goto --antennas 0.4,0.4 --duration 0.5 # 两个都向上
reachy.sh goto --antennas -0.3,-0.3 --duration 0.5 # 两个都向下
reachy.sh goto --antennas 0.4,-0.4 --duration 0.5 # 不对称
组合运动
bash
向左看并身体左转,天线向上
reachy.sh goto --head 0,0.3,0 --body 0.5 --antennas 0.4,0.4 --duration 2.0
插值模式
在 goto 中使用 --interp:
- - minjerk — 平滑、自然(默认)
- linear — 恒定速度
- ease — 缓入/缓出
- cartoon — 弹跳、夸张
情绪与舞蹈
播放情绪
80 多种预录制的表现性动画。选择适合上下文的:
bash
reachy.sh play-emotion curious1 # 好奇的表情
reachy.sh play-emotion cheerful1 # 快乐的表情
reachy.sh play-emotion surprised1 # 惊讶的反应
reachy.sh play-emotion thoughtful1 # 思考的姿态
reachy.sh play-emotion welcoming1 # 问候的手势
reachy.sh play-emotion yes1 # 点头表示是
reachy.sh play-emotion no1 # 摇头表示否
播放舞蹈
19 种舞蹈动作,适合娱乐或庆祝:
bash
reachy.sh play-dance groovy
swayand_roll
reachy.sh play-dance chicken_peck
reachy.sh play-dance dizzy_spin
完整列表
运行 reachy.sh emotions 或 reachy.sh dances 查看所有可用动作。
电机模式
在运动之前,电机必须处于 enabled 状态。使用 reachy.sh motors 检查。
bash
reachy.sh motors-enable # 启用(运动命令需要)
reachy.sh motors-disable # 禁用(机器人变得松弛)
reachy.sh motors-gravity # 重力补偿(手动摆动机器人)
音量控制
bash
reachy.sh volume # 当前扬声器音量
reachy.sh volume-set 50 # 将扬声器设置为 50%
reachy.sh volume-test # 播放测试声音
reachy.sh mic-volume # 麦克风音量
reachy.sh mic-volume-set 80 # 将麦克风设置为 80%
应用管理
Reachy Mini 运行 HuggingFace Space 应用。通过以下方式管理:
bash
reachy.sh apps # 列出所有可用应用
reachy.sh apps-installed # 仅已安装的应用
reachy.sh app-status # 当前运行的应用
reachy.sh app-start NAME # 启动应用
reachy.sh app-stop # 停止当前应用
重要:一次只能运行一个应用。启动新应用会停止当前应用。应用可能独占机器人控制权——如果机器人没有响应,请先停止正在运行的应用,再发送手动运动命令。
摄像头快照
通过 WebRTC 从机器人摄像头(IMX708 广角)捕获 JPEG 照片——不会中断正在运行的守护进程。
bash
reachy.sh snap # 保存到 /tmp/reachy_snap.jpg
reachy.sh snap /path/to/output.jpg # 自定义输出路径
要求:SSH 访问机器人(使用 sshpass + REACHYSSHPASS 环境变量,默认值:root)。
工作原理:通过机器人的 GStreamer webrtcsrc 插件连接到守护进程的 WebRTC 信令服务器(端口 8443),捕获一帧 H264 解码图像,并保存为 JPEG。无需重启守护进程,不会中断电机。
注意:机器人必须处于唤醒状态(头部抬起)才能获得有用的图像。如果处于休眠状态,摄像头会朝向身体内部。请先运行 reachy.sh wake-up。
音频感知
bash
reachy.sh doa # 麦克风阵列的声源方向
返回弧度角(0=左,π/2=前,π=右)和语音检测布尔值。
情境反应(Clawdbot 集成)
使用 reachy-react.sh 从心跳、定时任务或会话响应触发情境化机器人行为。
~/clawd/skills/reachy-mini/scripts/reachy-react.sh
反应
bash
reachy-react.sh ack # 点头确认(收到请求)
reachy-react.sh success # 快乐情绪(任务完成)
reachy-react.sh alert # 惊讶 + 天线向上(紧急邮件、警报)
reachy-react.sh remind # 欢迎/好奇(会议提醒、待办事项)
reachy-react.sh idle # 细微动画(心跳存在感)
reachy-react.sh morning # 唤醒 + 问候(早间简报)
reachy-react.sh goodnight # 困倦情绪 + 休眠(夜间模式)
reachy-react.sh patrol # 摄像头快照,打印图像路径
reachy-react.sh doa-track # 将头部转向检测到的声源
reachy-react.sh celebrate # 随机舞蹈(有趣时刻)
传递 --bg 在后台运行(非阻塞)。
内置行为
- - 静默时段(美国东部时间 22:00–06:29):除 morning、goodnight 和 patrol