機器人學總結(3) —— 雅克比:速度和靜力

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mobius_strip/article/details/53571534

0 前言

        前面介紹了機器臂的描述(正)運動學,這次我們來說微分運動學。運動學是通過關節角度(長度)求解末端笛卡爾位姿的過程。看到微分應該會想到這裡處理的是速度之間的關係,微分運動學是通過關節速度(角速度)求解末端笛卡爾空間的速度和角速度的過程。在求出雅克比矩陣后我們可以確定關節空間和地卡爾空間的靜力關係。

        因為關節速度(角速度)與笛卡爾空間的速度、角速度之間是線性關係(下面會說明),所以一般使用一個矩陣來表示,即雅克比矩陣。因此關鍵問題就是求解雅克比矩陣。這裡通過不同方法的求解方法會產生不同的雅克比矩陣:分析雅克比和集合雅克比。下面我們分別介紹說明。

1 分析雅克比矩陣

        從雅克比矩陣這個名字就能得到第一種計算方法。數學上的雅克比矩陣就是兩個向量間的線性映射。這裡可以根據微積分的知識根據(正)運動學方程計算雅克比矩陣。

        在(正)運動學過程中,我們每個關節上只有一個關節變量:

        ● 移動關節:關節變量為 di

        ● 轉動關節:關節變量為 θi

        這裡我們統一用關節變量 qi 來表示。因此,在(正)運動學中求得的其次矩陣為:

        

        通過迭代得到末端相對基座標系的笛卡爾位姿:

        

        展開矩陣 T的具體元素如下:

        

        計算的過程的通式如下:

        

        通過上面的其次矩陣利用其中的元素對每個關節求偏導數就得到對應的雅克比矩陣,這裡注意分析雅克比矩陣不唯一(而且大小也不唯一)。

1.1 位姿矩陣的雅克比        

        使用位姿矩陣計算雅克比,對上面的式子中的12個變量可以按照某順序(順序任意)計算出如下的 nx12 的雅克比矩陣(n為關節數):

       

        兩邊各項除以 dt ,簡化寫成下面的形式(一般用 x 代表示笛卡爾變量,q 代表關節變量):

             

1.2 位置和角度的雅克比矩陣

        這種方法比上面的用的多,計算量和存儲空間都較上一個較少。角度有很多種不同的描述方式(歐拉角、固定坐標系),下面我們寫出對應雅克比的通式:

        

        我們在處理過程中經常會把位置和姿態的雅克比分離(有時需要解耦), 兩邊各項除以 dt ,簡化寫成下面的形式:

        

        這裡要注意,不同的角度描述求出的后三項並不完全相同(相差 dt 的二階項),在 dt (採樣週期\控制週期)很小時,結果相差不大。求解前要先計算出對應角度的表達式,然後計算對應的偏導數得到對應的雅克比矩陣。實際上對應角度的微分沒有直觀的物理意義。當角度都很小時對應的旋轉順序和描述順序就不重要了,也就是說二十四種描述可以近似等價(其實都不是準確的)。

2 幾何雅克比矩陣

        當關節較少時使用微分方法是可以的,當關節數量上升正運動學的表達式會變的非常複雜,對應求偏導也會非常複雜(matlab可能無法求解)。所以我們需要其他的方法計算雅克比矩陣——幾何法(矢量法),這種方法也不會像上面的存在高階無窮小的誤差。

2.1 旋轉矩陣的導數

        為了求解線速度和角速度,需要用到旋轉矩陣的導數,我們考慮 為關於事假你的導數即 R = R(t),由正交性得:

        

        求導得:

        

        設:

        

        上式兩邊同時乘以 R(t)得:

        

        因此,稱S(t)R(t)的求導算子。考慮一個定長為 r 的桿的坐標 p(t)= R(t)r 求導得:

        

        通過物理學中線速度和角速度間的關係有(因此S(ω)又稱為 ω 的叉乘算子):

        

        解出對應的 S(t),也可以表示為 S(ω)

        

        得到如下結論,會在後面的計算中用到:

        

2.2 連桿速度

        

        考慮開鏈的機械臂的通用連桿i,這裡將坐標系 {i} 固定在連桿i上,且其原點在關節i+1上,r i為關節i到關節i+1的桿長,pi-1和pi為坐標系 {i-1} 和坐標系 {i} 相對原點的位置向量(在基坐標系中觀察的量不標註對應的上標)。

        線速度計算

        

        求導得:

        

        結論:當前關節的線速度為,上個關節的速度、當前關節的平動產生的線速度、當前關節旋轉產生的線速度合成。

        角速度計算

         

        求導,然後帶入求導算子,使用上面結論得:

        

        去掉公共的Ri和取S得逆(反函數)得:

        

        結論:當前關節的角速度為,上個關節的角速度、當前關節的旋轉產生的角速度的合成。

