Skip to main content

Manipula数据类型手册

confdata

说明

描述机器人的构型。机械臂求逆时存在多解,即机械臂末端达到相同的位姿,机械臂具有不同的构型,为了表示各轴可能的构型之一,通过使用四个int变量来指定机械臂的构型。

对于六轴机械臂,使用轴1,4,6的象限编号和一个机械臂配置量来表示机械臂的构型。每个旋转轴根据转角大小,使用0,1,2,3等数字表示其象限编号,每90°为一个象限。编号0表示0°到90°,编号1表示90°到180°,编号2表示180°到270°,编号3表示270°到360°,编号-1表示0°到-90°,编号-2表示-90°到-180°,编号-3表示-180°到-270°,以此类推。

数据项

cf1

  • 类型:int
  • 说明:用于表示轴1的象限编号。

cf4

  • 类型:int
  • 说明:用于表示轴4的象限编号。

cf6

  • 类型:int
  • 说明:用于表示轴6的象限编号。

cfx

  • 类型:int
  • 说明:用于从编号0到7的八种可能的机械臂配置中选择一种。
cfx腕中心相对于1轴的位置腕中心相对于3轴的位置5轴的角度
0在前面在前面
1在前面在前面
2在前面在后面
3在前面在后面
4在后面在前面
5在后面在前面
6在后面在后面
7在后面在后面

腕中心相对于1轴的位置

在1轴的前面
1轴前面示意图
在1轴的后面
1轴后面示意图
奇点
肩部奇点示意图

腕中心相对于3轴的位置

在3轴的前面
3轴前面示意图
在3轴的后面
3轴后面示意图
奇点
肘部奇点示意图

5轴的角度


5轴正角度示意图

5轴负角度示意图
奇点
腕部奇点示意图

extjoint

说明

描述外部轴,机械臂除了能控制六个内部轴外,最多还能控制六个外部轴。在控制程序内,这六个外部轴称为逻辑轴,可以使用a,b,c,d,e,f表示,每个逻辑轴都可以和一个外部轴连接。

对每个连接至外部轴的逻辑轴,如果是旋转轴,其位置使用相对于标定位置的角度表示,如果是线性轴,其位置使用相对于标定位置的距离表示。如果逻辑轴没有连接到外部轴,则该轴的位置默认设置为9E9,表示该轴未激活。也可以将某个连接至外部轴的逻辑轴设置为9E9。如果轴未激活,则不会进行任何运动,也不会检测该轴。

数据项

eax_a

  • 类型:num
  • 说明:用于表示逻辑轴“a”的位置,单位为mm或°。

eax_b

  • 类型:num
  • 说明:用于表示逻辑轴“b”的位置,单位为mm或°。

eax_c

  • 类型:num
  • 说明:用于表示逻辑轴“c”的位置,单位为mm或°。

eax_d

  • 类型:num
  • 说明:用于表示逻辑轴“d”的位置,单位为mm或°。

eax_e

  • 类型:num
  • 说明:用于表示逻辑轴“e”的位置,单位为mm或°。

eax_f

  • 类型:num
  • 说明:用于表示逻辑轴“f”的位置,单位为mm或°。

loaddata

说明

描述负载数据。包括质量,质心位置,力矩和惯性矩等信息。负载数据也是工具数据的一部分。负载数据用于机械臂动力学建模,以便以最佳方式控制机器人运动。

数据项

mass

  • 类型:num
  • 说明:用于表示质量信息,单位为kg

cog

  • 类型:pos
  • 说明:用于表示质心在工具坐标系下的坐标。

aom

  • 类型:orient
  • 说明:用于表示力矩在工具坐标系下的方向。

ix

  • 类型:num
  • 说明:用于表示关于x轴的惯性矩。单位为kgm2kgm^2

iy

  • 类型:num
  • 说明:用于表示关于y轴的惯性矩。单位为kgm2kgm^2

iz

  • 类型:num
  • 说明:用于表示关于z轴的惯性矩。单位为kgm2kgm^2

orient

说明

用于描述方向和旋转。该四元数包含实部w和虚部x,y,z。

数据项

w

  • 类型:num
  • 说明:用于表示四元数的实部。

x

  • 类型:num
  • 说明:用于表示四元素虚部第一项。

y

  • 类型:num
  • 说明:用于表示四元素虚部第二项。

z

  • 类型:num
  • 说明:用于表示四元素虚部第三项。

pos

说明

描述位置坐标(x, y, z)。

数据项

x

  • 类型:num
  • 说明:表示位置的x坐标。

y

  • 类型:num
  • 说明:表示位置的y坐标。

z

  • 类型:num
  • 说明:表示位置的z坐标。

pose

说明

表示坐标系位姿,用于描述一个坐标系相对于另一个坐标系的位移和旋转。

