Skip to content

BASE與TCP的關係,以及應用方式

本範例使用環境

TMflow軟體版本 : 1.76 或更新

手臂硬體版本 : HW 1.x/2.x/3.x

其餘準備 : 無

請注意,在不同版本的軟硬體上操作可能會有些微差異

 

目標 #

關於這主題,最常見的問題為:

  • 如何正確使用BASE與TCP?
  • 我可以使用預設的BASE(RobotBase)與TCP(NOTOOL)來教點嗎?
  • 為什麼在TMflow專案內的POINT NODE上、會有不同的BASE/TCP?
  • CustomBaseVisionBase是什麼?
  • 在手臂有多個夾爪的情況下,我怎麼使用多個TCP?

本文章會對以上常見問題一一講解

 

手臂如何移動? #

我們從一個移動命令開始解說

移動 某物  指定位置

 

例如:

移動 [食指] [鍵盤上的ENTER鍵]

再轉換成手臂語言之後:

移動 [TCP] [ 目標座標,以 CustomBase1為原點]

 

所以,基本的運動指令包含以下這幾個(速度等其餘參數先略過)

 

目標座標

TCP

BASE(CustomBase, VisionBase, 原點)

 

座標系的表達方式 #

我們可以使用右手定則來確認座標系的方向

X軸以紅色表示;Y軸以綠色、Z軸以藍色表示

目標座標 #

目標座標描述了距離原點BASE有多遠、以及相對的旋轉關係

它包含了[ X, Y, Z, Rx, Ry, Rz],可分成平移旋轉這兩個部分

 

平移 [ X, Y, Z ] #

目標座標的六個參數中,[X, Y, Z] 分別代表與 BASE.X 軸、BASE.Y 軸及 BASE.Z的距離

單位是長度,通常以mm為單位,例如您可能看到某個座標為[ 100.5, -70, 33.1 ]

 

此外,這是某個目標在空間中的座標表示;該目標的方向與BASE相同(旋轉角 [Rx, Ry, Rz] 等於 [0,0,0] ):

旋轉 [Rx, Ry, Rz] #

平移部分相對較好理解,但旋轉部分[ Rx, Ry, Rz ]呢?

[ X, Y, Z ] 代表移動距離,相同的,[ Rx, Ry, Rz ]代表座標系繞軸旋轉後的結果

有許多描述方式來表達空間中的旋轉,而達明機器人系統使用EulerZYX的表達方式;我們會在本段落的最後介紹EulerZYX

旋轉[ Rx, Ry, Rz ]的單位是˚(度),範圍是-180.0~+180.0

例如,您會看到某個座標的旋轉部分為[-45.9, 179.0, 30]

 

旋轉軸的正方向也可使用右手定則來確認,以下這兩種方式相同:

(1) 如果姆指代表要旋轉的軸,則四指的方向即為旋轉的正方向

(2) 從姆指(旋轉軸)方向看往過去,逆時鐘方向定義為正方向

範例1 – 只旋轉Rz #

延續剛才的範例,追加Rz = +90˚的旋轉角

實際上會有這樣的效果:

 

範例2 – 先轉Rz、再轉Ry及Rx(EulerZYX) #

與平移[ X, Y, Z ]的各軸獨立不同,旋轉[ Rx, Ry, Rz ]的描述彼此會有關係,因此在這裡需要使用EulerZYX來描述旋轉

 

旋轉[ Rx, Ry, Rz ]、EulerZYX 的操作方式 

(1) 以BASE為基準、旋轉它的Z軸 Rz˚

(2) 以步驟1旋轉後的座標為基準、再旋轉它的Y軸 Ry˚

(3) 以步驟2旋轉後的座標為基準、再旋轉它的X軸 Rx˚

因為是照著Z軸Y軸X軸的順序旋轉,所以它被命名為EulerZYX

 

以下為旋轉[ Rx, Ry, Rz ] = [ 30, -45, 90 ] 的步驟說明,注意軸的逆時鐘方向為正方向

 

 

先轉Z軸、再轉Y軸、最後轉X軸

重點整理

