2016年8月20日 星期六

1-4 六軸機械手臂的奇異點

本文節錄from Jason Chiou @Booster Machin
------------------------------------------------------------- 六軸機械手臂由六組不同位置的馬達驅動,每個馬達都能提供繞一軸向的旋轉運動,其位置可參照下圖。從自由度(Degree of Freedom)的概念來看,六軸機械手臂已經滿足三維空間中的六個自由度,理論上其末端End-Effector可以到達空間中任何位置及角度,但為什麼有時候機械手臂仍然會卡住呢?這是因為六軸機械手臂存在著一些奇異點(Singularity)。
Figure: 6-Axis Robot


當機械手臂進行直線運動模式(Linear Mode),系統並未事先計算好過程中的手臂姿態(Configuration),倘若在運動過程中遇到奇異點,會造成機械手臂卡住或跳錯誤,使人相當頭痛。


機械手臂的奇異點,依發生的原因可概括為兩大類:
  1. 內部馬達可運作範圍的極限位置:
  2. 根據不同型號的機械手臂中使用之馬達,會有不同的運作範圍限制,也就是工作空間(Workspace)的概念,本文不加以贅述。
  3. 數學模型上的錯誤:
  4. 也是本文要介紹的重點,如同其他數學上的奇異點,它發生於「無限」的情況下,例如:任何一個除以零的數;即便「無限」在數學的觀點中已經是個習以為常的概念,但在現實的物理世界中是無法達成的。



簡單來說,也就是在逆運動學的反向計算中,得到「小位移,大旋轉」的結果。在手臂末端接近奇異點時,微小的位移變化量就會導致某些軸的角度產生劇烈變化,產生近似無限大的角速度,而這在現實世界中是不可能的。可參考以下影片:
https://www.youtube.com/watch?v=Q2b7r9kYjIo


在此給奇異點一個簡單的解釋,即當機械手臂的其中兩個以上的軸共線時,會導致機械手臂發生無法預期的運動狀態。

常見的奇異點發生時機
由於奇異點與機械手臂的姿態相關,並不是一個給定的位置,所以要列出所有的奇異點是有難度的,不過在此依照奇異點發生的狀況不同,將六軸機械手臂的奇異點分為三個種類:


1.Wrist Singularity (腕關節奇異點):
當第4軸與第6軸共線,會造成系統嘗試著將第4軸與第6軸瞬間旋轉180度。


Figure: Wrist Singularity
2.Shoulder Singularity (肩關節奇異點):
當第1軸與腕關節中心C點(第5軸與第6軸之交點)共線,會造成系統嘗試將第1軸與第4軸瞬間旋轉180度。此類型有個特殊的情況,當第1軸與腕關節中心共線,且與第6軸共線時,會造成系統嘗試第1軸與第6軸瞬間旋轉180度,稱之為Alignment Singularity (對齊奇異點)。


Figure: Shoulder Singularity


Figure: Alignment Singularity


3.Elbow Singularity (肘關節奇異點):
當腕關節中心C點與第2軸、第3軸共平面時,會造成肘關節卡住,像是被鎖住一般,無法再移動。
Figure: Elbow Singularity

以上奇異點之示範影片可參考這裡,影片中以顏色深淺代表軸之角速度,可以明顯看出上述發生之角速度瞬間增大之現象。

如何避免奇異點
奇異點常發生於兩軸共線時,當機械手臂的軸數量增加時,發生奇異點的位置與機會同時增加。但因為機械手臂的自由度變多,也表示有更多可以避開奇異點的運動路徑可以選擇。六軸機械手臂擁有六個自由度,可以達到空間中任何位置,而七軸機械手臂就是為了避開奇異點而產生,多一個自由度來增加避開奇異點的路徑選擇性,也同時可進行複雜度更高的運動,因為這額外的軸,七軸機械手臂又被稱作Redundant Robot,下面影片是YASKAWA的MOTOMAN SIA七軸機械手臂。




也有人提出將工具與法蘭面(Flange)的關係進行調整,當工具的方向平行於法蘭面法線方向時,把工具調整一個微小的角度(5°~15°),可減少運動路徑遇到奇異點的機會。雖無法完全避免,但因成本低且可簡單地進行測試,不失為一個好方法。
Figure: Add a Small Angels


理論上,機械手臂到達奇異點時角速度無限大,為避免損壞,機械手臂製造商會以軟體進行保護,當速度過快時機械手臂停止,並產生錯誤訊息。使用者也可以限制機械手臂經過奇異點附近時的速度,使其緩慢地通過,避免停機。


而在ABB機械手臂控制器中,當第五軸角度為0°,即第四軸與第六軸共線時,會出現提醒訊息,並進行以下兩種步驟來避免奇異點問題:


  1. 增加目標點,調整姿態,避免第五軸角度出現0°的情況,這也是有時機械手臂運行時會有一些無法預期的動作的原因。
  2. 修改MOVEL指令為MOVEJ指令,在非必須以直線運動的工作需求下,使用關節運動取代直線運動,以MOVEJ指令可使機械手臂自主調整姿態避免運行至奇異點附近。


最有效的方法還是在電腦上的模擬軟體先行確認,嘗試將運動路徑調整至沒有奇異點。ABB的Robot Studio模擬功能可以監控運動路徑是否接近奇異點,方便在接近奇異點附近的位置修改路徑,以順利完成工作。


參考資料:

沒有留言:

張貼留言