EC機(jī)器人坐標(biāo)偏移
1. 簡(jiǎn)介
在實(shí)際應(yīng)用中有很多地方,需要很多偏移位置,如:相機(jī)發(fā)過(guò)來(lái)的相對(duì)位置,進(jìn)行位置相加等
2. 操作流程
JBI程序方法一
指令介紹

程序介紹
①沿著直角坐標(biāo)系偏移,P變量存儲(chǔ)的是關(guān)節(jié)坐標(biāo),如果我們想進(jìn)行XYZ方向進(jìn)行加減,則需要指定直角坐標(biāo)系,則
P002(0),P002(1),P002(2),P003(3),P004(4),P005(5)分別表示機(jī)器人的X,Y,Z,RX,RY,RZ。下面是以P1為基準(zhǔn),Z方向偏移5mm。
SET P002 P001
// 將 P002 設(shè)為 P001 的值
SET D001 5
// 將 D001 設(shè)為 5
CCOOD CART
// 設(shè)置坐標(biāo)系為笛卡爾坐標(biāo)系
ADD P002(2) D001
// 將 D001 的值加到 P002 的第二個(gè)元素上
MOVL P002 V=100MM/S CR=0.000MM
// 以 100 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 P002 的位置
②關(guān)節(jié)進(jìn)行偏移,則P002(0),P002(1),P002(2),P003(3),P004(4),P005(5)分別表示機(jī)器人的J1,J2,J3,J4,J5,J6。下圖是以P1為基準(zhǔn),3軸偏移5度。
SET P002 P001
// 將 P002 設(shè)為 P001 的值
SET D001 5
// 將 D001 設(shè)為 5
CCOOD JOINT
// 設(shè)置坐標(biāo)系為關(guān)節(jié)坐標(biāo)系
ADD P002(2) D001
// 將 D001 的值加到 P002 的第二個(gè)元素上
MOVL P002 V=100MM/S CR=0.000MM
// 以 100 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 P002 的位置
③沿著工具坐標(biāo)系進(jìn)行偏移,則P002(0),P002(1),P002(2),P003(3),P004(4),P005(5)分別表示機(jī)器人沿著工具坐標(biāo)方向的X,Y,Z,RX,RY,RZ。下圖是以P1為基準(zhǔn),Z沿著工具1的Z方向偏移5mm。
SET P002 P001
// 將 P002 設(shè)為 P001 的值
SET D001 5
// 將 D001 設(shè)為 5
CCOOD TOOL#(0)
// 設(shè)置坐標(biāo)系為工具坐標(biāo)系0
ADD P002(2) D001
// 將 D001 的值加到 P002 的第二個(gè)元素上
MOVL P002 V=100MM/S CR=0.000MM
// 以 100 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 P002 的位置
④沿著用戶坐標(biāo)系進(jìn)行偏移,則P002(0),P002(1),P002(2),P003(3),P004(4),P005(5)分別表示機(jī)器人沿著用戶坐標(biāo)方向的X,Y,Z,RX,RY,RZ。下圖是以P1為基準(zhǔn),Z沿著用戶1的Z方向偏移5mm。
SET P002 P001
// 將 P002 設(shè)為 P001 的值
SET D001 5
// 將 D001 設(shè)為 5
CCOOD USER#(0)
// 設(shè)置坐標(biāo)系為用戶坐標(biāo)系0
ADD P002(2) D001
// 將 D001 的值加到 P002 的第二個(gè)元素上
MOVL P002 V=100MM/S CR=0.000MM
// 以 100 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 P002 的位置
注:CCOOD目前只能配合P變量使用,無(wú)法搭配V變量,如CCOOD USER#(1) ADD V002(2) 5,這個(gè)指令無(wú)法沿著用戶坐標(biāo)系進(jìn)行偏移。
JBI程序方法二
指令介紹

