目錄
1. 引言
前面的文章中我們分別討論了座標系及其平移,旋轉兩種變換。但是到目前爲止我們一直都在分開討論平移和旋轉,而在實際應用中兩個座標系之間的關係往往既有平移又有旋轉,因此這篇文章我們將討論一下如何以一種更爲緊湊的方式來表達兩個座標系之間的位置及姿態關係。
2. 齊次座標系變換
我們可以把這個問題分解開來看,詳細說來就是當我們無法一下看出兩個座標系{A}和{B}的變換關係時,可以嘗試在這兩個座標系之間插入一箇中間座標系{C},只要我們找到了座標系{A}和{C}的關係,然後又找到了座標系{C}和{B}的關係,那麼我們就可以間接確定{A}和{B}之間的關係。
2.1 座標系之間的位姿關係
如下圖所示,座標系{A}經過平移變換可以得到座標系{C},座標系{C}繞其自身z軸旋轉可以得到座標系{B}。根據我們在機器人正運動學---座標系及其變換中提到的方法,我們可以很容易的確定座標系{A}與{C}之間的關係可以表達爲:
(1)
我們來解釋一下這個等式的含義。等式的左側是空間中任意一點在座標系{A}中的座標;等式右側代表點在座標系{C}中的座標;代表座標系C的原點Corg(the origin of axis {C})在座標系{A}中的座標。
考慮完了座標系{A}和{C}之間的平移關係,接下來我們討論座標系{B}和{C}之間的旋轉關係,前面我們已經敘述了座標系{B}的由來,它是座標系{C}沿着其z軸旋轉一個角度而來。因此,按照上一篇文章機器人正運動學---理解變換矩陣中提到的方法,將座標系{B}的各軸單位矢量在座標系{C}下投影即可得到座標系{B}與座標系{C}的姿態變換關係,如下式所示:
(2)
旋轉矩陣的各列分別是座標系{B}三個座標軸單位矢量在座標系{C}三個軸上的投影。我們再來解釋一下上述座標變換等式的含義,左側代表空間點在座標系{C}中的座標;等式右側爲座標系{B}和{C}之間的變換關係;代表點在座標系{B}中的座標。
接下來問題來了,有了座標系{A}和{C}的關係,也有了座標系{B}和{C}的關係,我們如何得到座標系{A}和{B}之間的變換呢?其實很簡單,可以從兩種角度去思考,第一個是從變換的角度,假設空間一點在座標系{B}中座標已知,爲。那麼通過座標系{B}和{C}的變換關係(等式(2)),我們就可以得到點在座標系{C}下的座標爲,而我們又知道座標系{A}和座標系{C}之間的關係(等式(1)),因此我們可以最終得到點在座標系{A}中的座標。第二個是從數學的角度,說白了就是將等式(2)代入到等式(1)就可以得到座標系{A}和{B}之間的關係。這個關係可以用下式表示:
(3)
注意由於座標系{B}和{C}原點是重合的,因此,又因爲座標系{A}和{C}各個軸分別平行,因此。
2.2 齊次變換矩陣
在2.1節我們得出了任意兩個座標系之間的位姿關係描述,但是這種描述其實是不夠緊湊的,特別是當我們面對多重連續變換時,等式會變得很臃腫。爲了解決這個問題,我們在原有旋轉矩陣的基礎上擴展一維用於容納平移關係。得到最終的齊次變換矩陣,這樣任意兩個座標系{A}和{B}的位姿關係可以重新形式化爲:
(4)
如果你大致理解什麼是分塊矩陣就會發現其實等式(4)和等式(3)是完全等價的。
2.3 齊次變換矩陣的逆
齊次變換矩陣的逆表達式爲:
當你充分理解了齊次變換矩陣的本質後,它的逆是可以直接寫出來的,無需特別記憶,但是在本篇文章我們暫不討論它的由來,而是把它留到下一篇文章和齊次變換矩陣的用途一起討論,因爲他們之間的關係才更密切一些。
4. 總結
這篇文章主要介紹了齊次變換的由來,下一篇文章我們將討論齊次變換矩陣的幾個用途,這樣你就不會爲變換矩陣乘的順序等一系列問題而感到煩惱了。由於個人能力有限,所述內容難免存在疏漏,歡迎指出,歡迎討論。