當前位置: 華文問答 > 科學

機器人學中旋量和D

2020-05-25科學
D-H 運算式全稱是 Denavit-Hartenberg 運算式 [1] ;旋量運算式又稱為 Product of Exponential (PoE) 運算式 [2]

為了比較這兩者運算式的不同,下面舉個簡單的 平面串線上構 的例子,並以這兩種運算式描述其正向運動學關系。

平面串線上構(論文用圖,加浮水印望理解)

D-H 運算式:

在用 D-H 運算式描述正向運動學關系時,需要在每一個關節處設定中間參考座標系(Link Frame)。所以對於 D-H 方法,在上圖中,除了固定參考座標系 \{0\} 和終端座標系 \{n\} 之外還需要每一個中間關節處的座標系 \{1\}、\{2\}、\cdots 、\{n-1\} 。

那麽,終端座標系 \{n\} 相對於固定參考座標系 \{0\} 的位姿將可以用下式描述:

\[{{\kern 1pt} ^0}{T_n} = {{\kern 1pt} ^0}{T_1} \cdot {{\kern 1pt} ^1}{T_2} \cdot {{\kern 1pt} ^2}{T_3} \cdot \;{\kern 1pt} ...\; \cdot {{\kern 1pt} ^{n - 2}}{T_{n - 1}} \cdot {{\kern 1pt} ^{n - 1}}{T_n}\tag{1}\]

其中每一個 T 都對應一個座標系相對於其上一個相鄰座標系的 齊次座標變換矩陣

^0{T_1} = \left[ {\begin{array}{*{20}{c}} {\cos {\theta _1}}&{ - \sin {\theta _1}}&0&0\\ {\sin {\theta _1}}&{\cos {\theta _1}}&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{array}} \right]{\kern 1pt} ;\;\;{\;^{n - 1}}{T_n} = \left[ {\begin{array}{*{20}{c}} 1&0&0&{{L_{n - 1}}}\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{array}} \right] \\ {\;^{i - 1}}{T_i} = \left[ {\begin{array}{*{20}{c}} {\cos {\theta _i}}&{ - \sin {\theta _i}}&0&{{L_{i - 1}}}\\ {\sin {\theta _i}}&{\cos {\theta _i}}&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{array}} \right],\;i = 1,2,...,n - 1; \tag{2}

每個齊次座標變換矩陣 T 都需要 4 個參數描述:

\[T = \left[ {\begin{array}{*{20}{c}} R&p\\ 0&1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}&{{r_{13}}}&{{p_1}}\\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}}&{{p_2}}\\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}}&{{p_3}}\\ 0&0&0&1 \end{array}} \right]\tag{3}\]

即用於確定旋轉矩陣 R 的一個轉角值 \theta 和三個直線用於確定位置的座標 (p_1,p_2,p_3) ,D-H 運算式屬於最少參數運算式。

旋量運算式:

旋量方法不需要中間座標系,僅需要固定參考座標系 \{0\} 和終端座標系 \{n\} ,零位置時終端座標系 \{n\} 相對於固定參考座標系 \{0\} 的齊次變換矩陣,假設為 M :

\[M = \left[ {\begin{array}{*{20}{c}} 1&0&0&{{L_1} + {L_2} + ... + {L_{n - 1}}}\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{array}} \right]\tag{4}\]

以及各個關節的旋量座標:

\[{\xi _i} = \left[ {\begin{array}{*{20}{c}} {{\omega _i}}\\ {{v_i}} \end{array}} \right] \in {\Re^6},\;\;i = 1,2,...,n - 1\tag{5}\]

那麽,終端座標系 \{n\} 相對於固定參考座標系 \{0\} 的位姿將可以用下式描述:

\[{{\kern 1pt} ^0}{T_n} = {e^{\left[ {\xi _1} \right]\theta _1}} \cdot {\kern 1pt} {\kern 1pt} {e^{{\left[ {{\xi _2}} \right]\theta _2}}} \cdot {\kern 1pt} {\kern 1pt} {e^{\left[ {{\xi _3}} \right]\theta _3}} \cdot \;{\kern 1pt} ...\; \cdot {\kern 1pt} {e^{\left[ {{\xi _{n - 1}}} \right]\theta _{n - 1}}} \cdot {\kern 1pt} M\tag{6}\]

其中,

\[\left[ {{\xi _i}} \right] = \left[ {\begin{array}{*{20}{c}} {\left[ \omega \right]}&v\\ 0&0 \end{array}} \right] \in se\left( 3 \right)\tag{7}\]

屬於三維特殊歐幾列特群對應的李代數。

而 \omega = {\left[ {{\omega _1}\;{\omega _2}\;{\omega _3}} \right]^T} \in \Re{^3} ,

\[\left[ \omega \right]{\rm{ = }}\left[ {\begin{array}{*{20}{c}} 0&{ - {\omega _3}}&{{\omega _2}}\\ {{\omega _3}}&0&{ - {\omega _1}}\\ { - {\omega _2}}&{{\omega _1}}&0 \end{array}} \right] \in so\left( 3 \right)\tag{8}\]

屬於三維特殊正交群對應的李代數。具體可參考:如何通俗地解釋李群和李代數的關系?

由式 (7) 知每個對應的齊次座標矩陣需要用 6 個參數描述,所以旋量運算式不是最小參數運算式。

D-H 運算式與旋量運算式的比較:

盡管從上面的分析知,D-H 運算式需要的參數比旋量運算式少,但是需要添加中間參考座標系,而且該座標系並不能隨意選取,且不同的人可以選取的方法不一樣,這就很可能導致同樣的結構不同的人描述出來的結果不統一;而旋量運算式由於沒有中間參考座標系的存在,這樣即使是不同的人描述來描述,只要是正確的結果,就應當是一致,所以旋量運算式更加 適於通用化、標準化描述

另外,當兩個旋轉軸近乎平行時,用 D-H 方法會產生病態矩陣,導致控制的精度難以保證;而旋量方法除了需要的參數多一些以外,並沒有因此而犧牲控制精度的風險。

---

至於參考資料,我推薦下面參照的參考文獻 [2]

參考

  1. ^ J. Denavit, R.S. Hartenberg, A kinematic notation for lower-pair mechanisms based on matrices, J. Appl. Mech. (1955) 215–221.
  2. ^ a b K.M. Lynch, F.C. Park, Modern robotics mechanics, planning, and control, Cambridge University Press, 2017.