AI Tools阅读约 8 分钟

AI 能让你的手变成实体设备的控制器吗?

在混合现实中提出一个新手势,ControlAnything 就会编写连接器。从合成器、云台和一次头显实验看,这个原型验证了什么。

K
Ken Jo

想象一下,你把手悬在合成器上方,告诉头显用手指的高度控制滤波器的截止频率。手势的用途已经很清楚了,难的是把移动的手与真正的旋钮连起来,尤其当乐器用 MIDI 通信,而头显只看到桌面上的一个盒子时。

Bektur Ryskeldiev 在 2026 年 11 月 5 日提交的预印本中介绍了研究原型 ControlAnything。它把一部分集成工作移到了用户提出要求的那一刻。佩戴者在 Meta Quest 3 的视野中选定目标,说出指令,MacBook 上的智能体随即编写连接器。返回的控制可以是虚拟控件、读取手部动作的程序,也可以同时包括两者。项目公开了代码和演示,其中有一个桌面模拟器。

ControlAnything 的头显录像中,为 OP-1 Field 合成器生成的控件

作者 Bektur Ryskeldiev 的 Quest 3 录像展示了评估期间生成的 OP-1 Field 控件。Telli.sh 调整了截图尺寸。预印本与原始画面 · 项目视频的 MIT 许可声明

头显可以为一项具体任务创建新的控制方式。下一步的问题是,系统如何知道实际发生了什么。MIDI 收到确认、生成的旋钮有反应、合成器的音色确实改变,这三种现象分别提供了不同的证据。

指向设备,发起请求

原型由 WebXR 客户端、笔记本电脑上的服务器、编程智能体和少数几种设备通信方式组成。SAM 3.1 在头显视野中勾勒出候选物体。捏合手指就能为其中一个物体加标签,Muse Spark 则可以推测它是什么。预印本把识别结果当作一个假设,可以用 MIDI 端口名称或设备响应等证据核对。标签让佩戴者能指明目标,笔记本电脑则通过端口、浏览器桥接或键盘执行器真正操作它。ControlAnything 预印本第 3–4 节

将选定目标、生成连接器、发送命令和观察效果分为四个阶段

从选定目标到看到或听到结果。Telli.sh 原创图解。

可以把标签理解为行李牌。它能标明你想移动哪件行李,运输路线和目的地还得另外确定。11 月 5 日的实验很好地展示了这个区别。所有请求都发给作者此前创建的 MacBook 标签。需要操作 OP-1 Field 合成器或 DJI Osmo Mobile 4 云台时,作者在请求中说出了设备名称。因此,这次实验展示的是系统怎样连接它已经知道如何访问的设备。在陌生的合成器或云台上直接选中目标,仍是有待验证的场景。

在第一个手势出现前,系统就已掌握了不少细节。项目文档介绍了 MIDI、蓝牙和按键等通信方式。智能体保留的笔记也已经包含 OP-1 的端口名称、滤波器控制器编号和移动云台的方法。相机画面能提示某个物体像是合成器。预先记录的细节则能告诉程序应该发送哪个值、发到哪里,以及如何将其限制在预期范围内。

模型生成一次控件,手势程序持续运行

原型将生成交互方式的高开销工作与反复执行交互的工作分开。语音指令转成文字,智能体编写连接器,服务器检查连接器是否正在运行,并确认每个返回的控件都绑定了一个已声明的动作。之后,手势程序逐帧读取从关节数据提取的信号,输出数值或事件。模型在配置时运行,配置结束后,头显随着你的动作执行生成的程序。预印本实现部分

对于音色和相机取景一类连续控制,这个区别很重要。要是语言模型决定每一个新值,每一帧都得等待一次推理。一个小程序就能把手的高度映射到参数、限定取值范围,并在手松开时作出响应。如果手势用于切到下一条视频,也可以要求用户做出明确的动作,等手回到中立位置后再允许下一次触发。这些例子说明这种方法可以设计出哪些交互,原型实验并未测量这些映射的表现。

预印本报告,9 次进入就绪状态的请求中,配置耗时的中位数为 32.5 秒,范围为 24.9 至 57.8 秒。从服务器开始处理请求时计时,语音转写耗时另计。模型调用在配置耗时中的占比中位数为 89.9%。作者还说明,这次实验没有测量从手部动作到设备响应的延迟。预印本实验结果

这让灵活性的代价有了具体尺度。如果原本要花一个下午编写连接器,而且整个排练过程中都会用到它,等半分钟也许可以接受。如果拿起现有遥控器,五秒钟就能完成任务,临时创建手势的收益就小得多。更有潜力的是配置一次、之后能反复从这种控制方式受益的任务。

结果还指出了一个可尝试的改进。两次相似的水流模拟交互请求分别用了 31.6 和 32.5 秒,因为每次都生成了新的连接器。提示缓存命中了本次实验 91.7% 的输入词元,但之前的连接器并未直接成为可用控件。保存经过检查的映射,并让佩戴者决定何时复用,可以减少另一部分配置成本。这样一来,版本管理也变得重要,因为复用连接器时,设备、账户和取值范围等条件应该与原先测试时一致。

滤波器旋钮、云台和浏览器各有验证方式

11 月 5 日的实验只有作者一位佩戴者,共向五个目标发出了十条请求。九条进入就绪状态,剩下一条由佩戴者停止。这是一次探索性的技术实验。请求采用自由表述,其中一些重复了先前的目标,系统也借助了事先掌握的设备信息。这个数字反映的是本次实验的结果。初次使用者成功连接一台陌生设备的概率,需要另行测量。预印本表格与实验方法

