01 旋轉矩陣與變換矩陣

2022-08-02 08:45:15 字數 3597 閱讀 7213

旋轉矩陣描述了兩個座標系(slam中兩個時刻機械人的姿態)之間的相互關係,是slam中描述姿態變換的數學工具。為了更深入地理解旋轉矩陣及座標變化,我們簡單地以兩個原點重合的座標系來闡釋旋轉矩陣的含義及其性質。

​有兩個座標系:$b$,$a$,其中$b$為剛體座標系;兩座標係原點重合,點$p$是剛體上的一點

座標系b的座標軸單位向量在座標系a中的描述為:

$$\vec x_b=\begin\alpha_x \\\beta_x \\\gamma_x \\\end,\vec y_b=\begin\alpha_y \\\beta_y \\\gamma_y \\\end,\vec z_b=\begin\alpha_z \\\beta_z \\\gamma_z \\\end

$$點$p$在座標系$b$和座標系$a$中的座標分別為 $p_ b$ ,$p_a$,如下

$$p_b=\beginx_b \\y_b \\z_x \\\end,p_a=\beginx_a \\y_a \\z_a \\\end

$$這裡有乙個重要的理解:**座標是基於某乙個座標系下滿足一定條件的若干參考向量的度量**。點$p_b$在座標系$b$中的座標,其實是基於座標系$b$中三個單位正交基$e_x=\begin1&0&0\end^t$,$e_y=\begin0&1&0\end^t$,$e_z=\begin0&0&1\end^t$,進行的度量,即:

$$p_b=x_b\cdot\begin1 \\0 \\0 \\\end+y_b\cdot\begin0 \\1 \\0 \\\end+z_b\cdot\begin0 \\0 \\1 \\\end

$$點$q$在座標系$a$中的座標$p_a$可以以座標系$a$中三個單位正交向量$\vec x_b=\begin\alpha_x&\alpha_y&\alpha_y\end^t$,$\vec y_b=\begin\beta_y&\beta_y&\beta_y\end^t$,$\vec z_b=\begin\gamma_z&\gamma_z&\gamma_z\end^t$來進行度量,座標分別為$x_b$,$y_b$,$z_b$,則點$p$在座標系$a$中表達如下:

$$\begin

p_a&=x_b\cdot \vec x_b+y_b\cdot \vec y_b+z_b\cdot \vec z_b \\

&=x_b\cdot \begin\alpha_x \\\beta_x \\\gamma_x \\\end+ y_b\cdot \begin\alpha_y \\\beta_y \\\gamma_y \\\end+z_b\cdot \begin\alpha_z \\\beta_z \\\gamma_z \\\end \\

&=\begin\alpha_x & \alpha_y &\alpha_z \\\beta_x & \beta_y & \beta_z \\\gamma_x & \gamma_y & \gamma_z \\\end\cdot \beginx_b \\y_b \\z_x \\\end \\

&=r_b^a \cdot p_b

\end

$$綜上:點$p$在座標系$a$中座標和在座標系$b$中座標有如下關係:

$$p_a=r_b^a\cdot p_b

$$$r_b^a$為旋轉矩陣:是座標系$a$到座標系$b$的旋轉矩陣,也是座標系$b$在座標系$a$中的描述(即剛體在座標系$a$中的姿態)

上述結論成立的條件:座標系$a$與座標系$b$的原點相同

關於旋轉矩陣作用的直觀理解:

$$p_a(在a中座標)=r_b^a(b在a中的描述)\cdot p_b(在b中座標)

$$這是對旋轉矩陣作用比較本質的理解,在後續**imu標定**相關的部落格中會用到這一理解

### 旋轉矩陣的性質

- **旋轉矩陣的合成法則**:兩個座標系之間的旋轉矩陣可以利用它們與中間座標系間的旋轉矩陣相乘得到,該結論可以拓展到多個矩陣

$$r_c^a=r_b^a\cdot r_c^b

$$- **性質1**

設$r$是旋轉矩陣,$r_1$ ,$r_2$ ,$r_3$ 是其列向量,則它們是相互正交的,即:

