這同樣是《機器人技術基礎》課程實驗中的一個,題目比較開放,只要求對任一坐標形式的機械臂進行研究即可。下面是詳細介紹:
一、選定建模對象
選定球坐標機器人--斯坦福機械手臂(參考《機器人學導論》第73頁例2,26(續))。
二、D-H法建模分析
建立D-H坐標系如下圖:

制D-H參數表:

三、Matlab Robotics ToolBox建模分析
3.1、物理建模
%關節定義 % th d a alpha sigma L(1) = Link([ 0 5 0 -pi/2 0]); L(2) = Link([ 0 5 0 pi/2 0]); L(3) = Link([ 0 0 0 0 1]); % PRISMATIC link, L(4) = Link([ 0 0 0 -pi/2 0]); L(5) = Link([ 0 0 0 pi/2 0]); L(6) = Link([ 0 5 0 0 0]); %關節參數范圍限定 L(1).qlim = [-170 170]*pi/180; L(2).qlim = [-170 170]*pi/180; L(3).qlim = [5 15]; L(4).qlim = [-170 170]*pi/180; L(5).qlim = [-90 90]*pi/180; L(6).qlim = [-170 170]*pi/180; robot = SerialLink(L, 'name', 'Stanford');%創建機器人 init = [0 0 0 0 0 0];%初始關節參數 %工作區定義 w=[-20,20,-20,20,-20,20]; figure robot.plot(init,'workspace',w);%畫出圖像 title('初始狀態');
建模結果:

3.2、設定機械手的目標運動位姿,求解運動指標
t = 0:0.5:8;%采樣時間 %期望關節參數 第一組 aid0 = [0 -pi/4 10 0 -pi/2 0]; %運動軌跡求解,第一組 [q0,qd0,qdd0]=jtraj(init,aid0,t);%運動指標求解,q為位移,qd為速度,qdd為加速度 aid1 = [-pi/2 pi/4 15 0 pi/2 0]; %運動軌跡求解,第二組 [q1,qd1,qdd1]=jtraj(init,aid1,t);%q為位移,qd為速度,qdd為加速度 由上述語句可以得到機械手在 8s 時間內共 17 組時間點的位移指標(空間規划指標)、速度指標和加速度指標,這里只觀察最終的位移指標: %第一組 Theta0 = q0(17,:)/pi*180; Theta0(3)= Theta0(3)/180*pi; Theta0 %第二組 Theta1 = q1(17,:)/pi*180; Theta1(3)= Theta1(3)/180*pi; Theta1
運行結果:


3.3、正逆運動學分析
%正運動學分析 第一組 T0=robot.fkine(aid0); T0 %逆運動學分析 第一組 theta0 =robot.ikine(T0); theta0 = theta0/pi*180;%轉換為角度 theta0(3) = theta0(3)/180*pi;%由於第三關節是移動副,所以這里將錯乘的轉換回來 theta0 %正運動學分析 第二組 T1=robot.fkine(aid1); T1 %逆運動學分析 第二組 theta1 =robot.ikine(T1); theta1 = theta1/pi*180; theta1(3) = theta1(3)/180*pi; theta1
利用fkine進行正運動學分析得到正運動總變換T:
利用ikine進行逆運動學分析得到各關節未知的參數( θ 或者 d ):
3.4、運動軌跡繪制
錄制動圖如下:

四、總結
本篇是關於Matlab Robotics ToolBox使用實戰的最后一篇,也是工業機器人部分記錄的最后一篇。在《機器人技術基礎》這一課程中,工業機器人與移動機器人作為兩大類分時分老師進行講解,客觀感覺工業機器人這一部分知識點比較系統化,也具有相當的難度,而移動機器人部分正如老師所說,由於尚處於發展階段,因此並沒有形成一個完整的知識系統,因此在課程上給人最大的感受就是雲里霧里抓不住重點。之后會對 移動機器人 部分的相關實驗進行記錄,下次再見啦!