Skip to content

解決物體具對稱性時,導致3D取物有TCP過度旋轉問題

此文章之範例適用於下列條件:

TMflow 軟體版本: 1.76.6300 或以上。

TM 手臂硬體版本:所有版本皆適用。

其他特殊軟硬體需求: 無 (額外軟硬體需求,若無則可忽略不寫)

請注意,新舊版本之差異可能導致操作介面、步驟上會有所差異。


問題描述 #

對稱性問題

物體具對稱性,如圓柱體,立方體,導致3D模型比對時,發生比對的VisionBase被旋轉,以下為旋轉範例


取物姿態問題

3D取物時,有2個位置是我們必須教導的,當前位置,及取物位置,其中繞線及過度旋轉易發生於當前位置至取物位置之間,若是能計算出兩個位置之間的旋轉關係,進而補正,就能避免過度旋轉發生


以立方體為例,手臂上有外掛相機,若是固定當前位置,並教導了一個取物姿態如左圖,相機方向為朝前,而下一次比對時卻是另一種結果,手臂的TCP就要旋轉去取物,若是相機上有線,或許會發生纏繞的情形


VisionBase原理 #

VisionBase旋轉原理

若是能計算出當前位置與要確實要下去取物的姿態,其旋轉多少角度,便能將旋轉較多的情形,VisionBase的RZ加上180度進行補正

 


如何調整旋轉

先藉由相機拍攝物件取得視覺座標,走VisionBase至物體的正上方,再調整RZ至相機適當的位置,假設此文章之後的RZ調整後為90度,線及相機均不會有大轉的問題,此時以這個相機位置方向調整XYZ至當前位置

 


調整VisionBase

假設調整後的RZ為90,接著就可以計算當前位置的RobotBase及取物位置的VisionBase轉換成RobotBase的旋轉關係,若是須旋轉角度大於90度,我們就將VisionBase的RZ加上180度,使其走較不會繞線的RZ方向

 

 


TMflow設定及實例 #

TMflow設定

以取對稱之白色箱體為例,置於相機下方,透過手臂於當前位置走置箱體的取物位置,過程中透過編輯Flow來避免相機繞線


  • Initial_point
    • 初始位置,此為拍照點位


  • Find_box
    • 相機進行拍攝,尋找箱體位置並給出visionbase
    • 透過visionbase走到取物位置


  • Current_position
    • 為當前位置,建立此位置時,相機及繞在手臂上的線材須順暢


  • Calculate_Rotation
    • 計算當前位置及取物位置之間的旋轉關係
    • 須先建立以下變數


  • Calculate_Rotation
    • 計算旋轉設定如下


  • If node
    • 判斷RZ的旋轉是否小於90度
      • Yes : 不改變visionbase的取物位置
      • No : 將visionbase的取物位置的RZ加上180


實例執行

若是執行視覺任務後,找到的視覺座標如下,我們透過display將var_Record_Rotation呈現出來,RZ座標近乎為0,表示取物位置將與當前位置沒有過多的旋轉,所以可以直接走我們visionbase下的取物位置


若是執行視覺任務後,找到的視覺座標如下,找到另一個方向的箱體,RZ座標旋轉超過90度,表示取物位置將與當前位置旋轉過多,若是沒有調整取物位置的RZ,將會出現右方繞線情形,而調整取物位置,將加上180,就能改善過度繞線旋轉問題

Powered by BetterDocs