复现 RoboDK 机械臂几何校准(Staubli TX2‑90L / TX200)
以 Ceres Solver 为核心的几何标定实现,复现了 RoboDK 的机器人校准能力:在相同训练集上理论结果与 RoboDK 一致,在独立测试集的实测精度接近 Staubli 原厂。
参考:RoboDK 机器人校准功能(https://robodk.com.cn/cn/robot-calibration)
特性
- 支持 SDH 参数子集选择(每关节
α/a/θ/d
可独立选择)。 - Base→World 与 Tool→Flange 外参与 DH 参数 联合估计。
- 残差为 TCP 三维位置(mm),输出统计与直方图对比。
- 提供共垂线求解与可视化脚本,便于复核过程。
术语说明
-
训练集(Training set):用于本算法与 RoboDK 共同辨识几何参数,包含 优化后 DH 参数、基座到世界坐标系位姿
T_base^world
与 TCP 到法兰位姿T_tcp^flange
。由 3 个步骤的数据组成:- 基座坐标系构建:26 组关节序列;
- TCP 构建:27 组关节序列;
- DH 校准与坐标系优化:≥60 组关节序列。
-
测试集(Test set):在将辨识结果写入控制器后,用 ≥40 组 笛卡尔 TCP 位姿 验证机械臂的绝对定位精度。
-
执行方式:训练集与测试集均被转换为 Staubli VAL3 离线程序以驱动机器人(本工程不提供相应 VAL3 程序)。
-
理论数值计算:以预设关节值经正向运动学求得
T_flange^base
,再经坐标变换得到T_tcp^world
,与测量值作差得到位置残差。
给定关节角 J\mathbf{J}J 与前向运动学公式:
校准前(缺省 SDH)
Ttcpworld=Tbaseworld⋅Tflangebase(J)(默认 SDH)⋅Ttcpflange\;\mathbf T_{\text{tcp}}^{\text{world}}\;=\;\mathbf T_{\text{base}}^{\text{world}}\;\cdot\;\underset{\text{(默认 SDH)}}{\mathbf T_{\text{flange}}^{\text{base}}(\mathbf J)}\;\cdot\;\mathbf T_{\text{tcp}}^{\text{flange}}\;Ttcpworld=Tbaseworld⋅(默认 SDH)Tflangebase(J)⋅Ttcpflange
校准后(优化 SDH)
Ttcpworld′=Tbaseworld′⋅Tflangebase′(J)(优化 SDH)⋅Ttcpflange′\;{\mathbf T_{\text{tcp}}^{\text{world}}}'\;=\;{\mathbf T_{\text{base}}^{\text{world}}}'\;\cdot\;\underset{\text{(优化 SDH)}}{{\mathbf T_{\text{flange}}^{\text{base}}}'(\mathbf J)}\;\cdot\;{\mathbf T_{\text{tcp}}^{\text{flange}}}'\;Ttcpworld′=Tbaseworld′⋅(优化 SDH)Tflangebase′(J)⋅Ttcpflange′
校准效果
实验对象:TX2-90L 机械臂
机械臂简介与原厂精度

数据来源:robodk.com/robot/Staubli/TX2-90L
Staubli 原厂绝对定位精度:全工作空间 mean 0.07 mm、90%max 0.11 mm;在 508×508×508 mm 立方体子域内 mean 0.05 mm、90%max 0.08 mm。
数据来源:代码的工作路径/doc/TX2-90L/AbsoluteCalibrationQualityReport_TX2-90L.pdf
校准对比与结论
绝对定位精度图示(单位:mm)


绝对定位精度数据(单位:mm)
相同颜色为对比项。
算法 | 数据集 | 校准状态 | mean | max | 90%max | σ | 6σ | num of points |
---|---|---|---|---|---|---|---|---|
本算法 | 训练集 | 校准前(理论数值) | 0.466283 | 0.874976 | 0.647841 | 0.152851 | 0.917108 | 60 |
训练集 | 校准后(理论数值) | 0.039163 | 0.098429 | 0.062382 | 0.017692 | 0.106153 | 60 | |
测试集 | 校准后(实际测量) | 0.0509466 | 0.1020001 | 0.0838984 | — | — | 40 | |
RoboDK | 训练集 | 校准前(理论数值) | 0.466 | 0.875 | — | 0.154 | 0.929 | 60 |
训练集 | 校准后(理论数值) | 0.039 | 0.098 | — | 0.018 | 0.093 | 60 |
原始数据与报表见
代码的工作路径/RobotCalib/doc/TX2-90L/
与代码的工作路径/RobotCalib/results/TX2-90L/
。
要点:
- 与 RoboDK 在同一训练集上的理论结果一致量级。
- 写入控制器后的实测精度位于 Staubli 原厂报告立方体子域水平附近。
- 测试集位姿分布与训练集不同,误差略有上浮,符合预期。
实验对象:TX200 机械臂
机械臂简介与原厂精度

数据来源:robodk.com/robot/Staubli/TX200
Staubli 原厂绝对定位精度:全工作空间 mean 0.17 mm、90%max 0.26 mm;在 847×847×847 mm 立方体子域内 mean 0.13 mm、90%max 0.18 mm。
数据来源:代码的工作路径/doc/TX200/AbsoluteCalibrationQualityReport_TX200.pdf
校准对比与结论
绝对定位精度图示(单位:mm)


绝对定位精度数据(单位:mm)
相同颜色为对比项。
算法 | 数据集 | 校准状态 | mean | max | 90%max | σ | 6σ | num of points |
---|---|---|---|---|---|---|---|---|
本算法 | 训练集 | 校准前(理论数值) | 1.285361 | 2.141703 | 1.673369 | 0.306290 | 1.837739 | 107 |
训练集 | 校准后(理论数值) | 0.142412 | 0.487590 | 0.213881 | 0.071394 | 0.428367 | 107 | |
测试集 | 校准后(实际测量) | 0.143818 | 0.501294 | 0.246057 | — | — | 44 | |
RoboDK | 训练集 | 校准前(理论数值) | 1.269 | 2.128 | — | 0.309 | 2.196 | 107 |
训练集 | 校准后(理论数值) | 0.142 | 0.488 | — | 0.072 | 0.358 | 107 |
原始数据与报表见
代码的工作路径/RobotCalib/doc/TX200/
与代码的工作路径/RobotCalib/results/TX200/
。
要点:
- 与 RoboDK 在同一训练集上的理论结果一致量级。
- 实测精度位于原厂全域与立方体子域之间;由于训练/测试子域范围较原厂报告更大,误差略有放大属预期。
- 测试集位姿分布更复杂,精度略低于训练集理论值。
总体结论
在 TX2-90L 与 TX200 两个样例上,本算法成功复现了 RoboDK 的校准能力;写入控制器后的实测绝对精度接近 Staubli 原厂校准水平。
技术服务
机械臂绝对精度/外参校准实战落地:提供线下的校准服务与线上的全量资料包(原理说明+完整代码+实测数据+软件操作+一线经验)。线上可持续答疑。
商业合作与答疑可加V,

【机械臂绝对精度/外参校准|工程落地服务(Ceres Solv】