Skip to content

[TMflow 1] 運用 2.5D Component 來優化2.5D隨機揀選的節拍時間

背景知識 #

在機器人的箱體隨機揀選應用中,機器人會根據視覺base及教導的抓取姿勢的相對位置進行物件抓取。
然而,在一些用戶不在乎揀選物件Rz方向的場景(例如對稱物品,或擺放時隨機即可的場景),第六軸的旋轉會造成節拍時間的浪費。
運用2.5D Component,用戶可以透過減少不需要的Rz、甚至Rx, Ry旋轉來達到節拍時間的優化。

簡介 #

2.5D Component是一個點位計算component,不包含實際的運動指令或I/O操作。這樣使用戶可以更自由的安排點位運動、控制夾爪、監控夾爪傳感器等。

Component解釋 #

點位 #

在2.5D Component被添加製程式時,會有8個點位產生,分別是:Pick, PickApproach, Place, PlaceApproach, Middle01, Middle02, Middle03, Middle04。針對這些點位的解釋如下:

在Component中可調整的變數 #

在Component中,共有6個可調整的變數,針對這些變數的解釋如下表格:

Int_PickMethod =1:機器人會根據用戶教導的點位進行抓取
=2:機器人會根據用戶教導的點位進行抓取,但Rz會根據教導點位時的數值來替代
=3:機器人會根據用戶教導的點位進行抓取,但Rx、Ry、Rz會根據教導點位時的數值來替代
Int_PickApproachDistance 從Pick point到Pick_Approach point,Z方向的距離
Bool_Middle_InterpointFromPickToPlace =false:機器人會完全按照用戶教導的中繼點來行走
=true:機器人會按照用戶教導的中繼點X、Y、Z值來行走,但Rx、Ry、Rz會使用interpoint 方式進行計算。這樣機器人會在每個點之間平均需要旋轉的角度
Bool_PlaceCompensateOrNot =false:機器人會根據用戶教導的放置點位進行放置,不論任何picking method的選擇
=true:機器人會把因為選擇了不同的picking method造成的角度偏差進行補償,使放置時物體角度保持用戶想要達到的狀態
Int_PlaceApproachDistance 從Place point到Place_Approach point,Z方向的距離
Int_MiddlePointAmount =0~4. 在抓取與放置之間的中繼點數量

工具TCP #

請注意所有點位都是基於一個叫VisionNode_TM_Tool的工具TCP,而這個TCP檔案會在Component匯入時產生。所以請務必在教導所有點位之前根據實際情況調整VisionNode_TM_Tool的數值。

全域變數 #

共有兩個全域變數會在Component匯入時產生:g_VisionNode_TM_VisionBase_Initial、g_VisionNode_TM_VisionBase_Current。定義如下表:

g_VisionNode_TM_VisionBase_Initial 此全域變數是用來儲存在用戶教導抓取點位之前,視覺任務的檢測結果(視覺坐標系)
g_VisionNode_TM_VisionBase_Current 此全域變數是用來儲存在專案執行時,每次視覺任務的檢測結果(視覺坐標系)

範例程式 #

1. 匯入2.5D component (需要的TCP及全域變數會一起被匯入產生,不需要單獨匯入) 及模板程式(Download here)

請至≡ > System > Import/Export> 點選需要匯入的程式及component ,之後按下Import.

2. 啟用Component

請至≡ > Setting > Component> 點選component前方的圓點按鈕,之後按下Save.

3. 調整TCP:VisionNode_TM_Tool parameters來更好的貼合實際使用。

請至≡ >Setting > TCP> 輸入正確的TCP數值(初始數據為{0,0,100,0,0,0},重量為0),之後按下Apply.

4. 打開程式模板

5. 第一次執行專案時,請連接Vision Node與位於左邊的Set Node,之後在3D Vision Job編輯完成後執行專案一次。當執行時,請確認在相機視野內只有一個物體可以檢測,並查看視覺識別結果是否理想。

6. 在專案第一次執行後,視覺座標會被存到全域變數g_VisionNode_TM_VisionBase_Initial中。現在用戶可以進行以下點位的教導:Pick, Place, Middle(中繼點數量根據需要來教導,至多4個)。請透過拖拉機器人至理想位置後,按下Node旁邊的鉛筆符號,按下Overwrite new pose to this point。PickApproach及PlaceApproach不需要進行教導,因為他們會透過用戶設定的變數進行自動計算。

請確定各個Point Node的Smart Pose Choosing有勾選,以避免不需要的旋轉。

7. 根據具體需求,在適當位置加入Set Node來操作夾爪的取放動作。

8. 根據需求,編輯2.5D Component內的變數。

9. 當所有設定完成後,把Vision Node跟右邊的Set Node連接,之後程式就已經準備好進行執行了。

10. 如果用戶發現抓取位置不理想,請重新進行第5步驟(檢查視覺結果是否正確)之後再教導一次抓取位置並覆蓋數值。

Powered by BetterDocs