跳到正文
Physical Harness 框架总图

消费级相机动态接取

通用硬件 动态接取

只用一台消费级深度相机 商用机械臂和灵巧手就能接住人抛来的沙包

接球考验的是机器人的小脑 过去长期依赖昂贵硬件 动作捕捉 高速相机 专为速度设计的机器人 我们把难点交给算法 沙包还在空中 系统就以每秒 60 次预测它在何时 何处到达 手臂以 200 Hz 边动边改 手指独立调度 在到达前 0.10 秒合拢 感知 预测 调度和软硬件联调全部自研

11 次真机抛掷 接住 7 次 离线评估中 到达前 0.15-0.30 秒 截球点误差中位数 2.1 cm 到达时间误差中位数 1 ms 同一套算法迁移到另一套机械臂和灵巧手上 第一次抛掷就接住了 从第一次记录的试验到第一次接住 只用了约 1.5 小时

不依赖动作捕捉 这套能力就能部署到普通场地 用于分拣 包装和人机交接

7 / 1111 次真机试验中的接住次数
60 fps相机帧率 每帧更新一次截球点预测
200 Hz机械臂指令频率 运动中持续修正目标
2套机械臂和灵巧手共用一套算法 第二套第一次抛掷即接住

低成本 可追溯

高速接球通常靠硬件解决 这里交给预测 调度和时序算法

高性能系统 AthenaZero CushionCatch 本系统
物体跟踪动作捕捉 OptiTrack 240 Hz NOKOV 球上贴标记点一台 60 帧/秒的消费级深度相机 不贴标记点
机器人定制低惯量双臂机器人 或移动底盘上的 Franka 机械臂加网袋商用协作机械臂和多指灵巧手 使用其标准接口
场地安装了多相机捕捉系统的房间一台壁挂相机 每只机械臂标定一次
公开结果13.4 m/s 以内可稳定接取 92.59% 81 次中 75 次 低位下手抛 11 次接住 7 次

门槛低

每台设备都是标准产品 物体上不贴任何标记 没有捕捉系统 整套方案就能复制到别的场地

可追溯

每次抛掷都按帧 按尝试 按指令记录 一次漏接可以追到识别 预测 手臂或闭手中的具体一环 并在那里修正

迭代快

第一次接住出现在第五轮试验 距第一轮约 1.5 小时 每一轮只改一处 开发全程借助自研 Agent 框架

五轮试验 接住第一个沙包
  1. 待命位移近基座 原待命位使接球区大片区域没有逆运动学解 对一次偏离 18 cm 的抛掷 沙包到达时手臂只完成了约 70% 的位移 关节 4 达到限速
  2. 提高加速度上限 关节 5 达到 150°/s 控制器未报错
  3. 三维截球点 手掌可上下移动至多 0.10 m 迎球 闭手提前量为 0.25 s 时 手提前约 150 ms 合上 沙包被弹开
  4. 闭手提前量 0.10 s 沙包接近掌心时 在到达前 0.37 s 失去跟踪 预测是对的 沙包也落入了掌心 但 没有预测就不闭合 的规则让手保持张开
  5. 失去跟踪后按最后一次预测闭合 第一次接住

半秒内的手眼协同

接球考验的是机器人的小脑 在约半秒内看见 预测 出手 合拢 没有时间留给慢速推理 感知 手臂和手指各有自己的时钟 只通过最新的预测协同

  1. D455 相机

    424 × 240 RGB
    480 × 270 depth
    60 fps
  2. 找到沙包

    红色区域与稳健深度
    连续 3 帧确认
  3. 预测飞行

    8 帧抛物线拟合
    实测等效加速度
  4. 选择截球点

    距待命位 ≤ 0.30 m
    剩余时间 ≥ 0.15 s
每帧更新预测 并行控制

xArm7 移动手臂

IK + Ruckig / 200 Hz
逐指令核对关节限位 掌心姿态与 0.30 m 工作区 越界停臂

Wuji 合拢手指

到达前 0.10 s 合拢
迟到 > 20 ms 取消
首次预测至到达
410 ms
提前闭手
100 ms
出手至首次预测
70–100 ms
闭手迟到上限
20 ms
相机一帧
16.7 ms
机械臂控制周期
5 ms
重定向求解
2.2–2.8 ms
到达时刻误差中位数
1 ms

边飞边算 边动边改 按时合拢

第一次接住 取自运行日志 手臂在到达前 0.41 s 的第一次预测时出动 首个截球点偏离最终预测 12.8 cm 随后跟随 11 次修正 到达前 0.30 s 起 每个新点都在最终点 1.5 cm 以内

基座坐标系中的沙包高度 m

0.40−0.4−0.8
−0.7 s−0.3 s0+0.1 s
−0.41 s
首次预测与手臂出动
−0.10 s
手指合拢
0 s
到达并握住沙包

截球点相对最终预测的偏移 cm

12.80
−0.7 s−0.3 s0+0.1 s

边飞边算

用最近 8 帧拟合抛物线 加速度用实测等效值代替理想重力 出手后 0.07-0.10 s 给出第一次预测 此后每帧更新

