针对相机在下面,测量物体在上面的旋转平移定位方法

接触有一项目,相机在下面,被定位物体在上面,对产品要进行旋转和平移校正,机械手吸取产品时的位置不定,属于盲吸,这时机械手的吸盘和被定位物体的中心不一定在同一个位置,此时要对产品进行旋转和平移校正。取产品的一个角点进行定位。

要注意此时,机械手的吸盘中心在相机拍照位的位置是固定的,也即被定位物体在相机视野里的旋转中心是确定的,即吸盘的位置,也就是要先要标定出吸盘的坐标(相机坐标系或机器人坐标系),然后在图像里即可知道其旋转中心的坐标(吸盘在相机坐标系或机器人坐标系,统一到一个坐标系即可)。

然后利用

hom_mat2d_identity (HomMat2DIdentity)
*其中207  139为假定的旋转中心即吸盘的在相机坐标系的位置(也可以统一到机器人坐标系下) -Angle2为要旋转回去的角度标准位置 207,139为假定的旋转中心
*吸盘在拍照位的位置即为旋转中心,可利用九点标定确定该点在相机坐标系的位置
hom_mat2d_rotate (HomMat2DIdentity, -Angle2, 207, 139, HomMat2DRotate)
*测试旋转图像看一下效果
affine_trans_image (GrayImage2, ImageAffineTrans1, HomMat2DRotate, 'constant', 'false')
*假定捕捉到的定位的角点241,111 经过旋转矩阵之后的位置Qx,Qy。根据该位置再标准位置进行XY平移补偿
affine_trans_point_2d (HomMat2DRotate, 241, 111, Qx, Qy)

*也可以使用vector_angle_to_rigid()函数进行相应的上面运算 
*其中207, 139为假定的旋转中心,Angle2为当前角点处的角度,后面的Angle1为要旋转到的标准产品的角度
vector_angle_to_rigid (207, 139, Angle2, 207, 139, Angle1, HomMat2D1)
*假定捕捉到的定位的角点241,111 经过旋转矩阵之后的位置Qx,Qy。根据该位置再标准位置进行XY平移补偿
affine_trans_point_2d (HomMat2D1, 241, 111, Qx, Qy)

进行求得旋转之后角点的位置,再进行平移补偿位置即可

测试代码下载地址https://download.csdn.net/download/yue1453544229/11190995

以上内容需要求解旋转中心,旋转中心的求法如下:

方法1:可将物体旋转两次,求得某点旋转的三个点位,根据三个点位求解其外接圆,求得的圆心即是旋转中心在相机坐标系的位置。

方法2:可能受视野限制,只能旋转一个角度的情况,已知某点的旋转前后的坐标,旋转的角度,求旋转中心。其求解公式如下图

该方法的计算方法是使用旋转矩阵进行求解的,根据旋转矩阵求解方程组

这个图的Px,Py为待求的旋转中心

这个图的Px,Py,Qx,Qy为已知的旋转前后的点坐标值。

 

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值