机器人离线编程画圆误差解决方案_校正工业机器人离线编程在现场中的误差的方法与流程...
本发明属于工业机器人离线编程技术领域,具体涉及一种校正工业机器人离线编程在现场中的误差的方法。
背景技术:
机器人离线编程系统(Robot off-line-programming System)是当前机器人研究领域最活跃最前沿的研究方向。近年来,随着计算机技术、微电子技术及网络技术等的快速发展,机器人技术也得到了飞速发展。它集机械工程、电子工程、自动控制工程以及人工智能等多种学科的最新科研成果于一体,目前已有许多类型的机器人投入工程应用,创造了巨大的经济和社会效益。机器人是一个可编程的机械装置,其功能的灵活性和智能性很大程度上决定于机器人的编程能力。
在理想条件下,即整个空间的六个面足够的平整和光滑的条件下,工业机器人离线编程仿真可以非常准确的安放工业机器人并进行工业机器人的路径规划。但是,现实中由于放置机器人的场地可能出现地面不平导致安装有误差,以及工业机器人本身尺寸存在误差等因素,所以,离线编程仿真出来的结果,放在现场会有一定的误差,从而导致仿真与实际不相符。现今对此现象进行校正的方法多数是人为校正,个别使用设备校正,校正设备价格上很高,方法上也很复杂。
技术实现要素:
为了解决现有误差校正方法存在的校正设备价格高且校正方法复杂的技术问题,本发明提供一种校正工业机器人离线编程在现场中的误差的方法。
本发明解决技术问题所采取的技术方案如下:
校正工业机器人离线编程在现场中的误差的方法,其包括以下步骤:
(1)在计算机中进行工业机器人的离线编程仿真,确定两个工业相机的具体位置,并将其中一个工业相机的位置设定为原点,该相机与另一台工业相机连线方向为X轴的正向,工业相机光轴的方向为Y轴的正向,根据右手定则确定Z轴的正向,建立仿真新坐标系,在这个仿真新坐标系中,确定两个校正点的位置及其坐标值,以及确定在两个工业相机能够拍到的范围内,工业机器人上的固定不动的三个明显的特征点及其坐标值;
(2)在现场中,根据步骤(1)仿真的位置安放两个工业相机,拍摄校正点,得出校正点的坐标和校正矩阵;
(3)拍摄步骤(1)仿真中确定的机器人上的第一个特征点,并得出该特征点相对于工业相机的坐标;
(4)拍摄步骤(1)仿真中确定的机器人上的第二个特征点,并得出该特征点相对于工业相机的坐标;
(5)拍摄步骤(1)仿真中确定的机器人上的第三个特征点,并得出该特征点相对于工业相机的坐标;
(6)利用坐标变换中的齐次变换,得到校正需要的相关数据;
(7)将步骤(6)得到的相关数据传送给计算机,修正步骤(1)中工业机器人的离线编程仿真。
步骤(1)中所述的确定两个工业相机的具体位置是指在离线编程软件中进行工业机器人的离线编程仿真时,在整个仿真的布局中,选取两个易于安放且能够拍摄到工业机器人的两个点安放此两个工业相机。
步骤(1)中所述的确定两个校正点的位置是指在两个工业相机能够拍到的范围内,选取两个固定且明显的位置。
步骤(2)中所述的得出校正点的坐标的方法是:校正点所在的坐标系与在仿真中校正点坐标系建立的方式相同,两个工业相机与目标点形成三角形关系,目标点求解是基于视差,由三角原理进行三维信息的获取,已知两个工业相机之间的位置关系,便可以获取公共视场内物体特征点的三维坐标;设空间点P的世界坐标为(XW,YW,ZW),在左侧工业相机的图像坐标为(u,v),在右侧工业相机的图像坐标为则有:
即:
其中,m1~m16、为工业相机的投影矩阵,由工业相机的内部参数得出,k1、k2、为畸变系数,θ为配比系数;在上述的公式中,由于在无畸变的理想条件下,m1~m16、已知,θ为0,上述方程可以用伪逆法求解,得出校正点的坐标值。
步骤(2)中所述的得出校正矩阵的方法是:通过坐标变换中的齐次变换,可得公式:
即:
其中:
为齐次变换阵;
为目标点在现场中确定的坐标;
为目标点在仿真中所确定的坐标;
为X、Y、Z轴变化量的平移矩阵;
为旋转矩阵;
式中,f、q、j为三维坐标的欧拉角,绕x轴旋转为j,绕y轴旋转为q,绕z轴旋转为f;所测量的校正点为两个,因此,可得到八个公式,需要求解六个未知数,可以用伪逆法求解,得到齐次变换阵,即为校正矩阵。
步骤(3)至步骤(5)中所述的得出特征点相对于工业相机的坐标是指三个特征点在现场新坐标系下的坐标,此现场新坐标系的建立方式与步骤(1)仿真中建立新坐标系的方式相同,是以工业机器人的离线编程仿真所选取的那个工业相机的位置为坐标系原点,以此相机与另一台工业相机连线方向为X轴的正向,工业相机光轴的方向为Y轴的正向,根据右手定则确定Z轴的正向,建立现场新坐标系。
步骤(6)中所述校正需要的相关数据是指现场中新坐标系相对于仿真中新坐标系的滚动角、偏航角、俯仰角和原点平移的距离。
步骤(6)中所述校正需要的相关数据的求解方法是将机器人的齐次变换矩阵乘以步骤(2)的校正矩阵,得出校正后的齐次变换矩阵,即为校正需要的相关数据。
本发明的有益效果是:该方法使用工业相机,价格上相对便宜,方法上简单易行;利用工业相机,在特定的条件下,在现场中就可以得到离线编程仿真的误差,再把误差反馈给计算机离线编程软件,在软件中重新修改参数,使整个仿真更加精密和准确,避免了由于现场的自然条件所导致的工业机器人轨迹的不准确,避免了人工在现场中进行不准确的校正,同时也减少了校正的时间。
附图说明
图1为两个工业相机成像原理示意图。
图2为单个工业相机拍摄特征点的原理示意图。
图3为特征点在相平面上成像后坐标选取的方式示意图。
图4为本发明校正工业机器人离线编程在现场中的误差的方法流程图。
具体实施方式
下面结合附图对本发明做进一步详细说明。
如图1至图4所示,本发明校正工业机器人离线编程在现场中的误差的方法如下:
首先,在工业机器人离线编程仿真中进行现场布局,安放好工业机器人。随后在整个布局中选取两个点安放工业相机,而这两个点需要是特殊的、方便的、易于安放的两个点,同时也要能够拍摄到工业机器人(例如,工位框架上的两个角)。随后,根据这两个工业相机建立新的坐标系:以其中一个工业相机的位置为坐标系原点,与另一台工业相机连线方向为X轴的正向,工业相机光轴的方向为Y轴的正向,随后根据右手定则确定Z轴的正向,形成的仿真新坐标系。
然后,选取整个仿真区域中的较为明显的两个点(例如,安放工业机器人地面上的孔洞)作为校正点,通过仿真软件得出这两个校正点在仿真新坐标系下的坐标,通过在工业相机能够拍照的范围内,找到机器人上固定的明显的三个特征点(例如,工业机器人底座上相机能够拍摄到的三个点),得出这三个特征点在仿真新坐标系下的坐标。
以上的过程是需要在工业机器人离线编程仿真软件中进行的准备工作。
在现场中,根据仿真软件中的布局,布置整个现场。如图1所示,两个工业相机采用图1的方式进行安放,具体位置则按照仿真软件中的位置安放两个工业相机,并在现场中找到仿真中的两个校正点,由工业相机拍摄。
如图1所示,两个工业相机视觉系统是基于视差,由三角原理进行三维信息的获取,已知两个工业相机之间的位置关系,便可以获取公共视场内物体的三维尺寸及空间特征点的三维坐标。
图2为单个工业相机拍摄特征点的原理图,图3是特征点在相平面上成像后坐标选取的方式。按照图1安放两个工业相机,设空间点P的世界坐标为(XW,YW,ZW),在左侧工业相机的图像坐标为(u,v),在右侧工业相机的图像坐标为则有:
即:
其中,m1~m16、为工业相机的投影矩阵,由工业相机的内部参数得出,k1、k2、为畸变系数,θ为配比系数。在上述的公式中,由于m1~m16、已知,θ为0,即在无畸变的理想条件下,上述公式就成了4个方程,3个未知数,可以用伪逆法求解。运用此方法,可以得出校正点的实际坐标值。
将上述得出的实际三维坐标与工业机器人离线仿真中的三维坐标作比较:如果在误差允许范围内,则无需校正;如果在误差允许的范围外,则需要校正。因为在安放工业相机的时候,会存在场地、安放等误差,从而导致安放的位置与仿真中的位置有差别。想要得出准确的坐标值,就必须需要校正。这里得出校正矩阵也是为了随后校正工业机器人上的三个特征点做准备。
通过坐标变换中的齐次变换,可得公式
即:
其中:
为齐次变换阵
为目标点在现场中确定的坐标
为目标点在仿真中所确定的坐标,
为X、Y、Z轴变化量的平移矩阵,
为旋转矩阵,
公式中f、q、j为三维坐标的欧拉角,绕x轴旋转为j,绕y轴旋转为q,绕z轴旋转为f。所测量的校正点为两个,因此,可得到八个公式,需要求解六个未知数,可以用伪逆法求解。利用上述方法,可得到齐次变换阵即为校正矩阵。
拍摄仿真中固定在机器人上的第一个特征点,特征点图像坐标在两个工业相机上分别为pleft=(Xleft,Yleft),pright=(Xright,Yright)。
两个工业相机的图像在同一个平面上,第一个特征点的图像坐标Y坐标相同,即Yleft=Yright=Y,工业相机的焦距为f,则由三角几何关系得到:
则视差为:Disparity=Xleft-Xright。式中,B为基线距,即两个相机的投影中心连线的距离。由此可计算第一个特征点在仿真坐标系下的三维坐标为:
依照上述的方法,依次拍照固定在机器人上的第二个特征点和第三个特征点,并求出其坐标。
随后,通过下面的算法得出现场坐标系相对于仿真坐标系的滚动角、偏航角、俯仰角,和原点平移的距离,再将旋转矩阵和平移矩阵分别与校正矩阵相乘,得出校正后所需要的数据。该算法为:
即:
其中:
为齐次变换阵
为目标点在现场中确定的坐标
为目标点在仿真中所确定的坐标,
为X、Y、Z轴变化量的平移矩阵,
为旋转矩阵,
式中,f、q、j为三维坐标的欧拉角,绕x轴旋转为j,绕y轴旋转为q,绕z轴旋转为f;ΔX、ΔY、ΔZ分别为平移矩阵中X方向的增量、Y方向的增量、Z方向的增量。所测量的固定点为三个,因此,可得到九个公式,需要求解九个未知数,可以用伪逆法求解。
最后,把相关数据传送给计算机,修正离线编程仿真。
机器人离线编程画圆误差解决方案_校正工业机器人离线编程在现场中的误差的方法与流程...相关推荐
- qt中label画圆代表指示灯_使用qpaint和paintEvent在PYQT5中QLabel中包含的Pixmap上绘制圆...
我对PYQT5很陌生,我想在PYQT5主窗口UI中QLabel中的Pixmap绘制一个圆,代码如下:from PyQt5 import QtCore, QtGui, QtWidgets backgro ...
- 优秀课程案例:图形化编程画圆方法汇总
图形化编程画圆方法 一.图形化编程画圆的五种方法: 1.多边形法 结论:一个正多边形边数越多,就越接近一个圆. 2.直接绘制:前进一步,旋转一度,重复执行360次. 3.根据圆的定义来画圆,从圆心根据 ...
- ROS机器人实践---小乌龟画圆
ROS机器人实践---小乌龟画圆 一.ROS工作空间的建立 二.ROS机器人画圆程序的编写 三.启动ROS机器人 参考文章: 1.https://blog.csdn.net/qq_33835307/a ...
- 机器人离线编程画圆误差解决方案_工业机器人离线编程-误差分析和解决方案...
编:张山 发:03/03/2019 按:为便于更多读者朋友了解工业机器人离线编程/仿真,本文中尽量规避专业名词和深入的专业讲解. ---------------------------------- ...
- 机器人离线编程画圆误差解决方案_机器人离线编程的误差来源分析与消除办法...
随着机器人应用领域越来越广,传统的示教编程这种编程手段有些场合变得效率非常低下,于是离线编程应运而生,并且应用越来越普及.但初用离线编程的朋友,总会被最后生成轨迹的误差所困惑,而导致这些误差的原因,包 ...
- python中turtle画圆填充颜色_用Python中的画图工具turtle绘制八卦图
首先看看八卦图的构造原理,它是由4个半圆和2个小圆组成的,所以只需要画半圆和圆,再进行填充就可以构造成一个简单的八卦图了. 1. 导入画笔工具tultle并创建我的画笔: import turtlem ...
- python编程求圆的面积案例_Python实用案例编程入门:第七章 调式手段
本章的主题为调试手段,这是程序开发必不可少的步骤,也是占用时间最多的环节.在程序员的正常开发工作中,调试工作至少占据1/3的时间,而实际编码工作相对占用实际比较少.因此,无论您是初学者,还是编程兴趣爱 ...
- 双向长短期记忆网络模型_一种基于双向长短期记忆网络的定位修正方法与流程...
本发明属于行人导航定位修正领域,具体涉及一种基于双向长短期记忆网络的定位修正方法. 背景技术: 近些年来,随着室内定位技术的不断发展,很大程度弥补了类似gps等利用卫星信号进行定位而卫星信号穿透力较差 ...
- 机器人离线编程画圆误差解决方案_机器人离线编程技术浅析及未来展望
龙源期刊网 http://www.qikan.com.cn 机器人离线编程技术浅析及未来展望 作者:刘梓航 来源:<中国校外教育 ( 下旬 ) > 2018 年第 01 期 [摘要]编程技 ...
最新文章
- python第三方库下载-python常用第三方库介绍及下载
- 浅谈自然语言在科技时代的运用
- ML之PPMCC:PPMCC皮尔逊相关系数(Pearson correlation coefficient)、Spearman相关系数的简介、案例应用之详细攻略
- ios两张图片的合并
- 关于Maven中的常见命令,通过命令的方式快速创建一个空的maven工程,将jar包打到maven仓库中
- FreeMarker模板文件的组成(2)
- 来自http://oldboy.blog.51cto.com/2561410/1308647 有趣的企业shell实战编程题:
- 图解比较李航书上的viterbi算法和dijistra算法
- rest spring_Spring REST:异常处理卷。 1个
- 怎样覆盖之前的html文档,jquery – html文本覆盖自己
- 怎样安装matlab2016,Matlab2016b安装教程(Matlab 2016b详细安装步骤)
- 边缘计算是什么,对企业有什么影响?
- 奥城大学计算机专业,2013年美国留学硕士双录取院校一览
- U盘文件、文件夹不显示却能搜索到 显示U盘文件的解决办法
- Word2007从指定页插入页码,不包括封面和目录,指定页为首页第1页
- oracle10如何扩asm磁盘组,在Oracle10g 新增ASM磁盘组
- 风雨人生,自己撑伞=
- 身为iOS开发,你是愿意在大公司做凤尾,还是在小公司做鸡头?
- 关于openlayers图层的放大缩小以及中心坐标
- java 手动抛异常_Java 异常处理 之 手动抛出异常
热门文章
- php连接数据库需要的数据库内的登陆名/密码,用PHP连接数据库时,需要提供数据库服务器的IP、数据库用户名、密码和连接的DB名。...
- Linux_父子进程与fork
- 中基鸿业家庭理财投资计划
- msvcr110.dll 等dll找不到导致游戏无法运行解决办法win10 64位
- c 实现批量打印oracle,C#调用codesoft实现批量打印
- 2019/08/14_用于新基因的生物信息学分析 (转载)
- #737. 徐老师的字符串(微软和阿里巴巴面试原题改编)
- JNCIE vs CCIE[战况不断更新]
- 取消springsecurity默认的登录验证
- 计算机编制列车运行图实验分析,计算机编制列车运行图实验大纲