現代機器人絕大多數是基于模型控制的(Model-based Control),有模型的地方就會有誤差,因此具體有多少誤差需要補償/校準取決于你用了什么樣的模型。
粗略的,可以把機器人用到的模型分為兩個大類即運動學模型和動力學模型,因此誤差也可按此劃分:
分項簡單說一下。
加工誤差會導致:
機器人關節間的連桿長度不準;
配合面不精確造成某些設計為0的參數變成非零;
機械公差:受限于機床加工精度及加工成本,機械部件在設計時都會留有公差,這些公差可能會在裝配導致:
關節理論軸線與實際軸線不符;
相鄰連桿/結構之間的相對位置與設計發生偏差;
零點誤差:大小主要取決于零點標定算法,零點不準會造成控制器用來運算的理論模型與實際機器人位置不符,計算的結果也就不準確了。【?機器人零點標定方法】
減速器回差:主要在關節反向的時候影響絕對定位精度,而對于重復定位精度基本沒有影響,并且小型機器人中普遍采用的Harmonic Drive號稱zero backlash,要求不高的話可以暫不考慮。
減速比誤差:指的是減速器的實際減速比與廠商標稱的有微小差異,感興趣的同學可以設計個簡單裝置實測一下,電機可能需要轉到1000000圈這個量級。
標定誤差:指的是機器人在使用過程中涉及到的相機標定(手眼標定),工具標定,工件標定等等,受限于簡陋的標定裝置及精簡的標定過程,實際上最大的誤差往往來自于這個方面。
以上的運動學誤差辨識有非常多的相關研究,主要工作在工程實現以及平衡成本、精度和易用性之間的關系,不再贅述。
動力學方面,質量、質心、慣量張量屬于剛體運動學的范疇,有關其參數辨識的方面研究也很充分。
摩擦力是個棘手的問題,主要用到的是靜摩擦,庫倫摩擦和粘滯摩擦,簡單點搞就放一個線性或二階模型,復雜一些可考慮stribeck,再復雜的就沒接觸過了,主要是一個漫長的tune&test過程,并且每臺機器人都不一樣。
靜摩擦的話,只有電機端位置傳感器的話無法判斷其方向,需要關節端傳感器,要增加成本。
要求更高的場合就不能只考慮剛體動力學了,也要考慮一些關節和連桿的柔性,主要也是采用辨識的方法,區別在于模型的復雜度如何設置。
動力學參數的誤差會極大影響Feedforward、Gravity Compensation和Compliance Control的效果,如果做動力學相關工作,則需要考慮辨識及補償以上誤差。