程序介紹
①沿著工具坐標(biāo)系偏移,利用右乘。新姿態(tài)在原有的姿態(tài)的基礎(chǔ)上右乘,相當(dāng)于繞當(dāng)前TCP的坐標(biāo)系旋轉(zhuǎn)。下圖先設(shè)定了當(dāng)前運(yùn)行的工具號(hào)1,所以計(jì)算出來(lái)的新V1是以V1為基準(zhǔn)繞著工具1的TCP的Z方向偏移5mm。
// 設(shè)置當(dāng)前運(yùn)行工具號(hào)1
SETTOOLNUMBER TF=1
// 設(shè)置當(dāng)前使用的工具號(hào)為1
SETPOSE V002 0,0,5,0,0,0
// 設(shè)置變量 V002 的姿態(tài),其中平移量為 (0,0,5) 和旋轉(zhuǎn)量為 (0,0,0)
POSEMUL V001 V002
// 將姿態(tài) V002 作為偏移量應(yīng)用到 V001 上,結(jié)果存儲(chǔ)在 V001 中
MOVL V001 V=200MM/S CR=0.000MM
// 以 200 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 V001 的位置
②沿著基坐標(biāo)偏移,利用左乘。新姿態(tài)在原有的姿態(tài)的基礎(chǔ)上左乘,相當(dāng)于繞固定坐標(biāo)系(基座標(biāo))旋轉(zhuǎn)。
SETPOSE V002 0,0,5,0,0,0
// 設(shè)置變量 V002 的姿態(tài),其中平移量為 (0,0,5) 和旋轉(zhuǎn)量為 (0,0,0)
// V2 是偏移量,機(jī)器人左乘,繞基坐標(biāo)系進(jìn)行旋轉(zhuǎn)偏移
POSEMUL V002 V001
// 將姿態(tài) V001 作為偏移量應(yīng)用到 V002 上,結(jié)果存儲(chǔ)在 V002 中
MOVL V002 V=200MM/S CR=0.000MM
// 以 200 mm/s 的速度和 0.000 mm 的拐角半徑直線移動(dòng)到 V002 的位置
注:因?yàn)閂變量只能保存基坐標(biāo)系下的值,所以機(jī)器人只能沿著基坐標(biāo)系進(jìn)行偏移.
JBI程序第三種方法
指令介紹
SETPOSE V000 110.2887407,348.4875831,302.4088640,3.1119136,0.0000069,-0.5935836 USER#(0)
把機(jī)器人當(dāng)前位姿基于用戶坐標(biāo)系的空間坐標(biāo)值的形式保存在V0變量中(注意:需要選中用戶坐標(biāo)系,如不選擇默認(rèn)基座標(biāo))
ADD V000(0) 50
基于V0的X方向,加50mm
MOVEL V=200.0MM/S CR=0.0MM A=100MM/S2 D=100MM/S2 USER#(0) V000
基于用戶坐標(biāo)系,運(yùn)行到V0位置。注意:此點(diǎn)位需使用MOVEL,并且選中對(duì)應(yīng)的用戶坐標(biāo)系
程序
SETPOSE V000 110.2887407,348.4875831,302.4088640,3.1119136,0.0000069,-0.5935836 USER#(0)
//把機(jī)器人當(dāng)前位姿基于用戶坐標(biāo)系的空間坐標(biāo)值的形式保存在V0變量中(注意:需要選中用戶坐標(biāo)系)
ADD V000(0) 50
//基于V0的X方向,加50mm
MOVEL V=200.0MM/S CR=0.0MM A=100MM/S2 D=100MM/S2 USER#(0) V000
//基于用戶坐標(biāo)系,運(yùn)行到V0位置。
lua程序方法
指令介紹
①變量基于基座標(biāo)偏移
(1)獲取全局變量

(2)計(jì)算位姿偏移

(3)獲取用戶坐標(biāo)系位姿

程序介紹
基于基座坐標(biāo)系偏移
腳本參考
-- 首先將當(dāng)前位姿保存到V變量里面
X,Y,Z,RX,RY,RZ=get_global_variable("V1")
-- 獲取全局變量 "V1" 的值,并將其賦值給 X, Y, Z, RX, RY, RZ
-- 設(shè)置變量至 V2
set_global_variable("V2",X+10,Y,Z+10,RX,RY,RZ)
-- 將偏移數(shù)值的值設(shè)置為全局變量 "V2"
基于工具坐標(biāo)系偏移
腳本參考
-- 首先將當(dāng)前位姿保存到V變量里面
X,Y,Z,RX,RY,RZ=get_global_variable("V1")
-- 獲取全局變量 "V1" 的值,并將其賦值給 X, Y, Z, RX, RY, RZ
-- 計(jì)算出V1在工具坐標(biāo)系1偏移 {50,0,0,0,0,0} 的值
v2_tool=pose_mul(v1,{50,0,0,0,0,0})
-- 計(jì)算出 v1 在工具坐標(biāo)系中偏移 {50,0,0,0,0,0} 后的值,并將結(jié)果存儲(chǔ)在 v2_tool 中
-- 設(shè)置變量至 p2
set_global_variable("V2",X,Y,Z,RX,RY,RZ)
-- 將偏移數(shù)值的值設(shè)置為全局變量 "V2"
基于用戶坐標(biāo)系偏移
腳本參考
-- 首先將當(dāng)前位姿保存到V變量里面
X,Y,Z,RX,RY,RZ=get_global_variable("V1")
-- 獲取全局變量 "V1" 的值,并將其賦值給 X, Y, Z, RX, RY, RZ
user1=get_user_frame(1)
-- 獲取用戶坐標(biāo)系1的值并賦值給 user1
user1_v1 = convert_pose_from_cart_to_user({X,Y,Z,RX,RY,RZ},user1)
-- 將笛卡爾坐標(biāo) {X, Y, Z, RX, RY, RZ} 轉(zhuǎn)換到用戶坐標(biāo)系 user1,結(jié)果存儲(chǔ)在 user1_v1 中
user1_v2 = pose_mul({50,0,0,0,0,0},user1_v1)
-- 計(jì)算出 user1_v1 在用戶坐標(biāo)系中偏移 {50,0,0,0,0,0} 后的值,并將結(jié)果存儲(chǔ)在 user1_v2 中
v2 = convert_pose_from_user_to_cart(user1_v2,user1)
-- 將 user1_v2 從用戶坐標(biāo)系轉(zhuǎn)換回笛卡爾坐標(biāo)系,結(jié)果存儲(chǔ)在 v2 中
set_global_variable("V2",v2[1],v2[2],v2[3],v2[4],v2[5],v2[6])
-- 將 v2 的值設(shè)置為全局變量 "V2"