讨论

六轴跟视觉标定,TCP那块到底用9点还是12点?

日进斗金
日进斗金
2026/04/19 13:55

刚做机器人应用不久,现在项目里要把海康的2D相机装到一台KUKA KR16上,做抓取定位。手里的流程是先相机拍照算出工件XY,再用标定关系转到机器人基坐标系下,最后让机器人去抓。

现在卡在标定这一步,看了好多资料,有的说用9点就够了,有的非让做12点(中间还得加一个原点),还说要做手眼矩阵。到底哪种合适?工件大概巴掌大,精度要求±0.5mm,相机装在机器人法兰上那种eye-in-hand方式。另外求解的时候是直接用最小二乘拟合就行还是要加LM优化?有没有大佬能给条靠谱的路子,少走点弯路。

10 4

全部回复 (4)

sun_jie
sun_jie#1

±0.5mm精度要求的话9点完全够,9点法本质就是用一个仿射变换把像素坐标映射到机器人XY,残差一般能压到0.1mm以内。我这边ABB配合Keyence相机,9点跑了半年没出过问题。

具体做法:让机器人带尖针走9个点(3x3网格就行,间距50mm左右),每个点用相机采一次像素坐标,然后直接solve仿射变换矩阵的6个参数(a,b,c,d,e,f),公式网上一搜一大把。误差算出来大于0.3mm就把网格扩大或者点加密到16个,但通常用不到。

12点那个是历史遗留,老一套相机畸变大的时候搞出来的,现在镜头标定一般在相机端就做掉了,没必要传到机器人这边。LM优化属于杀鸡用牛刀,先跑通最小二乘,精度不达标再考虑别的。

2026/04/20 02:59
5066052159
5066052159#2

手眼矩阵跟9点标定是两回事,楼主可能混一起了。手眼矩阵求的是相机跟法兰的相对位姿(AX=XB那个方程),需要机器人至少动3个不同姿态拍同一个标定板才能解出来。你要是eye-in-hand只用一个姿态抓取,9点标定出来直接用就行,手眼那步可以跳过,别自己绕进去。

2026/04/20 13:55
19880815
19880815#3

实际项目里最坑的不是点数,是机器人的绝对定位精度。KUKA KR16在1m半径内重复精度大概±0.05mm,但绝对精度能飘到1-2mm,9点拟合出来的残差看着漂亮,实际上机器人换个姿态就抓偏。建议标定完之后多换几个姿态验一遍,别光在拟合用的那一片区域测。

2026/04/20 14:53
laohaitao
laohaitao#4

工件高度方向不考虑吗?2D相机只能给XY,你工件厚度有变化的话Z方向得另外处理,不然压爪或者抓空是常事。

2026/04/21 04:01