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使用实战的最后一篇,也是工业机器人部分记录的最后一篇。在《机器人技术基础》这一课程中,工业机器人与移动机器人作为两大类分时分老师进行讲解,客观感觉工业机器人这一部分知识点比较系统化,也具有相当的难度,而移动机器人部分正如老师所说,由于尚处于发展阶段,因此并没有形成一个完整的知识系统,因此在课程上给人最大的感受就是云里雾里抓不住重点。之后会对 移动机器人 部分的相关实验进行记录,下次再见啦!

 

posted @ 2020-02-15 12:10  贝_塔  阅读(3722)  评论(0编辑  收藏  举报