【机器人学习】分拣机器人运动学分析及轨迹规划仿真

下载链接:包括matlab程序+word报告+视频动画,具体如下图
下载链接:版本二
下载链接:版本三
下载链接:版本三
一、 目的
1、设计一个六自由度机器人,至少包含一个伸缩关节,要求机器人工作空间能满足分拣工位要求。
2、根据自己设计的机器人,建立DH坐标系,设定各关节变量的取值范围,并列出齐次变换矩阵并在matlab进行仿真。

二、内容
1、下载并安装MATLAB里的 Robotic机器人工具箱。
2、编写机器人位姿运动学方程,即给定关节变量,求解机器人末端相对于基坐标的齐次变换矩阵。并在此基础上,用工具箱里的命令fkine验证程序的正确性。
3、编写机器人速度运动学中求解雅克比矩阵的程序,并在此基础上,用工具箱里的命令jacob0验证程序的正确性。
4、使用机器人工具箱建立机器人连杆模型(如图3),并在此基础上,绘制机器人工作空间。
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第1张图片
图3机器人连杆模型

5、利用机器人工具箱里的ikine命令求取机器人运动学逆解,基本要求是末端实现位置逆解。利用逆解完成简单的末端路径仿真,例如控制机械臂末端从传送带运动到篮筐的四个角落。
6、自行选定机器人末端抓取物品的起点和终点,以及机器人末端完成任务所需的时间。并在此基础上,利用机器人学轨迹规划的常用方法,对其做关节空间的轨迹规划。需要注意的是,避免在运动过程中使末端碰到障碍。取0.1s为时间步长,利用求解雅克比矩阵的程序,每一个时间步长,求一次雅克比矩阵行列式,并画出其与时间的关系。
三、程序
定义机器人:
%六连杆机器人模型

p=pi/2
%        theta d    a  alpha 
L(1)=Link([0,  400, 0,    0],'modified')
L(2)=Link([0,  0,   0,  p],'modified')
L(3)=Link([0,  0,   300,  0],'modified')
L(4)=Link([0,  0,   300,    0],'modified')
L(5)=Link([0,  0,   0,    p],'modified')
L(6)=Link([0,  0,   0,    0],'modified')
L(1).qlim = pi/180*[-180 180];
L(2).qlim = pi/180*[0 180]; 
L(3).qlim = pi/180*[-90 90]; 
L(4).qlim = pi/180*[0 180]; 
L(5).qlim = pi/180*[-180 180]; 
L(6).qlim = [0 400]; 
L(6).jointtype='P'
six_link=SerialLink(L,'name','fivelink')

根据DH参数求解变换矩阵的函数trans:
%输入JD,即6个关节变量的值,求解正运动方程

function [ T ] = trans( theta, d, a, alpha ) 
T =[ 
    cos(theta),           -sin(theta),          0,          a;
    sin(theta)*cos(alpha),cos(theta)*cos(alpha),-sin(alpha),-d*sin(alpha);
    sin(theta)*sin(alpha),cos(theta)*sin(alpha),cos(alpha), d*cos(alpha);
    0,                    0,                    0,          1            
   ];
end

正向运动学:
%JD为输入的1*6的数组,代表6个关节变量

function [ T06 ] = fkine(JD)
if nargin<2; end  
T01 =trans( JD(1), 400,   0,   0 );
T12 =trans( JD(2), 0,     0,   pi/2 );
T23 =trans( JD(3), 0,     300, 0 );
T34 =trans( JD(4), 0,     300, 0 );
T45 =trans( JD(5), 0,     0,   pi/2 );
T56 =trans( 0,     JD(6), 0,   0 );
T06 =T01*T12*T23*T34*T45*T56;
end

求解雅可比:
略 。。。
工作空间:
略 。。。
轨迹规划:
略 。。。

关节空间的轨迹规划,求解雅克比行列式:
略 。。。
四、实验结果
1.机器人模型:
由5个转动关节一个移动关节组成,最后的关节为移动关节
DH参数:
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第2张图片

机器人仿真模型:
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第3张图片

2.求解齐次变换矩阵,使用工具箱里的命令fkine验证:
q为关节变量,fkine()为自行编写的函数,six_link.fkine()为工具箱函数,结果一致:
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第4张图片

  1. 用工具箱里的命令jacob0验证编写的求解雅可比程序的正确性:
    q为关节变量,jacob0()为自行编写的函数,six_link.jacob0()为工具箱函数,两者求解结果一致:

【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第5张图片

4.工作空间:
蓝色点形成的区域就是工作空间:

【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第6张图片
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第7张图片

5.逆解仿真
定义了四个点,逆解后完成路径规划,规划结果见动画
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第8张图片

  1. 关节空间的轨迹规划,以及雅克比矩阵行列式与时间的关系
    关节空间的轨迹规划结果:
    【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第9张图片

雅可比行列式与时间的关系:
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第10张图片
下载链接:包括matlab程序+word报告+视频动画,具体如下图
下载链接:版本二
下载链接:版本三
下载链接:版本三
【机器人学习】分拣机器人运动学分析及轨迹规划仿真_第11张图片

咨询链接:matlab正逆运动学分析与轨迹规划

你可能感兴趣的:(机器人学习,学习,matlab,矩阵)