CS機(jī)器人坐標(biāo)系偏移(用戶(hù),基座,工具)
1. 簡(jiǎn)介
機(jī)器人的偏移功能是指對(duì)于程序中的已經(jīng)示教好的軌跡進(jìn)行位置或姿態(tài)上的變化。以滿(mǎn)足用戶(hù)對(duì)于某些使用場(chǎng)景的需求。三個(gè)關(guān)鍵點(diǎn):位置、姿態(tài)和變化。其中的"位置"指的是點(diǎn)位或者軌跡在參考坐標(biāo)系的三維空間中所在處。姿態(tài)是機(jī)器人末端控制點(diǎn)繞參考坐標(biāo)系的X、Y、Z軸的一個(gè)旋轉(zhuǎn)角度。而變化是我們依據(jù)什么參考坐標(biāo)系(用戶(hù)/基座/工具)和規(guī)則進(jìn)行空間位置的矢量移動(dòng)和TCP點(diǎn)的繞坐標(biāo)系旋轉(zhuǎn)。
2.坐標(biāo)系介紹與偏移方法
2.1基座標(biāo)
基坐標(biāo)系是以機(jī)器人安裝基座為基準(zhǔn)、用來(lái)描述機(jī)器人本體運(yùn)動(dòng)的直角坐標(biāo)系。 任何機(jī)器人都離不開(kāi)基坐標(biāo)系,也是機(jī)器人TCP在三維空間運(yùn)動(dòng)空間所必須的基本坐標(biāo)系(面對(duì)機(jī)器人正前后:X軸,左右:Y軸,上下:Z軸),坐標(biāo)系遵守右手準(zhǔn)則
艾利特機(jī)器人基座標(biāo)系位置方向圖

2.1.1基座標(biāo)偏移
2.1.1.1示例1
先添加移動(dòng)指令坐標(biāo)系改成基座標(biāo)系,和當(dāng)前的使用的tcp。

添加偏移的函數(shù)pose_add

選擇用路點(diǎn)1作為偏移的基準(zhǔn),第二個(gè)參數(shù)內(nèi)的z方向偏移+100mm。
艾利特機(jī)器人讀寫(xiě)坐標(biāo)系值為國(guó)際通用單位(x,y,z是米/m,rx,ry,rz是弧度/rad)。
圖中列表中數(shù)據(jù)得代表得順序是[x,y,z,rx,ry,rz]
[0,0,0.1,0,0,0]=z正方向增加0.1米得偏移量。
只有X,Y,Z,能直接加減偏移,Rx,Ry,Rz是不能直接加減偏移的。使用時(shí)要注意此項(xiàng)。

在添加一個(gè)可變位置,修改成我們偏移計(jì)算過(guò)后得offset_point,就到達(dá)偏移后得位置。


2.1.1.2示例2
可以直接使用路點(diǎn)_1的值進(jìn)行加減賦值給offset_point,實(shí)現(xiàn)點(diǎn)位偏移。
只有X,Y,Z,RZ能直接加減偏移,Rx,Ry是不能直接加減偏移的。使用時(shí)要注意此項(xiàng)。

2.2用戶(hù)坐標(biāo)系
用戶(hù)坐標(biāo)系是用戶(hù)對(duì)每個(gè)作業(yè)空間進(jìn)行自定義的直角坐標(biāo)系,它用于的示教和執(zhí)行、位置補(bǔ)償指令的執(zhí)行等。
2.2.1用戶(hù)坐標(biāo)偏移
只有X,Y,Z,RZ,四個(gè)方向能直接加減偏移,Rx,Ry是不能直接加減偏移的。使用時(shí)要注意此項(xiàng)。
建立新的用戶(hù)坐標(biāo)系

根據(jù)作業(yè)空間的平面來(lái)示教三點(diǎn)建立用戶(hù)坐標(biāo)系。先示教原點(diǎn),再示教X,Y,的正方向自。在三維坐標(biāo)系中,如果已知 X 和 Y 軸的方向,可以使用右手定則確定 Z 軸的正方向。
用戶(hù)坐標(biāo)系的偏移流程-把基座標(biāo)系下存儲(chǔ)的點(diǎn)位數(shù)據(jù)轉(zhuǎn)換成用戶(hù)坐標(biāo)系下的數(shù)據(jù)進(jìn)行加減后-再轉(zhuǎn)換回基座標(biāo)系下運(yùn)行,這樣可以再添加移動(dòng)指令時(shí)配置只選擇基坐標(biāo)系方便后期維護(hù)。
以下是操作流程
2.2.1.1示例1
編寫(xiě)以下腳本代碼把偏移功能封裝成函數(shù)。
def Offs(p,x,y,z,user=[0,0,0,0,0,0]):
# 傳入的p是基于base坐標(biāo)系的
out = p.copy()
out_in_user = pose_trans(pose_inv(user),out)
# 得到在用戶(hù)坐標(biāo)系下的值
out_in_user[0] = out_in_user[0]+x
out_in_user[1] = out_in_user[1]+y
out_in_user[2] = out_in_user[2]+z
out = pose_trans(user,out_in_user)
# 返回的是計(jì)算后,轉(zhuǎn)化回base坐標(biāo)系下的值
return out

按照以下步驟填寫(xiě)函數(shù)內(nèi)參Offs(偏移基準(zhǔn)點(diǎn),x,y,z,rz,用戶(hù)坐標(biāo)系)
返回值就是再用戶(hù)坐標(biāo)系下的進(jìn)行偏移后的位置,再轉(zhuǎn)換回基座標(biāo)來(lái)運(yùn)行點(diǎn)位。

2.2.1.2示例2
直接偏移用戶(hù)坐標(biāo)系,這樣再用戶(hù)坐標(biāo)系上的所有點(diǎn)也會(huì)按照偏移的方向移動(dòng)。使用pose_trans函數(shù)。

2.3工具坐標(biāo)系
工具坐標(biāo)系是機(jī)器人系統(tǒng)對(duì)其位置的描述和控制是以機(jī)器人的工具TCP(tool center point)為基準(zhǔn)的,為機(jī)器人所裝工具建立工具坐標(biāo)系,可以將機(jī)器人的控制點(diǎn)轉(zhuǎn)移到工具末端,方便手動(dòng)操縱和編程調(diào)試。
默認(rèn)工具坐標(biāo)系得位置

2.3.1工具坐標(biāo)系偏移
2.3.1.1示例1
工具坐標(biāo)系偏移可以直接使用 函數(shù)來(lái)偏移x,y,z,rx,ry,rz
如下圖

2.3.1.2示例2
任務(wù)里基本指令自帶了方向這個(gè)指令,可以實(shí)現(xiàn)單方向的從當(dāng)前位置進(jìn)行偏移距離,相比其他偏移方式更為簡(jiǎn)單,操作步驟如下圖


3. 常見(jiàn)問(wèn)題
3.1在基坐標(biāo)和用戶(hù)坐標(biāo)系下,只能加減x,y,z,rz四個(gè)數(shù)據(jù)。
3.2在工具坐標(biāo)系是可以對(duì)六個(gè)數(shù)據(jù)進(jìn)行加減的
3.3讀寫(xiě)坐標(biāo)系的偏移值要注意數(shù)字的單位(x,y,z米/m,rx,ry,rz弧度/rad)
3.4要注意偏移后的點(diǎn)位數(shù)據(jù)是在那個(gè)坐標(biāo)系下,與移動(dòng)指令配置中的是否相同。