時間:2012-07-18 10:34:57來源:zhangting
控制機(jī)器人系統(tǒng)的運(yùn)動通常要求了解終端受動物體的方位(通常指工具提示或者受控參照系或者受控坐標(biāo)系統(tǒng))與物理控制的用于操作終端受動物體的執(zhí)行器或者電機(jī)方位(通常指受控參照系或者受控坐標(biāo)系統(tǒng))之間的關(guān)系。這些知識可以大體表征機(jī)器人系統(tǒng)的運(yùn)動學(xué)結(jié)構(gòu),通常用運(yùn)動學(xué)方程表示。一些高性能運(yùn)動控制器具有整理這些方程并得到相對運(yùn)動軌跡的能力,確保機(jī)器人系統(tǒng)的實(shí)時位置控制。本文中,將介紹2種特定機(jī)器人系統(tǒng)的運(yùn)動學(xué)方程。
為什么使用運(yùn)動學(xué)?3自由度起重機(jī)
3自由度(DOF)起重機(jī)是一個相對簡單的機(jī)器人系統(tǒng),用戶可以控制起重距離、起重機(jī)回轉(zhuǎn)角度和起重機(jī)的傾角(見圖1)。通常一臺起重機(jī)還有第四個自由度——起重物體的懸掛高度,這里不考慮此自由度的作用,并不會影響分析結(jié)果的普適性。
圖1 一臺如圖所示的三自由度起重機(jī),允許用戶控制起重距離、回轉(zhuǎn)角和傾斜角,但是不允許起重機(jī)的工作端作直線運(yùn)動。資料來源:www.rki-us.com
通常,起重機(jī)的起重臂旋轉(zhuǎn)路徑就像一個圓弧,而且,如果起重臂傾斜角增加,終端受動物體(起重機(jī)末端的起重物)就會沿著圓弧路徑向上。這些自然形成的軌跡對于某些環(huán)境是可以接受的,然而,一旦用戶希望起重物體的運(yùn)動路徑是由很多線段組成的話,該怎么辦?或者是在任意三個方向上的隨意形狀,又該如何?例如起重物體是某些測量設(shè)備或者圖像采集系統(tǒng)。簡單的例子是將起重物體沿著方形軌跡移動,這對于一些系統(tǒng)是很有用的。
那些學(xué)習(xí)過坐標(biāo)幾何學(xué)的人應(yīng)該對起重機(jī)的受控坐標(biāo)系統(tǒng)很熟悉——通常就是球坐標(biāo)系。空間中的一個點(diǎn)可以用球坐標(biāo)系中的三個參數(shù)來表征:距離原點(diǎn)的距離、x-y平面上距離x軸的方位角θ(0 – 2π區(qū)間)和與z周的夾角θ(0 – π區(qū)間)。球坐標(biāo)系的圖例如圖2所示。
圖2 那些學(xué)習(xí)過坐標(biāo)幾何學(xué)的人應(yīng)該對起重機(jī)的受控坐標(biāo)系統(tǒng)很熟悉,通常就是球坐標(biāo)系。
沿著線段作移動,我們希望在標(biāo)準(zhǔn)3D笛卡爾坐標(biāo)系中工作。笛卡爾坐標(biāo)系中的一個點(diǎn)由(x, y, z)表征,從直觀上說,這個坐標(biāo)系更便于進(jìn)行線段位移控制。例如,方形的運(yùn)動軌跡由4條線段組成,線段運(yùn)動就是笛卡爾坐標(biāo)系中最基本的運(yùn)動模式。問題轉(zhuǎn)化為:我們?nèi)绾卧谶@兩種坐標(biāo)系統(tǒng)進(jìn)行轉(zhuǎn)換。答案是運(yùn)動方程。運(yùn)動方程可以將笛卡爾坐標(biāo)系(x, y, z)與起重機(jī)球坐標(biāo)系(r, θ, Φ)聯(lián)系在一起。
在進(jìn)一步探討之前,讓我們快速地判斷一下,為什么這些方程是必要的。如果用戶想要在笛卡爾坐標(biāo)系下控制運(yùn)動路徑,他/她就需要確定一條由一系列(x, y, z) 坐標(biāo)位置組成的軌跡。當(dāng)使用運(yùn)動控制器時,對于很多種類的運(yùn)動,明確地指明運(yùn)動軌跡是沒有必要的。運(yùn)動控制通常產(chǎn)生一個運(yùn)動輪廓(一系列(x, y, z)坐標(biāo)位置)用于控制運(yùn)動,例如點(diǎn)到點(diǎn)運(yùn)動就意味著笛卡爾坐標(biāo)系下的直線運(yùn)動。如果我們知道受動物體的目標(biāo)(x, y, z)位置,然后就可以反推運(yùn)動方程,運(yùn)動控制器就可以計(jì)算出如何控制實(shí)際的起重機(jī)(包括起重臂長度、傾斜角和回轉(zhuǎn)角——(r, θ, Φ))
前向運(yùn)動方程更多地用于初次校準(zhǔn)。他們可以用于測量反饋位置,并將 (r, θ, Φ) 結(jié)果轉(zhuǎn)換為用戶更加關(guān)心的(x, y, z)坐標(biāo)。這個過程也可以用于確定安裝位置,和用于將任意位置的起重機(jī)坐標(biāo)初始化為相對的(x, y, z)坐標(biāo)。
由此可見運(yùn)動方程的必要性,現(xiàn)在就該討論如何解運(yùn)動方程了。先從反推運(yùn)動學(xué)方程開始,我們希望得到起重機(jī)的(r, θ, Φ)坐標(biāo):
實(shí)際上依靠對球坐標(biāo)系/笛卡爾坐標(biāo)系的觀察就可以解這個等式,使用一些三角公式,可以得到如下等式:
觀察上面第三個等式,Φ是由關(guān)于r的等式表述的,而r又可由第一個等式中的(x, y, z)解出。前向運(yùn)動方程的形式類似:
通過觀察,這幾個方程同樣可以輕松解出:
更復(fù)雜的例子——6自由度Stewart六腳平臺
Stewart六腳平臺在很多場合都有應(yīng)用,包括自動檢測、機(jī)器人手術(shù)、人造衛(wèi)星和望遠(yuǎn)鏡定位以及機(jī)械仿真等等。六腳包括6個獨(dú)立的受控執(zhí)行器(長度),在一端匯聚到一個固定的基座,另一端與一平面平臺連接,允許6個自由度,(α (roll), (pitch), γ (yaw), x, y, z)。幾何學(xué)實(shí)例如圖3所示。
圖3 Stewart六軸平臺在很多場合都有應(yīng)用,包括自動檢測、機(jī)器人手術(shù)、人造衛(wèi)星和望遠(yuǎn)鏡定位以及機(jī)械仿真等等。來源: ACS Motion Control
對于此系統(tǒng),反推運(yùn)動學(xué)方程可以告訴我們:對于給定的(α, , γ, x, y, z),可以知道執(zhí)行器的長度(l1, l2, l3, l4, l5, l6)是多少,還可以知道姿態(tài)(P)。前向方程用于計(jì)算姿態(tài)P,用執(zhí)行器的腳長度I表示。前向運(yùn)動方程是封閉的方程組,傳統(tǒng)計(jì)算方法是不可解的。但是,可以通過使用牛頓迭代法來解此前向方程,下文將作討論。
為了解此系統(tǒng)的反向運(yùn)動方程,必須確定平臺種類以及執(zhí)行器匯聚點(diǎn)的位置,因?yàn)槟_長就是點(diǎn)與點(diǎn)之間的距離。平臺執(zhí)行器所處位置用基點(diǎn)坐標(biāo)系表示如下:
上述等式的下標(biāo)表明了向量的參考坐標(biāo)系。這里,點(diǎn)的位置實(shí)際上是齊次坐標(biāo),以(x, y, z, w) 或者 (x/w, y/w, z/w)的形式表述,為了簡化討論,這里的w我們可以令其等于1。R是變換矩陣,可以將平臺點(diǎn)(Ppi)也就是平臺系數(shù)轉(zhuǎn)換成(Bpi),也就是基座系數(shù)。R是3×4的矩陣,包括3×3的旋轉(zhuǎn)矩陣和3×1的平移矩陣。
在R等式中,“s”代表正弦函數(shù);“c”代表余弦函數(shù)。上述等式中的旋轉(zhuǎn)矩陣是單位矩陣,用來變換roll、pitch和yaw三個向量的方向。平移矩陣就是一個簡單的向量。由于(Bbi)的值是已知的,所以一旦知道了(Bpi)的值,就可以通過計(jì)算兩點(diǎn)的距離得到腳的長度。
上面的等式實(shí)際上很簡單,但是由于引入了矩陣?yán)碚?,所以有很多?xiàng)。下面是最終的反向運(yùn)動方程(對于腳“i”)。
此系統(tǒng)的前向運(yùn)動學(xué)方程相對復(fù)雜一些,由于處理上的要求,前向方程也不容易解。這里,比直接解方程更好的方法是使用迭代法,初始估計(jì)值代入方程、更新,然后重復(fù),直到估計(jì)值的誤差小于某一限定值。具體的計(jì)算方法在此就不再贅述,此方法對于以下的過程都可以通用。此方法是前文提及的牛頓迭代法的推廣。關(guān)于此方法有很多相關(guān)文章,本文在此著重討論前向運(yùn)動方程的應(yīng)用。第一步是估計(jì)初始姿態(tài)K,或者換種說法,估計(jì)(α , , γ, x, y, z)的值。對于一個運(yùn)動控制器,初始估計(jì)值通常是(α , , γ, x, y, z)的受控位置。從此估計(jì)值,反推運(yùn)動學(xué)方程,可以計(jì)算出執(zhí)行器的長度,稱之為 (g1, g2, g3, g4, g5, g6) ,或者以向量的形式寫成g.,數(shù)學(xué)表達(dá)式如下:g = I(k)。
然后,基于估計(jì)值算出的長度與來自反饋設(shè)備的實(shí)際長度I相比較,得到“估值誤差”e,可以寫成e = g – l。
如果估值誤差小于某一個限定值,那么此過程就此結(jié)束。如果估值誤差不小于這個限定值,那么,就需要一個更好的估計(jì)值。這個過程一直重復(fù),直到估計(jì)值足夠完美(此時,這個估計(jì)值就被作為方程的解!)為了理解如何從數(shù)學(xué)上確定一個“更好的估計(jì)值”,首先考慮下面這個簡單的微積分學(xué)例子。假設(shè)我們有一個通用函數(shù)y = f(x),f是非線性的。如果我們要計(jì)算由x的變化所導(dǎo)致的y的變化,下面的等式有效:
現(xiàn)在,如果我們考察一小段f(x)的變化區(qū)間,我們可以將這個區(qū)間近似成線性關(guān)系,有如下等式:
上面的等式在基礎(chǔ)微積分學(xué)通常被稱為斜率局部逼近,可以寫成下面的形式:
如果前面的表達(dá)式再重寫一次,我們可以得到以x變化量為參數(shù)的等式:
現(xiàn)在,讓我們將同樣的思想,應(yīng)用到這個等式上??紤]到我們有一個非線性函數(shù)g=I(k),用于確定基于估計(jì)方位(k)和 估計(jì)腳長度(g)。從設(shè)備反饋,我們也知道腳的實(shí)際長度(I)。我們的估值誤差就是e=g-l,,目標(biāo)是如果估值誤差不符合要求就為方位(k*)從新確定一個估計(jì)值。然后重復(fù)使用上面的方法:
上面的等式看起來很熟悉,它基本上就是我們在之前的簡單微積分例子中展示的方程。我們可以簡單地再一次重寫這個方程,以得到方位 (k*)的新估值表達(dá)式:
矩陣dI(k)/dk就是我們所說的Jacobian矩陣。在將Jacobian矩陣應(yīng)用于我們的上述等式之前必須先將其翻轉(zhuǎn),對于六階矩陣就需要6×6求逆矩陣,這是一個復(fù)雜的數(shù)學(xué)推導(dǎo)。一旦姿態(tài)的新估計(jì)值計(jì)算出來,這個過程就可以再次重復(fù),直到誤差(e = g – l) 小于某個可以接受的級別。
如果反向運(yùn)動方程已知,如下就是通用前向運(yùn)動方程的推導(dǎo)步驟:
1.估計(jì)平臺的初始姿態(tài)(k)。對于運(yùn)動控制器,這通常就是初始受控姿態(tài)。
2.基于估計(jì)值,計(jì)算腳長度,使用反向運(yùn)動方程(g=I(k))。
3.通過將此腳長度與從編碼器獲得的當(dāng)前實(shí)際腳長度進(jìn)行比較得到(e = g – l),如果誤差大小小于某個限制,此算法就將當(dāng)前值收斂于k,并且跳到第6步,如果誤差超過此限制,繼續(xù)第4步。
4.使用反向Jacobian矩陣產(chǎn)生新的估計(jì)值 (k*=k-inv(dI(k)/dk)*e)。
5.用第4步的結(jié)果更新估計(jì)值。
6.從第2步重新開始迭代。這個算法并不僅僅適用于六自由度系統(tǒng),只要反向運(yùn)動方程已知,它就可以用于推導(dǎo)任何系統(tǒng)的前向方程(有收斂解的系統(tǒng))。
總結(jié)
一個強(qiáng)壯的控制機(jī)器人系統(tǒng)的方法的關(guān)鍵就是運(yùn)動方程,這些方程不僅僅描述了系統(tǒng)的幾何結(jié)構(gòu),他們也使得具有足夠處理能力和速度的現(xiàn)代運(yùn)動控制器,能夠完成必要的計(jì)算,以提供對系統(tǒng)的平滑運(yùn)動控制。運(yùn)動方程通常在實(shí)時領(lǐng)域可以直接求解,然而,對于一些復(fù)雜系統(tǒng),直接求解無法實(shí)現(xiàn),可以采用一些算法,進(jìn)行求解。高性能的現(xiàn)代控制器提供了特定的結(jié)構(gòu),可以在控制系統(tǒng)內(nèi)固化這些等式,為很多領(lǐng)域提供了開發(fā)機(jī)器人系統(tǒng)的可能性。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>以簡驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
2024-10-31
2024-10-31
2024-10-31
2024-10-31
2024-10-29
推薦專題
更多>