(二)機械人工具箱三維空間描述

2021-08-04 06:14:56 字數 2356 閱讀 1706

(二)機械人工具箱三維空間描述

1.旋轉矩陣

rx=rotx(pi/3); %繞x軸的旋轉矩陣rx(pi/3),同理如下

ry=roty(pi/4);

rz=rotz(pi/2);

2.帶變數的旋轉矩陣

syms alpha beta gama

rx1=rotx(alpha) %繞x軸的旋轉矩陣,同理如下

ry1=roty(beta)

rz1=rotz(gama)

3.座標系繪製

trplot(rx,'frame','rx_1','color','g');%rx即要繪製的旋轉矩陣,frame是當前座標系的標識

顯示效果

3.座標系繪製

trplot(rx,'frame','rx_1','color','g');%rx即要繪製的旋轉矩陣,frame是當前座標系的標識

4.旋轉動畫顯示

while(1)

tranimate(rz*rx*ry);%顯示從基座標開始到rz的變換動畫

pause(5);%等待5s再迴圈動畫

end5.尤拉角(zyz時)

ou_zyz=eul2r(0.1,0.2,0.3);%zyz尤拉角,等價於下面的旋轉變換的疊乘

r1=rotz(0.1)*roty(0.2)*rotz(0.3);

trplot(ou_zyz);%繪製尤拉角

tranimate(ou_zyz);%動畫顯示尤拉變換

rot_eul1=tr2eul(r1);%旋轉矩陣轉換為尤拉角

6.尤拉角(卡爾丹式 xyz,翻滾、俯仰、偏航)

ou_xyz=rpy2r(0.1,0.2,0.3);%xyz尤拉角,理論上等價於下面旋轉變換的疊乘

r2=rotx(0.1)*roty(0.2)*rotz(0.3);

rot_eul2=tr2rpy(r2);%旋轉矩陣轉換為尤拉角

7.繞任意軸旋轉

r3=eul2r(0.1,0.2,0.3);

[theta,v]=tr2angvec(r3);%theta 表示旋轉角度的大小,v 表示轉軸的方向向量

執行結果

theta =

0.4466

v =0.0450    0.4486   0.8926

上面的這些資訊實際上是包含在 r3 的特徵值和特徵向量中,仔細對比lambdta對角線上的元素為r3的特徵值,由於正交旋轉矩陣必有有乙個特徵值為1其餘的為lambdta值為 cos(theta)±isin(theta),而特徵值為1所對應的列向量即為旋轉軸的方向向量

[v,lambda]=eig(r3)

執行結果

v =0.7064 + 0.0000i   0.7064 +0.0000i   0.0450 + 0.0000i

-0.0143 - 0.6318i  -0.0143 +0.6318i   0.4486 + 0.0000i

-0.0284 + 0.3175i  -0.0284 -0.3175i   0.8926 + 0.0000i

lambda =

0.9019 + 0.4319i   0.0000 +0.0000i   0.0000 + 0.0000i

0.0000 + 0.0000i   0.9019 - 0.4319i   0.0000 + 0.0000i

0.0000 + 0.0000i   0.0000 +0.0000i   1.0000 + 0.0000i

上面的紅色字型為 cos(theta)=0.9019 、sin(theta)= 0.4319

,黃色背景表示特徵值1對應的列向量為旋轉軸

8.四元數

四元數的表示為 q=s+v=s+v1i+v2j+v3k,其中s為標量

q=quaternion(rpy2r(0.1,0.2,0.3));%執行結果中第乙個是標量,其他的為i、j、k

執行結果

q =

0.98186 < 0.064071, 0.091158, 0.15344>

若q.norm=1 則表示的是單位四元數,即  s2+v12+v22+v32=1

單位向量非常特殊,他可以表示繞軸n轉了theta角,相關關係為s=cos(theta/2) ,v=sin(theta/2)n

8.四元數

q=quaternion(rpy2r(0.1,0.2,0.3));%執行結果中第乙個是標量,其他的為i、j、k

q.inv();%表示四元數的逆或者說是共軛

q*q.inv();%乘積為標量

q/q;%等價於q*q.inv()

q.r;%表示將四元數轉換為旋轉矩陣

q.plot();%繪製四元數座標系

Matlab機械人工具箱(二)

上一章主要介紹了在二維和三維空間中如何描述位姿。這一章則將上章拓展到物件,其位姿是時間的函式。分兩個部分,第乙個部分主要討論如何產生一系列短暫的位姿序列,一條足夠光滑的從起始位姿到終止位姿的軌跡 第二部分主要討論位姿改變速率的概念,即其導數,以及如何將從機械學角度比如速度和角速度等方面將這些概念 聯...

matlab機械人工具箱學習

選了機械人的課,作業需要用matlab機械人工具箱robotic toolbox。作業要求是搭建乙個機械臂,然後在工作空間某個平面內寫乙個字,涉及到機械人的軌跡規劃,求逆解。步驟 1.搭建四軸scara機械人 dh模型i ad 1 02250 1 201750 23 00d0 4000 3 建立機械...

機械人工具箱的安裝

機械人工具箱的安裝 機械人工具箱估計會一直更新下去,下面把工具箱管理者更新工具箱的位址貼上 上面有許多程式 的示例和一些 addpath c robotic tool box rvctools startup rvc 上面的這種方法在每次開啟matlab之後都需要手動輸入這兩條指令,未免有些繁瑣,下...