對焊接、搬運、噴漆等工作,機器人的末端執行器在運動過程中不與外界物體相接觸,機器人只需位置控制就夠了,而對于切削、磨光、裝配作業,僅有位置控制難以完成工作任務,還必須控制機器人與操作對象間的作用力以順應接觸約束。機器人采用力控制可以控制機器人在具有不確定性的約束環境下實現與該環境相順應的運動,從而可以適應更復雜的操作任務。
對一些復雜的作業,如工作環境不確定或變化的裝配和高精度的裝配,對公差的要求甚至超過機器人本身所能達到的精度,這時如仍試圖通過位置控制來提高精度不僅代價昂貴,而且可能是徒勞無益的。而采用了力控制后,可以大大提高機器人的有效作業精度。
現在的機器人絕大多數基于位置控制的,比如說倉庫里的搬運機器人,從規定的位置出發,到達指定位置,裝貨,按設計的路線移動,卸貨。基于位置控制的機器人能控制位置、速度、加速度(角度、角速度、角加速度),所以在工業現場常見的應用是搬運、焊接、噴漆。
但是只要求對位置控制是遠遠不夠的,越來越多的場合要求機器人還要有效地控制力的輸出,比如說打磨、拋光、裝配這些工作。波士頓動力公司在力控上做得比較成功,它的機器人能跑能跳甚至能在雪地里行走。可以說未來控制領域,必須引入力控,純位置控制是沒有前途的。
先看前輩給的定義,“阻抗控制不直接控制機械臂末端與環境接觸力,通過分析‘機械臂末端與環境之間的動態關系‘,將力控制和位置控制綜合起來考慮,用相同的策略實現力控制和位置控制。”
之前在學阻抗控制的時候就想,既然要控制機械臂末端實現位置控制和力控制,為什么不直接用兩個PID分別控制位置和力呢?一個原因是實時性沒辦法得到保證,不怎么知道什么時候對力控制什么時候對位置進行控制。另一個原因是機械臂是同一個而且是唯一的控制單元,是不可以把它割裂分開來看的。就好比機械臂的最終目標是做到和人的手一樣,能同時感受力、溫度、濕度、位置等等,不能把它拆分到每個手指,比如食指就是用來感受力輸出力的,其他手指不參與。所以阻抗控制的目的是構建一個系統使得執行器(機械臂)能同時控制力/位置。
提出這個阻抗控制方法的Hogan本意就是想設計一種義肢幫助殘疾人,他覺得當時的機械臂都太”硬”了,不夠柔軟,好的機械臂應該是那種想彈簧一樣的結構,可以感受外界的力。阻抗控制就建立在這個阻尼-彈簧-質量模型的基礎上。
阻抗控制的實現方式應該是多種多樣的,請能否概述一下大概有幾種方式以及主流的方法? - 邵天蘭的回答 - 知乎
這篇回答舉了一個機器人關門的例子,非常通俗地解釋了這個模型每個部分的物理意義。我在這里簡單的描述一下,如果是只能做位置控制的機械臂,現在給它一個關門的任務,如果位置控制有一定的偏差,那么這個門可能會被拽壞。所以在機械臂的末端加上一個彈簧,彈簧的性能非常有講究,比如有些門比較重,有些門比較輕,要使機械臂都能完成所有門的關門動作,那么彈簧的“剛度”要正好合適,而且為了保持穩定,在關門的時候彈簧不能上下振動。而最有彈性而且不會震蕩的系統就是阻尼-彈簧-質量系統。
阻尼-彈簧-質量系統可以代表系統的慣性(質量塊)、阻尼(阻尼塊)和剛度(彈簧)特性,阻尼-彈簧-質量模型的數學表達如下:
Md、Bd、Kd分別代表目標阻抗模型的慣性矩陣、阻尼矩陣和剛度矩陣。X代表位置向量,Xr代表期望位置,Fc代表機械臂末端與環境的接觸力。
第一個公式只考慮了位置出現偏差的情況(彈簧系統),第二個公式考慮了位置和速度的偏差情況(彈簧-阻尼系統),第三個公式考慮了位置、速度、加速度偏差(相當于彈簧-阻尼-質量系統)。
這里的數學表達式和上面貼出來的知乎中的答案不一樣,知乎里從胡可定理來解釋模型,F前面沒有符號。而上面那種數學表達,我的理解是,是針對機械臂末端力的守恒角度列出的方程。對于機器人末端,系統用運動補償環境接觸力,可以看成機械臂對外界環境的柔順。
機械臂和環境相接觸時,用阻抗來描述機械臂的特征,通過調節阻抗控制器的三個參數(慣性系數、阻尼系數、剛度系數)來調節機械臂末端和環境之間接觸力/位置的關系。[2]
圖中E表示機械臂末端實際軌跡與期望軌跡之差(位置控制部分),Z表示等效的阻抗模型(阻尼-彈簧-質量模型),F表示機械臂末端與環境的接觸力。
上面提到的阻抗控制數學模型的三個公式沒有考慮力的跟蹤,下面引入參考力Fr,定義誤差力Fe=Fr-Fc得到如下公式:
定義Xf=X-Xr,通過上述公式可以將機械臂末端與環境之間的接觸力轉化成位置信號,將這個位置的修正信號和期待的位置信號疊加,然后對位置信號用PID控制,就能實現對接觸力/位置的同時控制。如果把PID位置控制放在內環,把利用阻抗模型對力轉化為修正位置的過程放在外環,那這種結構就是基于位置的阻抗控制。下圖是基于Delta機器人的阻抗控制分析圖(來源于哈工大 丁潤澤碩士論文)
機械臂和環境之間存在力交互,傳感器采集到力信號后,利用阻抗模型將它轉化為位置修正量,和期待的位置結合之后得到實際需要控制的位置信號,運動學反解就是將笛卡爾坐標系中的三維位置轉化為具體每個關節電機的角度,再通過位置控制器(一般來說是PID)實現位置控制。
仿真時常見的調試手段有以下幾種:
當系統的期待力/期待位置輸入階躍響應/斜坡響應/正弦波響應時,通過觀察實際力/位置的跟蹤情況,了解阻抗控制器的效果。
突然改變機械臂與環境之間的接觸距離,可以通過觀察位置的跟蹤情況來判斷阻抗控制器參數的好壞。
通過改變三個參數的大小,來模擬環境的變化,(比如改變系數Kd,模擬環境剛度的變化),再觀察力/位置的跟蹤情況。
這些測試讓我想起了武俠小說里面兩個學武的人在對掌的畫面hhh
很多論文都提到,在阻抗控制模型中,Md、Bd、Kd都為對角矩陣,也就是說在空間中三維方向不存在耦合關系。這是為了簡化問題還是本質上模型的一種設計呢?
至于加速度、速度、位置(Md、Bd、Kd)之間如果存在耦合是一種什么物理環境?我想象不出來