天天看點

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

基礎知識

速度矢量,角速度矢量,叉乘運算

速度是描述質點運動快慢和方向的實體量,等于位移對時間的微分。同時也等于加速度對時間的積分。

角速度: 定義:一個以弧度為機關的圓(一個圓周為2π,即:360度=2π),在機關時間内所走的弧度即為角速度,ω=dφ/dt

角速度的方向垂直于轉動平面,可通過右手螺旋定則來确定。

線速度=角速度叉乘半徑( v = w × r v=w\times r v=w×r)(由圓心向外指) 根據叉乘的右手法則來規定角速度的方向

叉乘:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

剛體的線速度和角速度

線速度

把坐标系{B} 固連在一剛體上,要求描述相對于坐标系{A} 的運動 B Q ^{B}\textrm{Q} BQ這裡已經認為坐标系{A} 是固定的。

坐标系{B} 相對于坐标系{A} 的位置用位置矢量 A P B O R G ^{A}\textrm{P}_{BORG} APBORG​ 和旋轉矩陣 B A R _{B}^{A}\textrm{R} BA​R來描述。此時,假定方位 B A R _{B}^{A}\textrm{R} BA​R不随時間變化,則Q點相對坐标系{A} 的運動是由于 A P B O R G ^{A}\textrm{P}_{BORG} APBORG​ 或 B Q ^{B}\textrm{Q} BQ随時間的變化引起的。

求解坐标系{A} 中Q 點的線速度是非常簡單的。隻要寫出坐标系{A} 中的兩個速度分量,求其和為: A V Q = A V B O R G + B A R B V Q ^{A}\textrm{V}_Q=^{A}\textrm{V}_{BORG}+_{B}^{A}\textrm{R} ^{B}\textrm{V}_Q AVQ​=AVBORG​+BA​RBVQ​ (1)

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

(1)隻适用千坐标系{B}和坐标系{A} 的相對方位保持不變的情況!

角速度

如圖1兩坐标系原點重合且相對線速度為零,固定在坐标系{B}上的矢量 B Q ^{B}\textrm{Q} BQ

以角速度 A Ω B ^{A}\Omega_B AΩB​相對于坐标系{A}旋轉。那麼從{A}看固定在{B}中的矢量随時間變化,可以根據下圖分析:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

從坐标系{B}看矢量Q是不變的: B V Q = 0 ^{B}\textrm{V}_Q=0 BVQ​=0

從坐标系{A}中看點Q的速度為旋轉角速度 A Ω B ^{A}\Omega_B AΩB​

下圖顯示了矢量Q繞 A Ω B ^{A}\Omega_B AΩB​的旋轉,是從坐标系{A}中觀測到的

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

可以由圖2-3得知:

1、 A Q ^{A}\textrm{Q} AQ的微分增量一定垂直于 A Ω B ^{A}\Omega_B AΩB​和 A Q ^{A}\textrm{Q} AQ

2、微分增量的大小為: ∣ Δ Q ∣ = ( A Q s i n θ ) ( ∣ A Ω B ∣ Δ t ) |\Delta Q|=(^{A}\textrm{Q}sin\theta)(|^{A}\Omega_B| \Delta t) ∣ΔQ∣=(AQsinθ)(∣AΩB​∣Δt)

又餓了大小和方向,就可以得到矢量積,根據角速度矢量公式有 A V Q = A Ω B × A Q ^{A}\textrm{V}_{Q}=^{A}\Omega_B\times^{A}\textrm{Q} AVQ​=AΩB​×AQ

但是一般情況下Q是相對于坐标系{B}變化的,加上一個分量,可有:

A V Q = B A R B V Q + A Ω B × B A R B Q ^{A}\textrm{V}_Q=_{B}^{A}R^BV_Q+^{A}\Omega_B\times_B^AR^BQ AVQ​=BA​RBVQ​+AΩB​×BA​RBQ

緊接着将以上線速度與角速度擴充為坐标系原點不重合的情況,最終可以推導出從坐标系{A}觀測坐标系{B}中固定速度矢量的最終普遍表達式:

A V Q = A V B O R G + B A R B V Q + A Ω B × B A R B Q ^{A}\textrm{V}_Q=^AV_{BORG}+_{B}^{A}R^BV_Q+^{A}\Omega_B\times_B^AR^BQ AVQ​=AVBORG​+BA​RBVQ​+AΩB​×BA​RBQ

連杆間的速度傳遞

連杆間速度的傳遞就如同位姿變換一般,可以通過連杆間的推導從基座的速度逐漸推導到末端速度

角速度

當兩個 ω \omega ω矢量都是相對于同一個坐标系時,那麼這些角速度能夠相加。是以,連杆i+l 的角速度就等于連杆i的角速度加上一個由于關節i+ 1 的角速度引起的分量。參照坐标系{i}, 可寫成:(實在懶得打公式,直接截圖了)

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

其中

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

注意:隻有當所有速度矢量都變換到相對于通一個坐标系表述時,兩個速度矢量才可以相加!

可以帶到得到連杆i+1角速度相對于坐标系{i+1}的表達式

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

線速度

坐标系{i+ 1} 原點的線速度等于坐标系{i} 原點的線速度加上一個由于連杆i的角速度引起的新的分量。是以有:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

要得到連杆3的速度相對于固定坐标系表達式,用旋轉矩陣 3 0 R ^0_3R 30​R對其作旋轉變換即可

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

雅克比

雅克比矩陣是以n個n元函數的偏導數為元素的行列式,事實上,在函數都連續可微(即偏導數都連續)的前提之下,它就是函數組的微分形式下的系數矩陣(即雅可比矩陣)的行列式

在這裡表示的是速度的映射,是一個時變線性映射 Y ˙ = J ( X ) X ˙ \dot{Y}=J(X)\dot{X} Y˙=J(X)X˙

在機器人學中,通常使用雅可比将關節速度與操作臂末端的笛卡兒速度聯系起來:

0 v = 0 J ( Θ ) Θ ˙ ^0v=^0J(\Theta)\dot{\Theta} 0v=0J(Θ)Θ˙

其中 Θ \Theta Θ為操作部關節角矢量, v v v是笛卡爾速度矢量,對于6關節機器人,雅克比矩陣是6x6階矩陣, Θ \Theta Θ是6x1維額, 0 v ^0v 0v也是6x1維,由一個3x1維線速度矢量和一個3x1維角速度矢量組合起來的

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

根據

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

可以得到雅克比矩陣:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

力域中的雅克比

在多元空間中,功是一個力或者力矩矢量與位移矢量的點積,利用虛功原理可知:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼
機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

由上式可知,雅克比的轉置将作用在手臂上的笛卡爾力映射成了等效關節力矩,當得到相對于坐标系{0}的雅克比矩陣後,可有對坐标系{0}中的力矢量進行變換:

機器人動力學(雅克比)基礎知識剛體的線速度和角速度連杆間的速度傳遞雅克比力域中的雅克比matlab代碼

當雅克比矩陣不滿秩時,同位置域中的奇異性相同,存在某些特定的方向,末端執行器在這些方向上不能施加期望靜态力,在奇異位置,末端笛卡爾施加的力在某些方向上增大或者減小,與所求的關節空間驅動力的值無關

matlab代碼

J = robot.jacob0(q)  %jacob0()求解的是将關節速度映射到世界坐标系中的末端執行器空間速度
Jn = jaconb(q);%末端執行器在自身空間内的速度
           

繼續閱讀