$$r_i^tr_j=\begin0 &i\neq j \\ 1 &i=j \end

$$- **性質2**

設 r是旋轉矩陣,則有:

$$rr^t=r^tr=i

$$- **性質3**

$$detr=1

$$滿足上述性質的3×3矩陣的集合定義為**特殊正交群$so(3)$:**(**群** 的概念後面會介紹到)

如上圖,有兩個座標系:$b$,$a$,其中$b$為剛體座標系;$b$座標系原點在$a$座標系中的位置是 $t_ b^a$ ,點$p$是剛體上的一點。

**一般運動剛體上點的位置:**當座標系$b$與座標系$a$不重合,剛體上點p在座標系a中的座標該如何描述?

$$p_a=r_b^a\cdot p_b + t_b^a

$$$r_b^a$是座標系$b$相對於座標系$a$的旋轉矩陣,$t_b^a$是座標系$b$相對於座標系$a$的平移量,也即座標系$b$原點在座標系$a$中的座標。

引入齊次座標,將上式變為純乘法操作:

$$\widetilde p_a =\beginp_a \\ 1\\\end,\widetilde p_b =\beginp_b \\ 1\\\end,t_b^a =\beginr_b^a& t_b^a \\0^t & 1\\\end

$$得到:

$$\widetilde p_a =t_b^a\cdot \widetilde p_b

$$其中,$\widetilde p_a$和$\widetilde p_b$為**齊次座標**,$t_b^a$為齊次座標$\widetilde p_b$到$\widetilde p_a$的**變換矩陣**

變換矩陣構成**特殊歐氏群**$se(3)$

$$se(3)=\begint=\beginr & t \\0^t & 1\\\end\in \mathcal r^|r \in so(3),t \in \mathcal r^\\\end

$$變換矩陣的合成法則:兩個座標系之間的變換矩陣可以利用它們與中間座標系間的變換矩陣相乘得到,該結論可以拓展到多個矩陣

\[t_a^c =t_b^c \cdot t_a^b

\]變換矩陣的逆

\[t^ =\beginr^t& -r^tt \\0^t & 1\\\end

\]注意:座標系\(a\)原點在座標系\(b\)中的位置

\[t_a^b=-r_a^b\cdot t_b^a=-\beginr_b^a\end^t\cdot t_b^a

\]上式在工程當中有如下常見應用及易錯點:

\[t_b^a + t_c^b = t_c^a \\

t_b^a-r_a^c \cdot t_c^a = t_b^a + t_a^c=t_b^c

\]尤其注意:

\[t_b^a-t_c^a \neq t_b^c

\]

座標變換 旋轉矩陣

關於最常見的繞座標軸旋轉,可以看看前一篇 幾何變換詳解。繞任意軸旋轉的情況比較複雜,主要分為兩種情況,一種是平行於座標軸的,一種是不平行於座標軸的,對於平行於座標軸的,我們首先將旋轉軸平移至與座標軸重合,然後進行旋轉,最後再平移回去。整個過程就是 對於不平行於座標軸的,可按如下方法處理。該方法實際上...

旋轉矩陣怎麼推導 矩陣旋轉變換推導

矩陣旋轉變換,就是說給定乙個角度和點,我們將點繞著乙個座標軸旋轉。在旋轉過程中發生變化的總是 三個座標裡面的其中兩個,而不讓第三個座標值變化。這意味著,旋轉路徑總在三個座標軸平面中的乙個之中 繞 z 軸的是 xy 面 繞 x 軸的是 yz 面 繞 y 軸的是 xz 面。還有許多複雜的旋轉變換可以讓你...

旋轉矩陣求旋轉角度 矩陣旋轉變換推導

矩陣旋轉變換,就是說給定乙個角度和點,我們將點繞著乙個座標軸旋轉。在旋轉過程中發生變化的總是 三個座標裡面的其中兩個,而不讓第三個座標值變化。這意味著,旋轉路徑總在三個座標軸平面中的乙個之中 繞 z 軸的是 xy 面 繞 x 軸的是 yz 面 繞 y 軸的是 xz 面。還有許多複雜的旋轉變換可以讓你...