日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

绘制IRB1200机器人工作空间

發布時間:2023/12/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 绘制IRB1200机器人工作空间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繪制IRB1200機器人工作空間

一、基本要求

1、 建立坐標系; 2、 給出D-H參數表; 3、 推導正運動學,寫出6個齊次變換矩陣; 4、 MATLAB編程繪制工作空間。

二、仿真過程

??IRB 1200是ABB公司推出一款多用途工業機器人——緊湊、敏捷、輕量的六軸機器人,包括旋轉、手臂1、手臂2、手腕、彎曲和翻轉。每個自由度對應一個旋轉關節,如下圖所示:

2.1 建立坐標系

采用D-H法建立坐標系,簡述如下:
??(1)確定Z軸:對于旋轉關節,z軸按照右手螺旋定則旋轉的方向,旋轉角θ為關節變量;對于滑動關節,z軸為沿著直線運動的方向,連桿長度是關節變量;
??(2)確定x軸:定義x_n軸的方向為z(n-1)和zn軸的公垂線方向;有以下特別情況:
?? 若z(n-1)和zn平行,此時有無數條公垂線,選取與前一關節的公垂線共線的公垂線;
??若z(n-1)和zn相交,此時沒有公垂線,選取兩條z軸叉積的方向作為x軸的方向。

按照上述方法,建立如下坐標系:

每個關節之間的距離如下:

2.2 D-H參數表

??D-H參數表分兩種,一種是標準的D-H表,一種是改進的D-H表。以下采用的是標準的D-H表,根據上述信息,按照如下四個變換規則,可以確定D-H表中的值:

(踩過的坑:第二步是沿著Z軸平移,第三步是沿著X軸平移!!!)
備注:若無法實現二三步,即無法移動,可默認這兩個坐標系同原點,即無距離移動。

IRB1200的旋轉軸的技術參數如下表:

可計算的D-H表為:

2.3 推導正運動學

??分析可知,依次進行坐標系之間的變換 ^n T_(n+1)稱為A_(n+1)是四個運動變換矩陣的乘積:

化簡結果為:

故關節0與關節1之間的變換可以簡化為:

余下關節為:

得到以上變換的A矩陣,在機器人的基座與手之間的總變換則為:

2.4 繪制機器人工作空間

??使用MATLAB進行編程,參照D-H表計算旋轉矩陣,可得仿真效果圖為:




三、誤差分析

??對于各個連桿之間的距離d的計算存在一定的估算,導致繪制出來的工作空間圖與實際存在偏差,實際輪廓與實際效果大致不差。

四、仿真心得

??本次仿真將機器人運動學里的D-H參數表知識加以運用,理解相對變換之間的聯系;機器人運動學求正解的知識是新接觸,把它們應用到仿真實踐中,是一次全新的體驗,只有把理論知識研究透應用到實際,可以做到事半功倍。從最開始在CSDN上尋找教程,發現找到的D-H表的不一樣,一度以為是自己弄錯概念,進行深一步的學習研究,才發現D-H表有兩種構建形式,即改進型和標準型,課本上使用的是標準型。再反推回來,D-H表建系也踩了一個坑,Z軸是繞旋轉的右手螺旋定則,但X軸的選定要和世界坐標系一致,不然畫出來的工作空間和實際不符合。自己動手做,自己編程寫代碼,整整兩天下來,雖然累但收獲頗豐,既提高了自學能力,能增長了在網絡的海洋中尋找碎片知識的能力,這是無可比擬的。從開始構思的手寫矩陣變換繪制機械臂,再到后來的調用robotic toolbox工具包來驗證結果,每一次嘗試都在往真理再靠一步。
??本次仿真既增長了對于機器人運動學的知識,了解機器人世界的坐標,也提高了MATLAB的實操仿真能力,是一次異于平常增長能力的學習機會。

五、代碼展示

做法一:矩陣求解運算

clear all close all clc %%設置不旋轉軸 A4=RT(0,100,0,-pi/2); A5=RT(0,0,0,pi/2); A6=RT(0,50,0,0); %%設置矩陣存儲參數 x=[];y=[];z=[]; % %弧度與角度轉換 per=pi/180; % %計算工作空間 for th1 =-230*per:10*per:230*perfor th2=-115*per:5*per:113*perfor th3 = -205*per:5*per:55*perA1=RT(th1,327,0,pi/2);A2=RT(th2,0,225,0); A3=RT(th3,0,0,pi/2);T= A1*A2*A3*A4*A5*A6; x=[x T(1,4)];y=[y T(2,4)];z=[z T(3,4)]; endend end %%繪制圖形 plot3(x,y,z,'ro','MarkerFaceColor','w','MarkerSize', 5);hold on; xlabel('X');ylabel('Y');zlabel('Z');grid on; function OUTPUT=RT(th1,d,a,th2)OUTPUT=[cos(th1) -sin(th1)*cos(th2) sin(th1)*sin(th2) a*cos(th1);sin(th1) cos(th1)*cos(th2) -cos(th1)*sin(th2) a*sin(th1);0 sin(th2) cos(th2) d;0 0 0 1]; end **做法二:robotic toolbox機器人工具包** clear all clc %建立機器人模型 % theta d a alpha offset % ML1=Link([0 0 0 0 0 ]); ML2=Link([pi/2 327 0 pi/2 0 ]); ML3=Link([pi/2 0 225 0 0 ]); ML4=Link([0 0 0 pi/2 0 ]); ML5=Link([0 100 0 -pi/2 0 ]); ML6=Link([0 0 0 pi/2 0 ]); ML7=Link([0 50 0 0 0 ]); robot=SerialLink([ML2 ML3 ML4 ML5 ML6 ML7],'name','modified'); robot.plot([0,0,0,0,0,0]); % robot.teach() % hold on;joint1_angle_max=230/180*pi; joint1_angle_min=-230/180*pi; joint2_angle_max=113/180*pi+pi/2; joint2_angle_min=-115/180*pi+pi/2; joint3_angle_max=55/180*pi; joint3_angle_min=-205/180*pi; joint4_angle_max=230/180*pi; joint4_angle_min=-230/180*pi; joint5_angle_max=120/180*pi; joint5_angle_min=-125/180*pi; joint6_angle_max=400/180*pi; joint6_angle_min=-400/180*pi; %%步長 h=0.1 x=[];y=[];z=[]; for i=0%joint1_angle_min:0.5:joint1_angle_maxfor j=joint2_angle_min:h:joint2_angle_maxfor k=joint3_angle_min:0.05:joint3_angle_maxl=0;m=0;n=0;T=robot.fkine([i j k l m n]);x=[x T.t(1)];y=[y T.t(2)];z=[z T.t(3)];endend end plot3(x,y,z,'ro','MarkerFaceColor','w','MarkerSize', 5);hold on; hold on;

記錄第一次編輯CSDN博客,如有問題歡迎批評指出。

總結

以上是生活随笔為你收集整理的绘制IRB1200机器人工作空间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。