在具身智能圈聊后训练现在绕不开的一个话题就是数据从哪来。预训练阶段还能靠互联网视频、仿真合成往模型里灌常识可到了后训练阶段要让机器人真正学会“开抽屉、叠衣服、插线缆”这种细活光有常识不够必须给它看大量高质量操作轨迹。问题是轨迹从哪来过去默认的答案是连接真机人在旁边握着示教臂一条条录。这个路子不是不行是太贵太慢了一台真机一天录不出多少有效数据还得养着硬件、守着安全员。所以最近半年越来越多团队开始换思路绕开真机用手持设备采数把人的动作和意图直接变成训练数据。这条路线说白了就是把“人手演示”当数据源用视觉、惯性传感器、动捕手套一套组合拳把人操作物体时的手部轨迹、手腕姿态、施加力的方式全部记下来再映射成机器人末端的动作指令。人在整个采集回路里不再只是“操控者”他就是数据本身。实测下来采集效率比传统示教高一个数量级而且能采集到很多真机示教根本采不到的长尾场景。这篇文章我把自己踩过的坑、调通的链路、以及为什么“人在回路”这几个字对后训练这么重要一次性讲透。1. 先说清楚后训练阶段为什么非要真人数据1.1 后训练到底在练什么预训练阶段的模型学的是“世界是什么样的”物体长什么样、桌子在哪、杯子通常放在哪。这个阶段可以靠互联网视频、仿真堆量反正目标是建立起对物理世界的粗粒度理解。可到了后训练阶段任务变了模型要回答的不再是“这是什么”而是“下一步手该往哪动”。这就不再是认知问题而是精细的运动控制问题。这个阶段主流做法有两种一种是行为克隆直接拿人类演示的轨迹数据去微调VLA模型或者扩散策略另一种是把采集的数据做成奖励函数再走强化学习微调。不管哪条路都绕不开同一个前提得有大量带物体状态变化的高质量轨迹数据。注意“带物体状态变化”这几个字光有手臂轨迹不够还得知道操作的物体被移动了多少、旋转了多少、是否到位。数据维度一旦拉上来采集工作的复杂度和成本就跟着上来了。圈里常说的“后训练绕开真机”绕开的不是“数据采集”这件事本身而是绕开“依赖真机作为数据采集媒介”这条路径。真机在这个环节里的作用过去是又当传感器又当执行器人手必须在机械臂的带动下去运动数据自然只有机械臂能动范围内的东西。现在把这一层去掉让人手直接演示数据采集这件事就从“配合机器”变成了“人怎么顺就怎么采”。1.2 真机采数卡在哪很多人第一次接触真机采数以为难点在机械臂本身用久了才发现难点全在机械臂以外。先说时间成本一条合格的操作轨迹从摆好场景、复位、执行到检查数据快的话也要两分钟。一个熟练的数据采集员一天八小时满打满算也就一百多条有效轨迹。这个量级听起来不少放大模型动辄需要十万条甚至更多时间账根本算不过来。更要命的是真机采集有物理约束。一台机械臂在物理空间里只能待在一个位置采“从桌面上拿杯子放到抽屉里”这种任务得先把机械臂挪到桌前换下一个场景又得重新标定、重新固定基座。空间、安全、硬件寿命、能耗每一项都在拖后腿。我见过一个团队为了一周内采够训练数据上了六台机械臂三班倒结果第三天人机协同的安全员先撑不住了因为真机移动过程中人必须保持安全距离很多精细操作还得靠人靠近去微调安全矛盾非常突出。还有一个容易被忽视的问题真机示教本身会“污染”数据。机械臂的运动学决定了它的轨迹天然被平滑化、被约束在可达空间内人类操作中那些微妙的试探、犹豫、退让在机械臂复现时全部被抹掉了。可这些信息恰恰是后训练阶段模型最需要学习的——什么时候该试探什么时候该果断什么时候该中途调整。这些“手感”一旦丢失模型学出来的行为就会僵硬稍微遇到场景变化就崩。2. 手持采数是什么把人变成数据生成器2.1 两种主流手持采数路线我接触到的团队里手持采数目前有两条主路线一条叫“手持从端遥操作”另一条叫“纯视觉动捕”两者差别很大适合的场景也不一样。手持从端遥操作是给机器人装一根带力传感器和IMU的手持操作杆人握着这根杆子直接做动作机械臂在另一端实时跟随。这条路线的好处在于采集的数据直接就是机器人坐标系下的末端轨迹和关节角省去了后面对齐映射的麻烦训练起来最省事。但它有个前提你还是需要一台真机作为“跟随端”只不过机械臂是在复现你的动作而不是带着你动。它的核心优势是数据格式干净、跟部署端完美对齐缺点是仍然被机械臂的运动范围卡着复杂地形和精细接触场景依然受限——很多团队用它其实是看中它“半绕开”的性价比。纯视觉动捕就彻底放飞了。人手直接去操作周围架三到六个RGB-D相机再配合手套上的IMU或者光学标记点通过视觉算法直接估计手部关节角度和物体六自由度位姿。这套方案的采集场景几乎没有限制厨房、卧室、户外都能拍采集员也完全不用顾虑机械臂的存在。但问题也随之而来手部关节到机器人末端的映射不是天然对齐的你得自己建一套人手到机械臂的对应关系而且视觉算法本身的精度、遮挡问题、物体位姿估计误差都会直接污染数据质量。目前这条路线真正跑通并且数据质量达标的团队不多但一旦方向对了潜力非常大。2.2 人和回路数据里藏的“意图信息”“人在回路”这个词听起来像方法论废话实际操作中却有非常具体的含义人手操作过程中包含的意图信息是纯自动采集或者仿真合成给不了的。举一个最直观的例子——插拔线缆。真机自动插的时候策略只会学着“按轨迹往里怼”因为数据里没有“怼进去之前先轻轻试探一下角度”这种细节。可人类演示的时候手腕会有极细微的晃动来找角度感觉到阻力不对会退出来一点点再重新对齐这些动作在轨迹图上看起来就是一小段高频抖动但对模型来说这叫“策略多样性”。没有这种多样性模型学出来的就是一个脆弱的开环动作位置稍微偏一点就失败。我在一个叠衣服项目里验证过这个差别。用真机示教数据训出来的策略在固定位置叠固定衣服成功率能到九成衣服挪个位置、换个材质成功率直接掉到三成。后来换用手持采数让三个人分别演示了同一套叠衣流程没有刻意规定他们必须怎么叠只是要求“按你平时自己的方式叠”。结果训出来的模型泛化能力一下子打开了因为它见过三种不同的手部轨迹、三种不同的压折顺序学会了“目标是衣服被叠平”而不是“按某条具体轨迹执行”。这就是人在回路的核心价值人提供的不只是位置坐标序列而是解决问题的策略空间。传统采数把人的脑子隔离在数据外面手持采数则把人的判断、适应、修正全部编码进了轨迹里模型能在这些不同的策略中找到不变的目标泛化能力自然上去。3. 手持采数的完整实操流程3.1 系统组成与选型一个能稳定产出训练数据的手持采数系统我按模块给你拆开每个模块都有几个选型上的关键取舍。先说感知模块用纯视觉路线的话深度相机建议选Intel RealSense D435i或者Orbbec Astra系列分辨率不需要太高但帧率一定要稳30帧起步是底线。IMU手套方面目前市面上商用的动捕手套精度参差不齐比较稳的还是光学动捕方案Vicon或者OptiTrack的标记球方案精度高但成本也高一套下来能买两台机械臂。如果预算有限用视觉光电标记点的混合方案也能凑合用精度差一点但训练数据够用。数据采集软件这块我的建议是别自己造轮子直接上成熟的录包框架。纯视觉路线可以用ROS的rosbag来录图像流和时间戳配合OpenPose的手部关键点提取如果是手持从端路线市面上有开源的遥操作采数平台比如一些基于Python和UDP通信的采集框架能直接同时记录机械臂关节角、末端位姿和相机图像。最简单的要求就三条时间戳统一、多模态数据同步、断点续采。3.2 标定与数据同步最容易翻车关于这条我真是见一次翻一次车。很多团队标定做不好后面用数据训练跑出来一堆“幽灵行为”——机器人末端跟手的动作对不上或者在空间上飘来飘去。所以我单独强调一下标定的核心关系物体坐标、相机坐标和机器人基座坐标三者必须在一个统一的世界坐标系下。拿纯视觉路线举例你需要做三类标定相机内参标定用棋盘格OpenCV的calibrateCamera就能搞定、相机间外参标定多个相机之间的位置关系可以用同一个棋盘格在不同相机前旋转用solvePnP求相对位姿、还有手-眼标定如果你还接了机械臂做混合采集就用经典的eye-in-hand或eye-to-hand标定算法。标定这个环节我建议留出至少一天的buffer别压缩时间后面的数据品质全靠它撑住。数据同步这一块是另一个大头。想象一下录视频的时候画面和声音对不上是什么感受数据不同步对训练模型来说就是灾难——手已经碰到杯子了图像流才显示手还在半空中模型学到的因果关系全是乱的。现在通用的做法是PTP精确时间协议同步打时间戳每一条轨迹记录的起始和结束时间点在所有传感器上必须对齐。如果你用的是多相机IMU手套的组合强烈建议在采集场景里放一个醒目的起始手势比如比个OK或者拍下桌子这个瞬间在多个相机里都会被记录到后期对齐时用来做粗校准能省很多事。3.3 数据格式与清洗数据采回来只是第一步清洗才是决定训练效果的关键。先说格式我的习惯是每条轨迹存档为一个结构化目录里面包含四类内容一张任务描述文本语言指令、一个图像序列文件夹多视角RGB-D帧、一个轨迹文件JSON或二进制记录每帧的末端位姿、关节角度、物体位姿、一个元信息文件采集时间、人员编号、任务编号、场景参数。这个格式看起来简单但对后续的数据筛选、回放、增强都友好。清洗环节最重要的一个操作是“轨迹对齐”。同一任务不同人演示出来的轨迹长度和时序差异巨大有的人先拿起杯子再开抽屉有的人先开抽屉再拿杯子都需要对齐到统一的动作阶段。我一般先做时序规范化把整条轨迹重采样到固定长度再用动态时间规整DTW把关键动作节点对齐。很多团队在这里栽跟头建议先做可视化回放把轨迹叠加到图像序列上看一遍确认每一步都对得上再扔进训练管线。说到数据增强我强烈建议做两项一是坐标变换增强同一轨迹在训练时随机做空间平移和旋转扰动模拟相机位置和物体位置的变化这对提升策略的平移泛化能力特别关键二是轨迹裁剪和数据块拼接不要只喂完整轨迹可以截取轨迹中的某一段作为子任务数据组合成更长的任务链这样一条采集数据能顶两三条用数据利用率翻倍。4. 常见问题与排查实录4.1 记录阶段常见的坑**问题一手持采数采出来的轨迹抖动严重。**这几乎是新手团队的标配问题。原因通常不在传感器精度而在人手本身——人手操作时本来就带有生理性颤抖频率大约8到12赫兹。这种抖动对真机示教不存在因为机械臂的运动学平滑把它滤掉了但手持采数是直接记录人手轨迹抖动会被原样带进数据里。解法分两步采完先跑一次低通滤波或者卡尔曼平滑把高频噪声压掉更重要的是训练时别直接拿原始轨迹去监督而是把轨迹先下采样到低频率再上采样让模型学到的是动作骨架而不是震颤细节。第二个办法实测更稳因为过度滤波会把“疑似试探”这种关键特征也一并抹掉下采样反而保留了策略结构。**问题二疲劳度导致后半程数据质量急剧下降。**手持采数这事看着轻松实则是个体力活超过四十分钟后手的稳定性、动作的规范性都会明显下降。我这边血的教训上午后两个小时的轨迹整体废掉全是因为采集员疲劳后手腕角度变形严重。解决办法是把采集任务切成二十分钟一个session每个session之间强制休息五分钟并且每次开始前重新做一次手腕静止标定记录当前IMU的零偏和手的自然姿态避免累积漂移。**问题三物体的位姿估计经常失败尤其是反光材质和透明材质。**你用相机估物体位姿碰到金属水杯或者透明玻璃瓶深度图直接变黑洞。单一视觉方案在这种情况下基本不可靠。我建议不要完全依赖视觉在关键物体上贴ArUco标记码用标记码做位姿的鲁棒估计视觉只负责提供纹理和遮挡信息。虽然看起来多了一步人工准备但对数据质量的提升非常明显特别是抓取类任务物体位姿错一点点会让训练出来的夹爪姿态全偏。4.2 数据质量与筛选技巧数据不是越多越好这条我反复跟团队强调。采了一千条轨迹可能真正合格的只有三百条让模型拿一千条垃圾去训效果还不如只用三百条干净的。前期的数据筛选比后面的算法调参还要命。我现在常用的筛选工具是三个维度的打分轨迹平滑度、任务完成度、阶段完整度。平滑度好理解算轨迹的加速度突变次数任务完成度要人工回放视频确认物体是否真的到了目标位置阶段完整度是看关键动作节点有没有遗漏比如叠衣服漏了“翻折”这个动作整条轨迹就得作废。筛选工作量很大我现在是先用一个简单的启发式规则自动过滤掉明显不合格的轨迹太长、太短、卡顿次数过多剩下的再让两个人各自独立打分取平均作为最终质量分。这里有个技巧不得不提把“失败轨迹”也保留下来。传统做法是只录成功的演示但人在回路的价值恰恰有一部分在“失败里”——手在什么位置摸索、退出来重新对齐了多久这些信息对训练模型理解“如何从错误中恢复”极为重要。所以我的管线里专门有一个目录叫“纠错演示”采集员拿到任务后故意走错一步再修正回来这种轨迹打上特殊标签。用这种混合数据训练出来的模型面对扰动时的鲁棒性有明显提升。5. 我的一些实操体会这条路我走下来最大的感受是手持采数不是“用什么替代真机”这么简单它本质上是把数据生产的重心从“硬件运维”转移到了“人体经验数字化”。以前做数据采集团队里最看重的岗位是机器人运维工程师现在最值钱的变成了那个懂任务、动作自然、能稳定输出高质量演示的采集员。这个转变直接改变了团队的人员结构和成本模型。成本账也很好算。一条手持采集数据的综合成本大约是真机示教的五分之一到十分之一具体取决于你用的视觉方案和后续清洗的自动化程度。而且这套系统机动性极强一个背包就能装下所有采集设备场景想换就换。对一个需要快速迭代验证想法的小团队来说这几乎决定了你能不能活过第一轮。当然它远不是银弹。视觉动捕的位姿精度天花板就摆在那有些需要毫米级力控的精密装配任务现阶段手持采数确实替代不了真机示教。我的建议是两条腿走路简单长尾场景交给手持采数去铺量高精度特殊场景保留少量真机精标数据做校准两边的数据按不同权重混入训练集效果比单走一边都好。如果现在让我给还没入坑的团队一个最实在的建议那就是别一上来就追求系统完美。先用最糙的方式动起来一台相机、一双自己的手、一套开源动捕算法采五十条数据跑通一个策略再说。你会在实操中迅速知道自己的任务到底需要什么样的数据精度和采数方式这比看十篇技术报告都有用。