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