当前位置: 首页 > news >正文

机械臂和相机的9点标定原理

9点标定到底怎么工作的?

这个问题困惑了我很久,虽然想海康VisionMaster 和Halcon 这种软件都提供了很好用的工件,但是最好懂原理,这样才不仅能做项目,还能做好项目。

最近好好研究了一下,感觉是搞清楚了,就记录一下。

1. 到底是仿射变换还是投影变换?

HALCON的9点标定实现是用 vector_to_hom_mat2d 求变换矩阵, 然后用 affine_trans_point_2d 反求出物理坐标,从名字猜是用的affine 仿射变换,也就是两个虽然图像会改变形状但是会保持边的平直性。但是想了一下,如果成像平面和工件平面不平行,比如由于安装问题,可以倾斜了15度,这个时候显然就应该用仿射变换来求才合理,也就是求单应性变换。

2. 如果成像平面和工件平面不平行可以吗?

上面已经解释了,是可以的,单应性变换就是投影变换,本来就考虑了倾斜的。

3. 如果工件平面不是水平的还可以吗?

结论:可以的。

假设你的相机拍到一个螺丝在画面中的像素坐标是

(u,v)=(512,360)

而通过 vector_to_hom_mat2d 标定出的矩阵 H,你可以把它映射到机器人坐标系的平面坐标:(这里要特别注意: 一组X,Y 可以对应于多个物理平面,那机械臂到底去那个平面抓取呢,也就是Z是多少?具体看下面Z_plane)

(X,Y)=H(u,v)

这样机械臂就知道:

“我要去这个平面上的 X, Y 点抓取”。

而对于机器人来说,这个平面(哪怕是倾斜的)在标定时已经被定义好了,比如:

Z=Z0

或者

Z=aX+bY+c

但在系统中,它只被看作一个“固定工作平面” Z_plane. 实际抓取时,完全可以通过Z平面公式算出来Z.

 

 Z_plane 是什么时候被“定义”的

它是在 你采集标定点时 定义的。
举个例子:

  1. 你放置一个平整的标定板或工件;

  2. 让机械臂在上面不同位置抓 9 个点;

  3. 对应地记录:

    • 每个点的图像坐标 (Row, Col)

    • 每个点的机械臂末端坐标 (X, Y)(Z固定)

那么,这 9 个点实际上都在同一个物理平面上。
HALCON 会自动认为:

这 9 个点所在的平面就是你系统的工作平面(Z_plane)。

所以:

    • 你在标定时选的那块平面,

    • 你当时采集的那 9 个点,

    • 就是 Z_plane 的定义过程。

4. 9点标定有没有前提?

通过上面的分析,9点标定的前提也就清楚了。

1. 工件平面Z_Plane最好是水平的,这样Z=Z0, 在抓取是就不用再继续Z了,直接写死就行了; 而如果斜面的话,每次就要算Z了。

2. 相机平面最好和工件平面平行。

 

后面再研究一下12点标定。

 

http://www.hskmm.com/?act=detail&tid=39030

相关文章:

  • 遗传改良中的核心技术:交配设计
  • 《程序员修炼之道:从小工到专家》笔记1
  • 语言是火,视觉是光:论两种智能信号的宿命与人机交互的未来 - 教程
  • 书籍推荐 | 《数量遗传学》(王建康)
  • Plant Com | 一种新的多源数据(基因组、表型和跨环境)融合的基因组预测框架-GPS
  • 科普报告:分子标记辅助选择(MAS)育种
  • 作物遗传育种中的多亲本互交群体(MAGIC)
  • 联邦大型语言模型、多智能体大型语言模型是什么? - 详解
  • 一个用于自动化基因表达分析的多智能体框架GenoMAS
  • AI巨头动态:从OpenAI收购到Meta裁员,我们看到了什么?
  • 小麦锈病抗性全景图及其在育种设计中的应用
  • CF1896F
  • Nature Methods | 大语言模型基因集分析工具GeneAgent
  • 50年的玉米育种改良,是如何应对气候变化的?
  • 刷题日记—洛谷数组题单—幻方
  • 基因组选择(GS)如何加速作物遗传增益?
  • Nature Plants | 植物转录因子结合图谱,360个转录因子的近3000个全基因组结合位点图谱
  • 深入解析:3. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--从业务到方案:消费类目智能匹配的整体设计
  • xyd 2025 S 模拟赛
  • 标题:AI巨头动态:从OpenAI的野心到Meta的裁员潮
  • Plant Com | 将基因编辑与组学、人工智能和先进农业技术相结合以提高作物产量
  • 作品目录
  • 推荐书籍 | 基因组遗传大数据分析方法
  • Python 潮流周刊#74:创下吉尼斯世界记录的 Python 编程课
  • 10.26保养
  • CCPC2024济南个人题解
  • 数据采集作业1
  • Python 潮流周刊#124:理性看待 GIL 的移除
  • OpenAI推出内置ChatGPT的Atlas浏览器:重新定义网页浏览体验
  • 数据清洗