Matlab Robotics ToolBox 實戰 -- 斯坦福機械手運動學建模及分析


    這同樣是《機器人技術基礎》課程實驗中的一個,題目比較開放,只要求對任一坐標形式的機械臂進行研究即可。下面是詳細介紹:

一、選定建模對象

     選定球坐標機器人--斯坦福機械手臂(參考《機器人學導論》第73頁例2,26(續))。

二、D-H法建模分析

    建立D-H坐標系如下圖:

 
20899536-47d5f3a0b44e42cc.png
 

    制D-H參數表:

20899536-f3a1c5e13961250f.png
 
三、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('初始狀態');

    建模結果:

20899536-d065deccfa34e2e4.png
 


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

    運行結果:

 
20899536-2a0ef4dedf7da4ed.png
 
 
20899536-7db2bdad8c935db3.png
 

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、運動軌跡繪制
    錄制動圖如下:

 
20899536-823f29b1d5b88c23.gif
 
四、總結

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM