采用五次多項式插值法進行機械臂軌跡規劃,基于Matlab Robotics Toolbox平臺進行關節空間軌跡規劃,得到各關節角度、速度和加速度與時間關系曲線。
此外,每次重新啟動MATLAB時都需要重新輸入“startup_rvc”回車來啟動這個工具箱。
本文所控對象為串聯六R機械臂,其具體尺寸參數見于代碼中的D-H表。
MATLAB代碼
% Modified DH
% ABB robot
% lujingguihua
clear;
clc;
% %機器人建模
th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = 0;
th(2) = 0; d(2) = 0; a(2) = 3.20; alp(2) = pi/2;
th(3) = 0; d(3) = 0; a(3) = 9.75; alp(3) = 0;
th(4) = 0; d(4) = 8.87; a(4) = 2; alp(4) = pi/2;
th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = -pi/2;
th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = pi/2;
% DH parameters th d a alpha sigma
L1 = Link([th(1), d(1), a(1), alp(1), 0], 'modified');
L2 = Link([th(2), d(2), a(2), alp(2), 0], 'modified');
L3 = Link([th(3), d(3), a(3), alp(3), 0], 'modified');
L4 = Link([th(4), d(4), a(4), alp(4), 0], 'modified');
L5 = Link([th(5), d(5), a(5), alp(5), 0], 'modified');
L6 = Link([th(6), d(6), a(6), alp(6), 0], 'modified');
robot = SerialLink([L1, L2, L3, L4, L5, L6]); %SerialLink 類函數
robot.name='Robot-6-dof';
robot.display(); %顯示D-H表
%軌跡規劃參數設置
init_ang = [pi/6,0, 2*pi/3,pi/3, 0, 0];
targ_ang = [pi/2,pi/6,0,0, -pi/2, pi/6];
T =(0:0.1:5);
%關節空間軌跡規劃方法
[q,qd,qdd] = jtraj(init_ang,targ_ang,T); %直接得到角度、角速度、角加速度的的序列
%%顯示
figure(1);
%動畫顯示
subplot(1,2,1);
title('動畫過程');
robot.plot(q);
% 軌跡顯示
t=robot.fkine(q);%運動學正解
rpy=tr2rpy(t); %t中提取位置(xyz)
subplot(1,2,2);
plot2(rpy);
xlabel('X/mm'),ylabel('Y/mm'),zlabel('Z/mm');hold on
title('空間軌跡');
text(rpy(1,1),rpy(1,2),rpy(1,3),'A點');
text(rpy(51,1),rpy(51,2),rpy(51,3),'B點');
% 指定文件夾保存圖片
filepath=pwd; %保存當前工作目錄
cd('C:UsersAdministratorDesktoppic') %把當前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic1.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
%單個關節的位置title('關節1位置');
figure(2);
subplot(3,2,1);
plot(T,q(:,1));
xlabel('t/s'),ylabel('θ1/rad');hold on
subplot(3,2,2);
plot(T,q(:,2));
xlabel('t/s'),ylabel('θ2/rad');hold on
subplot(3,2,3);
plot(T,q(:,3));
xlabel('t/s'),ylabel('θ3/rad');hold on
subplot(3,2,4);
plot(T,q(:,4));
xlabel('t/s'),ylabel('θ4/rad');hold on
subplot(3,2,5);
plot(T,q(:,5));
xlabel('t/s'),ylabel('θ5/rad');hold on
subplot(3,2,6);
plot(T,q(:,6));
xlabel('t/s'),ylabel('θ6/rad');hold on
% 指定文件夾保存圖片
filepath=pwd; %保存當前工作目錄
cd('C:UsersAdministratorDesktoppic') %把當前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic2.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
%單個關節的速度
figure(3);
subplot(3,2,1);
plot(T,qd(:,1));
xlabel('t/s'),ylabel('Ω1/rad');hold on
subplot(3,2,2);
plot(T,qd(:,2));
xlabel('t/s'),ylabel('Ω2/rad');hold on
subplot(3,2,3);
plot(T,qd(:,3));
xlabel('t/s'),ylabel('Ω3/rad');hold on
subplot(3,2,4);
plot(T,qd(:,4));
xlabel('t/s'),ylabel('Ω4/rad');hold on
subplot(3,2,5);
plot(T,qd(:,5));
xlabel('t/s'),ylabel('Ω5/rad');hold on
subplot(3,2,6);
plot(T,qd(:,6));
xlabel('t/s'),ylabel('Ω6/rad');hold on
% 指定文件夾保存圖片
filepath=pwd; %保存當前工作目錄
cd('C:UsersAdministratorDesktoppic')
%把當前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic3.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
%單個關節的加速度
figure(4);
subplot(3,2,1);
plot(T,qdd(:,1));
xlabel('t/s'),ylabel('α1/rad');hold on
subplot(3,2,2);
plot(T,qdd(:,2));
xlabel('t/s'),ylabel('α2/rad');hold on
subplot(3,2,3);
plot(T,qdd(:,3));
xlabel('t/s'),ylabel('α3/rad');hold on
subplot(3,2,4);
plot(T,qdd(:,4));
xlabel('t/s'),ylabel('α4/rad');hold on;
subplot(3,2,5);
plot(T,qdd(:,5));
xlabel('t/s'),ylabel('α5/rad');hold on
subplot(3,2,6);
plot(T,qdd(:,6));
xlabel('t/s'),ylabel('α6/rad');hold on
% 指定文件夾保存圖片
filepath=pwd; %保存當前工作目錄
cd('C:UsersAdministratorDesktoppic') %把當前工作目錄切換到圖片存儲文件夾
print(gcf,'-djpeg','C:UsersAdministratorDesktoppic4.jpeg'); %將圖片保存為jpg格式,
cd(filepath) %切回原工作目錄
通過軌跡規劃,不僅得到了機械臂末端執行器的空間軌跡,還可以得到其關節的角位移、角速度和角加速度。從上圖 可以看出機械臂到達預定的位置,證明了該機械臂設計的合理性。
隨著運動的進行, 各個關節的角度與時間關系的曲線, 可以看到其運動過程連續平滑。而且在圖 中可以看出各關節的角速度和角加速度都是光滑變化的,沒有出現跳變點。進一步地,在首末兩點的速度以及加速度都可以有效地約束為零。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
matlab
+關注
關注
188文章
2996瀏覽量
233207 -
機器人
+關注
關注
213文章
29482瀏覽量
211537 -
仿真
+關注
關注
51文章
4236瀏覽量
135299 -
機械臂
+關注
關注
13文章
544瀏覽量
25218
發布評論請先 登錄
相關推薦
熱點推薦
【Pocket-RIO申請】采用labview與FPGA的多自由度機械臂快速控制系統原型開發
項目名稱:采用labview與FPGA的多自由度機械臂快速控制系統原型開發試用計劃: 機械臂在自動化工業中廣泛應用,由于每個
發表于 12-19 15:30
采用LabVIEW實現四自由度機械臂運動控制系統設計
應用領域:控制設計挑戰: 短期內實現4自由度機械臂(3臺交流伺服電機、1臺微型直流電機)的 變參數同步運動控制,為鋼絲傳動機構的控制提供應用解決方案。應用方案: 方案采用NI公司
發表于 05-06 09:26
欠驅動兩自由度機械臂的模糊控制
分析了欠驅動兩自由度機械臂主、被動關節間的動力學耦合特性,指出了被動關節處于不同位置時耦合特性的差異。針對主、被動關節間的動力學耦合特性及其差異,提出了兩種
發表于 08-04 15:51
?27次下載
分享最好的機械臂是7個自由度的原因
現在用的最多的工業機器人,一般都是六軸的,但是最近推出來的人機協作機械臂,卻有7個自由度,一直想不明白為什么。直到最近看到知乎上的一個問題:人的手臂(腕關節到肩關節)有幾個

一種新型7自由度冗余繩驅動機械臂
針對傳統機械臂負載白重比小、臂身慣量大、人機交互安全性弱等問題,對繩驅動機械臂的結構、繩驅關節耦合、冗余運動學等方面進行了研究,創新設計了一
發表于 02-27 14:33
?7次下載

為什么最好的機械臂是7個自由度而不是6個自由度
現在用的最多的工業機器人,一般都是六軸的,但是最近推出來的人機協作機械臂,卻有7個自由度,一直想不明白為什么。
最先進的人機協作機械臂為什么都是7個自由度?
現在用的最多的工業機器人,一般都是六軸的,但是最近推出來的人機協作機械臂,卻有7個自由度,一直想不明白為什么。
使用SimMechanics實現六自由度的機械臂仿真研究
,仿真功能強大,可以在模型中通過改變結構,優化系統參數,在仿真環境中分析結果。利用 SimMechanics 的上述優點,以工業六自由度機械
發表于 11-12 08:00
?1次下載

評論