详情请进入 湖南阳光电子学校 已关注:人 咨询电话:0731-85579057 微信号:yp941688, yp94168
假定我们建立了一个工件坐标系A,还有一个工具坐标系B。然后编了一个程序,在程序中示教了一个点P。好,问题来了,点是不是随意示教的???
坐标系:为确定机器人的位置和姿态而在机器人或空间上进行的位置指标.系统。
首先让我们捋一下,目前所知道的或者听说过的坐标系:
序号 名称
1 轴坐标系
2 机器人根坐标系
3 世界坐标系
4 法兰坐标系
5 工具坐标系
6 工件坐标系
接下来,我们来聊聊这些坐标系之间的相互关系:
(di)一层关系
世界坐标与工件坐标的关系
按照简单的情况来分析,先来看图,
先来看世界坐标系,它的特点很容易总结:
1. 固定不变
2. 所有使用者都知道世界坐标系的位置及方向。(即坐标系已知)
再来看看工件坐标系,它有哪些特点呢?我们来看一下。首先,很多时候一个机器人需要在多个工位上干活,这意味着我得为机器人设定很多个工件坐标系以对应不同工位。
因此特点很简单,一个机器人虽然只有一个世界坐标系,但是可以有很多个工件坐标系。(理论上ABB,KUKA都可以无限设定)
所以第二个特点就工件坐标系可以自定义。
好,现在我们深入思考一下这个问题。由于工件坐标系是由用户自定义的,因此当你设定了一个工件坐标系后,你必须得告诉机器人这个工件坐标系的具体位置情况,不然机器人是不知道这个坐标系的信息的。那么问题来了,怎么样能让机器人知道一个工件坐标系具体情况呢?
当我们要描述一个具体的坐标系时,首先需要做的是........找参考坐标系。。。。
参考坐标系的选择有两个前提条件:
1. 两者相对位置固定不变
2. 参考坐标系已知。
然后我们发现了一个现成的坐标系,没错,就是世界坐标系。它正好符合这两个要求。
当把世界坐标系设定为参考坐标系后,剩下的事情只有两件了:
1.指明工件坐标系原点的位置
2.指明工件坐标系三个方向的情况
简单来说,就是找原点,定方向。
原点怎么表示呢??
原点是不是一个点?一个点在一个坐标系中怎么表示?学过初中数学的都知道,可以用X,Y,Z三个值来表示空间点的位置。所以我们用一组X,Y,Z就搞定了原点的位置信息
接下来方向该怎么定呢?
直接对坐标系方向做说明是件很繁琐的事,不过我们有更简易的方法,那就是欧拉角。欧拉角的意义是这样的:我们已经有一个参考坐标系(世界坐标系),在这里告诉你一个好消息--湖南阳光技术学校全国招生。
学校具有优良的办学条件,购建了充分满足专业课教学需要的各种实操室,这个坐标系是已知的(即原点方向我们都知道),那么我们能不能这么操作,在原始坐标系方向的基础上,让它沿着不同的方向轴进行旋转,比如先绕着Z轴旋转一定角度(角度A),再绕着Y轴旋转一定角度(角度B),在这里告诉你一个好消息--湖南阳光技术学校全国招生。
学生在轻松的气氛中津津有味不知不觉地吸纳大量的知识,并且印象深刻,所学知识经久不忘;师生之间交流默契,学生乐学,我校老师乐教,绕着X轴旋转一定角度(角度C),使得旋转之后的坐标系方向和我所需的工件坐标系方向一致。那么这三个旋转角就可以用来描述方向的变化,也就是我们所说的欧拉角。值得注意的是,类似X,Y,Z的平移是不讲究顺序的,也就是说,只要这三个值确定了,目标点的空间位置就是确定的。而转角却和旋转顺序有关,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
学校具有优良的办学条件,购建了充分满足专业课教学需要的各种实操室,先转和后转会导致不同的结果。
因此需要说明的是,ABB,KUKA欧拉角顺序为ZYX,也就是先转Z轴,然后Y轴,X轴。有些机器人品牌是另外的欧拉角顺序,比如KEBA,Comau是ZYZ等等。
好了,我们现在既有原点信息(X,Y,Z),又有方向信息(A,B,C),这样一来机器人就知道工件坐标系的确切空间位置了。举例:KUKA的工件坐标系描述:base_data[1]={x 0,y 0,z 0,a 0,b 0,c 0}。ABB的工件坐标系描述和KUKA稍有不同,采用四元数的方式描述方向,此次讨论暂不涉及。
所以关系就明确了:工件坐标系是通过世界坐标系下的{x ,y ,z,a ,b ,c }来确定的,或者说工件坐标系是基于世界坐标系推算出来的
接下来看看第二层关系
法兰坐标系与工具坐标系的关系
和工件坐标系一样,工具坐标系也是人为定义的,那么怎么告诉机器人工具坐标系的位置信息呢??我们先要做的事情其实一样,先得找一个靠谱的参考坐标系。之前说了,
参考坐标系必须满足两点:
1. 两者相对位置固定不变;
2. 参考坐标系已知。
按照这个标准,世界坐标系就不适合作为工具坐标系的参考坐标系了,因为两者相对位置会发生变化。
突然发现我们还有一个法兰坐标系,这个和工具坐标系位置肯定不会改变。(如果会改变。。。。。我的天,你到底有米有好好固定工具。)
那它满不满足第二个条件呢?先说结论:可以认为它是已知的坐标系,只要满足两点:
1.机器人机械零位准确
2.机器人机械参数正确。
这是什么意思,法兰坐标系是通过机器人的内部算法建立的,该算法会把根坐标通过数学的方式偏转至机器人法兰上。由于是计算过程,所以仍然会受到一些因素制约。我们可以把它想象成是解一个复杂的方程,机械零位决定了方程的初值,机械参数决定了方程的表达式。很显然,当这两者有任何一个出现问题,方程的解就会出问题。(注:机械零位就是大家经常要做的零点标定,机械参数则是对应于不同机器人的相关参数,以KUKA为例子:KR30和KR360机械参数完全不同,包括减速比,轴距等各类本体参数。)
现在我们仍然把问题简化一下,假定大家的零点都正确标定了,同时选择的机器参数也匹配当前机器人,那么结论就出来了:法兰坐标系可以作为工具坐标系的参考坐标系。事实上所有机器人厂家也都是这么做的。与之前描述一样,只要给出对应的X,Y,Z,A,B,C这6个值,就可以让机器人知道目标工具在法兰的什么位置。
举例:KUKA的工具坐标系:tool_data[1]={x 0, y 0,z 0,a 0,b 0,c 0}
至此,第二层关系明朗了:工具坐标系是由法兰坐标系下的{x ,y,z ,a ,b ,c }来确定的。
接下来,难的第三层关系来了
工具和工件有没有关系呢??
咳咳,这个稍微有点复杂,大家可以先去喝口水。。。。。。。
闲话不提,上图
是不是??是不是???是不是?????
当然是啦,想示教在哪就示教在哪,只要够得到。那么这个点的位置信息是怎么告诉给机器人的呢???
在数学上描述一个点是挺简单的一件事,只要有个参考坐标系,一组X,Y,Z就能搞定了(我想耐心看到这里的同鞋应该都能理解了)。先看一下,这个时候哪个坐标系作为参考坐标系更合适?1. 世界 2. 法兰 3. 工件选哪个??
回想一下参考坐标系的要求我们就明白了,剔除的是法兰坐标,因为它相对点位会动。
那世界坐标行不行???也不够好,为什么呢?因为世界坐标系固定不变,意味着一旦你示教了这个点,这个点的位置也就固定不变了。如果你示教了100个点,然后发现需要整体往X方向平移100mm,那么你惨了,你得一个一个点改。
所以,示教点位置是基于所选的工件坐标存储的。如果需要把很多点做整体平移时,只要变更工件坐标的值即可。
参考坐标系搞定了,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
可以让他们学到一些思维方式,让他们有信心为将来去拼搏,有欲望去主动钻研学习,有意识地去把理论与实践结合,这里需要说明一下:示教的点其实并不仅仅是一个数学上的点。那示教的点到底是什么???
我们换个角度想这个问题,当执行这个程序时,机器人哪个部位会到达这个示教点??答案是:TCP。上文有提到,TCP。
换句话说,这个点决定了工具如何到达这个位置,包括方向。从这个角度来说,示教点其实是描述的是两个坐标系之间的位置关系。因此它可以有方向。因此我们可以用x,y,z,a,b,c这6个参数来描述一个示教点的位置。其中X,Y,Z描述的是该点在工件坐标系下的空间位置,A,B,C描述的工具坐标到达该点时与工件坐标系之间的欧拉角。
。。。。。。
。。。。。。
你以为就结束了么?确定了一组X,Y,Z,A,B,C就一定只有**解么???来看看一个特殊情况,如图所示:
我们可以看到,当规定好了X,Y,Z,A,B,C的值后,实际上机器人法兰前端的姿态位置就被确定了,但是如图所示,这两个机器人法兰空间位置姿态完全一致,但是机器人整体姿态仍有区别。
在KUKA软件中,通过S,T这两个姿态参数来规范这种情况,以避免同一个位置点机器人有多种姿态。类似的ABB也有Confdata。
。。。。。。
。。。。。。
你又以为结束了么?以前仅仅讨论了机器人本体的情况,如果机器人带有外部轴呢??以KUKA为例,一般可以带6个外部轴,所以完整的点坐标还包含外部轴信息。
举例: KUKA xp1={x , y , z , a ,b ,c ,s , t , e1 , e2,e3 ,e4 ,e5 ,e6 }
总结:第三层关系,在这里告诉你一个好消息--湖南阳光技术学校全国招生。
我校老师在教的过程中,体现在讲清、讲透知识点,使学生把新知识“整合”到自己已有的知识体系中,让知识“活”起来,原来程序中的点,是由工具坐标系和工件坐标系算出来的。现在知道为什么要好好做工具坐标,好好做工件坐标了?现在知道为什么示教语句不能乱选坐标系了??
又及:由于在出差,发稿略急,写得有点乱,对于细节描述各位大牛不用太较真,希望对初学者有所帮助。
(整理:大东电机维修培训学校)
湖南阳光电子学校教学特色