2.2.1 移動關節

        由於移動關節不會引起方向改變,所以有如下條件:

        

        線速度和角速度:

        

2.2.2 轉動關節

        對於轉動關節有如下條件:

        

        線速度和角速度:

        

2.3 求解雅克比矩陣

        從分析雅克比矩陣的求解過程和上面的公式雅克比表示的是每個關節作用的總和,所以我們分開求解然後在加和即可。向上面一樣我們把加速度和線速度分開求解。

        這裡要說明,無論有多少個關節(機構自由度)笛卡爾空間的速度和角速度都是6個(沿三軸平動和沿三軸轉動),所以雅克比矩陣大小為nx6。

2.3.1 線速度

        線速度作用寫成導數的形式為:

        

        平動關節

        

        轉動關節(對線速度作用的計算是相對末端坐標系原點的):

        

2.3.2 角速度

        角速度作用寫成導數的形式為:

        

        平動關節

        

        轉動關節

        

2.3.3 总結

        整理上面的結果,得到雅克比矩陣:

        平動關節

        

        轉動關節

        

        這裡我們還可以得到不同關節間的速度間關係(設為關節i和關節j):

        

        寫成矩陣的形式如下:

        

        通過上面算式可以實現不同瓜姐間的雅克比的轉換,其中S為上面提到的叉乘算子(微分算子)。

3 靜力學

        靜力學是為了確定機械臂平衡時,作用於執行器末端的廣義力(力或力矩)與作用在關節上的廣義力間的關係。應用虛功原理可以確定對應關係。機械臂是一個時變的完整約束系統,其位形僅決定於關節變量 q ,而不顯含時間。

        對關節力矩,與之關聯的元功為(設 T 為關節力矩):

        

        對末端執行器,與之關聯的元功為(設 F 為末端廣義力):

        

        上式中對應的笛卡爾參數通過雅克比轉化為關節參數,依照虛功原理,處於平衡狀態對應的虛功相等,聯立上面式子得到下面著名結論:

        

        這表明末端執行器力和關節力矩見得關係通過幾何雅克比的轉置矩陣確定。        

4 奇異值

        雅克比矩陣定義了關節速度和末端速度見得線性映射,一般而言雅克比矩陣是關節參數  的函數,那些領雅克比不滿秩的位形稱為運動學奇異點。

        ● 處於奇異點的位形,不可能任意的對末端施加運動;

        ● 處於奇異點的位形,逆運動學可能有無窮多解;

        ● 奇異點的位形附近,操作空間的很小速度可以導致關節空間的很大速度。

        奇異點一般分為以下兩類:

        ● 邊界奇異點:到達邊界或從邊界返回時,可以通過減小運動空間避免;

        ● 內部奇異點:通常由於兩個或兩個以上的運動軸共線引起,或者末端到達特殊位形,這類奇異點可能引起嚴重問題(更多內容在逆運動學中整理)。

5 附錄

        這裡給出matlab求解幾何雅克比的代碼
%% 定義參數 關節數+DH參數
size = 6+1;
a = [0, 1, 3, 0.5, 0, 0]';
alpha = [0, 90, 0, 90, 90, -90]';
d = [1, 0, 0, 3, 0, -1.5]';
cta = [90, 135, -45, 0, -90, 90]';

%% 定義數組
T = cell(size);
R = cell(size);
P = cell(size);
J = cell(size);

%% 計算正運動學
T{1} = [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1];
P{1} = T{1}(1:3, 4);
R{1} = T{1}(1:3, 1:3);
for k=2:size
    T{k} = T{k-1}*MDH(a(k-1), radians(alpha(k-1)), d(k-1), radians(cta(k-1)));
    P{k} = T{k}(1:3, 4);
    R{k} = T{k}(1:3, 1:3);
end

%% 計算雅克比矩陣
for k=2:size
	J{k} = [cross(T{k}(1:3,3), T{size}(1:3, 4) - T{k}(1:3, 4)); T{k}(1:3,3)];
end
Jacob0 = [J{2} J{3} J{4} J{5} J{6} J{7}]

6 參考文獻

        《机器人学导论:分析控制及应用》(美)尼库 著

        《机器人学导论》(美)克来格 著

        《机器人学导论》(美)约翰 J 卡雷格 著

        《机器人学:建模、规划与控制》布鲁诺·西西里安诺、洛伦索·夏维科、路易吉·维拉尼 、朱塞佩·奥里奥洛 著

        《Springer Handbook of Robotics》布鲁诺·西西里安诺、歐莎瑪 哈提卜

猜你喜欢

转载自blog.csdn.net/mobius_strip/article/details/53571534