思路分析:
step0:△α可以由仰视、俯视相机九点标定结果中的theta差值求出(算子:hom_mat2d_to_affine_par)
step1:两相机图像角度差值△β=RC-(RA+△α)
step2:A点绕B点旋转△β,得到A'点
step3:根据B、A'两点加上C点坐标可以求出D坐标
Halcon代码实现
**********Step1:两相机图像角度差值△β=RC-(RA+△α)**************Theta:=15**********Step2:A点绕B点旋转△β,得到A'点**********************hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_rotate (HomMat2DIdentity, rad(15), 628.5789, 2470.4226, HomMat2DRotate)affine_trans_point_2d (HomMat2DRotate, 772.9710, 2564.8147, A1x, A1y)**********Step3:根据B、A'两点加上C点坐标可以求出D坐标***********vector_angle_to_rigid (A1x, A1y, 0, -413.0526, 2616.3019 ,0, HomMat2D1)affine_trans_point_2d (HomMat2D1, 628.5789, 2470.4226, Dx, Dy)*B:X = 628.5789 Y = 2470.4226*A:X = 772.9710 Y = 2564.8147 *A':X = 743.6204 Y = 2598.9698*C:X = -413.0526 Y = 2616.3019 *D:X = -528.0941 Y = 2487.7547

补充知识:
1、六轴机器人来做九点标定,第一步应该是建立与工作平面平行的平面,然后再这个平面移动做九点标定,至于这个机器人的这个新坐标系怎么建立就找搞机器人的就行;当然如果要求不高,忽略。
2、验证九点标定是否正确:计算九点标定后,图像中心的坐标经过矩阵转换得到物理坐标,运动到这个点,计算图像中的标定物体的像素坐标应该是图像中心的坐标,先看看这个是否正确,然后在验证旋转。3、验证旋转标定是否正确:
再次旋转1个或2个点,计算与旋转中心的距离是否与之前一致。
end
原创不易,欢迎点击再看转发
长按 扫一扫
关注我
工控码农Zero
