3. 機器人正運動學---座標系及其變換

目錄

 

1. 引言

2. 位姿的描述(位置與姿態)

2.1 平移的描述(位置)

2.2 旋轉的描述(姿態)

3. 總結


1. 引言

個人認爲機器人運動學是整個機器人學的核心內容。仍然以前面的SCARA機器人爲例,如下圖所示,假設笛卡爾座標系{A}是一個固定座標系(笛卡爾座標系實際上就是利用相交於一點的三條數軸來衡量空間中點的位置的一種座標系,相對應的有極座標系,球座標系等;所謂固定座標系就是座標系不隨着機器人運動)。藍色的P點是機器人絲桿末端的上的一個點。

想像一下,如果我們知道機器人各個關節當前旋轉的角度,如何確定P點在座標系{A}中的座標P(x,y,z)呢?老實說即使是這樣一個問題也曾經困擾了我很久。

這就是我們在機器人運動學中碰到的第一個問題---正運動學問題。也就是在已知機器人各個關節的位置的情況下確定其末端執行器的位置。

2. 位姿的描述(位置與姿態)

整個機器人運動學都是建立在座標系及其變換的基礎之上,而這一部分也確實存在諸多有趣的問題。因此我們以座標系及其變換作爲機器人正運動學的切入點。

2.1 平移的描述(位置)

從最簡單的情況說起,如下圖所示,兩個座標系{A}和{B}的座標軸分別平行,設座標系{A}爲基座標系,那麼如何表達座標系B與座標系A關係呢?

這個問題其實是比較簡單的,從圖中我們知道,空間中任意一點M在基座標系{A}中的位置可以用向量P_{M}^{A}表示,而在座標系{B}中可以用向量P_{M}^{B}表示。座標系{B}的原點可以用向量P_{B}^{A}表示(注意這些記法的上標代表該向量在哪個座標系中表達,也就是向量的起點與哪個座標系的原點重合,下標代表的是空間中的點,比如M代表的是M點。因此P_{X}^{Y}代表X點在座標系Y下的向量表示)。根據向量的運算法則,我們很容易得到下面的等價關係

                                                                                 P_{M}^{A}=P_{B}^{A}+P_{M}^{B}

在上面的等式中P_{M}^{A}P_{M}^{B}都代表了點M的座標,只是參考座標系不同,一個參考系是座標系{A},一個參考系是座標系{B}。那麼P_{B}^{A}又代表了什麼呢?我想你應該能夠想到這個代表了兩個座標系之間的位置關係。因此對於只存在平移關係的兩個座標系,我們通過一個三維向量P_{B}^{A}就可以描述座標系{B}與座標系{A}的關係。上面的等式也就是在只有平移的情況下點在座標系{A}與{B}之間的座標變換公式。

2.2 旋轉的描述(姿態)

旋轉的描述是比較複雜的,我們先討論只有旋轉,沒有平移的情況,即兩個座標系原點重合的情況。如下圖所示,在這樣的情況下怎麼去描述座標系{B}與座標系{A}之間的關係呢?

我們依然以座標系{A}爲基座標系。那麼座標系{A}的三個座標軸可以用如下三個單位向量描述:

                                                          i_A=\begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix} j_A=\begin{bmatrix} 0\\ 1\\ 0 \end{bmatrix} k_A=\begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}

同時我們設座標系{B}的三個座標軸在基座標系{A}下的向量描述爲:i_B, j_B, k_B。現在我們假設空間中有一點V,那麼我們知道這個點既可以在座標系{A}中表示,又可以在座標系{B}中表示。設點V在基座標系{A}下的座標爲:P_{V}^{A}=\begin{bmatrix} x_A & y_A& z_A \end{bmatrix}^{T},點V在座標系{B}中的座標爲P_{V}^{B}=\begin{bmatrix} x_B & y_B& z_B \end{bmatrix}^{T},設O爲座標系{A}和{B}的公共原點。

