背景知識 #
在機器人的箱體隨機揀選應用中,機器人會根據視覺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個可調整的變數,針對這些變數的解釋如下表格:
工具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步驟(檢查視覺結果是否正確)之後再教導一次抓取位置並覆蓋數值。