1 什么是工業(yè)機(jī)器人
? ? ? ?機(jī)械臂(又稱操作臂)扬卷,實(shí)際上就是機(jī)器人的一種颤介,機(jī)器人學(xué)稱之為工業(yè)機(jī)器人。對于操作臂而言跟匆,在建模過程中主要關(guān)心的是末端執(zhí)行器的位置和它的姿態(tài)异袄,確保在完成工業(yè)上的某些工藝?yán)绾附拥龋軌驕?zhǔn)確的描述并控制機(jī)器人到達(dá)需求位置玛臂。
2 怎么描述機(jī)械臂的“位姿”烤蜕?
? ? ? ?機(jī)械臂末端執(zhí)行器的位姿,指的是它的“位置”和“姿態(tài)”迹冤。位置指的是“位移”(筆者認(rèn)為讽营,主要是為了描述機(jī)械臂的方向與距離),而姿態(tài)指的實(shí)際上是“旋轉(zhuǎn)”泡徙。我們用三維空間里的一個位移和一個旋轉(zhuǎn)橱鹏,就可以清楚描述機(jī)械臂的位姿。實(shí)際上堪藐,只要是剛體莉兰,它的位姿就可以嘗試用這種方式來描述。
? ? ? ?描述位姿的方式有很多種礁竞,以下描述位姿的方式是齊次變換方法:
2.1 位置
? ? ? ?位移和旋轉(zhuǎn)都需要一個參考糖荒。這個參考可以放在工業(yè)機(jī)器人的“根部”位置,設(shè)置一個三維笛卡爾坐標(biāo)系模捂,我們把它叫做參考系(注意捶朵,都是“右手系”)蜘矢。也就是說,我們可以在參考系
下泉孩,使用一個三維坐標(biāo)來描述一個空間點(diǎn)的位置硼端。我們把這個坐標(biāo)用向量來描述并淋,稱之為位置矢量
寓搬。
? ??????????????????????????????????????????????????????????????
? ? ? ?左上標(biāo)“A”表示是在參考系下。位置向量
是從參考系
的原點(diǎn)
起源的一個矢量县耽,它在參考系上的三個分量就是空間中某個點(diǎn)的在該參考系下坐標(biāo)句喷。
? ? ? ?因此,我們選取機(jī)械臂末端的執(zhí)行器上的某個點(diǎn)兔毙,取名為唾琼。那么,
點(diǎn)跟隨著機(jī)械臂一起移動澎剥,我們就可以用
點(diǎn)在參考系
中的位置矢量锡溯,描述出工業(yè)機(jī)器人的位置。這個向量我們稱之為
哑姚。
? ? ? ?左上標(biāo)的A仍然表示在參考系中祭饭,這里的B和O將在后面解釋⌒鹆浚總之倡蝙,它就是指
這個點(diǎn)在參考系
中的位置矢量。
2.2 姿態(tài)
? ? ? ?姿態(tài)意味著“旋轉(zhuǎn)”绞佩。與2.1一樣寺鸥,我們把選定的點(diǎn)視作另一個參考系的原點(diǎn),重新建立一個新的坐標(biāo)系
品山,我們稱之為工作坐標(biāo)系胆建。它是末端執(zhí)行器上的一個坐標(biāo)系,隨著機(jī)械臂的運(yùn)動肘交,它與末端執(zhí)行器的相對位置保持不變笆载。
? ? ? ?位置矢量的含義便是:工作坐標(biāo)系B中的
點(diǎn)(也叫
),在參考坐標(biāo)系A(chǔ)中的位置矢量酸些。
? ? ? ?既然是描述“旋轉(zhuǎn)”宰译,那么我們應(yīng)該拋棄“位置”這個概念。也就是說魄懂,我們在研究姿態(tài)的時候沿侈,可以先把工作坐標(biāo)系整個平移到參考坐標(biāo)系,讓它們的原點(diǎn)重合市栗,使得位置向量變成0缀拭。這個時候咳短,我們只關(guān)心該如何使用參考系A(chǔ)來描述參考系B。
? ? ? ?這里我們只需要描述清楚工作參考系B三個向量就可以實(shí)現(xiàn)——這三個向量是工作參考系B的主向量蛛淋,也就是沿著參考系B的三個軸的正向咙好、長度為1的單位向量:
? ??????????????????,也就是
(這里的每個向量視為列向量)
? ? ? ?我們把這個三個向量褐荷,用參考坐標(biāo)系A(chǔ)重新描述一遍勾效,也就是說,我們把系B的三個主向量放到系A(chǔ)中叛甫,分別把每個主向量分解到系A(chǔ)的三個軸上层宫,重新獲得三個新的坐標(biāo)值:。這里A的含義是指把這個向量用系A(chǔ)來描述其监,B的含義是指它是系B中的某個向量萌腿,這里指的是系B的三個主向量。這里我們會獲得一個矩陣抖苦,我們給它起名叫做旋轉(zhuǎn)矩陣
毁菱。
? ? ? ?這個矩陣肯定也是一個的矩陣,它長什么樣子呢锌历?
? ? ? ?我們先描述一些簡單的情況贮庞。首先,如果系A(chǔ)和系B完全一致辩涝,三個軸的方向完全一樣贸伐,那么系B的三個主向量的坐標(biāo)在A中沒有任何變化,則有:
? ??????????????????????????????????????????????????????
? ? ? ?如果此時怔揩,系B繞著它的z軸旋轉(zhuǎn)了逆時針一個45度角捉邢。那么,B的向量在系A(chǔ)中原先的坐標(biāo)
變成了系A(chǔ)中的
商膊;B的
向量將會從原先的?
變成系A(chǔ)中的
伏伐;而B的
沒有任何變化(你可以理解為這個軸上沒有“旋轉(zhuǎn)信息”),還是
晕拆。因此藐翎,旋轉(zhuǎn)矩陣為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ?目前現(xiàn)有的教科書上的,描述繞著單獨(dú)軸旋轉(zhuǎn)旋轉(zhuǎn)矩陣就是這么來的实幕。然而吝镣,絕大多數(shù)沒有說清楚的是,它們給出的公式的角度昆庇,實(shí)際上是逆時針旋轉(zhuǎn)得到的末贾。以下就是教科書給出的系B如果和系A(chǔ)在一開始是重合的,此時系B只關(guān)于z軸旋轉(zhuǎn)一個固定角度的旋轉(zhuǎn)矩陣的公式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ? ? ?
? ? ? ?旋轉(zhuǎn)矩陣就是我們想要的“旋轉(zhuǎn)”的信息整吆」澳欤或者說“姿態(tài)”辉川。
? ? ? ?獲得了旋轉(zhuǎn)矩陣之后,該怎么使用呢拴测?或者說乓旗,怎么把系B中的任意一個向量用系A(chǔ)來描述呢?教科書上給你了一個看上去簡單易懂的公式:集索,獲得了旋轉(zhuǎn)矩陣后屿愚,你就可以通過它來輕松的把在系B中描述的向量轉(zhuǎn)化成系A(chǔ)中的坐標(biāo)。
? ? ? ?但是為什么旋轉(zhuǎn)矩陣是左乘抄谐?為什么乘以旋轉(zhuǎn)矩陣就能轉(zhuǎn)換了渺鹦?以下是筆者的解釋(可以不用看):
? ? ? ?首先我們先假設(shè)在一個空間中有一個任意向量,它可以先用系B來描述一次蛹含,獲得它在系B中的三個坐標(biāo)
。這個P我們使用列向量
來表示塞颁。
? ? ? ?它在B中的三個坐標(biāo)意味著什么浦箱?相信我不用解釋大家都知道。我們把分解到系B三根軸上的三個向量祠锣,它們的模就是坐標(biāo)酷窥。換個角度理解,我們可以認(rèn)為
是由系B的三個主向量的“線性組合”以及平行四邊形法則來合成的一個矢量伴网,也就是:
? ? ? ? ? ? ? ? ? ? ??????????????????????????????????????
? ? ? ?這三個列向量蓬推,本質(zhì)上就是
,只是描述方法不同澡腾。如果我們換用
三個列向量來線性組合獲得
沸伏,至少
這三個系數(shù)是不會變化的,因?yàn)樗谋举|(zhì)就是沿著原來的方向伸長或者縮短向量动分。
? ? ? ?所以毅糟,列向量里面包含的三個“系數(shù)”,如果恰好左乘旋轉(zhuǎn)矩陣澜公,那么這個表達(dá)式所代表的線性組合就是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
3 齊次變換矩陣
? ? ? ?其實(shí)到這里姆另,位姿就已經(jīng)描述清楚了。當(dāng)然坟乾,旋轉(zhuǎn)矩陣在線性代數(shù)中是一種正交矩陣迹辐,還有一些很特別的性質(zhì),在這里就不多贅述了甚侣。不過為了同時描述位姿明吩,以及方便計(jì)算,我們定義了一個新的矩陣:齊次變換矩陣渺绒。
? ? ? ?首先贺喝,我們把位置向量視為一個列向量菱鸥,并在它的末端添加一個1。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????? ? ?
? ? ? ?是指系B從原點(diǎn)指向某點(diǎn)的一個向量躏鱼,其大小為
氮采,因此這個位置向量變成了
。然后我們定義齊次變換矩陣
:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯而易見的是染苛,這是一個
的矩陣鹊漠。旋轉(zhuǎn)矩陣是
的,下方的三個空缺使用0來填補(bǔ)茶行,也就是3個0(000)躯概。
? ? ? ?它也有這個公式,只不過這里的位置向量一定是第三大節(jié)這樣補(bǔ)充過的列向量才可以畔师。補(bǔ)充一點(diǎn):
在前面的幾節(jié)提到過娶靡,這里也需要補(bǔ)充一個1的元素到列向量的末尾。
4 結(jié)語
? ? ? ?本節(jié)內(nèi)容是筆者個人理解看锉,若有錯誤姿锭,歡迎大家指出并討論。
? ? ? ?同時伯铣,由于旋轉(zhuǎn)矩陣的特殊性質(zhì)呻此,在實(shí)際運(yùn)用中還有更多技巧。這些可以參考教科書《工業(yè)機(jī)器人》或者《機(jī)器人學(xué)》腔寡。? ? ? ?