跟著智通培訓(xùn)黃老師一起探索ABB機(jī)器人數(shù)據(jù)類型的秘密!
? ?智通機(jī)器人培訓(xùn)黃老師最近收到一條留言,說ABB機(jī)器人數(shù)據(jù)類型就好像“一條運(yùn)動(dòng)指令引發(fā)的血案”,因?yàn)橥耆珱]想到一條簡(jiǎn)單的運(yùn)動(dòng)指令背后居然隱藏著這么多值得思考的問題,“劇情”撲簌迷離、跌宕起伏。既然如此,那我們就跟著黃老師回到案發(fā)現(xiàn)場(chǎng),探索蛛絲馬跡吧!
首先我們先來解答以下問題:
(**)對(duì)于下圖中機(jī)器人所示姿態(tài),cfx的值應(yīng)該是多少?
這個(gè)問題需要結(jié)合關(guān)于cfx值的說明的表格來回答。
在上圖中,機(jī)器人的腕中心,相對(duì)于軸1的軸線,是在前方的位置;腕中心相對(duì)于下臂軸線,是在前方的位置;而軸5處于負(fù)數(shù)角度范圍。將機(jī)器人腕中心相對(duì)位置與表中所述情況對(duì)比,可知上圖所示機(jī)器人姿態(tài),其cfx值應(yīng)為1。
以下給出了cfx為不同值時(shí)的機(jī)器人姿態(tài)示意:
接下來再解答以下問題:
(4)為什么在【程序數(shù)據(jù)】頁面里對(duì)P10進(jìn)行了【修改位置】操作,執(zhí)行指令語句時(shí)機(jī)器人卻無法運(yùn)動(dòng)到示教的目標(biāo)位置呢?
大家都知道,當(dāng)手動(dòng)操縱頁面當(dāng)前所選擇的工具坐標(biāo)系、工件坐標(biāo)系與程序編輯器頁面中運(yùn)動(dòng)指令語句中所指定的工具坐標(biāo)系、工件坐標(biāo)系不完全相同時(shí),是無法在程序編輯器頁面對(duì)運(yùn)動(dòng)指令的目標(biāo)點(diǎn)位進(jìn)行【修改位置】操作的,否則系統(tǒng)會(huì)提示下圖所示的的錯(cuò)誤。
但是當(dāng)你在程序數(shù)據(jù)頁面中對(duì)位置數(shù)據(jù)進(jìn)行【修改位置】操作時(shí)則沒有這樣的限制,因?yàn)槌绦驍?shù)據(jù)頁面中沒有指定該位置數(shù)據(jù)的參考坐標(biāo)系。當(dāng)你在程序數(shù)據(jù)頁面中對(duì)位置數(shù)據(jù)進(jìn)行【修改位置】操作時(shí),實(shí)際上是告訴機(jī)器人控制系統(tǒng),重新計(jì)算手動(dòng)操作頁面所選擇的工具的TCP在所選擇的參考工件坐標(biāo)系下的組件值,并將結(jié)果存入位置數(shù)據(jù)中。計(jì)算坐標(biāo)值、工具姿態(tài)時(shí)所使用的參考坐標(biāo)系,與運(yùn)動(dòng)指令語句中指定的參考坐標(biāo)系不一致,往往會(huì)導(dǎo)致機(jī)器人運(yùn)動(dòng)到非你所期望的空間位置上去。
接下來智通培訓(xùn)黃老師再為您解答如下問題:
(5)位置數(shù)據(jù)P10是以坐標(biāo)值的形式來描述目標(biāo)位置的,那它是以什么坐標(biāo)系為參考坐標(biāo)系的呢?
我們知道,robotarget數(shù)據(jù)類型由:trans、rot、robconf、extax四個(gè)組件構(gòu)成的,它們分別存儲(chǔ)的是笛卡爾空間坐標(biāo)值、工具姿態(tài)、軸配置、外軸位置,并沒有哪一個(gè)組件記錄了參考坐標(biāo)系。所以本題的正確答案是:robotarget型數(shù)據(jù)P10,其本身并不指定參考坐標(biāo)系,當(dāng)對(duì)它進(jìn)行【修改位置】操作時(shí),以手動(dòng)操作頁面所選擇的工具坐標(biāo)系和工件坐標(biāo)系為參考坐標(biāo)系,當(dāng)它被放在運(yùn)動(dòng)指令語句中作為運(yùn)動(dòng)指令的目標(biāo)點(diǎn)位時(shí),以運(yùn)動(dòng)指令所指定工具坐標(biāo)系工件坐標(biāo)系為參考坐標(biāo)系。當(dāng)運(yùn)動(dòng)指令語句中沒有顯式指定工件坐標(biāo)系時(shí),是默認(rèn)以wobj0為編程工件坐標(biāo)系,如果需要指定其它工件坐標(biāo)系為指令語句的編程坐標(biāo)系,則需啟用運(yùn)動(dòng)指令的[\wobjdata]可選變?cè)?/span>
wobj0的數(shù)據(jù)類型是wobjdata(工件數(shù)據(jù)),它由robhold、ufprog、ufmec、uframe、oframe共5個(gè)組件構(gòu)成,其各個(gè)組件的作用如下:
(1)robhold組件? 表明機(jī)器人工作時(shí)工件是否是被機(jī)器人末端所夾持,true值表示機(jī)器人夾持工件,false值表示機(jī)器人夾持工具。
(2)ufprog組件? 表明該工件坐標(biāo)系是否會(huì)隨著其它聯(lián)動(dòng)機(jī)械單元而移動(dòng),true值表示該工件坐標(biāo)系將不會(huì)伴隨其它機(jī)械單元聯(lián)動(dòng),false值表示該工件坐標(biāo)系將會(huì)伴隨其它機(jī)械單元聯(lián)動(dòng)。
(3)ufmec組件? 當(dāng)ufprog組件值為true時(shí),該組件值不起作用;當(dāng)ufprog組件值為falses時(shí),該組件值指明工件坐標(biāo)系將伴隨聯(lián)動(dòng)的機(jī)械單元的名稱。
(4)uframe組件? ABB機(jī)器人的工件坐標(biāo)系其實(shí)是由用戶坐標(biāo)系和目標(biāo)坐標(biāo)系耦合之后的結(jié)果,uframe組件記錄了用戶坐標(biāo)與wobjo坐標(biāo)系的相對(duì)位置關(guān)系。使用目標(biāo)方法定義工件坐標(biāo)系時(shí),該組件的值將會(huì)被重新計(jì)算。
(5)oframe組件 ABB機(jī)器人的工件坐標(biāo)系其實(shí)是由用戶坐標(biāo)系和目標(biāo)坐標(biāo)系耦合之后的結(jié)果,uframe組件記錄了目標(biāo)坐標(biāo)系與用戶坐標(biāo)系的相對(duì)位置關(guān)系。使用目標(biāo)方法定義工件坐標(biāo)系時(shí),該組件的值將會(huì)被重新計(jì)算。
最后解答下面的問題:
在指令語句中tool0,一方面是提供了目標(biāo)點(diǎn)位的工具參考坐標(biāo)系,讓運(yùn)動(dòng)指令語句中位置數(shù)據(jù)的參考坐標(biāo)系明確;另一方面是向機(jī)器人控制系統(tǒng)提供了工具的重量、重心、慣性矩等物理屬性,讓機(jī)器人控制系統(tǒng)能夠精確的計(jì)算機(jī)器人伺服電機(jī)的工作電流和需要輸出的力矩。
我們假設(shè)運(yùn)動(dòng)指令語句中的P10的聲明語句如下所示,并以此來說明tooldata在運(yùn)動(dòng)指令語句中的作用。
運(yùn)動(dòng)指令語句中的tool0,表明P10聲明語句中的笛卡爾坐標(biāo)值[500,0,800]描述的是執(zhí)行完成該運(yùn)動(dòng)指令時(shí),工具tool0的tcp在參考工件坐標(biāo)系下的空間坐標(biāo)值;也表明P10聲明語句中四元數(shù)[1,0,0,0]描述的是完成運(yùn)動(dòng)指令時(shí)tool0工具坐標(biāo)系的軸方位。四元素用于描述坐標(biāo)系的姿態(tài),不易直觀感受到一組四元數(shù)值表達(dá)了怎樣的姿態(tài),可以通過RAPID編程語言所提供的EulerZYX函數(shù)將四元數(shù)轉(zhuǎn)變?yōu)闅W拉角旋轉(zhuǎn)角度,在示教器手動(dòng)操縱頁面也可以選擇以何種方式來顯示工具坐標(biāo)系的姿態(tài)。
tool0的數(shù)據(jù)類型是tooldata(工具數(shù)據(jù)),它由robhold、tframe、tload共3個(gè)組件構(gòu)成,其各個(gè)組件的作用如下:
(1)robhold組件? 表明機(jī)器人工作時(shí)工具是否被機(jī)器人末端所夾持,ture值表示機(jī)器人夾持工具,false值表示機(jī)器人不夾持工具。
(2)tframe組件? 記錄該工具的工件坐標(biāo)系屬性,表明了該工具坐標(biāo)系與tool0的相對(duì)位置關(guān)系。
(3)tload組件? ?記錄該工具的重量、重心位置,力矩慣性矩軸方位以及圍繞力矩慣性軸的慣性矩。