資源描述:
《剛體動力學(xué)(rigidbodydynamics)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、剛體動力學(xué)(RigidBodyDynamics)任程本文的內(nèi)容由作者翻譯整理了BrianVincentMirtich博士畢業(yè)論文“Impulse-baseddynamicsimulationofrigidbodysystems,1996”的附錄而來。本文并不系統(tǒng)講解剛體動力學(xué),卻旨在提綱挈領(lǐng)的講解在學(xué)習(xí)剛體動力學(xué)(RigidBodyDynamics)的過程中的幾個十分關(guān)鍵的問題。其中第1節(jié)介紹向量、矩陣在不同坐標系間的轉(zhuǎn)換及其作用,第2節(jié)介紹用矩陣表示的向量叉積并利用其表述矩陣的求導(dǎo)運算,第3節(jié)利用1、2節(jié)的內(nèi)容進一步導(dǎo)出實用的動力學(xué)公式,說明
2、了為何物理書中的剛體動力學(xué)公式形式有τ()tt?I??()和τ()tttt???Iα()?()I?()兩種情形,而在實際情況(如機器人領(lǐng)域、計算機圖形與動畫領(lǐng)域)中使用的經(jīng)常為τ()tttt?Iα()???()I?()。閱讀本文前您需要已經(jīng)具備最基本的向量、矩陣的知識,并已經(jīng)知道基本的牛頓力學(xué)定律Fa?m。1.向量、矩陣、坐標系本文中,一個坐標系指右手方向的三維坐標系,其三個基準軸向量i,,jk相互正交,滿足i??jk。我們經(jīng)常要將某向量在一個坐標系下的坐標轉(zhuǎn)換到另一個坐標系下。例如對于一個向量v,設(shè)31?列向量v表示其在坐標系F(坐標系常以大
3、寫斜體字母表f示)下的坐標,31?列向量v表示其在坐標系G下的坐標。如果我們以三個31?g列向量rrr,,分別表示坐標系F的基準軸ijk,,在坐標系G下的坐標。則有坐標轉(zhuǎn)xyz換公式:vrrr????vRvg??xyzff其中33?的矩陣R為一個旋轉(zhuǎn)矩陣,它將向量v在坐標系F下的坐標轉(zhuǎn)換為其在坐標系G下的坐標,此后本文中將稱R為“由坐標系F到坐標系G的旋轉(zhuǎn)矩陣”。一個旋轉(zhuǎn)矩陣的各個列向量為單位向量(即長度為1),且相互正交。此矩陣的各個行向量同樣亦是如此。矩陣R的行列式(determinant)為1,且R的一個重要且十分常用的特征為?1TRR?
4、(1.1)?1式(1.1)在被廣泛應(yīng)用于快速計算R。除向量外,矩陣也經(jīng)常要被變換到不同坐標系中以能夠作用于不同坐標系下的向量坐標。例如,設(shè)向量?和向量L分別表示一個剛體“在相對于附著在其自身的局部坐標系下”的角速度(angularvelocity)和角動量(angularmomentum),則?和L的關(guān)系為LI??其中I為一個33?的質(zhì)量矩陣(massmatrix)。對于如何得到公式LI??,及慣量I的表示請參看相關(guān)力學(xué)書籍,或者參看OnlineSiggraph2001CourseNotes:“Physicallybasedmodeling”中
5、RigidBodyDynamics一節(jié):http://www.pixar.com/companyinfo/research/pbm2001/現(xiàn)假設(shè)角速度和角動量被表示在另一個坐標系下,例如表示在空間中始終固定的全局坐標系下。設(shè)?和L分別為角速度和角動量在全局坐標系下的坐標,則此oo時這兩個向量通過一個矩陣I相聯(lián)系,即LI??oooo則一個重要的關(guān)系式為:TIR?IR(1.2)o其中R是由剛體局部坐標系到全局坐標系的旋轉(zhuǎn)矩陣。I如同I一樣代表著相同的映射關(guān)系,由I和?得到的角動量L與由I和?得oooo到的角動量L相似,只是表示在不同的坐標系下:L
6、I??oooT?()RIR()R??RI??RL2.用矩陣表示向量叉積(crossproducts)3在一個向量空間?,兩個向量進行叉積()?可以得到另外一個向量:?abab??yzzy??ab??ab?ab(2.1)?zxxz??ab?ab??xyyx?式(2.1)可以用另一種方式表示:abab???其中a?是一個33?的斜對稱矩陣:??0?aazy??a???aa0??zx???aa0??yx斜對稱矩陣指矩陣具有性質(zhì):Taa????在動力學(xué)的公式表述中以矩陣的方式來表示向量叉積經(jīng)常很有用。設(shè)a?表示在坐標系F下“被向量a施加叉積”的運算,a
7、?表示在坐標系G下FG“被向量a施加叉積”的運算。如果R是由坐標系F到坐標系G旋轉(zhuǎn)矩陣,則運算a?與a?的關(guān)系為:FGTaR???aR(2.2)GFa?與a?的不同僅在于它們作用于不同坐標系下。GF矩陣求導(dǎo):叉積矩陣提供了一個很方便的渠道來表述一個矩陣的導(dǎo)數(shù)。設(shè)坐標系B相對于一個慣性坐標系O進行旋轉(zhuǎn),角速度為?()t,旋轉(zhuǎn)矩陣R()t為由坐標系B到坐標系O的旋轉(zhuǎn)矩陣。如果?()t是角速度?()t在坐標系O下的坐o標,?()t是角速度?()t在坐標系B下的坐標,則有矩陣的導(dǎo)數(shù):bRR????o(2.3)RR????b證明:設(shè)r為固定在坐標系B中的
8、一個向量,它隨坐標系B一起在全局坐標框架O下旋轉(zhuǎn)。以r和r分別表示r在坐標系O和坐標系B下的坐標。則計算導(dǎo)數(shù)r?obo有幾種方式:rR????d()r