天天看點

機器人坐标系用法和算法原理

作者:世界先進制造技術論壇

機器人都有一個不會變的坐标系,叫基坐标系或世界坐标系(每家叫法不同,原理一樣)。

基坐标系是怎麼來的呢?

機器人坐标系用法和算法原理

機器人坐标系

拿6軸機器人舉例:

第一軸的旋轉軸

一般都會定義機器人第一軸的旋轉軸為基坐标系Z軸,旋轉中心即是坐标系原點,X和Y的方向是的電機零點确定,是以隻要你不更換電機的零點和機械結構,單個機器人裡這個基坐标系是永遠不會變的!

機器人坐标系用法和算法原理

機器人外部軸

有一種情況會重新設定新(基)坐标系,新坐标系為世界坐标系(每家不同的叫法,你可以認為就是一個基坐标系),那就是機器人加外部行走軸,或外部旋轉軸,用行走軸舉例,這種情況會把基坐标設在行走軸的零點位置,如果有多個行走軸,那就把基坐标設定到最底層那根軸的零點處,是以機器人配置外部軸的原理就是測量一些機械參數,把機器人1軸上的基坐标系變換到外部行走軸上,這種變換也叫D-H變換,下面講工具坐标系時候詳細說明。

使用者坐标系

上面内容确定了一個(基)坐标系,就可以通過齊次變換推算出工具坐标系和使用者坐标系了!
機器人坐标系用法和算法原理

使用者坐标系

先說使用者坐标系,使用者坐标系的本質是把(基)坐标系旋轉偏移到工件上,是為了友善程式設計,讓機器人的移動方向和工件表面的方向一緻!例如,有個傾斜45度的工件表面,如果你用基坐标系,機器人就是沿着基座系方向行走,橫平豎直的,很難沿着45度的表面行走,對程式設計來說難操作。是以就通過齊次變換偏移旋轉(基)坐标系,得到新的使用者坐标系!

其次,變換旋轉算法

再次,變換平移加旋轉算法

再其次,變換後得到新的使用者坐标系

工具坐标系

工具坐标系又叫TCP,機器人的精度和這個關系很大。它是在機器人末端執行器,也就是抓手或焊槍上的。這個坐标系是相對于六軸不動,但是實際機器人六軸會不停動作,這個坐标系也就跟随6軸實時變換!

工具坐标系

我們常說的機器人在什麼位置,坐标資料是多少?實際就是工具坐标系(TCP)原點在基坐标系或者使用者坐标系下的X、Y、Z、A、B、C的數值,X、Y、Z就是坐标系的三個坐标軸,A、B、C是以工具坐标系原點(TCP)為旋轉中心,繞坐标系X,繞Y,繞Z旋轉的角度資料(有的機器人,比如KUKA旋轉是A、B、C對應繞Z,繞Y,繞X;标準歐拉角也是ZYX這樣旋轉的。),這裡注意這個旋轉中心,機器人都用歐拉角,它的旋轉中心是TCP,不是繞着基坐标或者使用者坐标的軸旋轉,這裡說的繞X旋轉,其實是把坐标系平移到TCP位置,再繞坐标系X旋轉!懂向量的就很容易了解為什麼這樣了,因為轉換計算都是機關向量矩陣的形式!

怎麼得到TCP的呢?其實也和不會變的基坐标有很大關系,确定了基坐标,基坐标的Z軸可以想象成一軸電機的旋轉軸,一軸電機的零點就可以确定X和Y方向,這樣就把一軸的關節坐标資料轉換成笛卡爾XYZ坐标系的形式!同樣的道理,二軸的電機相對于一軸機械位置和零點也是固定的,通過機械參數就可以把二軸的關節也轉換成坐标系形式,三軸相對于二軸,四軸相對于三軸,五軸相對于四軸,六軸相對于五軸,都是有相對位置和零點固定不變的情況,這個就是6軸串聯機器人,這樣一軸一軸轉換到六軸,六軸再轉換到工具(焊槍或抓手)上,得出的坐标系就是相對于六軸固定不變的工具坐标系也就是TCP,如下圖。

機器人坐标系用法和算法原理

TCP計算圖示

關節坐标系

機器人坐标系用法和算法原理

關節坐标系

這個坐标系 很簡單,就是六個電機的旋轉角度!在關節坐标下,我們通過改變六個電機的資料,單獨動作每個關節!實際它的最大用處是逆運算,也就是我們用使用者坐标系或者基坐标系加TCP運動機器人的時候,機器人内部要把坐标系的資料,反推成六個關節電機的資料,這個非常複雜,而且解還不是唯一的(我上一篇裡講的機器人姿态參數),這裡就不細說了,以後有空單獨講!

是以說,機器人最重要的坐标系其實就是(基)坐标系。

機器人還有一些坐标系相關的延伸應用

例如,外部TCP,連續軌迹,圓滑過渡這些!

我講個外部TCP的程式原理,其它的應用多數是标準應用,不需要更改啥,但是外部TCP用的比較多,有的需要在标準外部TCP的程式基礎上做些改進,以滿足現場需求!

啥是外部TCP呢?我們前面所說的TCP(工具坐标系),可以了解成機器人的旋轉中心,你拿着焊槍的時候,把TCP定義在槍尖,機器人旋轉就會繞着槍尖轉,機器人角度動作而槍尖位置不動,這樣對于焊接需要拐彎的時候特别有用,焊槍拐彎了,但是焊絲還在焊接位置,不會跑偏!

外部TCP正好是和TCP相反的操作,如果焊槍沒有裝在機器人上,機器人是拿着工件去焊接的,那你把機器人的旋轉中心定義在哪裡好呢,定義在哪裡都不行,如果定義了機器人隻能繞着定義那個TCP位置旋轉,但是焊接軌迹是移動的,移動到其它位置你再旋轉,機器人固定的焊槍就不在焊接軌迹上了,嚴重的會碰撞!

外部TCP的算法原理是這樣的:

比如我知道第一個焊接點位,根據點位的坐标齊次變換算出一個TCP,TCP和這個焊接點位重合。

焊接移動過程中的下一個點位坐标換算出新的TCP,和目前點位重合。這樣每個點位自動生成一個TCP,比如焊接100mm長的焊縫,機器人内部算法把這100mm,分割成10000份,每份都有個TCP,這樣就實作了TCP的動态指派,也就是外部TCP的原理了!

總結一下:

基座标是固定不動的,可以換算出使用者坐标和工具坐标;其它的外部TCP屬于擴充應用,離不開前面三種坐标系!

繼續閱讀