機(jī)器人坐標(biāo)系 基坐標(biāo)系
拿6軸機(jī)器人舉例: 第一軸的旋轉(zhuǎn)軸 一般都會(huì)定義機(jī)器人第一軸的旋轉(zhuǎn)軸為基坐標(biāo)系Z軸,旋轉(zhuǎn)中心即是坐標(biāo)系原點(diǎn),,X和Y的方向是的電機(jī)零點(diǎn)確定,,所以只要你不更換電機(jī)的零點(diǎn)和機(jī)械結(jié)構(gòu),單個(gè)機(jī)器人里這個(gè)基坐標(biāo)系是永遠(yuǎn)不會(huì)變的,! 機(jī)器人外部軸 有一種情況會(huì)重新設(shè)定新(基)坐標(biāo)系,,新坐標(biāo)系為世界坐標(biāo)系(每家不同的叫法,你可以認(rèn)為就是一個(gè)基坐標(biāo)系),,那就是機(jī)器人加外部行走軸,,或外部旋轉(zhuǎn)軸,用行走軸舉例,,這種情況會(huì)把基坐標(biāo)設(shè)在行走軸的零點(diǎn)位置,,如果有多個(gè)行走軸,那就把基坐標(biāo)設(shè)定到最底層那根軸的零點(diǎn)處,所以機(jī)器人配置外部軸的原理就是測(cè)量一些機(jī)械參數(shù),,把機(jī)器人1軸上的基坐標(biāo)系變換到外部行走軸上,,這種變換也叫D-H變換,下面講工具坐標(biāo)系時(shí)候詳細(xì)說明,。 用戶坐標(biāo)系
用戶坐標(biāo)系 先說用戶坐標(biāo)系,,用戶坐標(biāo)系的本質(zhì)是把(基)坐標(biāo)系旋轉(zhuǎn)偏移到工件上,,是為了方便編程,讓機(jī)器人的移動(dòng)方向和工件表面的方向一致,!例如,,有個(gè)傾斜45度的工件表面,如果你用基坐標(biāo)系,,機(jī)器人就是沿著基座系方向行走,,橫平豎直的,很難沿著45度的表面行走,,對(duì)編程來說難操作,。所以就通過齊次變換偏移旋轉(zhuǎn)(基)坐標(biāo)系,得到新的用戶坐標(biāo)系! 其次變換旋轉(zhuǎn)算法 齊次變換平移加旋轉(zhuǎn)算法 齊次變換后得到新的用戶坐標(biāo)系 工具坐標(biāo)系
工具坐標(biāo)系 我們常說的機(jī)器人在什么位置,,坐標(biāo)數(shù)據(jù)是多少,?實(shí)際就是工具坐標(biāo)系(TCP)原點(diǎn)在基坐標(biāo)系或者用戶坐標(biāo)系下的X、Y,、Z,、A、B,、C的數(shù)值,,X、Y,、Z就是坐標(biāo)系的三個(gè)坐標(biāo)軸,,A、B,、C是以工具坐標(biāo)系原點(diǎn)(TCP)為旋轉(zhuǎn)中心,,繞坐標(biāo)系X,繞Y,,繞Z旋轉(zhuǎn)的角度數(shù)據(jù)(有的機(jī)器人,比如KUKA旋轉(zhuǎn)是A,、B、C對(duì)應(yīng)繞Z,,繞Y,,繞X;標(biāo)準(zhǔn)歐拉角也是ZYX這樣旋轉(zhuǎn)的,。),,這里注意這個(gè)旋轉(zhuǎn)中心,機(jī)器人都用歐拉角,,它的旋轉(zhuǎn)中心是TCP,,不是繞著基坐標(biāo)或者用戶坐標(biāo)的軸旋轉(zhuǎn),這里說的繞X旋轉(zhuǎn),,其實(shí)是把坐標(biāo)系平移到TCP位置,,再繞坐標(biāo)系X旋轉(zhuǎn)!懂向量的就很容易理解為什么這樣了,,因?yàn)檗D(zhuǎn)換計(jì)算都是單位向量矩陣的形式,! 怎么得到TCP的呢?其實(shí)也和不會(huì)變的基坐標(biāo)有很大關(guān)系,確定了基坐標(biāo),,基坐標(biāo)的Z軸可以想象成一軸電機(jī)的旋轉(zhuǎn)軸,,一軸電機(jī)的零點(diǎn)就可以確定X和Y方向,這樣就把一軸的關(guān)節(jié)坐標(biāo)數(shù)據(jù)轉(zhuǎn)換成笛卡爾XYZ坐標(biāo)系的形式,!同樣的道理,,二軸的電機(jī)相對(duì)于一軸機(jī)械位置和零點(diǎn)也是固定的,通過機(jī)械參數(shù)就可以把二軸的關(guān)節(jié)也轉(zhuǎn)換成坐標(biāo)系形式,,三軸相對(duì)于二軸,,四軸相對(duì)于三軸,五軸相對(duì)于四軸,,六軸相對(duì)于五軸,都是有相對(duì)位置和零點(diǎn)固定不變的情況,,這個(gè)就是6軸串聯(lián)機(jī)器人,,這樣一軸一軸轉(zhuǎn)換到六軸,六軸再轉(zhuǎn)換到工具(焊槍或抓手)上,,得出的坐標(biāo)系就是相對(duì)于六軸固定不變的工具坐標(biāo)系也就是TCP,,如下圖。 TCP計(jì)算圖示 關(guān)節(jié)坐標(biāo)系關(guān)節(jié)坐標(biāo)系 這個(gè)坐標(biāo)系 很簡單,,就是六個(gè)電機(jī)的旋轉(zhuǎn)角度,!在關(guān)節(jié)坐標(biāo)下,我們通過改變六個(gè)電機(jī)的數(shù)據(jù),,單獨(dú)動(dòng)作每個(gè)關(guān)節(jié),!實(shí)際它的最大用處是逆運(yùn)算,也就是我們用用戶坐標(biāo)系或者基坐標(biāo)系加TCP運(yùn)動(dòng)機(jī)器人的時(shí)候,,機(jī)器人內(nèi)部要把坐標(biāo)系的數(shù)據(jù),,反推成六個(gè)關(guān)節(jié)電機(jī)的數(shù)據(jù),這個(gè)非常復(fù)雜,,而且解還不是唯一的(我上一篇里講的機(jī)器人姿態(tài)參數(shù)),,這里就不細(xì)說了,以后有空單獨(dú)講,!
機(jī)器人還有一些坐標(biāo)系相關(guān)的延伸應(yīng)用
我講個(gè)外部TCP的程序原理,,其它的應(yīng)用多數(shù)是標(biāo)準(zhǔn)應(yīng)用,,不需要更改啥,但是外部TCP用的比較多,,有的需要在標(biāo)準(zhǔn)外部TCP的程序基礎(chǔ)上做些改進(jìn),,以滿足現(xiàn)場需求,! 外部TCP 啥是外部TCP呢?我們前面所說的TCP(工具坐標(biāo)系),,可以理解成機(jī)器人的旋轉(zhuǎn)中心,,你拿著焊槍的時(shí)候,把TCP定義在槍尖,,機(jī)器人旋轉(zhuǎn)就會(huì)繞著槍尖轉(zhuǎn),,機(jī)器人角度動(dòng)作而槍尖位置不動(dòng),這樣對(duì)于焊接需要拐彎的時(shí)候特別有用,,焊槍拐彎了,,但是焊絲還在焊接位置,不會(huì)跑偏,! 外部TCP正好是和TCP相反的操作,,如果焊槍沒有裝在機(jī)器人上,機(jī)器人是拿著工件去焊接的,,那你把機(jī)器人的旋轉(zhuǎn)中心定義在哪里好呢,,定義在哪里都不行,如果定義了機(jī)器人只能繞著定義那個(gè)TCP位置旋轉(zhuǎn),,但是焊接軌跡是移動(dòng)的,,移動(dòng)到其它位置你再旋轉(zhuǎn),機(jī)器人固定的焊槍就不在焊接軌跡上了,,嚴(yán)重的會(huì)碰撞,! 外部TCP的算法原理是這樣的: 比如我知道第一個(gè)焊接點(diǎn)位,根據(jù)點(diǎn)位的坐標(biāo)齊次變換算出一個(gè)TCP,,TCP和這個(gè)焊接點(diǎn)位重合,。 焊接移動(dòng)過程中的下一個(gè)點(diǎn)位坐標(biāo)換算出新的TCP,和當(dāng)前點(diǎn)位重合,。這樣每個(gè)點(diǎn)位自動(dòng)生成一個(gè)TCP,,比如焊接100mm長的焊縫,機(jī)器人內(nèi)部算法把這100mm,,分割成10000份,,每份都有個(gè)TCP,這樣就實(shí)現(xiàn)了TCP的動(dòng)態(tài)賦值,,也就是外部TCP的原理了,! 總結(jié)一下: 基座標(biāo)是固定不動(dòng)的,可以換算出用戶坐標(biāo)和工具坐標(biāo),;其它的外部TCP屬于擴(kuò)展應(yīng)用,,離不開前面三種坐標(biāo)系! |
|