边动边改

剩余时间不少于 0.15 s 即出动 每个新预测在 2.2-2.8 ms 内解出关节目标 由 Ruckig 从当前速度和加速度续接 不急停 不跳变

手眼协同

手指在预测到达前 0.10 s 合拢 让沙包先落进掌心 错过时刻超过 20 ms 就不再合拢 以免把沙包挡出去 沙包被手挡住时 按最后一次预测闭合

一套算法 两种本体

左右两套机械臂和灵巧手 手的型号 连接方式 安装和待命位都不一样 预测 调度和时序算法完全相同 换本体只换配置 右臂接入后 第一次抛向它的沙包就被接住了

左臂 右臂
灵巧手Wuji1 20 关节Wuji Hand 2 20 关节
手的连接USB网络
腕部无相机D405 相机
待命位操作员摆位MuJoCo 姿态搜索选出 到达真实落点最快的姿态
掌心参考点刚性安装的 30 mm 立方体中心手握沙包的中心
首批结果11 次接住 7 次第一次抛掷即接住

接入新本体需要的是标定和配置 而不是新算法 相机外参 待命位 掌心参考点 手形 负载和抛掷的等效加速度 都写在同一个配置文件里 两只手臂也可以同时待命 一台相机跟踪抛掷 每次抛掷交给落点所在一侧的手臂 两臂之间的距离由 MuJoCo 间隙表保证 视频见 结果

五个工程难题

下面五个问题都在现场测试中出现过 每个都由独立模块解决

难题 解决方式 依据
消费级相机深度噪声大深度从目标区域内多个像素取值 保留离散度最小的近端子集 连续 3 帧运动一致才确认目标 单帧误检不会让手臂出动 在录制数据上 挥臂 走动 搬运和静置的沙包均未产生候选 0 次
留给机械臂的时间极短截球点只在距待命位 ≤ 0.30 m 剩余时间 ≥ 0.15 s 的可达点中搜索 取下降段上离接球点最近的点 最低比接球高度低 0.10 m 手掌可上下迎球 当前限速下 距待命位约 10 cm 内的落点可及时到达
机械臂构型突变阻尼最小二乘逆运动学 以当前关节为初值 在上一目标附近连续求解 控制器自带的求解器可能跳到另一组构型 关节变化 100-190° 重定向求解 2.2-2.8 ms 200 Hz 循环抖动 0.02 ms
手指合得过早或过晚手指按预测到达时刻独立调度 设 20 ms 迟到上限 提前量 0.25 s 时手提前约 150 ms 合上 把沙包弹开 现用 0.10 s
运行安全每条指令发送前用正运动学检查关节范围 掌心姿态和 0.30 m 掌心工作区 越界立即停止 关节限速只在记录的实测后提高 更高的设定曾导致关节 4 跟随误差报警

11 次接住 7 次 全程无人干预

每次抛掷独立完成整个流程 识别 → 预测 → 移臂 → 闭手 → 保持约 10 s → 松手 → 自动回位

指标 数值 来源
接住次数7 of 11 ≈ 64% 11 次真机试验 左臂
及时给出截球点18 / 1818 次录制抛掷上的离线评估 到达前至少 0.2 s 给出截球点
到达前 0.15-0.30 s 水平误差中位数 2.1 cm到达前 0.15-0.30 s 内的 81 次预测 以每次飞行实测的最近点为参考
到达时间误差中位数 +1 ms同一离线评估
右臂首次接住换到 xArm7 + Wuji Hand 2 后 第一次抛掷即接住并保持

测试设置 直径约 6 cm 的红色沙包 低位下手抛 机械臂固定底座 接取范围为待命位周围 0.30 m

更多视频

未来 3-6 个月

0-3 个月 接得更稳

  • 减少漏接 接后掉落和动作不及时 成功率提升至 80% 及以上 测试规模扩大到 500 次以上
  • 补齐接住自动判定 实现成功率自动统计
  • 测量并补偿相机曝光延迟 进一步提高预测精度

3-6 个月 泛化与场景验证

  • 泛化测试 不同投掷者 适度光照变化 更大接球范围
  • 选 1-2 个场景搭建原型 把视觉定位 运动预测和抓取时机控制迁移到实际任务中

从接球到产线

接球练出来的视觉定位 运动预测和抓取时机 可以用到任何物体在运动中的任务上

场景 价值 可复用能力 需新增能力
包装工位软物接料减少落料散乱 翻滚到达时间预测 闭手时机放置动作
传送带小件整理动态分拣 无需停线运动跟踪与位置预测传送带运动估计 抓取姿态
展会赠品递送从 会接球 到完成服务任务视觉定位 稳定抓持桌面识别 递送流程
装配工位人机交接人机协作 提升工位效率实时跟踪 抓握控制交接意图识别 拿稳确认

引用

@misc{zhang2026catching,
  title  = {Catching in Flight with a Consumer Camera},
  author = {Zhang, Zaide},
  year   = {2026}
}