数据项

trans

  • 类型:pos
  • 说明:用于表示坐标系的位置。

rot

  • 类型:orient
  • 说明:用于表示坐标系的方向。

robjoint

说明

描述机械臂各关节的位置。

各关节的位置定义为各关节从标定位置旋转的角度。旋转方向符合右手定则。

数据项

rax_1

  • 类型:num
  • 说明:用于表示轴1相对于标定位置旋转的角度。

rax_2

  • 类型:num
  • 说明:用于表示轴2相对于标定位置旋转的角度。

rax_3

  • 类型:num
  • 说明:用于表示轴3相对于标定位置旋转的角度。

rax_4

  • 类型:num
  • 说明:用于表示轴4相对于标定位置旋转的角度。

rax_5

  • 类型:num
  • 说明:用于表示轴5相对于标定位置旋转的角度。

rax_6

  • 类型:num
  • 说明:用于表示轴6相对于标定位置旋转的角度。

jointtarget

说明

描述机械臂内部轴和外部轴的位置。是执行MoveAbsJ指令时机械臂内部轴和外部轴需要移动到的位置。

数据项

robax

  • 类型:robjoint
  • 说明:用于表示机机械臂内部轴的位置,该位置为相对于标定位置的旋转角度。

extax

  • 类型:extjoint
  • 说明:用于表示外部轴的位置。对于旋转轴,该位置为相对于标定位置的旋转角度。对于线性轴,该位置为相对于标定位置的距离。

robtarget

说明

描述表示机械臂和外部轴的目标位姿。包括目标点的位置、方向和机械臂到达目标点的构型。

数据项

trans

  • 类型:pos
  • 说明:用于表示TCP相对于工件坐标系的x, y, z坐标值,单位为mm。如果没有定义工件坐标系,则该位置是相对于机器人任务坐标系的。

rot

  • 类型:orient
  • 说明:用于表示Tool相对于工件坐标系的方向,使用四元数表示法。如果没有定义工件坐标系,则该方向是相对于机器人任务坐标系的。

robconf

  • 类型:confdata
  • 说明:用于表示机械臂的构型。详见数据confdata。

extax

  • 类型:extjoint
  • 说明:用于表示外部轴的位置。对于旋转轴,该位置为相对于标定位置旋转的角度。对于线性轴,该位置为相对于标定位置的距离。详见数据extjoint。

speeddata

说明

用于描述机械臂和外轴均开始移动时的速率。

速度数据包含TCP的移动速度、重定向的速度和外轴速度。不同速度类型之间会相互影响,以便所有运动同时停止。速度还会受到机械臂性能和运动路径的影响。

数据项

v_tcp

  • 类型:num
  • 说明:用于表示TCP的速度,单位为mm/s 。

v_ori

  • 类型:num
  • 说明:用于表示TCP转向的速度,单位为degrees/s 。

v_leax

  • 类型:num
  • 说明:用于表示外部线性轴的速度,单位为mm/s 。

v_reax

  • 类型:num
  • 说明:用于表示外部旋转轴的速度,单位为degrees/s 。
Namev_tcp(mm/s)v_ori(°/s)v_leax(mm/s)v_reax(°/s)
v5550050001000
v101050050001000
v202050050001000
v303050050001000
v404050050001000
v505050050001000
v606050050001000
v808050050001000
v10010050050001000
v15015050050001000
v20020050050001000
v30030050050001000
v40040050050001000
v50050050050001000
v60060050050001000
v80080050050001000
v1000100050050001000
v1500150050050001000
v2000200050050001000
v3000300050050001000
v4000400050050001000
v5000500050050001000
v6000600050050001000
v7000700050050001000

tooldata

说明

描述工具信息,包括工具中心点(TCP)的位姿和工具负载情况。

如果使用了固定工具,则工具数据首先定义该工具的位姿,然后描述机械臂移动夹具的负载。

工具中心点(TCP)表示工具上的点,该点在机械臂运动时能够满足编程路径和速度。

数据项

robhold

  • 类型:bool
  • 说明:描述工具是否由机器人持有。
    • true: 工具由机器人持有,TCP坐标相对于机器人腕关节坐标系计算。
    • false: 工具固定,TCP坐标相对于任务坐标系计算。

tframe

  • 类型:pose
  • 说明:用于表示工具坐标系和TCP点相对于机械臂腕关节坐标系(tool0)的位置和位姿。

如果定义的是固定工具,即robhold为false, 则tframe的定义相对于机器人任务坐标系。

tload

  • 类型:loaddata
  • 说明:用于表示负载信息。包括质量,质心位置,力矩和惯性矩等信息。详见数据loaddata。

wobjdata

说明

