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

机械臂——12点标定

记录一下机械臂的12点标定流程(9点标定+旋转标定)。

目的

之前写的相机标定,主要有两个目的。

  1. 畸变纠正
  2. 坐标系转换

本次介绍的12点标定,则涉及到了如何通过视觉引导机械臂移动到正确的位置。将不同坐标系转移到世界坐标系下实现视觉引导机械臂运动。

9点标定

眼在手下

相机不随机械臂一起移动,而是安装到一个固定的位置拍照。
image

9点标定流程

此处标定使用的仍然是Halcon提供的标定板。

  1. 将需要使用的标定板或标定板图像,固定在工作平面上。然后使用相机拍摄一张图像。
    image
  2. 使用Blob分析,提取标定板上的9个点,这里要注意提取点的顺序(方便与后面机械臂跑点对应)。
    image
  3. 获取每一个点的外接圆,并提取外接圆的中心坐标。
  4. 首先记录机械臂标准工作位,然后控制机械臂分别按照上面的像素点顺序移动到9个点,并记录每个点的机械臂坐标。
  5. 在Halcon通过算子(vector_to_hom_mat2d)得到坐标系之间的转换关系。
  6. 根据得到的仿射变换矩阵,即可使用算子(affine_trans_point_2d)实现坐标之间的转换。

此处的标定只涉及到了XY的平面坐标系,对于Z轴,我们是不需要进行标定的。机械臂每次运动结束后,都要返回工作位,然后相机再拍照。

眼在手上

相机安装在机械臂上,跟随机械臂一起移动。

旋转标定

当机械臂末端有转轴,并且转轴与夹具不在一个旋转中心上时,物料就会因为旋转而产生额外的误差。
image

在这种情况下,如果我们旋转之后,不进行纠偏,直接把物料移动到标准位。就会产生误差。因为我们之前所做的9点标定只能保证通过相机将物料从某一点移动到另一个地方,但没办法保证角度也是对齐的。
image
旋转中心求得一个近似值,通常受到一下因素影响:

  1. 旋转中心的半径长度,长度越大 精度越差。
  2. 相机自身的畸变(做相机标定)。

旋转标定流程

image
此处以三点标定为例。

  1. 固定机械装置不再进行移动,通过控制机械装置旋转移动标定物。每移动一次就让相机拍一张照片。这里用黑笔记录了一下探针每次移动的位置
    image
  2. 保证旋转角度尽可能均匀,照片尽量清晰。
  3. 在Halcon中使用Blob分析提取对应的点。
    image
  4. 筛选区域提取外接圆。
    image
  5. 利用之前的九点标定结果,先将所有点转换到世界坐标系下。
  6. 拟合对应的圆(gen_circle_xld、fit_circle_contour_xld),得到拟合圆心和半径。这里有一点问题,如果要用拟合圆的方法最好拍5个点。拟合方法选用最小二乘法

至此,旋转标定结束。

旋转标定纠偏

方法一

需要拍照两次,第一次用来纠正角度,第二次用来纠正XY位置。一定要先纠正角度再纠正XY位置,如果最后纠正角度,旋转后XY还是对不齐。

  1. 先回原点拍照确定基准位置
  2. 放置物料后 第一次拍照 用来纠偏角度(使用模板匹配、rect2都可以确定角度)
  3. 根据角度差进行旋转
  4. 再次拍照,确定旋转后物料与模板的XY坐标差
  5. 使用九点标定结果,得到偏移量进行移动

方法二

只拍照一次,直接纠正角度以及XY坐标。
流程如下:

  1. 利用旋转标定得到的旋转中心,计算物料绕旋转中心 旋转后的坐标。
  2. 计算模板与旋转后物料坐标的差值,进行纠偏。
    a. 公式中的cos和sin是 模板角度-当前物料角度的角度值
    b. CenterX和Y是在世界坐标系下的 旋转标定得到的圆心坐标-当前物料坐标
计算公式
* 获取当前位置绕旋转中心,旋转之后的点位置
offset_p := Phi_Target-Phi_Curr
sin_value := sin(offset_p)
cos_value := cos(offset_p)
affine_trans_point_2d (HomMat2D,Row_Curr ,Column_Curr , x, y)
after_angle_x:=(x-CenterX)*cos_value-(y-CenterY)*sin_value+CenterX
after_angle_y:=(x-CenterX)*sin_value+(y-CenterY)*cos_value+CenterY
* 目标位置-旋转之后的位置,获取偏移量
affine_trans_point_2d (HomMat2D,Row_Target ,Column_Target , Qx1, Qy1)
* 纠偏量xy
dx := Qx1-after_angle_x
dy := Qy1-after_angle_y
* 获取纠偏角度
offset_angle :=Angle_Target-Angle_Curr#这里再次纠偏,0.722是计算得到的 机械旋转1度与我们这里计算的1度的比例关系
machine_a := offset_angle/0.722

对于上面的纠偏方法和流程可以参考下面的文章。
https://blog.csdn.net/qq_41375318/article/details/148016843
https://blog.csdn.net/qq_41375318/article/details/148034929

http://www.sczhlp.com/news/28092/

相关文章:

  • Linux 知识点
  • 乐清做网站建设公司哪家好qq排名优化网站
  • 怎么做信息发布型网站个人如何建立免费网站
  • wordpress表格编辑器c盘优化大师
  • 西安注册公司费用重庆seo网站运营
  • Photoshop 2025 v26.10.0特别版
  • PostgreSQL技术大讲堂 - 第102讲:PG不同事务隔离级别全新认知
  • [转]PLSQL导出表结构和表数据(存在多表有blob字段,分开导出和导入,提高速度)
  • “1-5-10”确定性运维工作思路
  • Moka人才库运营系统:2025年激活沉睡候选人,人才复用率提升60%
  • 旅游网站开发系统分析软件发布网
  • 珠宝商城网站设计天津网站排名提升
  • 网站宣传的方法网络推广服务费
  • 优质网站建设seosem是指什么意思
  • 软件项目管理考试题及答案潍坊网站seo
  • 宁夏住房和建设厅网站株洲seo优化公司
  • 多语言企业网站开发百度推广一年要多少钱
  • 网站建设 乐清网络公司重庆seo团队
  • 企业数字化转型不可错过的免费低代码平台
  • Linux schedule core.c(五)上下文切换+抢占
  • AgenticOps Engineering 权威指南:构建自主企业的未来
  • 前缀和的总结
  • Tita目标和绩效管理一体化解决方案在电商行业的实践与成效
  • 百度推广怎么做网站深圳网站seo公司
  • 门户网站开发注意哪些今日微博热搜榜前十名
  • vue做的web网站专业seo推广
  • wordpress取消主题seo关键词搜索优化
  • 网站建设视觉效果百度广告怎么收费标准
  • 手机app前端开发工具衡阳seo优化首选
  • 网站开发留言板互联网营销师培训机构哪家好