V0.4 — 让"意图 → 医护"这个闭环在仿真里讲清楚
V0.4 是 SOMA Care 作为独立产品线的第一个里程碑。在此之前的 v0.1–v0.3 是研究原型时期,跑在另一套实验仓里:FastAPI + Next.js 脚手架、六意图闭环、MuJoCo Stretch 仿真、L0–L5 UI 面板、多相机 MJPEG 流,都已经能端到端跑通。但它们是"原型能用"的水平——画面粗糙、意图少、失败叙事不完整、作为展示材料还不够。
V0.4 的定位不是加新功能,而是把已有的闭环做得更清楚、更细、更有内容,然后以离线视频为主交付。以下四块是本期重点。
1. 更清晰的仿真
过去用 Hetzner 云端软渲染,帧率在 0.4 fps 量级,只能勉强传 MJPEG。V0.4 改到本地 Mac Metal 渲染,目标在录制时达到 30–60 fps,给视频交付留出画质空间。
具体动作:
- 整合
Hospital_assets里的 PBR 资源(墙面、地板、踢脚线、医疗设备贴图) - 三层光照:窗口定向日光 + 日光灯面板 + 床头灯
- 新增
first_person_nurse相机视角(约 1.65m 视高,行走时轻微晃动) - Stretch RE3 模型细化:带纹理的抓握垫、面板标签、更精细的手部网格
2. 更细致的操作
当前 6 个基础意图(DRINK_WATER、CALL_HELP 等)保留。新增 4–6 个接触密集的多关节技能:
- TurnOver — 翻身:mocap 驱动的病人模型 + 安全力包络
- Feed / HandMedicine — 喂食 / 递药:精准抓取勺子或药杯、对准口或手
- WipeMouth / StraightenBlanket — 擦拭 / 整理床铺:重复接触表面任务
- CompanionChat — 陪伴对话:LLM 生成自然语言 + TTS,未来可选加简单人脸网格的唇同步
同时给 MQA 加入更细的子指标:
- 接触力 vs. 力包络(对照 TaskSpec 里声明的上限做边界检查)
- 抓取余量(闭合点到物体表面的距离)
- 轨迹平滑度(加加速度积分)
3. 更多的内容
内容维度分三条线:
成功路径(8–10 条):每条完整演示"一句话 → L0–L5 读数 → 机器人动作 → 事后评估记录"。从 DRINK_WATER / CALL_HELP 这类简单闭环到 Feed、TurnOver 这类接触密集任务都覆盖。
失败-协商叙事(3–5 条):比如目标被遮挡、抓取滑落、ITA 意图置信度偏低。每条都展示三段:
- 检测(是哪个因素先报警)
- 协商(系统请求用户确认,或换一个备选对象)
- 降级(回退到更安全的技能,或请求人工接管)
非信号通路旁路:
- 场景内的物理 E-stop 按钮(可见、可点击)
- L0 语音关键词 "STOP" 拦截(ASR 通道,独立于 LLM parser)
- 眼动闭合 / 头部姿态视觉线索(预留 UI,后续接入)
4. 视频交付
V0.4 的交付形态不再以 live demo 为主,而是本地高帧率渲染的离线视频:
- 录制 5–8 段 3–5 分钟主题视频(按上面的成功 / 失败 / 旁路内容分组)
- 本地渲染为 MP4,发布到 GitHub Releases,同步到 YouTube(非公开)和 soma.jeffliulab.com
- 剪一版 1–2 分钟精华短片,作为首页 hero
原 Hetzner live demo(89.167.35.145)保持可访问,但不再作为主展示通道。
ANIMA 的位置
SOMA Care 直接依赖 ANIMA v0.1.0。这是 anima 从空骨架落地为可用框架的首个参考实现——L0 Signal / L1 Parser / L2 Planner / L3 Skill / L4 Adapter / L5 Assessment 全部有代码,五因素(ITA / MQA / SQA / GOA / PEA)有具体公式,LLM-as-Parser 强制 tool-calling 跑通。soma-care 以 pip 依赖(anima @ git+https://github.com/jeffliulab/anima.git@main)方式消费它,而不是内嵌副本。
这同时意味着 soma-care 和 soma-arm 共享同一套认知栈:前者在仿真病房里跑护理意图,后者在真机桌面上跑棋盘操作,底层都是 ANIMA。
V0.5+ 先不承诺
V0.4 交付完视频、收到一轮反馈之前,V0.5 的方向保持开放。可选路线包括非侵入式 BCI(EEG / fNIRS)在仿真中的接入、Stretch RE3 真机迁移、或临床合作试点——每一条都需要外部硬件、资金或合规通道,都不是现在能直接上的。