(1) Euler表達方式共有12種,像是EulerXYX, Euler ZXZ…等等,只差別在旋轉軸的順序;EulerZYX是其中一種、也是手臂系統較常使用的方式

(2) EulerZYX 代表:先旋轉Z軸、再轉Y軸、最後轉X軸

 

TCP – Tool Center Point 工具中心 #

TCP,即Tool Center Point工具中心,是代表手臂前端某尖點距離法蘭的偏移(目標座標)關係,一樣有[ X, Y, Z, Rx, Ry, Rz ]

同時只能啟用一個TCP;若都不指定,則預設會使用NOTOOL(Tool0)

 

在焊接槍前端設定TCP的範例:

記得最前面提到的指頭與鍵盤範例嗎?以下文章會使用尖端(或指頭)來描述TCP、幫助理解

 

為什麼需要 TCP? #

TCP代表正確的尖端、以及您希望在手臂上被移動的那個點

 

以下範例為無TCP與有TCP的差別:

移動手臂到P1位置,相對於BASE RobotBase;左邊是預設的NOTOOL、右邊是焊槍TCP(MyTCP1)

兩者在空間中都是移動到同位置的P1,但手臂會用不同尖點去指到P1

使用TCP會有以下的優點

優點1 – 在您要的尖點旋轉、方便手動操作手臂(便於操作) #

當需要繞尖點旋轉時、手臂帶有正確的TCP會對於操作上有很大的幫助;您可以像下圖這樣指定手臂尖點在空間中繞圓、調整需要的角度

 

優點2 – 調整TCP長度、同時維持調整前的路徑(省時) #

以焊接應用為例,焊絲的末端長度可能改變,這時可直接調整TCP的值、手臂即會以新的TCP去執行原本相同的路徑

如果沒有使用正確的TCP,則所有路徑在尖點改變位置後都需要重新手動教導,會浪費大量時間

 

 

 

優點3 – 以工具座標系為方向移動(便於操作) #

以下圖為例,焊槍的座標方向與法蘭不同

若此時您希望以焊槍TCP的方向移動,則可以在TMflow專案中使用 MOVE NODE來沿著TCP座標方向移動,適合用在手臂插件等應用

注意該TCP方向為當下的TCP方向

     

 

如何設定TCP? #

有兩種方法設定TCP

到 TMflow > Menu > Setting > TCP Settings 

 

方法1 – 直接教導

準備一個硬體上的尖點並裝在您想設定的TCP位置;另外再準備一個尖點放置於固定不動的桌面上

 

依畫面指示來教導多個點,細節請參考TMflow manual 或搜尋 UNDERSTANDING THE VISION BASE AND TCP  technical document

注意用此方式無法設定TCP的Rx, Ry, Rz

 

方法2 – 輸入參數

在CAD軟體上取得您的TCP座標(如夾爪中心),會需要這些參數[X, Y, Z, Rx, Ry, Rz]

注意,重量mass質心center of mass必須正確設置,否則手臂會在運動過程中誤報警而停止

 

 

 

 

 

 

 

 

 

 

當TCP已正確設定,可以透過旋轉的方式來操作機器人,TCP會在空間中盡量保持不動

 

練習 – 雙夾爪的TCP設定 #

以下為上下料應用中的雙夾爪設定;給定CAD尺寸與方向後,請計算出正確的TCP1與TCP2

(TCP的Y軸與法蘭Y軸重疊)

 

以下為解答

TCP – HandCamera #

當手臂上有視覺系統camera on hand(或Eye-in-Hand camera, EIH camera)且正確校正完成時,系統內會自動生成一個TCP名為HandCamera

這是設定在視覺鏡頭中心的TCP,您可以在視覺應用中去使用此TCP

 

BASE – 原點 #

BASE 是座標系的原點,即目標座標[ X, Y, Z, Rx, Ry, Rz] 參考的原點

BASE包括CustomBase, VisionBase, RobotBase

同時只能啟用一個BASE;預設為手臂底座上的RobotBase

 

以下為簡單的移動範例

P_StandBy -> P1 –> P2 -> P3 -> P4 -> P1 -> P_StandBy, 使用一個名為CustomBase1的BASE

 