WorkObject data, 描述工件数据,用于计算工件坐标系。工件坐标系由3个坐标系复合而成:

  1. wobjdata所属的机器人任务坐标系
  2. 用户坐标系uframe,有2种可能:一种是由本数据所定义,另一种是由其他机械单元所定义。并且,本数据所定义的uframe的参照坐标系有2种,依赖于robhold.
  3. 物体坐标系oframe

工件坐标系的计算过程如下:

if ufprog == true:
if robhold == false:
使用uframe字段相对于任务坐标系计算用户坐标系
else:
使用uframe字段相对于机器人手腕计算用户坐标系
else:
根据ufmec获取用户坐标系

使用oframe相对于用户坐标系计算工件坐标系

数据项

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

zonedata

说明

描述机械臂在一个编程位置的转向区域。编程位置有两种类型,分别是停止点(stop point)和飞跃点(fly-by point),如果是stop point,则表示机械臂和外部轴必须到达该位置,并且在到达该位置前不会执行下一条指令。如果是fly-by point,则机械臂不会到达该位置,而是在靠近该位置时开始转向,并且在机械臂到达转向区域前程序开始执行下一条指令。转向区域越大,转向越平滑,但转向区域半径不能超过编程位置与前后位置最近距离的1/3,如果超过该范围,机械臂会自动调整该区域大小。

转向区域根据TCP位置到编程位置的距离定义为两个区域,第一个为重新定向区域,称作extended zone,该区域半径为pzone_ori ,第二个为TCP路径区域,称作TCP zone,该区域半径为pzone_tcp。TCP zone大小要小于extended zone,意即TCP不能先于工具方向进入角路径,如果pzone_ori小于pzone_tcp,则会修改pzone_ori,使其与pzone_tcp相等。在TCP到达extended zone区域时开始重新定向但此时TCP继续向编程位置靠近,当TCP到达TCP zone时TCP转入角路径。

extended zone和TCP zone的大小会受到工具方向到编程位置方向的角度的影响,定义该角度值为zone_ori比如从p1到p2, 如果pzone_ori与p1和p2距离的比值大于zone_ori与p1和p2转角的比值,则会减小pzone_ori的值使比值相等。TCP进入角路径的位置也会受到zone_ori的影响,如果pzone_tcp与p1和p2距离的比值大于zone_ori与p1和p2转角的比值,则会减小pzone_tcp的值使比值相等。该现象称为区域缩小。意即,extended zone和TCP zone要保证工具方向转至指定的范围内才进入角路径开始转向。

下面是区域缩小的例子,路径从P1经过P2到P3,P1和P2的距离len为200mm,P1和P2的角度agl为50°,pzone_tcp = 60mm, pzone_ori = 90mm,zone_ori = 10°,

  • pzone_tcp/len = 30%
  • pzone_ori/len = 45%
  • zone_ori/agl = 20%

则会调整pzone_tcp 和pzone_ori 的值,使比值都为20%。

数据项

finep

  • 类型:bool
  • 说明:用于表示编程位置是停止点(fine point)还是飞跃点(fly-by point)

true表示是fine point,程序在机械臂到达停止点之前不会继续执行。

false表示是fly-by point,程序在机械臂到达zone之前会继续执行100ms。

如果让机械臂到达某个位置执行夹取或其他动作,一般将该位置设置为fine point。

pzone_tcp

  • 类型:num
  • 说明:用于表示TCP zone半径,单位为mm。

pzone_ori

  • 类型:num
  • 说明:用于表示extern zone的半径,单位为mm。该值应小于编程位置与前后位置最近距离的1/3,大于pzone_tcp, 若该值过小则将其自动设置为与pzone_tcp 相等。

pzone_eax

  • 类型:num
  • 说明:带外部轴的extern zone半径,单位为mm。该值应小于编程位置与前后位置最近距离的1/3,大于pzone_tcp, 若该值过小则将其自动设置为与pzone_tcp相等。

zone_ori

  • 类型:num
  • 说明:用于表示重定向区域的大小,单位为degrees。如果机械臂夹持着工件,则该值表示工件旋转的角度。

zone_leax

  • 类型:num
  • 说明:带线性外轴的重定向区域大小,单位为mm。

zone_reax

  • 类型:num
  • 说明:带旋转外轴的重定向区域大小,单位为degrees 。
Namepzone_tcp(mm)pzone_ori(mm)pzone_eax(mm)zone_ori(°)zone_leax(mm)zone_reax(°)
fine000000
z00.30.30.30.030.30.03
z11110.110.1
z55880.880.8
z101015151.5151.5
z151523232.3232.3
z202030303.0303.0
z303045454.5454.5
z404060606.0606.0
z505075757.5757.5
z606090909.0909.0
z80801201201212012
z1001001501501515015
z1501502252252322523
z2002003003003030030