暖心小伴 🤖💗

一个跑在桌面机器人里的陪伴助手,由胡大娘定制。它会一直守着你,做三件贴心的事:

功能 它做什么 需要什么
🧑‍🤝‍🧑 人脸陪伴问候 摄像头发现你走近,就播放欢迎动作+友好表情,并在电脑上弹出「欢迎回家」 机器人支持人脸预览;欢迎动作/表情 ID(可留空,留空则只弹提示)
🎙️ 语音便签 你对着机器人说一段话,自动录成 WAV 音频存好,留给家人听(不用打字) 机器人带麦克风
💧 健康提醒 每隔一段时间,温柔地提醒你喝水 / 起身 / 吃药 / 闭眼歇会儿,并可在机器人上播放提醒动作 提醒动作 ID(可留空,留空则只弹提示)

设计原则:所有「动作/表情」资源 ID 都不写死。设备上没有对应资源时,应用会自动降级成「只在桌面弹提醒」,绝不瞎调用一个不存在的动作。


一、给应用“喂”资源 ID(可选,但建议做)

机器人的欢迎动作、表情、提醒动作,每台机器装的资源不一样。请在运行前用环境变量告诉它真实 ID:

# 人脸问候时播放的「欢迎」动作与表情(来自机器人官方资源目录)
export WARM_WELCOME_BEHAVIOR_ID="这里填真实行为ID"
export WARM_WELCOME_EXPRESSION_ID="这里填真实表情ID"

# 健康提醒时播放的「提醒」动作与表情
export WARM_REMINDER_BEHAVIOR_ID="这里填真实行为ID"
export WARM_REMINDER_EXPRESSION_ID="这里填真实表情ID"

还能调这些参数:

export WARM_REMINDER_INTERVAL="3600"   # 健康提醒间隔(秒),默认 3600 = 1 小时
export WARM_VOICE_NOTE_SECONDS="15"    # 语音便签时长(秒),默认 15 秒
export WARM_COMPANION_NOTE_DIR="voice_notes"  # 语音便签保存目录

找不到 ID 也没关系——留空时应用照常工作,只是机器人不额外做动作,只在桌面提示。


二、在电脑上怎么指挥它

应用启动后,你在桌面端(与机器人配对的电脑)可以发一句话给它:

你发的话 它做啥
语音便签 / 录音 / 留言 录一段语音存成 WAV
你好 / 问候 / hi 立刻问候你一下
其他任意文字 它在桌面回你一句「收到」

三、开发 & 运行(给会敲命令的人看)

# 1) 校验清单是否合法(已通过 ✅)
watcherobot app check .

# 2) 本地运行(由 SDK Daemon 托管,不要直接 python app.py)
watcherobot app run .

# 3) 打包发布到机器人
watcherobot app publish .

想在本机弹出一个「已启动」小窗,可加环境变量:

export WARM_COMPANION_LOCAL_UI=1
watcherobot app run .

四、文件说明

warm-companion/
├─ app.py        # 应用主程序(三大功能都在这里)
├─ ui.py         # 本地欢迎小窗(仅本机调试用,不影响机器人运行)
├─ app.json      # 应用清单(名称/版本/依赖)
├─ icon.svg      # 应用图标
└─ voice_notes/  # 语音便签录音保存处(运行时自动生成)

⚠️ app.py 必须在 SDK Daemon 托管环境里运行(它依赖运行时注入的设备连接), 直接 python app.py 会因为没有设备环境变量而报错——这是正常的。