wobjdata
说明
WorkObject data, 描述工件数据,用于计算工件坐标系。工件坐标系由3个坐标系复合而成:
- wobjdata所属的机器人任务坐标系
- 用户坐标系uframe,有2种可能:一种是由本数据所定义,另一种是由其他机械单元所定义。并且,本数据所定义的uframe的参照坐标系有2种,依赖于robhold.
- 物体坐标系oframe
工件坐标系的计算过程如下:
if ufprog == true:
if robhold == false:
使用uframe字段相对于任务坐标系计算用户坐标系
else:
使用uframe字段相对于机器人手腕计算用户坐标系
else:
根据ufmec获取用户坐标系
使用oframe相对于用户坐标系计算工件坐标系
wobjdata可以在基本功能区创建。
数据项
robhold
- 类型:bool
- 说明:用于定义工件是否由机器人持有。robhold为false时,uframe相对于任务坐标系定义。robhold为true时, uframe相对于机器人手腕坐标系定义。
当配合使用的tooldata的robhold为false的时候,需要将wobjdata的robhold字段设置为true.
如果ufprog字段为false, 则robhold字段被忽略。
ufprog
- 类型:bool
- 说明:用于定义工件安装形式。
若为true, 表示工件是固定的,或者由本机器人持有,用户坐标系由uframe数据项定义。
若为false, 表示工件安装在移动装置上,工件的用户坐标系的数据来自于数据项ufmec所指定的机械单元。ufmec指定的机械装置需要由本机器人的控制器控制,作为外轴,或者是本控制器控制的另一个机械臂。uframe字段会被忽略。
ufmec
- 类型:string
- 说明:定义工装移动所使用的机械单元名称。仅当ufprog为false时本数据项有效。
uframe
- 类型:pose
- 说明:定义用户坐标系。仅当ufprog为true时,本数据项有效。
如果robhold为false, 则用户坐标系的定义相对于机器人的任务坐标系。如果robhold为true, 则用户坐标系的定义相对于机器人的手腕坐标系,即tool0.
oframe
- 类型:pose
- 说明:定义物体坐标系。物体坐标系相对于用户坐标系定义。
例子
tooldata和wobjdata需要配合来定义。有以下3种常见的配合情况。
工具装在机械臂上,工件固定
这是最常见的情况。数据的各个组件如下定义。
- tooldata.robhold: true
- tooldata.tframe: 相对于tool0定义
- wobjdata.robhold: false
- wobjdata.ufprog: true
- wobjdata.ufmec: 无须定义
- wobjdata.uframe: 相对于task frame定义
- wobjdata.oframe: 相对于uframe定义的
运动公式:uframe * oframe * robtarget = robot base frame * tool0 * tframe
工具固定,工件在运行程序的机械臂上
数据的各个组件如下定义。
- tooldata.robhold: false
- tooldata.tframe: 相对于task frame定义
- wobjdata.robhold: true
- wobjdata.ufprog: true
- wobjdata.ufmec: 无须定义
- wobjdata.uframe: 相对于tool0定义
- wobjdata.oframe: 相对于uframe定义
运动公式:robot base frame * tool0 * oframe * robtarget = tframe
工具装在机械臂上,工件由外轴控制运动
数据的各个组件如下定义。
- tooldata.robhold: true
- tooldata.tframe: 相对于wrist定义
- wobjdata.robhold: false
- wobjdata.ufprog: false
- wobjdata.ufmec: 持有工件的外轴机械装置
- wobjdata.uframe: 无须定义
- wobjdata.oframe: 相对于用户坐标系定义
运动公式:ufmec's frame * oframe * robtarget = robot base frame * tool0 * tframe