大家都知道,当手动操纵页面当前所选择的工具坐标系、工件坐标系与程序编辑器页面中运动指令语句中所指定的工具坐标系、工件坐标系不完全相同时,是无法在程序编辑器页面对运动指令的目标点位进行【修改位置】操作的,否则系统会提示下图所示的的错误。
但是当你在程序数据页面中对位置数据进行【修改位置】操作时则没有这样的限制,因为程序数据页面中没有指定该位置数据的参考坐标系。当你在程序数据页面中对位置数据进行【修改位置】操作时,实际上是告诉机器人控制系统,重新计算手动操作页面所选择的工具的TCP在所选择的参考工件坐标系下的组件值,并将结果存入位置数据中。计算坐标值、工具姿态时所使用的参考坐标系,与运动指令语句中指定的参考坐标系不一致,往往会导致机器人运动到非你所期望的空间位置上去。
问题2:位置数据P10是以坐标值的形式来描述目标位置的,那它是以什么坐标系为参考坐标系的呢?
在第3篇文章中,我们已经了解到robotarget数据类型由:trans、rot、robconf、extax四个组件构成的,它们分别存储的是笛卡尔空间坐标值、工具姿态、轴配置、外轴位置,并没有哪一个组件记录了参考坐标系。所以本题的正确答案是:robotarget型数据P10,其本身并不指定参考坐标系,当对它进行【修改位置】操作时,以手动操作页面所选择的工具坐标系和工件坐标系为参考坐标系,当它被放在运动指令语句中作为运动指令的目标点位时,以运动指令所指定工具坐标系工件坐标系为参考坐标系。当运动指令语句中没有显式指定工件坐标系时,是默认以wobj0为编程工件坐标系,如果需要指定其它工件坐标系为指令语句的编程坐标系,则需启用运动指令的[\wobjdata]可选变元。
wobj0的数据类型是wobjdata(工件数据),它由robhold、ufprog、ufmec、u
(1)robhold组件 表明机器人工作时工件是否是被机器人末端所夹持,true值表示机器人夹持工件,false值表示机器人夹持工具。
(2)ufprog组件 表明该工件坐标系是否会随着其它联动机械单元而移动,true值表示该工件坐标系将不会伴随其它机械单元联动,false值表示该工件坐标系将会伴随其它机械单元联动。
(3)ufmec组件 当ufprog组件值为true时,该组件值不起作用;当ufprog组件值为falses时,该组件值指明工件坐标系将伴随联动的机械单元的名称。
(4)u
(5)o
问题3:指令语句中的tool0起到什么作用呢?
在指令语句中tool0,一方面是提供了目标点位的工具参考坐标系,让运动指令语句中位置数据的参考坐标系明确;另一方面是向机器人控制系统提供了工具的重量、重心、惯性矩等物理属性,让机器人控制系统能够***的计算机器人伺服电机的工作电流和需要输出的力矩。
我们假设运动指令语句中的P10的声明语句如下所示,并以此来说明tooldata在运动指令语句中的作用
运动指令语句中的tool0,表明P10声明语句中的笛卡尔坐标值[500,0,800]描述的是执行完成该运动指令时,工具tool0的tcp在参考工件坐标系下的空间坐标值;也表明P10声明语句中四元数[1,0,0,0]描述的是完成运动指令时tool0工具坐标系的轴方位。四元素用于描述坐标系的姿态,不易直观感受到一组四元数值表达了怎样的姿态,可以通过RAPID编程语言所提供的EulerZYX函数将四元数转变为欧拉角旋转角度,在示教器手动操纵页面也可以选择以何种方式来显示工具坐标系的姿态。
tool0的数据类型是tooldata(工具数据),它由robhold、t
(1)robhold组件 表明机器人工作时工具是否被机器人末端所夹持,ture值表示机器人夹持工具,false值表示机器人不夹持工具。
(2)t
(3)tload组件 记录该工具的重量、重心位置,力矩惯性矩轴方位以及围绕力矩惯性轴的惯性矩。
更多机器人请咨询:ABB机器人
- 下一篇:ABB机器人进军新加坡,助力疫情
- 上一篇:ABB机器人的数据秘密(1)