对于需要用3D视觉来引导机械臂完成精确抓取、放置等操作的机器人,它们总体的技术原理是类似的。这篇文章将以光伏组件铺装机器人为例,讲述视觉系统如何引导机械臂完成精确的放置操作,对于其他类似的机器人的研发也具有参考意义。
光伏组件铺装机器人的核心功能点是视觉系统扫描光伏支架或者已经安装好的光伏板,根据它们的位姿计算出接下来要安装的多块光伏组件的位置(x, y, z)以及欧拉角(rx, ry, rz),然后由机械臂将这些板安装到目标位置处,这与我们日程生活中见到的贴瓷砖非常类似。下图是固定式光伏支架。
第一步也是最难的一步是如何计算出要安装的光伏板的位置与角度。由于支架的位置与角度会随着地势而变化,并没有一个固定的公式可以计算出光伏板的位置、角度,因此需要用视觉系统进行扫描识别。无论是固定式支架还是平单轴支架,目前有3种方案可以考虑,下面分别介绍。
识别光伏支架和檩条。通过识别横向与纵向的支架与檩条,推算出每块板的位置与角度,因为光伏板是贴合在光伏支架上的,二者的平面平行且各条边也有平行广关系。这种方法的优势是无需人工做其他工作,自动化程度高;缺点是对3D相机的成像精度有很高的要求,市面上的支架外观与尺寸有差异且有公差,要做到高精度和普适性需要在识别算法层面做大量的工作。
识别已装好的光伏板。如果已经安装了至少一块光伏板,它旁边的光伏板与这块光伏板是共面的,且其中一条边是共线的,另外一条边平行。这做方法也无需人工做其他工作,自动化程度高,且光伏板公差小;缺点是3D相机在室外有阳光的环境下对光伏板这种材质的物体的成像具有很强的挑战性。下图是平单轴支架。
识别人工放置的特征块。人工在支架上放置一个小的特征块,相机扫描和计算出它的位姿,推算出光伏板的位姿。这种方法实现难度最低,缺点是相机每次扫描之前都要人工放置一个特征块在支架上,扫描完之后拿走,增加了工作量且影响效率,而且有安全风险。
目前张量无限已经实现了上面的3种方法且达到了位置重复定位误差<±1mm,角度重复定位误差<±0.2°,可在户外各种复杂的光照条件下稳定地运行。
假设视觉系统已经识别出了接下来要铺设的这块光伏板的中心点在相机坐标系下的3D坐标
以及在相机坐标系下的旋转矩阵
如果对这两个值不理解,可以了解OpenCV相机标定中是如何计算标定板的位置与旋转矩阵的。机器人要根据这两个值计算出机械臂末端要达到的姿态,将末端移动到这个姿态即可将光伏板准确地放置在目标位置。下面介绍完整的计算过程。
相机是安装在机械臂末端的(眼在手上),与机械臂末端的相对位置是固定不动的。手眼标定已经得到了相机坐标系到机械臂末端坐标系的旋转矩阵R_eye_to_hand以及平移向量t_eye_to_hand。在拍照识别的同时读取机械臂当前的位姿,包括平移向量与欧拉角。
首先将要铺装的光伏板的位姿转换到机械臂末端坐标系,得到光伏板在机械臂末端坐标系下的位姿矩阵
这通过左乘手眼标定旋转矩阵,以及加上手眼标定平移向量实现。在相机拍照时刻,机械臂末端的旋转矩阵为R_robot,平移向量为t_robot。后者可以直接读取,前者可以通过读取欧拉角然后转成旋转矩阵而得到。
把上一步的结果再乘以末端坐标系到基底坐标系的转换矩阵,就得到了光伏板的中心点在机器人基底坐标系下的位姿,也是末端工具(在这里是吸盘阵列)在基底坐标系下的位姿
在放板时需要计算出机械臂末端法兰盘的位姿,此时末端工具在机械臂基底坐标系下的位姿是已知的(通过建立工具坐标系得到)。法兰盘到末端工具的旋转矩阵R_tcp与平移向量t_tcp也是已知的。要求解的是机械臂法兰盘在机械臂基底坐标系下的位姿
这里的逆矩阵可以事先计算好,手眼标定矩阵也是不变的。每次拍照时得到机械臂末端位姿,就可以计算出执行时的末端位姿。
对于其他类型的机器人,原理是相同的。总体来说,需要用到的固定变量包括:手眼标定得到的旋转矩阵、平移向量;机械臂末端工具坐标系的旋转矩阵、平移向量。每次运行时相机的识别结果、机械臂末端当前的位姿是动态变化的。前者由相机和识别算法计算得到,后者可以从机械臂读取。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...