這些點都是以CustomBase1為原點;例如P3的座標 = [X, Y, Z, Rx, Ry, Rz] = [300, 400, 100, 180, 0, 180]、相對於CustomBase1

注意, [Rx, Ry, Rz] 是 [180,0,180],因為點位的方向與CustomBase1的方向不同(上下顛倒)

 

為何需要BASE? #

使用BASE有以下幾個好處:

好處1 – 路徑修正 & TM Landmark #

延續前面範例,當桌面移動(同時BASE也設定在桌角)時,只要重新定義BASE、則原本的路徑會自動被修正;當桌面上有很多路徑時,可以省下許多修正的時間

即使桌面歪斜了,正確的BASE設定也可重新把路徑修正

此外,搭配內建視覺系統時,TM Landmark是一個相當方便的定位工具。創造VISIONJOB NODE並執行,手臂會自動辨識TM Landmark並把VisionBase更新,即使TM Landmark擺在歪斜的位置、一樣可以修正

細節請參考TMvision manual 或在technical document中搜尋 UNDERSTANDING THE VISION BASE AND TCP 

 

 

Advantage2優點2 – 路徑複製 #

承之前範例,您可以將桌面1的路徑複製桌面2桌面3…等等更多位置,只需指定不同的BASE即可

    

 

您可以複製POINT NODE並指定到 BASE1BASE2、或者更多BASE上

使用此方法可省下重新教導點位的時間;當應用中有多個重複路徑、但不同位置(BASE)時很方便

 

 

 

BASE – RobotBase, CustomBase, VisionBase #

BASE包括CustomBase, VisionBase, RobotBase

CustomBase : 客戶使用的BASE,可有多個並自定義內容

RobotBase : 固定在手臂底座的BASE,不可更改且只有一個;預設的BASE

VisionBase : 當VisionJob存在時自動創造出來的,可有多個並自定義內容

 

如何定義BASE? #

  • 先設定正確TCP
  • 到 TMflow > Menu > Project > Base Manager > By pointing 3 points 來建立BASE

更多細節請參考 TMflow manual

 

以下是定義一個BASE Base1的範例,[X,Y,Z,Rx,Ry,Rz] = [300, 0, 300, 5.71, 0, 0],此座標參考 RobotBase為原點

 

總結 #

  • 創造新專案前,需先定義正確的TCP與BASE
  • 善用TM Landmark將可提升視覺定位的便利性
  • 每次創造點位(POINT NODE)時,手臂會記錄當下的座標、參考當下的BASE與TCP

Q&A #

我已經正確校正TCP與BASE,為何我從別台手臂複製專案到不同手臂時,點位還是有些偏差? #

使用手臂前需先做多種校正(EIH手眼校正、手臂DH校正等等),但即使所有校正都做完,仍有可能會有一些偏差(在某些案例中、較遠距離的情況可能差到數mm),原因來自 :

  • TCP 校正時的誤差
  • DH校正時的誤差
  • 視覺系統校正時的誤差
  • 機構組裝工差

當正確使用BASE與TCP時,可以降低複製到不同手臂的時間,但無法完全消除。若需要更精準的點位(如0.5mm以內),建議在該點上重新教導。

 

我可以在不使用 TCP與BASE的情況下操作機器人嗎? #

當然可以,實際上您正在使用TCP NOTOOL(在手臂法蘭上)及RobotBase(在手臂底座上)

使用正確的TCP與否,當手臂在運作時可能無法查覺;但若使用NOTOOL且未來您想修改TCP長度,則需要重新教導所有點位

為了避免此狀況,建議一開始就使用對的TCP與BASE;若未來有大量點位需修正的情況,則會方便許多,而不用每個點位重新教導

 

以下是範例,NOTOOL與MyTCP1在兩次路徑移動中看不出差異,但實際上手臂系統記錄的位置是不正確的

 

如何切換TCP與BASE? #

在手動模式下,選擇您想要的BASETCP即可

執行TMflow專案時,手臂系統會自動依據POINT NODEMOVE NODE內指定的BASE與TCP切換

Powered by BetterDocs