EC機器人坐標偏移
1. 簡介
在實際應用中有很多地方,需要很多偏移位置,如:相機發(fā)過來的相對位置,進行位置相加等
2. 操作流程
JBI程序方法一
指令介紹

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

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

(2)計算位姿偏移

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

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