鹭羽 发自 凹非寺
量子位 | 公众号 QbitAI
大火的AI宠物,自己手搓一个更有性价比?!
大脑还是GPT-4o的那种,外表长酱紫:

这就是国外一个小哥受到了前段时间火遍全网的皮克斯台灯机器人启发,给自己手搓的“小宠物”。
虽然看着有点掉SAN,其实也确实有个源自克苏鲁神话的名字:Shoggoth。(传说中一种有智慧的、可以模拟生成各种形态的凝胶状肉体生物)
但别看它外表狂野,其实Shoggoth很友好。

能对话、能互动,还有自己的穿搭小巧思,be like:

Shoggoth通过头顶的触手动作,可以有效传递自己的意图、自信、注意力等内部状态。
只需要简单的3D打印,接入GPT-4o的API,再利用RL的系统控制策略,就能让它像“宠物”一样,轻松地与人类自然对话。
所以太酷了!以后大家的童年玩伴可能不再是毛绒玩具,而是AI“宠物”?

🐙章鱼形态的AI桌宠
小哥手搓的这个章鱼机器人结构其实很简单,还挺适合复现。

基础硬件就是一个支撑三台电机的底座,圆锥形头顶直接3D打印,再悬挂引出一条触手结构。
触手结构主要来自于一个柔软的触手机器人SpiRobs,通过模仿章鱼的抓取策略,能自动适应目标物体的尺寸和形状,并抓取尺寸相差超过两个数量级、重量达自身体重260倍的物体。

对数螺旋结构可以通过3D打印低成本快速制造,并展现出优异的可扩展性,包括毫米级微型抓取器、一米长机械臂以及多臂的SpiRobs阵列。
此外,它还非常适合精细操作和复杂形状物体抓取。
视觉系统上,通过安装立体摄像头充当机器人眼睛,用于追踪触手末端。

不过小哥在测试中也发现,最初的开式阀芯设计依赖于恒定的电缆张力,任何轻微的扰动都会让电缆线离开阀芯并缠绕在电机轴上。
如果要解开电缆线,往往首先需要解开将电缆固定在一起的尖端结,并拆卸下整个机器人。
为了修复该问题,小哥为其额外添加了一个线轴罩,可以消除大多数缆线纠缠情况,加快迭代速度。
另外,小哥还增加了校准脚本和预滚动额外的线长,从而可以更为精准地校准电缆张力,在运动期间也能提供相应延长的控制时间。
但3电缆的SpiRobs本身设计上存在一定问题,在自身重力的影响下会不可避免地下垂,所以必须加粗“脊柱”结构以防坍塌,同时避免过硬导致永久形变。

不过放宽心,小哥已经将全部调好的3D打印CAD文件都打包好了,点击本文末的工程文件链接即可获取。
此外关于触手的移动控制,为了简化控制过程,触手的三个肌腱,也就是一个3D空间被缩小到两个维度,这样就能直接使用电脑触控板作为输入。

具体来说,就是分别确定三个肌腱在2D平面上的主拉力方向,形成一个总和为零的三角形,然后控制向量投影到每个肌腱的主轴上,计算调整每个肌腱的长度,并与目标方向对齐。
这种2D映射可以很直观地进行触手动作调整,在电脑触控板上拖动光标,就能让触手随之移动。
而这种2D到3D的基础映射,也为后续基于RL和GPT-4o的控制策略提供了有力支撑。
GPT-4o充当眼睛和嘴巴
Shoggoth系统共有两个控制层,分别是低级控制和高级控制。
- 低级控制
使用开环预设动作(如点头或振动)和依赖立体视觉实时反馈的闭环RL策略(如手指跟踪)。
而立体视觉的使用,在一定程度上也限制了可用视野,于是小哥设计了一个如果尖端超过帧的归位(homing)动作,约束RL观察空间。
- 高级控制
采用GPT-4o的实时API,处理语音与视觉事件(如挥手或接近触发器),然后将其作为文本提示返回。
GPT-4o接收后进行处理,无需对机器人进行微调就能直接下达底层指令。
另外由于LLM的过度或不足调用问题,可以通过Prompt工程设计进行修正解决。
同时由于API调用之间,触手在静止待机状态下生命感不足,于是作者还加入了轻微摇摆的等待行为,使其保持活力感。
至于机器人的感知模块,也同样包含两个部分:手部追踪和触手尖端追踪。
手部追踪:直接使用MediaPipe。
触手尖端追踪:通过采集多场景数据集样本,使用K-means聚类过滤冗杂样本、Roboflow自动标记和主动学习、Segment Anything增强数据集。
然后使用Ultralytics训练YOLO模型,并进行触手尖端和手部位置的3D三角测量校准。

为训练触手的RL闭环控制效果,小哥还在MuJoCo重建了软体触手模型,并设置了一个具有平滑、随机轨迹的目标跟踪环境。
将PPO(策略梯度)与MLP和帧堆叠结合使用,提供临时的上下文,另外还添加了动力学随机化、扰动质量、阻尼和摩擦,以更贴近真实环境。
直接使用肌腱长度作为动作空间训练,在仿真中出现了不符合预期的“走捷径”行为。

后转为二维投影空间,并在奖励函数中添加控制惩罚,处理较大的连续动作差异,以进行平滑控制。
但过度校正,随之而来的是不可预测的抖动和振荡,所以还需要对输出动作使用指数移动平均,增加足够的阻尼,让其稳定下来。
最终模型实现从仿真到真实环境的迁移,证实了该控制策略的有效性。
手搓Shoggoth的是何许人也?
制作这个桌面机器人的小哥,名叫Matthieu Le Cauchois,目前是一名ML工程师,平时主要研究方向就是强化学习、语音识别、NLP以及神经科学和机器学习。

本硕均毕业于洛桑联邦理工学院,曾是一家AI公司Typeless的创始人,专门负责为医护人员打造自动咨询助手。
后公司被Doctolib收购,他也顺势加入Doctolib从事语音识别和LLM工作。

小哥自己经常在个人主页上发布一些有趣的小项目,例如之前他制作了一个叫PabloNet的设备,可以挂在墙上随时随地展示AI艺术画作。
还有一个Micrograd-CUDA项目,将Karpathy的微型autodiff引擎用cuda内核和2D张量逻辑扩展,可用于GPU加速。
而关于这次做的触手机器人,据他所说,灵感也是受到了前段时间火遍全网的皮克斯台灯机器人的启发。
作为苹果首款机器人,摆脱了传统的机械动作,用灵活多变的姿势和时机传达机器人的“情绪”意图。
例如通过点头和摇头表达态度,通过调整速度、停顿或抖动传递情绪。

另外配备的摄像头,可以有效听取用户对话,实现人工交互,也能更好地传递“宠物”的陪伴感。
这一点,在小哥的章鱼机器人上也有所充分体现,动物形态也更符合“宠物”需求。
所以屏幕前的你,有没有兴趣自己也上手搓一个“AI宠物”呢?
工程文件:https://github.com/mlecauchois/shoggoth-mini
参考链接:
[1]https://www.matthieulc.com/posts/shoggoth-mini
[2]https://news.ycombinator.com/item?id=44572377
[3]https://x.com/matthieulc
[4]https://www.linkedin.com/in/matthieulecauchois/
[5]https://arxiv.org/pdf/2303.09861
[6]https://www.matthieulc.com/
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —


🌟 点亮星标 🌟