用電流反饋和力感測器是不是都可以實現工業機器人的觸停、示教或力控打磨,這兩種方式各有哪些優勢和不足?
上周被邀請回答這個問題,現在終於可以來答了~
首先,用力矩感測器當然沒問題,Baxter,iiwa都是這樣做的,具體原理參考他們的論文。
力矩的優勢是精度高、可靠;劣勢是貴。電流估計力則相反。
所以,問題的關鍵在用電流可不可以實現工業機器人的觸停、示教或力控打磨。換言之,利用電流能不能得到比較準確的力矩值。
它的原理也很簡單,就是根據「電流-力矩」關係,利用驅動器反饋的電流值估計力矩,實現跟力矩感測器相同的功能。
上周花了點時間做單軸旋轉平台。
用的是交流電機,控制系統是實時操作系統RTX,通訊是EtherCAT。
然後,我就測試了幾個功能:
1)利用電流估計碰撞
根據上圖,可以發現碰撞引起的電流跳變還是很明顯的,跟動力學計算結果對比很容易就可以確定碰撞狀態。
然後,我用下面幾種東西做碰撞都是可以很容易檢測出來:
2)拖動示教
這個原理也類似,首先要先估計出機械臂所受外力,之後,根據外力映射到機械臂運動。
但是,前面其他答主也提到摩擦力的問題。這個不做實驗的話實在無法理解摩擦力為什麼沒辦法補償。
於是,我測量了一個碼垛機器人末端的力矩(100kg負載,大減速比)
然後,如果不考慮摩擦力的話,辨識動力學參數的結果是這樣的:可見,摩擦力的影響還是很大的,沒法忽略。
並且,我們也沒辦法完全辨識出這個摩擦力(因為摩擦力模型不知)。
下面是我嘗試各種模型之後的最好結果:
現在的誤差還是很大,這樣是沒辦法進行碰撞檢測等工作的。
因此,如果要在實際機器人上做的話,最好還是能加上力矩感測器。在傳動系統輸出端安裝的話,就可以直接跳過傳動系統摩擦力。
知乎沒辦法放動圖和視頻,所以想看具體演示的話可以看我發的這篇內容:聽說現在協作機器人很火,所以我也做了1/7個如果你看機器的教材,比如 robot modeling planing and control,其中講驅動器的一章一般會簡單介紹電流和電機輸出力矩的關係。但是這個力矩是電機輸出端的,不是連桿關節端,中間還有由於摩擦活著變形引起的消耗。在沒有關節力矩感測器的情況下,用電流來計算電機輸出力矩,然後估計連桿端的力矩也是一個可以接受的選擇。 UR 機器人的各種觸停,柔性示教就是通過電流來估算力矩的。當力矩能夠被估計出來,並且通過機器人本身的動力學就可以知道在每種情形下對應需要的關節力矩,這樣就可以在力矩環 也就是電流環把動力學補償掉。所以就有了各種重力補償,柔性示教,觸停等等。我和我實驗室以前的一個同事也曾經用電流來估算一個手指的關節力矩。這種方法好處就是便宜,不足就是不準確,不十分安全。
另外一種方法就是就是採用關節力矩感測器,可以直接測量連桿端的力矩,然後在關節處可以採用速度環或者同樣的電流環來形成一個閉環力矩控制。有的機器人比如kuka lwr,在電機端和連桿端分別有力矩感測器,不僅可以考慮到關節柔性變形引起的力矩消耗,也起到雙重安全保護的作用。 這種方式當然要準確很多,但是也貴了很多倍。
這種柔性的協作機器人還有其他的幾種形式,有的也不需要力矩感測器,但是驅動方式就完全不一樣。希望七八月有空我可以好好梳理下再來補充。- 電流反饋
@ Yifan Hou 說得非常對,基於關節電流環的反饋基本只適合於直驅無減速器的機器人,學術上現在很少看到基於電流環反饋估計力矩的文章了(印象中看到最新的一篇相關文獻是八十年代的),原因@ Yifan Hou 也分析得也很仔細。
當然,通過電流反饋做一些很粗糙的力估計(比如 @ robotopia 所說的觸停)理論上還是可行的,但它有一個小缺陷。
上圖是機器人一個關節的模型簡圖,由於諧波減速器等的柔性,導致在整個傳動鏈中,相當於有一個彈簧K。當我們在負載連桿端施加外力時,由於彈簧的緩衝作用,這個外力反向傳輸到電機端,並被電機感知時,必然會有延時和衰減。若外界衝擊特別大,這種延時可能會讓電機不能及時停止,而產生危險。
- 力感測器
機器人中的力感測器主要分為兩類:關節部位的單軸扭矩感測器和機器人末端的6軸力感測器。第一類感測器價格並不算很貴,而且國產的一些性能也不錯,我們這邊都是買的一家國內公司的,量程50Nm的5000左右,跟HD的諧波減速器價格相當;而第二類就非常昂貴,稍微好點的就得4,5萬,沒有什麼好的國產替代品。第二類我們沒有適應經驗,這裡主要分享下第一類的使用情況。
我們知道,現在伺服系統中的位置感測器精度非常高;然而力矩感測器遠沒有位置感測器那樣,我們買的精度大概為0.2Nm。據文獻中報道,他們的力矩感測器信號標準差為0.35Nm,根我們的精度差不多。
另外,機器人中安裝有力矩感測器,還有一個更致命的缺陷:剛度大大降低。上圖是我們裝了力矩感測器的電機,圓圈內的即為感測器,它測量力矩的基本原理是內外圈之間有形變(類似於彈簧)。再聯繫最上面一幅圖,當系統中裝有力矩感測器後,傳動鏈上會有明顯的變形,也即系統的剛度相比於沒有力矩感測器的,會下降很多。經過粗略計算,一塊與力矩感測器大小一樣的鋼板,其剛度是它的近10倍。
我們知道,傳統機器人在做位置控制時,是希望傳動剛度偉大越好的(比如機床)。當剛度過低時,不光是控制精度下降,系統也容易不穩定。
接下來,我們實際看下力矩感測器信號如何。我們只控制電機端完成一定的位置軌跡追蹤,同時測量出力矩感測器的信號。
可以看出,信號質量並不是很好,這跟系統剛性下降有關。回到第一幅圖,電機端的運動,經過中間的彈簧後,再傳到連桿端;由於彈簧剛度係數較其他部分小很多,導致電機運動經由彈簧後產生了波動,進而導致電機與連桿間的偏差角有波動,最終使得測量的力矩不夠穩定。這種不穩定的力矩信號,直接用來做力估計與力控制也是不切實際的。
- 結論
電流環反饋實際應用前景有限;
力矩感測器的引入會降低系統穩定性;
單靠力矩感測器做力控制效果不佳;
現在一般是通過雙編碼器加力矩感測器來做精密力控制;
觸停和力控打磨都是要求能控制末端執行器受力,但你把示教也列上,我猜你是指用手推著機器人擺pose示教吧,說白了就是能back-drive。
用關節電流反饋做整個機器人的控制的話, 僅適用於Direct-Drive的機器人,也即關節電機沒有減速箱或只有一級減速箱。否則對於使用大減速比的機器人,其關節back-drive的摩擦力巨大,電機電流不足以精確估計末端執行器上收到的外力,減速比越大越明顯。比如大多數工業機械臂,即使是斷電狀態,你在末端用很大的力氣推也推不動,這時候雖然末端受力很大,關節電流仍然是零。
位置/速度伺服+末端力感測器可行,但是一定要保證力反饋的頻率足夠高,我覺得和電機底層電流環相當就可以了。
不請自來,先回答題主的問題
電流反饋和力感測器可以實現機器人的此類功能,碰撞急停和示教的實現都沒有問題。
- 對於兩者方案的優缺點,樓上邱博 @fly qq 講的很好。力矩感測器更加精確,代價價格貴。這裡需要考慮力感測器安裝位置:機械臂末端/關節處。
- 安裝在機械臂末端的力感測器可以直接獲取到外界作用在機械臂末端的力作用,力控實現方案簡單,但無法做全身的碰撞檢測。相對於關節處安裝感測器估測外力,此方案可以實現更精確的力控效果。因此如果是要求非常精確的力控,強烈建議在末端加裝力感測器,不推薦使用關節信息估測外力,原因以下講。
- 對於安裝在關節處的力感測器,通常只需要其能測一維力矩即可,相較於電流方案,關節處的力感測器可以獲得更加精確的力矩值,與電流估計力矩相比更加精確,且可免受摩擦力的影響。然而無論是用關節力感測器還是電流方案,如果要估計外力,需要用較精確的動力學模型,需要機械臂的動力學參數。如果考慮摩擦,這也是一個big problem。且如果需要估計末端力,還要考慮雅克比矩陣的轉置 是否良態(well-conditioned),最怕是出現奇異,此時會出現作用力向量至少一個分量無法求出。因此這兩點主要原因使得利用關節力矩信息(無論是用電流還是關節力感測器)求得末端力作用,與直接安裝末端力感測器測力相比顯得不是那麼太精確。當然不用動力學模型估計外力作用也是可以的,但對於一些需要相對精確的力控或獲得較好的力控效果,此類奇技淫巧恐怕可能不那麼行:-D。
性價較高的一種方案,末端用力感測器檢測作業中的外力作用,關節處用電流來估測外力作用以實現碰撞檢測和任一關節的拖動示教。土豪可以關節處裝力感測器,全身貼觸覺感測器檢測外力。
下面介紹用電流信息做的工業機器人的碰撞急停和拖動示教,機器人為6軸工業機器人,開放式控制器,使用EtherCAT協議。
使用的是電流信息,機器人的摩擦力作用還比較明顯,使用的庫倫-粘滯模型有些不太適用。
最後讓機器人跑了一組軌跡,根據規劃的關節軌跡q、q"、q""實時動態計算出關節力矩的閾值,一旦由電流估計的力矩值超過了閾值,可判斷出機器人受到了外力作用。藍色曲線是電流估計的力矩值(有濾波),紅、橙色曲線是根據動力學參數實時計算出的力矩閾值。
給個細節圖
感覺閾值曲線可以再優化,更加逼近實際力矩曲線,實現更精準快速的外力作用檢測。
機器人檢測到碰撞後獻出了1s,停止運動,然後再恢復運動。
拖動示教有時間再寫吧,其他的細節內容等論文寫完後再補充。
都可以,效果都不好,電流反饋用於觸停,一般是採用電機相電流 負載加大時電流增加的反饋,開環或閉環1%的精度已足夠,但是相電流變化 並非只有負載變大這一種情況,誤報概率極大,建議加位置感測器,以位置感測器為主,輔加電流感測器反饋,可以做到95%以上的正確率
電流反饋或力感模式均是工具,工具無所謂好壞,關鍵在於整合!之前做iphone打磨專案設計時即採用力感控制模式來進行,根據力感的控制特點開發專用的機器人運動控制模型,現場應用工程師調試時直接調用封裝好的運動控制介面函數來調試機器人打磨,圓角處、直線處、圓弧面分別用不同的函數來控制;取得的效果非常好!
可以湊合用,外部力經過減速器傳導到電機軸後變得非常小,這部分力和電機的摩擦力以及電流的雜訊混在一起難以分辨,因此,昂貴的機器人如kuka iiwa每個關節都有力矩感測器
kuka的機器人中有碰撞檢測的功能,其方法就是根據電機電流的反饋來判斷。但使用時如果設置得太靈敏,會經常誤報警,甚至有時氣溫低了也會誤報,可見這種方式理論上應該是可行的,但影響的因素太多,實際上很難做到。但scara機器人由於結構的特殊性,可以做一些這樣的應用,例如取料時料的高度不同,可以讓機器人一直往下壓,直到碰上後停止,然後進行後面的動作。
推薦閱讀:
※universal robot無力矩感測器的情況下, 如何建立精確動力學模型的?
※自適應控制和魯棒控制在工業機器人的控制系統中用的多嗎?
※AGV的關鍵技術跟突破點有哪些?
※達芬奇手術機器人的延時會影響到操作么?
※如何獲得同工業機器人相關的技術崗位,並且應該怎麼準備才能勝任這類工作?