手眼标定眼在手上

1、为什么要用手眼标定

参考手眼标定特别是眼在手上在网上的文章很多,但很多在实际中调试不通。在定位时候,往往希望相机能返回的是机械的世界坐标,而不是相机的的图像坐标。从而间接计算出相机坐标系与机械坐标世界坐标转换矩阵,以镜头中心为参考点。

2、手眼标定的实现

 stp1:移动模组3*3 ,3行3列,分别模组走一个点(Bx,By),相机拍照获取一张图片Mark的坐标(Ax,Ay)的坐标。

*已知相机的9个点
Ax:=[825.505,1116.06,1405.89,830.793,1121.89,1412.44,836.321,1127.35,1417.95]
Ay:=[1413.87,1419.22,1423.91,1122.52,1128.24,1133.46,830.913,836.734,842.063]

*分别对应相机Mark点的模组获取的坐标
Bx:=[-152.7289,-153.7289,-154.7289,-152.7289,-153.7289,-154.7289,-152.7289,-153.7289,-154.7289]
By:=[-92.8409,-92.8409,-92.8409,-93.8409,-93.8409,-93.8409,-94.8409,-94.8409,-94.8409]

stp2:仿射变换求出仿射矩阵HomMat2D

vector_to_hom_mat2d ( Ax, Ay, Bx, By,HomMat2D)

stp3:求世界坐标

手眼标定,以相机中心

1、求出base,以图像dqx1, dqy1(0,0)为参考点

affine_trans_point_2d (HomMat2D, 0, 0, dqx1, dqy1)

2、求出图像Mark坐标(pixx:=1417.95,pixy:=842.063)到图像中心点坐标的世界坐标(标定时候的)中心点(1024,1224)

dpix:=1024-pixx
dpiy:=1224-pixy

affine_trans_point_2d (HomMat2D, dpix, dpiy, dqx, dqy)

3、求出偏差Offset   dqx2,dqy2   

dqx2:=dqx-dqx1
dqy2:=dqy-dqy1

4、模组获取反馈的运动控制的坐标realx,raaly,求出镜头中心实际坐标realx3,realy3

realx3:=realx+dqx2
realy3:=raaly+dqy2

read_image(Image, 'printer_chip/printer_chip_01')
*已知A坐标系的9个点
Ax:=[825.505,1116.06,1405.89,830.793,1121.89,1412.44,836.321,1127.35,1417.95]
Ay:=[1413.87,1419.22,1423.91,1122.52,1128.24,1133.46,830.913,836.734,842.063]
 
*待识别的B坐标点,和上面的A坐标系点一一对应
Bx:=[-152.7289,-153.7289,-154.7289,-152.7289,-153.7289,-154.7289,-152.7289,-153.7289,-154.7289]
By:=[-92.8409,-92.8409,-92.8409,-93.8409,-93.8409,-93.8409,-94.8409,-94.8409,-94.8409]
* for Index := 1 to 9 by 1
*     dev_display (Image)
    * 以下过程为在B坐标系找A中的9个点
*     draw_rectangle1 (200000, Row1, Column1, Row2, Column2)
*     gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*     reduce_domain (Image, Rectangle, ImageReduced)
*     binary_threshold (ImageReduced, Region, 'max_separability', 'light', UsedThreshold)
*     connection (Region, ConnectedRegions)
*     select_shape (ConnectedRegions, SelectedRegions, 'roundness', 'and', 0.7, 1)
*     select_shape (SelectedRegions, SelectedRegion2, 'rb', 'and', 32, 100)
*     fill_up (SelectedRegions, RegionFillUp)
    *找到了B坐标系的点(Row,Column)
*     area_center (RegionFillUp, Area, Row, Column)
*     Bx:=[Bx,Column]
*     By:=[By,Row]
* endfor
*得到目标变换矩阵HomMat2D
    
vector_to_hom_mat2d ( Ax, Ay, Bx, By,HomMat2D)
 vector_to_hom_mat2d ( Bx, By, Ax, Ay,HomMat2DINV)

