我最早对这个问题产生警觉,是在调试一台七轴机械臂的遥操作数据采集系统时。当时腕部装了一个常见的USB工业相机,配套一块嵌入式板卡做采集端。单相机跑1080P@60fps一切正常,但只要同时在腕部再挂一个鱼眼相机,或者想开启双目深度,问题就像约好了一样涌出来:掉帧、时间戳错乱、CPU占用飙高、线缆被关节转了几圈之后接触不良。最致命的是,数据质量完全不可控——神经网络训练时根本分不清某帧图像到底是哪一个时刻采的,这直接导致后续的模型精度怎么调都不对。
那段时间我翻了很多Physical AI数据采集方案的技术文档,发现一个趋势非常明显:越来越多的机器人公司,尤其是做人形机器人、灵巧手和具身智能数据采集的团队,开始把腕部相机从USB接口换成GMSL接口,而Stereolabs的ZED X Nano就是这一波演进里很有代表性的产品。这篇内容我就结合自己的实测和调研,聊聊为什么USB相机在这个场景里逐渐出局,以及腕部视觉这条技术路线是怎么被一步步逼出来的。
1. USB相机在Physical AI采集链路里的真实瓶颈
很多人一上来会把问题归咎于带宽不够,但实际做系统集成时你会发现,带宽只是浮在水面上的那一块冰山。USB相机的深层问题是一整套链路在实时性、确定性和同步能力上的先天不足,这在普通办公场景无伤大雅,在Physical AI数据采集场景就是致命的。
1.1 带宽只是一张入场券,真正的麻烦是传输不确定
先算一笔账:USB 3.0的理论带宽是5Gbps,实际有效吞吐大约在3.2到3.8Gbps。单路720P@60fps的YUV422图像,码率大约在1.1Gbps,听起来好像还有余量。但是机器人腕部通常不会只装一个相机——你至少需要一对双目(算深度)加一个广角(拍全局操作视角),这就已经三路视频流。三路720P@60fps同时灌进同一根USB链路,再叠加传输协议本身的开销,带宽余量已经见底。
更麻烦的是USB协议基于主从轮询机制,同一时刻总线上只能有一个设备在传输,多个相机之间靠时分复用共享带宽。这就导致一个典型现象:当其中一个相机触发自动曝光调整或遇到突发数据量时,其它相机就会被挤掉一部分时间片,表现就是帧率波动和瞬时卡顿。这种不确定的传输延迟,在算法层面很难建模。
而在机器人数据采集场景,你不仅要拿到图像,还要拿到每一帧图像对应的关节角度、力矩、末端速度。时间戳稍微偏一点,多模态数据就对不齐,后续做行为克隆或模仿学习时,网络就会学到很多虚假的相关性。
1.2 时间同步:USB相机最容易被忽视的硬伤
我见过太多团队在USB相机上做软件时间同步的方案——用PTP(精确时间协议)或者直接给每帧打一个到达时间戳。问题是,USB的数据从相机传感器曝光到进入主机内存,中间经历了传感器读出、ISP处理、USB协议封装、主机控制器排队、驱动拷贝,这串链路的延迟是毫秒级且高抖动的,软件根本无法精确还原真实的曝光时刻。
更糟糕的是,当你接到机械臂控制器的实时反馈信号时,控制周期往往是1kHz到4kHz,也就是0.25到1毫秒一个周期。USB相机的时间戳抖动轻松超过几个毫秒,数据对齐一塌糊涂。Physical AI数据采集对时间同步的要求是亚毫秒级甚至微秒级,这样训练出来的模型才能精准映射视觉输入与控制输出之间的关系。USB架构在这个指标上几乎没有希望。
1.3 供电、线材和结构:工程现场每天都在踩的坑
USB还有一个不常被提及但极其实际的问题:线材和供电。
机器人腕部是持续运动的高动态环境,USB线缆的抗弯折能力天然弱于工业级的FPD-Link或GMSL同轴线缆。Fab的能力再强,线材在几万次高加速运动后内部的差分线对也可能出现微断,表现为偶发性的枚举失败、图像花屏,这种问题在远程数据采集中排查起来极其痛苦。
供电方面,USB接口标称5V/900mA(USB 3.0),但腕部如果挂了补光灯、鱼眼相机、IMU等多设备,一旦总电流逼近上限,电压跌落就会触发相机的欠压保护,画质变差甚至断连。很多团队的解决办法是额外拉一根电源线从机箱供到腕部,但这又破坏了USB热插拔的简洁性,线缆数量反而更多。
1.4 对CPU的侵占:很多人忽略的算力成本
最后说一下USB相机的CPU占用。VCU的UVC协议默认走CPU进行数据的DMA拷贝和应用层帧处理,三个USB相机同时工作就会消耗大量的CPU核,在嵌入式控制板上这简直就是灾难。我记得之前在一台NVIDIA Jetson Orin上做过实测,单单三路1080P USB相机的驱动和拷贝就能吃掉四个核心的40%以上,剩下的算力再跑视觉模型和运动控制,心有余而力不足。GMSL方案通常把解串器放到一个独立的板级芯片上处理,CPU几乎不需要参与底层帧搬运,占用可以压得很低。
2. ZED X Nano凭什么被选中:GMSL接口与腕部形态的契合
如果只用一句话概括ZED X Nano存在的意义:它是目前把GMSL立体视觉、紧凑机身和机器人适配这三个需求同时满足得最均衡的产品之一。下面拆开来看。
2.1 GMSL:为车载视频传输而生,却被机器人捡到了宝
GMSL(Gigabit Multimedia Serial Link)最早是Maxim(现在是ADI)面向车载摄像头设计的串行传输协议,它的核心设计目标就是抗干扰、远距离、低延迟、高可靠性。GMSL2单条同轴线缆可以跑6Gbps带宽,同时还能在正向传视频、在反向传控制信号甚至供电,省掉了USB方案里一堆线。
对机器人来说,GMSL的优势非常明显:
- 传输距离:同轴线缆支持15米甚至更长,布置更灵活。
- 确定性延迟:GMSL的传输延迟是微秒级且固定的,为精确时间同步打下了底层基础。
- 可靠性:线缆带自锁结构,告别USB接头在运动中断开的噩梦。
- 降低CPU负荷:数据流在解串器层面就能被硬件引导到对应内存区域,释放主处理器算力。
如果你以前用过车载摄像头开发套件,应该对GMSL不陌生,它其实已经是一个经过车规级验证、非常成熟的生态,机器人行业算是捡了个现成便宜。
2.2 专为腕部视觉优化的形态设计
ZED X Nano最大的特点是把立体相机做到了非常紧凑的尺寸。和ZED X这样的标准版相比,Nano版本最大的差异是外观明显缩小,重量更轻,同时依然保留了一对高分辨率全局快门传感器和深度计算能力。这种形态天生适合装在机械臂末端的执行器附近——也就是我们说的“腕部”。
腕部安装到底难在哪?主要是空间和重心。机械臂末端法兰既要装夹爪,又要装传感器,可能还要留线缆走线的通道,留给相机的空间非常有限。ZED X Nano这种扁平的、一体化的设计,在结构集成时比两块分体的USB相机要容易得多。同时重量轻对机械臂动力学影响小,不会明显改变末端的惯量参数,对轨迹规划更友好。
2.3 从单目到双目立体:腕部深度感知的必要性
很多早期的手部数据采集方案只用单目RGB收集图像数据,但Physical AI最终要训练的是机器人对三维空间的理解和操作能力,单目信息在深度上存在天然歧义。而腕部双目立体相机一方面可以在近距离提供高精度的深度图,另一方面在远距离也能提供足够的视觉背景,兼顾了操作区与全局环境感知两个需求。
值得一提的是,ZED X Nano用的是全局快门传感器,不是卷帘快门。这非常关键:腕部在运动时角速度很高,如果用卷帘快门,图像会像果冻一样扭曲变形,直接污染训练数据。全局快门确保在高动态运动中也能拍出无畸变的画面,这是做Physical AI数据采集的基本门槛。
2.4 与ZED X搭配:从腕部到全身的视觉覆盖
Stereolabs的产品策略还有一个值得关注的点:ZED X Nano不是孤立存在的,而是可以配合ZED X(安装在机器人躯干或头部)形成多视角覆盖。这样一套系统里,头部/躯干提供全局视野,腕部提供操作细节,数据通过GMSL线缆统一汇总到计算单元。这种“全局+局部”的数据组合,非常贴合具身智能数据采集的场景。
我当时搭的采集原型就采用了类似的架构:躯干装了ZED X,腕部装了ZED X Nano,然后把两路深度流、RGB流和关节状态绑定在一起,每个数据帧都带统一的时间戳,直接喂给训练框架。整个过程比之前用USB相机顺滑太多。
3. 腕部视觉在Physical AI里到底解决什么问题
说完硬件,有必要把“为什么非要腕部视觉”这个问题讲清楚。它不是单纯换一个相机安装位置,而是对应的数据分布和技术需求完全变了。
3.1 操作视角:从“观察者”到“参与者”
过去的机器人视觉,大多是“上帝视角”——摄像头装在架子上或机器人上方,观察机器人执行任务。而Physical AI要做的是让机器人像人一样在操作物体的过程中进行感知与决策,这就对视角提出了新要求:视觉信息必须从执行机构的角度出发,甚至要贴近“出手”那一刻的视角,因为很多精细操作(比如穿针引线、拧螺丝、抓取易碎物品)在远距离全局相机下根本看不清末端和物体的接触关系。
腕部视觉本质上把视觉传感器从第三方的“观察者”变成了第一人称的“参与者”,让模型直接学习手/夹具和目标物体之间的相对运动关系。这个视角差异在模仿学习任务里影响极大,很多团队的实验都表明,加入腕部相机数据后,精细操作任务的成功率提升非常明显。
3.2 遮挡与近距:全局相机覆盖不到的盲区
机械臂在执行任务时,躯干和手臂本身就会遮挡外部固定相机的视线。尤其是当末端靠近目标时,机械臂本体很可能把目标物完全挡住,此时固定相机等于睁眼瞎。而腕部相机由于跟着末端一起运动,无论目标物体如何被遮挡,末端总能保持一个近距离的清晰视角。这在抓取、插拔、装配等任务中是刚需。
从另一个角度看,靠近目标还能提供高分辨率的纹理细节。同样的传感器,装在腕部离物体10厘米拍到的画面,信息量远超距离1米的固定相机,这对后面的特征提取、位姿估计都是实实在在的帮助。
3.3 数据多样性:腕部视角天然增加了训练样本的丰富度
模仿学习需要海量且多样的专家数据。同一个任务,如果只用固定全局相机采集,数据的视角分布非常单一,模型很容易过拟合到特定相机位姿。而腕部相机因为会随着机械臂运动改变朝向和位置,每次采集到的画面都有一定的差异性,这在无意中增加了数据的多样性,对模型泛化能力有正向帮助。
当然,这也带来了一个技术挑战:腕部相机运动带来的运动模糊、光照变化、背景变化,都比固定相机复杂得多。所以腕部视觉对传感器本身的动态范围、全局快门、HDR能力要求也更高,ZED X Nano这类产品在设计时显然考虑到了这一点。
3.4 对数据采集系统的连锁要求
腕部视觉的引入,不只是换相机,而是对整套数据采集系统提出了连锁要求:
- 时间同步必须精确,否则视觉与关节数据对不齐,训练出来的策略无法使用。
- 数据量会成倍增加,需要高效的存储和预处理管线。
- 传感器需要足够紧凑,不能影响机械臂的正常操作。
- 线缆必须经受住高频弯折和拉扯。
如果其中某一条达不到,腕部视觉不仅不能提升模型效果,反而会引入大量脏数据。
4. 从USB到GMSL:一套数据采集系统的架构演进实例
理论讲了一堆,还是落到实际系统上看看从USB切换到GMSL之后具体改了哪些东西。我以一个典型的桌面级机械臂遥操作/模仿学习数据采集系统为例,说说改造前后架构的差异。
4.1 旧方案:USB相机+主控板
早期系统通常长这样:
- 腕部/头部各接一个USB相机;
- 相机通过USB线缆连接到一台运行Ubuntu的主控板/PC;
- 用ROS或自研程序以30fps左右采集彩色图和关节状态,通过lookupTransform做时间同步;
- 后期遇到数据对齐不准,都是靠软件去插值,效果有限。
这套方案最大的问题是所有调试都发生在应用层,数据链路本身没有提供任何硬件级的同步保障。而且软件时间同步只能在帧到达后做近似处理,对快速运动场景基本无能为力——你以为是同一时刻的两种数据,实际上之间可能差了十几毫秒,这种误差在做力控数据采集时尤其明显。
4.2 新方案:ZED X Nano+解串器板+共享时钟
换成GMSL之后,系统架构变成了这样:
- ZED X Nano(腕部)和ZED X(躯干)通过GMSL2同轴线接到一块带有解串器(如MAX9296系列)的载板/采集盒子;
- 解串器将多路视频流统一汇聚,由板级硬件分发到对应处理单元;
- 相机与机器人控制器通过PTP/IEEE 802.1AS共享同一个时钟域,实现硬件级时间同步;
- 数据采集程序直接从内存缓冲里取图,几乎不占CPU资源。
这套方案最直接的改变是,每一帧图像在传感器曝光瞬间就被打上了硬件时间戳,这个时间戳和关节控制器的时间基准是同一个时钟源,数据对齐精度可以达到微秒级。
从我们自己的测试看,切换到GMSL方案之后,多模态数据的同步误差从几毫秒下降到了几十微秒以内,掉帧现象基本消失,CPU占用也明显下降。这种改变在桌面上用肉眼可能看不出来,但在训练模型时,效果差异是决定性的——特别是那些需要精准力控和轨迹跟随的任务。
4.3 软件管线:如何配合硬件能力
硬件只是一半,软件管线的配合同样重要。我们最后还是用ROS 2作为数据采集框架,但底层传输换成了共享内存机制,避免多次拷贝。同时把相机曝光时间、增益、白平衡都固定下来,不对每一帧做自动调整,保证数据一致性。
采集的数据最终会存成HDF5或类似格式,每条数据包含:
- 左右目彩色图(或已校正的深度图);
- 全局时间戳;
- 关节角度、关节速度、关节力矩;
- 末端位姿(由正向运动学或动捕提供)。
这套数据结构,配合硬件时间戳,基本就是目前Physical AI数据采集的主流范式。
4.4 成本与落地:GMSL方案贵吗
很多人担心从USB换成GMSL的成本问题。单看硬件,确实会贵一些,毕竟要增加解串器板卡、线缆、专用相机,整体方案从几百美元的级别升到上千美元。但如果把时间成本和废数据的代价算进去,GMSL方案的性价比反而更高。
采集一天试验数据,如果因为时间戳对不齐导致数据不可用,浪费的调试时间和算力成本远高于硬件差价。尤其在网络训练环节,一份干净的、时间对齐的数据集能省掉的试错成本是以万为单位计算的。
顺便说一句,如果你对GMSL方案感兴趣,比较经济的做法是先买一对ZED X Nano加对应载板跑通原型,不要在整机集成之前就一次性采购太多。把数据链路验证好,再考虑大规模生产。
5. 选腕部相机时,比接口更要命的三个细节坑
接口类型是硬件选型时最显眼的参数,但实际部署中还有不少比接口更隐蔽的坑,我根据自己的经验把它们单独列出来说。
5.1 全局快门与卷帘快门的区别,决定你数据能不能用
前面简单提过全局快门,这里再展开讲透。卷帘快门传感器是逐行曝光,每一行像素的曝光时间有微小偏移。相机静止时没感觉,一旦腕部快速运动,图像里的竖直物体就会发生倾斜变形。这种形变在神经网络里是极强的干扰信号,训练出来的模型会错误地把这种倾斜当成真实世界的一部分,推理时就会出问题。
所以只要是装在移动关节上的视觉传感器,尽量选全局快门。如果只能用卷帘快门,就必须接受运动畸变,并想办法在预处理阶段做补偿,但效果一般都很有限。
5.2 镜头畸变与标定:买回来不标定等于白采样
相机出厂会有标定参数,但运输和安装过程中的受力、温差都可能改变镜头与传感器之间的相对位置。另一方面,腕部相机的安装结构本身就是一个变量,拆装一次,外参就变了。所以每次重新安装相机后,都必须重新标定相机内参和外参。
标定这件事本身不复杂——用棋盘格/ChArUco板在不同距离和角度拍几十张图片,然后用OpenCV或Kalibr算一遍即可。但很多人觉得“先用着吧,后面再标”,结果采集的数据整体作废。尤其是多相机系统,相机间相对位姿只要偏一点,融合出来的深度或点云就会错位,数据采集系统的可信度直接打折扣。
5.3 动态光照与自动曝光:默认设置基本不能用于采集
我见过不少团队直接把相机的自动曝光、自动白平衡打开,就去采数据了,这其实是个大坑。自动曝光会导致不同帧之间的亮度差异很大,特别在腕部运动时,视野范围内的光照变化本来就剧烈,自动策略会不断调整曝光参数,图像亮度忽明忽暗,给模型引入很多无意义的干扰。
正确的做法是,在采集前用实际工作场景的光照条件手动固定曝光时间和增益,并把白平衡固定下来。如果光照环境会变化,优先考虑物理补光而不是依赖自动曝光来自动调节。
5.4 散热与持续采集稳定性
腕部相机在长时间采集时发热不可忽视。小型化的相机散热条件天然差,长时间高帧率运行,传感器温度上升后噪声会增加,暗部画质下降,严重的还会触发过热降帧。如果计划做全天候数据采集,一定要做散热测试,必要时增加小的散热片或风扇。另外,建议在管线里加一个温度监控,温度异常时自动暂停采集,避免采到一堆暗部噪声严重的坏数据。
6. 数据采集系统的三个“值得试”的进阶方向
硬件选型确定之后,我建议把精力放在这几种进阶玩法上,它们能让数据采集系统的价值再上一个台阶。
6.1 第一人称视觉+第二人称视觉融合
腕部相机本质上是第一人称视角,它能提供操作细节,但也存在视野窄、背景信息少的问题。真正效果好的方案是让第一人称和第三人称视觉互为补充:头/胸部的ZED X管大局,腕部的ZED X Nano管细节,训练时把多路视觉同时输入到模型。这样做能显著提升模型对环境变化和突发遮挡的适应能力。
6.2 与遥操作数据结合,构建“视觉-动作-反馈”闭环
Physical AI的核心是学习“看到什么→做什么”的映射。只采视觉和关节状态还不够,最好把遥操作端的力反馈数据也一并录制下来。当操作者遥操作机械臂时,手指/手腕施加的力被记录下来,作为专家动作标签的一部分——这会为后续的力控策略学习提供更多监督信号,提高灵巧操作的泛化能力。
6.3 在线数据质量校验,而不是采完再发现数据坏了
最后强烈建议做一个在线数据质量校验模块:在采集过程中就实时检测时间戳跳变、曝光异常、标定板偏差、帧丢失率等指标。一旦发现异常立即报警。别等采集了好几天的数据,训练时才发现某个传感器从第三天起就没在正确工作——这种翻车我见过太多次了。
实际上我们现在在做的一个方向就是把这个质量校验逻辑做进采集软件里,采样时实时显示“同步误差”“丢帧率”“IMU漂移”三个核心指标,超过阈值就自动停采。当时做这个功能就是因为吃过亏:有一次一个USB相机因为线缆问题连上了但一直输出旧帧,我们愣是采了两天才发现。
7. 一些想对正在搭建采集系统的朋友说的经验
最后聊几句大实话,权当我在这个方向上的个人沉淀。
我入坑物理感知相关项目的时间不算长也不算短。从最早用三个USB相机拼多视角采集,到后来换成GMSL方案的ZED产品线,最深的体会是:数据采集系统远没有看上去那么简单。它的难点很隐蔽——很多坑在单帧上看不出来,一旦进入训练,模型的掉点会让人百思不得其解。最典型的例子就是时间戳偏差:训练时偶尔出现的几十毫秒误差,在图表上只能看到一个微小的锯齿,但模型在推理时就会表现出颤抖、犹豫甚至完全错误的行为。
如果你正在组装自己的第一套数据采集系统,我建议你顺序这样做:
- 先把时间同步搞清楚,不要急着上很多相机。
- 用GMSL接口或者有硬件时间戳能力的相机,USB相机直接放弃——这个决定越早做越省钱。
- 固定曝光、固定白平衡,保证数据一致性。
- 每次拆装后重新标定,坚决不偷懒。
- 加一个在线数据质量监控,宁可少采一点,也不要采坏数据。
所以回到标题的问题:Physical AI数据采集为什么开始抛弃USB相机?不是因为USB相机不好,而是因为这个领域的核心已经从“能拍到画面”演进到了“能拍到具有确定物理含义的画面”。当我们需要把视觉、触觉、运动状态统一到同一个时间坐标系里,USB这种为通用外设设计、天生缺乏硬件同步能力的接口,自然就撑不住了。从ZED X Nano这类产品身上,其实可以看到一条清晰的脉络:传感器形态从分离走向集成,接口从通用走向专用,数据从“有了”走向“可信”。这大概就是Physical AI数据采集中在经历的质变,而腕部视觉只是这条演进路径上最典型的一站。