此時我們意識到向量\overrightarrow{OV}其實存在兩種分解,第一種是將向量\overrightarrow{OV}分解到座標系{A}的三個軸上,此時向量\overrightarrow{OV}可以表示爲:\overrightarrow{OV}=x_A\overrightarrow{i_A}+y_A\overrightarrow{j_A}+z_A\overrightarrow{k_A};第二種是將向量\overrightarrow{OV}分解到座標系{B}的三個軸上,此時向量\overrightarrow{OV}可以表示爲:\overrightarrow{OV}=x_B\overrightarrow{i_B}+y_B\overrightarrow{j_B}+z_B\overrightarrow{k_B}(注意我們前面已經提到所有的六個座標軸單位向量都是在基座標系中描述的)。由於這是同一個向量的兩種表示方法。因此我們可以得到如下的等價關係:

                                                                x_A\overrightarrow{i_A}+y_A\overrightarrow{j_A}+z_A\overrightarrow{k_A}=x_B\overrightarrow{i_B}+y_B\overrightarrow{j_B}+z_B\overrightarrow{k_B}

如果在這個等式兩邊同時點乘\overrightarrow{i_A}可以得到:

                                                                    x_A=x_B\overrightarrow{i_B}\cdot \overrightarrow{i_A}+y_B\overrightarrow{j_B}\cdot \overrightarrow{i_A}+z_B\overrightarrow{k_B}\cdot \overrightarrow{i_A}

注意在上面的推導中我們用到了向量點乘法則,即兩個互相垂直的單位向量點積爲0,單位向量與其自身的點積爲1。根據向量點乘法則,

                                                           \overrightarrow{i_B}\cdot \overrightarrow{i_A}=\left | \overrightarrow{i_B} \right |\left | \overrightarrow{i_A}\right |cos<i_B, i_A>=cos<i_B, i_A>

注意在上面的推導中我們用到了單位向量模長爲1的性質。根據這些性質,x_A可以進一步表示爲:

                                      x_A=x_Bcos<i_B, i_A>+y_Bcos<j_B, i_A>+z_Bcos<k_B, i_A>=\begin{bmatrix} cos<i_B, i_A> & cos<j_B, i_A> & cos<k_B, i_A> \end{bmatrix}\begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}

同理可得:

                                                  y_A=\begin{bmatrix} cos<i_B, j_A> & cos<j_B, j_A> & cos<k_B, j_A> \end{bmatrix}\begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}

                                                 z_A=\begin{bmatrix} cos<i_B, k_A> & cos<j_B, k_A> & cos<k_B, k_A> \end{bmatrix}\begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}

最終整理可得:

                                    \begin{bmatrix} x_A\\ y_A\\ z_A \end{bmatrix}=\begin{bmatrix} cos<i_B, i_A> & cos<j_B, i_A>& cos<k_B, i_A>\\ cos<i_B, j_A> & cos<j_B, j_A>& cos<k_B, j_A>\\ cos<i_B, k_A> & cos<j_B, k_A>&cos<k_B, k_A> \end{bmatrix}\begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}=R\begin{bmatrix} x_B\\ y_B\\ z_B \end{bmatrix}

前面我們進行了那麼多的推導,看上去很複雜,但是其實都是最簡單的向量以及矩陣運算。我們觀察最後得到的這個等式。等式左邊是點V在座標系{A}中的座標;等式右邊是一個矩陣R乘上點V在座標系{B}中的座標。那麼根據這個等式我們可以將空間中任意一點由座標系{B}中的表示轉換到座標系{A}中的表示。可見我們利用同一個向量(即\overrightarrow{OV}的兩種不同分解(在座標系{A}中分解得到其在座標系{A}中的座標表示,同理在座標系{B}中分解得到在座標系{B}中的座標表示)的等價性已經不自覺地推導出了兩個原點重合的座標系之間的姿態關係,這個關係就是前面提到的矩陣R。

接下來我們總結一下關於旋轉的描述。當兩個座標系{A}和{B}原點重合時,他們的姿態關係可以利用一個3x3的矩陣來描述。我們看到這個矩陣的所有元素都是餘弦值,因此我們稱這個矩陣爲方向餘弦矩陣。這可以認爲是方向餘弦矩陣的由來。

3. 總結

這一篇文章,我們主要介紹了座標系以及座標系的兩種變換關係,即平移變換和旋轉變換,雖然我們依然沒能解決引言中提出的問題,但是我們已經比較接近答案了。

由於個人能力有限,所述內容難免存在疏漏,歡迎指出,歡迎討論。

下一篇:4. 機器人正運動學---理解變換矩陣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章