谁产生这条边?
robot FK、camera calibration、PnP、SLAM、TCP file 还是人工配置。
01 · Frame Contract
沿用坐标系专题的列向量约定:上标是输出 frame,下标是输入 frame。相邻 frame 名能消去时才允许相乘。
robot FK、camera calibration、PnP、SLAM、TCP file 还是人工配置。
parent/child、active/passive、row/column convention 必须写清。
m/mm、rad/deg、clock domain、valid interval、source version。
数值范围、loop closure、留出姿态和真实接触结果。
| 符号 | 物理含义 | 系统边界 | 时间属性 | 主要来源 |
|---|---|---|---|---|
| B · base | 机器人基座 | 控制器正运动学的参考系;不一定等于工位 world / map | 通常静态 | 机器人控制器 / cell calibration |
| E · flange | 法兰 / 末端链节 | 机器人厂商定义的最后一个机械接口,不等于工具尖端 | 随关节运动 | forward kinematics |
| U · tool / TCP | 工具中心点 | 抓取、焊接、探针或吸盘真正执行任务的点/轴 | 刚性随 E | TCP / tool calibration |
| C · camera optical | 相机光学坐标系 | 6D estimator 常输出 ᶜTₒ;RGB、depth 可各有一个 C | 随安装拓扑 | intrinsic + extrinsic |
| T · calibration target | 标定板 / fiducial | 提供已知几何观测;可能固定在 base,也可能装在 flange | 由采集方案决定 | target detector / PnP |
| O · object | 目标物体系 | 模型点、对称性与 grasp relation 的基准;在线视觉输出所在端点 | 场景相关 | pose estimator |
| G · grasp | 候选抓取坐标系 | 由 O 通过 object-to-grasp 变换派生,可有多个等价候选 | 随 O | grasp generator |
| W / M | 工位 world / map | 多机器人、多相机、SLAM 或测量系统的共同参考 | 可静态或漂移 | survey / SLAM / robot-world calibration |
02 · Eye-in-Hand, Eye-to-Hand & Hybrid
相机固定在哪个刚体、target 固定在哪个刚体,决定哪些 transform 应当跨样本保持常量。相同 API 名称不能替代物理建模。
Eye-in-hand
Eye-to-hand
Multi-camera / hybrid
camera 边随 robot FK 父节点运动;动态链需要同一物理时刻。
camera 是 base 的静态子节点;robot E 是标定 target 或执行链的另一分支。
TCP 独立于 camera/object 链;视觉正确不保证 tool frame 正确。
03 · Derive AX=XB
以下使用 eye-in-hand:Gᵢ = ᴮTₑᵢ、X = ᴱT꜀、Oᵢ = ᶜTₜᵢ,且 target T 固定在 base。
X = ᴮT꜀ 与 Y = ᴱTₜ 都未知。这是 simultaneous robot-world / hand–eye family;不能假装只剩一个 X。
论文常写 AX=YB、AX=ZB 或其他排列。符号字母不是语义;必须列出每个量连接的 frame 并固定 gauge。
每个独立 loop 都提供 closure;共享边产生相关误差,不能默认 covariance 独立相加。
Interactive Lab
三个实验分别回答:链路怎么算、什么时候能唯一求 X、哪一项误差最先耗尽任务容差。所有 preset 都能继续拖动参数。
Interactive · Transform Graph, AX=XB & Deployment Budget
Active path
Object in base
TCP in base
Round trip
Contract audit
Excitation
Estimated X
Held-out X error
AX=XB residual
Calibration gate
Static extrinsic
Temporal
Task-point budget
Dominant source
Deployment gate
04 · Solvers & Observability
Tsai、Park、Horaud、Daniilidis 或 nonlinear refinement 都不能从纯平移、共同旋转轴、错误方向或弯曲 target 中创造信息。
| 方法族 | 核心思路 | 适用点 | 工程警告 |
|---|---|---|---|
| Tsai–Lenz · separable | 先旋转、后平移;经典线性构造 | 实现简单、速度快、适合良好激励和低噪声初值 | 旋转噪声会传给平移;必须核对论文与 API 的 A/B、gripper↔base、target↔camera 方向 |
| Park–Martin · Lie group | 在 SO(3) / SE(3) 上构造精确与最小二乘 AX=XB | 几何解释清晰、旋转可用 Lie algebra 处理 | log branch、角度接近 π、加权和单位尺度需明确 |
| Horaud–Dornaika · quaternion / nonlinear | 比较线性、quaternion 与同时优化旋转平移 | 可作为经典 solver family 与 nonlinear refinement 入口 | quaternion 符号、左/右乘约定和 rotation/translation 权重易错 |
| Daniilidis · dual quaternion | 用 dual quaternion 同时表示旋转和平移并经 SVD 求解 | 同时求解,避免完全分离两部分 | 仍不能修复退化运动、错误观测或 robot kinematics bias |
| Andreff et al. · online / SfM | Kronecker / linear结构并可扩展到无已知 target motion | 适合 online 与更一般观测关系 | 参数尺度、噪声模型、结构恢复 gauge 需要额外约束 |
| Nonlinear joint refinement | 直接最小化 target reprojection、3D residual、kinematic / time model 与 robust loss | 能加入 distortion、rolling shutter、time offset、covariance 和 outlier | 初值、gauge、相关参数 trade-off;train residual 下降不代表 held-out accuracy |
至少包含两个不平行的相对旋转轴;最好覆盖多个空间方向
只绕同一轴旋转时,共轴方向的部分平移/旋转约束不可观或病态在安全、target 可见和 PnP 稳定范围内使用足够大的正负转角
大量 1° 小动作不如少量清晰的大角度;角点/PnP 噪声会淹没差分改变 camera–target 距离、横向位置、腕部姿态和 lever arm
只在小局部标定会把 robot kinematic bias 与外参混合,并在远端外推失败标定板占据足够像素、倾角多样、不过曝、不强反光、角点分布完整
正视平面、远小靶标、模糊或弯曲纸板使 camera/PnP 与 hand–eye 共同偏停止后等待机械振动与自动曝光稳定;记录 exposure 中心时间和 robot pose
边运动边把 arrival time 当 exposure time,会把时间偏差拟合进空间外参在代表速度、负载、线缆姿态下做正反向路径与重复采样
回程间隙、重力挠曲、温漂和线缆力不是一个固定 X 能解释按 robot poses / workspace / session 留出,不从同一停点复制帧做验证
相邻帧泄漏会让 closure 和 reprojection 显得异常稳定05 · Calibration Stack
把参数分块,给每一块独立观测、验证和版本。联合优化可以提高一致性,但不能省略 gauge、先验和 held-out 验收。
| 参数块 | 包含什么 | 估计策略 | 独立验证 |
|---|---|---|---|
| Camera intrinsic | K、distortion、resolution、focus / zoom / temperature | 平面标定多倾角 + nonlinear reprojection;保存图像尺寸与模型 | 重投影、边缘区域、留出视图、板平整度 |
| Target geometry / detector | 点坐标、tag size、板翘曲、角点亚像素和 PnP | 测量实体 target;冻结 detector / dictionary / corner convention | 逐点 residual、正反面 / ID、不同距离姿态 |
| Hand–eye | ᴱT꜀ 或等价固定刚体边 | AX=XB / joint refinement;运动激励先于 solver 选择 | held-out static-target closure、不同 solver agreement |
| Robot-world / base-camera | ᴮT꜀ 与可能的 ᵂTᴮ、ᴱTₜ | 同时求 AX=ZB / X Oᵢ = GᵢY,显式固定 gauge | 跨机器人/相机 loop closure、独立测量点 |
| TCP / target mount | ᴱTᵤ、ᴱTₜ 的 tip translation 与工具方向 | pivot 求 tip;多平面/姿态或已知轴求 orientation | touch fixture、不同 approach direction / payload |
| Robot kinematics | joint zero、link geometry、encoder、compliance、backlash | factory / metrology calibration;不能全塞进 hand–eye X | pose accuracy vs repeatability、workspace map、ISO-style path tests |
| RGB–depth / multi-camera | Cᵣ↔C_d、C₁↔C₂、depth scale / bias | 同步多视图 target / 3D plane;联合或全局 graph refinement | 彩深边缘、3D plane residual、跨相机 closure |
| Temporal calibration | clock offset/skew、latency、jitter、rolling shutter readout | 硬触发/PTP;否则联合 time–extrinsic estimation并使用可激励运动 | 不同速度/方向的 held-out dynamic residual |
让工具尖端固定在 base 中同一点并改变 flange orientation。每个姿态满足:
joint zero、link length、encoder、backlash、compliance 和 thermal drift 会让 ᴮTₑ 的误差随 q / load / direction 变化。若 residual 在 workspace 呈结构化场,应处理机器人运动学或补偿模型,而非继续给 hand–eye 增加自由度。
static edge: ᴱT꜀, ᴱTᵤ, ᴮT꜀ configuration: ᴮTₑ(q; θ_kin) dynamic nuisance: flex(q, load, T), backlash(direction) temporal state: q(t), exposure(t), latency / jitter
06 · Temporal Calibration & Error Propagation
camera message 到达时间、exposure 开始/中心/结束时间、机器人控制器 sample time 和主机 clock 可能不同。静止时看不见的 Δt,会在运动时变成毫米和角度。
global shutter 可用中心时间;rolling shutter 还需逐行 readout。
可能来自 camera clock,需 offset/skew 映射到共同 clock。
含传输、driver、队列和调度 jitter,不能直接当采样时刻。
在 exposure time 插值关节/SE(3),记录插值方法和 extrapolation gate。
| 误差源 | 典型表象 | 隔离实验 | 修复方向 |
|---|---|---|---|
| Hand–eye rotation | 远处目标呈位置偏差,且随 lever arm 增大;方向性强 | δp ≈ [p]×δθ,按距离/工作空间画 vector field | 重采多轴运动;检查 mount 刚性和 target / PnP bias |
| Hand–eye translation | 全局近似常量 shift,但经父级旋转后方向改变 | 静态 target 在 base 中的均值偏移;跨姿态 closure | 重估固定边,避免把 TCP / base 偏差误归给 X |
| Clock offset / latency | 误差与速度同号,反向运动时符号翻转;静止时消失 | 按线/角速度回归 residual;改变速度与方向 | 硬同步、统一时钟、按 exposure 插值、估计 offset/skew |
| Rolling shutter | 同一帧上端/下端 residual 相反或随读出方向变化 | 逐行 residual vs row/time;高速转动序列 | 建模 readout time、降低运动或换 global shutter |
| TCP / target mounting | 触点或抓取始终偏,视觉 overlay 可能完全正确 | pivot / touch test;更换 approach direction | 标定 ᴱTᵤ / ᴱTₜ,不改相机外参 |
| Robot accuracy / flex | 同一命令可重复但绝对位置偏;负载/姿态/温度相关 | 独立 tracker、正反向与负载切片、workspace error map | kinematic / compliance calibration 或闭环 compensation |
| Intrinsic / distortion | 图像中心较好、边缘系统偏;pose 随板在画面位置变化 | 留出视图 per-point reprojection 与 radial plot | 固定 focus/resolution,重标 K/distortion,更新 crop/resize K |
| Target / PnP bias | 不同 target orientation 或 tag ID 产生一致 pose 偏差 | 切换板、点集、PnP method;检查实体尺寸/平整度 | 刚性精密 target、联合 refinement、稳健角点和 uncertainty |
| Base/world mismatch | 每台相机内部自洽,跨设备 / 工位坐标不闭合 | frame graph loop residual 与已知测量点 | 只保留一个权威静态边;标定 ᵂTᴮ 并版本化 |
| External drift | 上线后缓慢劣化或偶发跳变 | 固定 fiducial heartbeat、closure CUSUM、温度/碰撞日志 | 重新标定 gate、机械定位销、在线状态与安全降级 |
07 · Validation Ladder
同一传感器、同一标定板和同一轨迹产生的验证可能共享系统偏差。越靠后的验证,越能打破这种同源自洽。
训练运动上 AX=XB / reprojection 是否拟合
必要但不充分;退化数据也能低 residual每个 held-out pose 计算 Zᵢ = Gᵢ X Oᵢ,检查 SE(3) dispersion
直接验证整条 eye-in-hand 静态链Tsai/Park/Daniilidis/nonlinear 与 bootstrap subsets 的 X 是否稳定
发现病态、outlier 与实现约定问题用 TCP 触碰已知点、激光跟踪仪或外部测量系统
避免同一 camera/target 同源误差自洽同一路径不同速度与相反方向比较 residual
分离空间外参、时间偏差、backlash 与 flex在部署体积、负载、线缆与热稳态上切片
确认固定 X 的适用域和最坏区域开放环 vs visual servo、nominal vs perturbed、真实 grasp/insertion trials
把毫米/度误差映射到任务成功与安全固定 target / loop closure、timestamp health、mount shock 与 uncertainty
发现上线漂移并触发 abstain / recalibrate建议保存的 held-out calibration report
calibration_id / solver / source_commit / frame_convention camera serial + K/distortion/resolution/focus + target asset hash robot serial + controller/kinematic version + tool/load + temperature motion excitation: axis spread / relative-angle distribution / workspace hull train: reprojection + AX=XB residual + outlier list held-out: target closure translation_xyz / rotation vector / P50/P90/max dynamic: clock model / speed bins / direction bins / rolling-shutter config independent: touch/tracker/task trials + failures + safety margin valid_from / valid_until / mount event / online heartbeat threshold
08 · Open Loop, Visual Servo & Closed-Loop Operation
开放环依赖一次性 ᴮTₒ;视觉伺服把视觉误差放进控制回路。两者都必须处理可见性、延迟、控制频率、速度限制、uncertainty 和安全 interlock。
轨迹直观、可结合 3D target;依赖 pose 与 hand–eye / robot model
姿态跳模、标定偏差、深度/尺度和大初始误差会造成错误笛卡尔运动对部分标定偏差较鲁棒、目标更易保持在视野
深度估计、局部稳定域、退化特征与 camera retreat 等问题仍存在在视野保持与笛卡尔轨迹间折中
控制律、坐标 convention 与切换条件需统一能修正部分静态 bias 与目标运动
不能自动修复时间错位、错误 frame、遮挡失效或不安全动作;必须有速度/置信度 gate检查 target visibility、sensor health、pose mode 与 confidence contract。
插值 q(t),传播 pose / calibration uncertainty 到 task frame。
超出 calibration domain、误差预算或视野时 acquire / slow / abstain。
执行小步动作,监控 residual 下降、latency 和接触状态。
09 · Failure Taxonomy & Release Gate
不要把所有末端偏差都归因于 6D pose。用静止/运动、正向/反向、近/远、中心/边缘、轻载/重载这些对照快速定位误差源。
做速度和方向 sweep;若 residual 与 v、ω 同号,空间重标通常治标不治本。
把 position residual 除以距离,并按图像 radius 切片。
用独立 touch fixture 与不同 approach direction,不要改 camera extrinsic。
画 workspace vector field,检查标定 hull 外推和负载姿态依赖。
列出唯一权威边,移除重复 static transform publisher。
对 calibration file、K、tool、controller、mount event 做 hash 与启动断言。
Release gate · 允许机器人使用视觉 pose 之前