实验示例生成的控件如何确认操作生效
OP-1 Field 滤波器请求创建滤波器旋钮后,得到两个通过 MIDI 通信的控件在输入受控的条件下录到乐器输出的变化,或由人听出变化
DJI Osmo Mobile 4一个手势程序和四个控件通过蓝牙桥接访问云台观察到云台移动,或读到经核实、处于预期行程内的位置值
Chrome 中的 Instagram Reels手势请求返回一个手势程序和三个控件,通过模拟按键操作预期的标签页或内容发生变化,其他窗口保持原状

系统可以记录命令已获确认,实体设备的响应仍需单独观察

传输确认与测得的效果回答的是两个问题。Telli.sh 原创图解。

以合成器为例,MIDI 滤波指令的格式可能完全正确,但乐器当前的音色预设也许会以不同方式响应,或者接收 MIDI 的选项可能处于关闭状态。预印本描述了此前的一次情况,消息收到确认后仍然没有声音,启用接收设置后才有响应。以固定的测试音符为输入录下可听见的变化,比再看一遍相同的日志更有说服力。

云台从另一角度说明了同一个问题。实验中,桥接程序记录了 889 条成功的旋转响应,涵盖停止和释放命令。这表明传输层在一段持续交互中接受了命令。日志中没有可靠的角度值。后续实验可以设置一个安全的目标角度,用视频或参照标记与指令要求的角度比较。由此才能判断运动是否准确、能否重复,以及是否始终处于设定范围内。

键盘控制还涉及目标识别。操作系统可以成功发出按键,结果却落到错误的窗口。测试浏览器操作时,应检查当前活动标签页,确认预期内容发生了变化,并核对其他窗口没有受到影响。连接器接口越抽象,就越需要清楚定义什么叫做「操作完成」。

停止操作可靠,用户才敢信任手势

ControlAnything 的停止机制独立于模型。佩戴者可以停止生成,在使用过程中伸出双掌,或点击腕部菜单上的控件。宿主可停用连接器,并发送恢复中立状态的指令,例如停止云台或释放 MIDI 状态。头显在受限的 worker 中运行手势程序,并在部署前用 480 个合成帧检查其行为。系统还限定了手势程序可发出的已声明动作及其取值范围。预印本的安全与停止机制

笔记本电脑上的连接器有另一套权限。预印本说明,它是以电脑使用者的权限运行的普通 Node 进程,原型没有给这个生成的进程设置沙箱。SDK 可以限制经受支持的通道发送的命令,而能够执行通用代码的连接器仍拥有当前账户的权限。要做成可靠的产品,应当在操作系统层限制连接器的权限,并只让它访问本次请求所需的设备。

想象一下,现场有两台可以移动的设备。控制界面只标出了其中一台,看上去很让人放心,但还得确认连接器能否发现并操作另一台。安全的演示环境只允许访问正在测试的目标。停止功能要单独验证,操作人员要有撤离空间,还应展示手部跟踪丢失或设备断开后会发生什么。

读取周围环境的生成代码也有类似的区别。原型要求模型把相机画面或工具响应中的文字当作数据处理。这项指令可以引导模型,实际出错时影响多大,则取决于进程权限和能使用哪些通信通道。想试用原型的读者,在把笔记本接入实体设备或登录中的账户之前,可以分别检查这两点。

从模拟目标开始,把测试范围缩小

项目的 README 介绍了可在 Node 22.12 或更新版本和 Chrome 上运行的桌面模拟器。据项目说明,没有 API 密钥时,服务器会在有醒目标记的预录模式下回放已经记录的响应。在加入头显、模型调用或实体设备之前,就能观察从标记目标到生成旋钮的整个过程。练习的范围也很明确。预录数据展示的是界面中一条已知的路径。改变目标、手势或模型响应后,才进入实时评估。ControlAnything 演示说明

  1. 阅读仓库说明,在可随时丢弃的环境中运行文档介绍的模拟流程。打开模拟器和桌面头显仿真界面,为运行虚拟合成器的模拟笔记本加上标签。
  2. 选择预设的旋钮请求,确认界面显示预录模式的标记。留意界面如何表示选中的目标,以及生成的控件何时可用。
  3. 转动虚拟旋钮,确认模拟目标上的变化,并测试文档列出的停止操作。分别记录界面上的实际现象和连接器日志中的信息。
  4. 日后若要演示实体设备,选择带有可逆控制、风险较低的目标。发出指令前先写下预期结果,并准备独立观察或听到变化的方式,以及停止设备的办法。

在工作坊里,可以先试虚拟的可视化合成器,再考虑会打开真实服务或在宿主电脑上模拟按键的功能。项目的 README 特别区分了 Instagram Reels 路径与模拟示例。如果你想了解的是手势映射,一个范围明确的本地测试目标更容易看清变化。

转向真实硬件后,把配置耗时与控制质量分开测量。记录控件就绪需要多久,再观察手势到设备响应之间的延迟、手离开跟踪范围后是否漂移,以及用户临时改变主意时会发生什么。更长时间的研究可以回答这些实际问题,还可以检查从未用过界面的人能否在无人协助时选中正确的目标。

真正实用的版本,要能生成控件,也要能验证效果

ControlAnything 最值得关注的想法,是让人直接描述自己想怎样操作实体设备,省去提前为这项操作定制界面的工作。此次评估展示了它如何在一台头显和一组已知目标上实现这一点。要让控件可以复用,成功连上设备只是第一步。它还应该识别设备、限制自己的权限,并把动作的结果清楚地呈现给佩戴者,让他们确认实际发生了什么。

来源


想在之后快速找到原型测试中的笔记和决策,可以创建 Telli.sh 账户。


← 返回博客