********new realx raaly机械反馈的坐标
realx:=-154.7289
raaly:=-94.8409
pixx:=1417.95
pixy:=842.063
dpix:=1024-pixx
dpiy:=1224-pixy
affine_trans_point_2d (HomMat2D, dpix, dpiy, dqx, dqy)
affine_trans_point_2d (HomMat2D, 0, 0, dqx1, dqy1)

dqx2:=dqx-dqx1
dqy2:=dqy-dqy1

realx3:=realx+dqx2
realy3:=raaly+dqy2


















  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: VisionPro 眼在手上 9 点标定是一种视觉系统的校准方法。在使用 VisionPro 眼在手上视觉系统之前,需要进行一系列的标定操作来确保其准确性和精度。 首先,标定过程通常需要一个特定的校准板,该校准板上会有一些已知的几何标记和特征点。这些标记和特征点的位置和尺寸已经事先测量和记录下来。 在进行 VisionPro 眼在手上 9 点标定时,需要将校准板放置在视觉系统的视野范围内。然后系统会通过摄像头将校准板的图像输入到计算机中,进行后续的图像处理和分析。 在标定过程中,系统会自动选择一些特定的标记点,并对它们进行测量和分析。通过对这些标记点的识别和测量,视觉系统可以确定摄像头的内外参数,如焦距、畸变等。 通过对足够数量和位置分布合理的标记点进行测量和分析,系统可以计算出摄像头的准确位置和姿态信息,以及图像坐标与实际世界坐标之间的转换关系。 这样,当 VisionPro 眼在手上视觉系统进行实际应用时,它可以根据摄像头获取到的图像,准确地测量并识别出物体的位置、姿态以及其他相关信息,以满足相应的应用需求。 总之,VisionPro 眼在手上 9 点标定是一种通过测量和分析标记点信息来确定视觉系统参数的方法,使得系统可以准确地感知和理解物体的位置和属性。这种标定方法可以提高视觉系统的准确性和可靠性,进而实现更高效和精确的图像处理和分析功能。 ### 回答2: VisionPro眼是一种先进的视觉系统,用于检测和识别物体。标定是将摄像头、镜头和机器之间的关系进行校准,以便正确地捕捉和处理图像。在手上9点标定是一种常见的标定方法,用于确定相机和物体之间的空间关系。 首先,需要准备一块平坦的表面和9个定位点,这些定位点将被相机捕捉到。这些点可以是独特的特征点,如图案或标记。 然后,在VisionPro软件中创建一个标定项目,并选择适当的标定模式,以便进行9点标定。在标定向导中,需要按照指示将相机对准定位点,并点击每个点进行标定。在每个点上,系统将捕捉图像,并计算相机和物体之间的转换矩阵。 完成所有9个点的标定后,VisionPro软件将根据捕捉到的图像和标定点的位置确定相机的位置和角度。这个信息将用于后续的图像处理和检测任务。 通过手上9点标定,VisionPro眼可以获得高精度和可靠的图像数据,以便准确地分析和识别物体。这种标定方法具有简单易行、准确性高的特点,广泛应用于视觉系统中的各种应用领域,如自动化生产、质量控制和机器人技术等。 ### 回答3: VisionPro是一种先进的机器视觉软件,可以通过图像处理和分析来实现自动化任务。在进行眼在手的9点标定时,我们首先需要准备好标定板和相机。 首先,将标定板放置在一个固定的位置,确保标定板完全可见。然后,将相机安装在稳定的支架上,并调整相机的焦距和角度,以便完整地捕捉到标定板的图像。接下来,打开VisionPro软件并选择标定功能。 标定开始后,系统会自动识别标定板上的9个特征点,并对其进行记录和匹配。这些特征点包括标定板的四个角点和五个内部点。通过对这些点进行精确的计算和测量,VisionPro可以确定相机在物理空间中的位置和姿态。 随后,系统会显示出标定结果,包括相机的内部参数和外部参数。其中,内部参数包括相机的焦距、主点位置和畸变等信息,而外部参数则包括相机的平移向量和旋转矩阵。这些参数将在后续的视觉工作中用于计算物体的位置和姿态。 总结起来,VisionPro眼在手的9点标定通过对标定板上的特征点进行准确的测量和计算,得出了相机的内部和外部参数。这些参数可以帮助我们在后续的机器视觉应用中实现准确的物体定位和姿态识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xutingjie168

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值