Introduction to Robotics 總結1~5

機器人學中經典教材 《Introduction to Robotics: Mechanics and Control》,也就是John Craig的中文版《機器人學導論》,剛來實驗室的時候,就發現師兄們人手一本了,某些章節自己啃也是有點難度的,之前在 Youtube 上看完了斯坦福 Oussama Khatib 教授的視頻Introduction to Robotics,他們上課使用的教材就是這本,一共十六篇lecture,講解也是很通俗易懂,涵蓋了機器人座標變化、D-H參數建模、動力學、運動學、PD、PID控制、力控制等基本理論。

上交大佬曾今說過:" 如果你把這本書的內容掌握了,就已經超過實驗室絕大多數師兄師姐了。然而,真正把教材啃下來的並不多。所以,我在這裏要換個說法了,如果你把這本書的內容掌握了,就可以勝任國內絕大多數機器人公司的開發工作了。" https://qiu6401.gitbook.io/how-to-learn-robotics/gettingstarted

這裏對十六篇講座的基本內容做了個簡單的概括,可以根據需求快速的找到對應的內容。

The first lecture:

  • [40:50]:So if you have a velocity and omega at the center of mass,and you can write the energy,the kinetic energy,associated with this moving mass and inertia associated with the rigid.And simply by adding the kinetic energy of these different link,you have the total kinetic energy of the system.So the mass matrix will become a very simple form of the Jacobian,so that's why I'm going to insist on your understanding of the Jacobian,once you understand the Jacobian,,you can scale the Jacobian with the masses and the inetials get your dynamics.So going to dynamics is going to be very simple if after you really undertand the Jacobian.
  • [43:54]:Task-Oriented Control: Described as how to move the hand to this location without really focusing on how each of the joint is going to move.And this concept can be captured by simply thinking about total robot as if the robot was attracted to move the goal position.This is similiar to the way a human operate just like you are not thinking about how the joints of the body are moving,you are just moving the hand by applying these forces to move the hand to the goal position.So it's like holding the hand and pulling it down to the goal.第一篇lecture就是對課程的一個總結,其實就是這十六篇的學習重點:一個是雅可比矩陣的理解和計算;另一個就是機器人的控制問題,包括PD control和force control等等話題。出現在視頻中的時間爲[40:50]和[43:54]。

The second lecture:

通篇介紹的就是機器人不同座標系之間變換的方法,即旋轉矩陣R和變換矩陣T。

Rotation matrix:是在乘以一個向量的時候改變向量的方向但不改變大小的效果並保持了手性的矩陣。其實旋轉矩陣可以直接寫出來,其值爲\{B\}中單位矩陣 I 在\{A\}中的座標,如式$ ^A_BR = [^AX_B,^AY_B,^AZ_B] $,旋轉矩陣的轉置就是從相反的方向觀察,因此$^A_BR = ^B_AR^T = ^B_AR^{-1}$。對於座標系原點重合的情況下:設座標系\{B\}中的點$^BP$,那麼它在參考座標系\{A\}中的點表示爲$^AP = ^A_BR^BP $ 。 對於座標系原點不重合的情況下,例如對於座標系\{B\}中的向量在參考座標系\{A\}中的表示爲:$^AP_{O_A} =^AP_{O_B} + ^AP_{BORG}$。因此$^AP = ^A_BR^BP+^AP_{BORG0}$,這裏涉及到加法等操作對於高緯度空間運用是比較複雜的,但是寫成矩陣的形式就是$$\left[ \begin{array}{c}^AP\\1\\\end{array} \right ] = \left[ \begin{array}{cc}^A_BR & ^AP_{BORG}\\O & 1\end{array} \right ] \left[ \begin{array}{c}^BP\\1\\\end{array} \right ]$$,這就是從傳說中的 $$T = \left[ \begin{array}{cc}R& P_{ORB}\\\end{array} \right ]$$其中$P_{ORB}$就是\{B\}原點在\{A\}座標系中的座標。

對於變換矩陣T,它沒有和旋轉矩陣R相同的轉置求逆等同的特性,也就是$ T^{-1}!= T^{T} $,而是$$ ^A_BT^{-1} = ^B_AT = \left[ \begin{array}{cc}^A_BR^T & -^A_BR^T.^AP_{BORG}\\O & 1\end{array} \right ] $$。這裏的$ -^A_BR^T.^AP_{BORG}=^BP_{AORG} $.

The third lecture:

旋轉矩陣用9個參數來定義三維度的旋轉,這意味着有六個參數其實是冗餘的,對於一個旋轉矩陣R = \left[\begin{array}{ccc}r_1 & r_2 & r_3\\\end{array} \right ]來說有如下關係:$$ |r1|=|r2|=|r3|=1$$$$ r1r2=r2r3=r3r1=0 $$

對於歐拉角定義的旋轉ZYX,有個特定的暱稱rpy,也就是使用廣泛的roll-pitch-yaw ,其中ZYX歐拉角和旋轉矩陣的對應關係爲:

$$ ^A_BR = R_Z(\alpha).R_Y(\beta).R_Z(\gamma) $$。即爲:$$ ^A_BR= \left[\begin{array}{ccc}ca & -sa & 0\\sa & ca & 0\\0 & 0 & 1\\\end{array} \right ] \left[\begin{array}{ccc}cb & 0 & sb\\0 & 1 & 0\\sb & 0 & cb\\\end{array} \right ] \left[\begin{array}{ccc}1 & 0 & 0\\0 & c\gamma & -s\gamma\\0 & s\gamma & c\gamma\\\end{array} \right ]$$.

當beta角度爲90的時候,會導致機器人空間的奇異性,在該點的時候,無論如何改變其餘兩個角度的大小度無法影響該方向的運動。也就是說三個參數會有奇異性,九個參數會有冗餘,因此引出使用四個參數定義旋轉的四元數。(有點多,沒記錄了)

The fourth lecture:

配置D-H參數理論部分,由於之前已經瞭解過D-H參數配置的方法,這節比較快速過的。老師講的也是不錯的,但是英文理解肯定難受一點,所以也就沒記錄了。

The fifth lecture:

D-H參數配置案例:RPRR機器人,根據配置的D-H參數和公式,對於RPRR機器人,有:

$$ ^0_1T = \left[\begin{array}{cccc} c_1 & -s_1 & 0 & 0\\ s_1 & c_1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ \end{array} \right ]$$

其中第三列$ [0,0,1]^T $表示的就是$z_0$在frame0中座標,同理前兩列分別對應$x_0$$y_0$在在frame0中的座標,最後一列就是frame3的原點在frame1中的座標。

$$ ^0_2T = \left[\begin{array}{cccc} c_1c_2 & -c_1s_2 & -s_1 & -s_1d_2\\ s_1c_2 & -s_1s_2 & c_1 & c_1d_2\\ -s_2 & -c_2 & 0 & 0\\ 0 & 0 & 0 & 1\\ \end{array} \right ]$$

其中第三列$ [-s_1,c_1,0]^T $表示的就是$z_1$在frame0中座標,同理。。。。。這裏需要重點關注的就是z向量,因爲後面可以看到Jacobian的一半就是通過z向量定義的,$z_1,z_2...z_{end}$ in the frame0。

 

 

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