基于 MATLAB 的 PUMA560 机器人运动仿真与轨迹规划 5
如何使用Matlab进行运动控制与路径规划

如何使用Matlab进行运动控制与路径规划摘要:本文将介绍如何使用Matlab进行运动控制与路径规划。
首先,我们将介绍Matlab中的运动控制工具箱和路径规划工具箱的基本功能和使用方法。
接着,我们将通过一个实例来详细说明使用Matlab进行运动控制和路径规划的步骤和技巧。
最后,我们将总结本文的主要内容。
1. 引言运动控制和路径规划在机器人和自动化控制领域中起着重要的作用。
使用Matlab进行运动控制和路径规划能够帮助我们更高效、更精确地控制和规划机器人的运动。
Matlab中的运动控制工具箱和路径规划工具箱提供了一系列函数和工具,可以帮助我们实现各种复杂的运动控制和路径规划任务。
2. 运动控制工具箱运动控制工具箱是Matlab中的一个重要工具箱,它提供了各种函数和工具,用于控制机器人的运动。
在使用运动控制工具箱之前,我们需要先导入该工具箱,并了解一些基本的概念和使用方法。
在Matlab命令窗口中输入以下命令,即可导入运动控制工具箱:```import robotics.*```通过运动控制工具箱,我们可以实现一些基本的运动控制操作,例如控制机器人的位置、速度和加速度等。
运动控制工具箱提供了一系列函数,例如`controlSystem`、`motionModel`和`inverseKinematics`等,可以帮助我们实现各种不同类型的运动控制任务。
下面,我们将通过一个实例来详细说明如何使用运动控制工具箱控制机器人的运动。
3. 路径规划工具箱路径规划工具箱是Matlab中的另一个重要工具箱,它用于规划机器人的运动路径。
路径规划是指根据机器人的起点、终点和障碍物等信息,确定机器人应该走的最佳路径。
在使用路径规划工具箱之前,我们同样需要先导入该工具箱,并了解一些基本的概念和使用方法。
在Matlab命令窗口中输入以下命令,即可导入路径规划工具箱:```import navigation.*```路径规划工具箱提供了一系列函数和工具,用于实现不同类型的路径规划算法。
(完整word版)基于MATLAB教学型机器人空间轨迹仿真

基于MATLAB教学型机器人空间轨迹仿真robotic toolbox for matlab工具箱1. PUMA560的MATLAB仿真要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:L = LINK([alpha A theta D])L =LINK([alpha A theta D sigma])L =LINK([alpha A theta D sigma offset])L =LINK([alpha A theta D], CONVENTION)L =LINK([alpha A theta D sigma], CONVENTION)L =LINK([alpha A theta D sigma offset], CONVENTION)参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。
参数‘alpha’代表扭转角,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。
另外LINK还有一些数据域:LINK.alpha%返回扭转角LINK.A%返回杆件长度LINK.theta%返回关节角LINK.D%返回横距LINK.sigma%返回关节类型LINK.RP%返回‘R’(旋转)或‘P’(移动)LINK.mdh%若为标准D-H参数返回0,否则返回1LINK.offset%返回关节变量偏移LINK.qlim%返回关节变量的上下限[min max]LINK.islimit(q)%如果关节变量超限,返回-1, 0, +1LINK.I%返回一个3×3 对称惯性矩阵LINK.m%返回关节质量LINK.r%返回3×1的关节齿轮向量LINK.G%返回齿轮的传动比LINK.Jm%返回电机惯性LINK.B%返回粘性摩擦LINK.Tc%返回库仑摩擦LINK.dhreturn legacy DH rowLINK.dynreturn legacy DYN row其中robot函数的调用格式:ROBOT%创建一个空的机器人对象ROBOT(robot)%创建robot的一个副本ROBOT(robot, LINK)%用LINK来创建新机器人对象来代替robotROBOT(LINK, ...)%用LINK来创建一个机器人对象ROBOT(DH, ...)%用D-H矩阵来创建一个机器人对象ROBOT(DYN, ...)%用DYN矩阵来创建一个机器人对象2.变换矩阵利用MA TLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
基于MATLAB的PUMA560机器人运动学仿真

1 P U M A 5 6 0 机器人参数设计
1 . 1连杆参数和坐标系
一
究。 开式运动链一端固定在基座上 , 另一端不固定 , 利用末端 执 行器 来操纵物体 以完成各种任 务。 驱动器使关节运动 , 并带 动
连杆运动, 使手爪到达所规定的位姿。 轨 迹 规 划 的过 程 中, 重 点研 究 操作 臂 末 端执 行 器 相 对
从数据 曲线或数 据本 身难以分析出来 的许 多重 要信息, 还 可以 从图形上看到机器人在一定控制条件下的运动规律 。 一个新 的 机 器人 工作程序 编制完成后, 先在仿真软件中观 察运行 结果, 分析检验轨 迹规 划和作业规划 的正确性和合 理性 , 为离线编程 依据给定的连杆坐标系, 相关的连杆参数可规定如下: 1 ) a 为沿 i 轴, 从z 移动至z 的距 离。
自由度 的P U M A 5 6 0 机 器人 进行 参 数 设 然 后 讨 论 了正、 逆 运 动 机器人 操作臂运 动学方程的研究 内容 , 为操作 臂各个连 杆 学算法 , 轨 迹规划 问题 , 最 后在M A T L A B 环境下, 运 用机器人工 间的位移关系、 速度 关系及加速度关 系。 连杆通过移动或转 动 具箱编制简单的程 序语句 , 快速完成了机器人 的运动学仿真 。 关节 串联形成机器人操作臂, 可 以作为一个 开式运动链进行研
实验研究 ・
基于MA T L A B的P UMA5 6 0 机器人运动学仿真
董慧颖 梁 爽( 沈阳 理工 大学, 辽 宁 沈阳 1 1 0 0 5 9 )
摘 要: 随着机器人技术的发展和应用, 机器人在现代 工业生产中扮演着越来越重要的角色。 机器人诞生是科学技术与社会进步的必然 结果 , 从根 本 上 改变 了 原来传 统的生产体 系和生产 方式 。 本 文在 M A T L A B  ̄境 下, 对P U M A 5 6 0 机 器人 进行 参 数设计, 分 析P U M A 5 6 0 机 器人 的运
基于MATLAB的PUMA560机械臂运动仿真

基于MATLAB的PUMA560机械臂运动仿真徐哲扬来源:?读天下?2021年第10期摘要:工业机器人崛起于在20世纪60,是一种将其和计算机辅助设计〔CAD〕、计算机辅助制造〔CAM〕系统结合在一起的特殊装备。
而Unimation PUMA560作为简单6自由度机器人,在工业中的应用也极为广泛。
本文针对典型的工业机器人Unimation公司生产的PUMA560机器人,运用MATLAB中的机器人仿真工具箱〔Robotics Toolbox〕分析了其正逆运动学方法和轨迹规划的结果,并观察了其运动情况和规律。
关键词:Unimation PUMA560;机械臂;MATLAB仿真机器人运动学涉及大量的算法设计和计算量,所以利用计算机可视化和计算机的仿真软件的方式进行仿真,能过大大减轻科研人员的工作量。
通过图形观察机器人在一定控制条件下的运动规律进而帮助科研人员更好地理解其工作的原理,同时验证其算法的正确性,并对机器人进行图形仿真将结果以图形的形式表示出来,也十分便于展示给企业或者客户。
此外,MATLAB等的仿真软件能在机器人投入生产之前观察其工作效果,从而大大减轻了企业承担的经济风险。
一、搭建PUMA560机械臂本文应用MATLAB的Robotics Toolbox机器人仿真工具箱做机械臂的仿真。
第一步是利用Link函数搭建各个连杆之间关节的相互关系,第二步是调用robot函数创立一个新的机器人对象。
二、 PUMA560的运动分析〔一〕机器人运动学正问题机器人运动学正问题连杆的位移和相对应的关节的偏移量,求解末端连杆坐标系相对于基坐标系的位姿。
图1 PUMA560操作臂运动参数和坐标系分布本文使用MALTBA的Robot中的正问题计算函数fkine能够求解机器人运动学的正问题。
在分析这个问题时,分析可得在操作臂的中部有一个轮子将连续三个部件的运动相关联在一起。
需要根据连杆变换矩阵公式求得每一个连杆的变换矩阵01T~56T,然后将各个连杆矩阵连乘得到06T:〔二〕机器人运动学逆问题机器人运动学逆的解决方法在被告知连杆的位移和相对应坐标系的姿态,即其位姿矩阵,求反求机械臂各个关节的位姿。
matlab中如何规划机器人行动轨迹

mat1ab中如何规划机器人行动轨迹机器人在工业生产、物流等领域中发挥着越来越重要的作用。
这些机器人的工作范围和速度都非常高,但需要一个能规划出精确行动轨迹的系统。
Mat1ab软件是一个非常流行的工具,可以用于机器人行动轨迹规划。
在本文中,我们将介绍Mat1ab中如何规划机器人行动轨迹。
机器人的行动轨迹规划,可以包括以下几个主要步骤:1.设计机器人模型在Mat1ab中,可以用Simu1ink工具箱来设计机器人模型。
Simuhnk提供了一个可视化的环境,使用户可以很容易地构建机器人模型。
用户可以在模型中加入链接、驱动、传感器等元件,并且可以自定义机器人的类型和形状。
2.设计运动方程机器人模型的设计完成后,需要定义运动方程。
运动方程是描述机器人运动、速度和位置的数学公式。
在Mat1ab中,可以根据机器人模型和任务要求,编写运动方程。
运动方程的编写涉及到物理、控制工程等多个方面的知识。
3.选择路径规划算法选择适当的路径规划算法是规划机器人行动轨迹的关键。
一般来说,路径规划算法分为全局路径规划和局部路径规划。
常用的全局路径规划算法有A*算法、DijkStra算法等,常用的局部路径规划算法有DWA算法、Teb算法等。
选择适合自己的路径规划算法可以提高计算的效率和准确性。
4.实现路径规划算法在Mat1ab中,可以使用PathP1anningToo1box工具箱来实现路径规划算法。
PathP1anningToo1box⅛Mat1ab中专用的路径规划工具,提供了多种路径规划算法的实现和可视化,可根据任务要求和机器人要求进行定制开发。
5.仿真和实验当路径规划算法编写完毕后,需要进行仿真和实验来验证该算法的可行性和可靠性。
Simu1ink和PathP1anningToOgOX可以用于设置和分析仿真模型,同时可以进行实际试验来验证模型在实际物理环境中的有效性。
总之,Mat1ab提供了全面的工具和方法,可用于构建机器人模型、定义机器人运动方程、选择路径规划算法、实现路径规划算法、仿真和实验等多个方面。
Matlab中的运动规划和轨迹生成技巧

Matlab中的运动规划和轨迹生成技巧引言:Matlab是一种功能强大的数学软件,广泛用于科学研究、工程计算和数据分析等领域。
在机器人技术中,运动规划和轨迹生成是非常重要的环节。
本文将介绍在Matlab中进行运动规划和轨迹生成的一些基本技巧和实用工具,帮助读者更好地掌握这一领域。
一、运动规划基础运动规划是研究如何使机器人在给定约束条件下完成所需任务的过程。
常见的运动规划方法包括逆向运动学、欧拉角和四元数表示等。
在Matlab中,可以使用机器人学工具箱(Robotics Toolbox)来进行运动规划。
该工具箱提供了一系列函数,用于实现机器人的正逆向运动学计算、碰撞检测和轨迹规划等功能。
二、轨迹生成技巧1. 插值法轨迹的插值是生成平滑运动的常用技巧。
Matlab中有多种插值方法,如线性插值、样条插值和最小二乘法插值等。
通过对已知数据点进行插值,可以得到平滑的轨迹曲线,使机器人的运动更加平稳。
2. 优化算法优化算法常用于解决轨迹生成中的优化问题。
Matlab中提供了一些强大的优化函数,如fmincon和fminunc等。
可以使用这些函数对运动学约束、机器人能力和任务目标进行优化,并生成最佳轨迹。
三、示例应用为了更好地理解运动规划和轨迹生成技巧在实际应用中的作用,我们以机械臂路径规划为例进行说明。
假设我们有一个三自由度机械臂,需要实现从初始位置到目标位置的平滑运动。
首先,我们可以利用机器人学工具箱计算机械臂的逆向运动学,确定关节角度。
然后,通过插值法生成关节角度的平滑过渡曲线,并利用优化算法解决机械臂关节运动的优化问题。
最后,根据优化的结果,通过逆向运动学计算获得末端执行器的位置和姿态,从而生成最佳轨迹。
四、工具箱推荐除了Matlab内置的机器人学工具箱外,还有一些第三方工具箱可以用于运动规划和轨迹生成。
例如,Peter Corke开发的Robotics System Toolbox是一个强大且易于使用的工具箱,提供了丰富的功能,包括机器人建模、路径规划和轨迹生成等。
puma560的运动学及matlab实现(正解+逆解)

puma560的运动学及matlab实现(正解+逆解)表1 PUMA560机器⼈的连杆参数关节i变化范围/(o) 190000-160~16020-900149.09-225~453-900431.80-45~22540-9020.32443.07-110~170509000-100~10060-9000-266~266正解源码DEG = pi/180;cta1=-70.4385cta2=182.6918cta3=-90.0000cta4=-82.4708cta5=-19.7387cta6=-97.9933T01=[cosd(cta1),-sind(cta1),0,0;sind(cta1), cosd(cta1),0,0;0,0,1,0;0,0,0,1];T02=T01*[cosd(cta2),-sind(cta2),0,0;0,0,1, 149.09;-sind(cta2),-cosd(cta2),0,0;0,0,0,1] ;T03=T02*[cosd(cta3),-sind(cta3),0,431.8;sind(cta3), cosd(cta3),0,0;0,0,1,0;0,0,0,1];T04=T03*[cosd(cta4),-sind(cta4),0,20.32;0,0,1,433.07;-sind(cta4),-cosd(cta4),0,0;0,0,0,1];T05=T04*[cosd(cta5),-sind(cta5),0,0;0,0,-1,0;sind(cta5), cosd(cta5), 0,0;0,0,0,1];T06=T05*[cosd(cta6),-sind(cta6),0,0;0,0,1,0;-sind(cta6),-cosd(cta6),0,0;0,0,0,1];O=T06*[0;0;0;1];=====================================================逆解源码fid = fopen('inverseout.txt','w');%逆解的保存⽂件%赋初值T06 =[0.0000 1.0000 0.0000 -149.0900;0.0000 -0.0000 1.0000 864.8700;1.0000 0 -0.0000 20.3200;0 0 0 1.0000] ;a0=0; a1=0; a2=431.8; a3=20.32; a4=0; a5=0;d1=0; d2=149.09; d3=0; d4=433.07; d5=0; d6=0;n_x=T06(1); n_y=T06(2); n_z=T06(3);o_x=T06(5); o_y=T06(6); o_z=T06(7);a_x=T06(9); a_y=T06(10); a_z=T06(11);p_x=T06(13); p_y=T06(14); p_z=T06(15);disp(['⼋组解分别是:']);for i=1:2for j=1:2for k=1:2%求解theta1(为弧度)sqr1=[sqrt(p_x^2+p_y^2-d2^2),-sqrt(p_x^2+p_y^2-d2^2)];ta1=atan2(p_y,p_x)-atan2(d2,sqr1(i));%求解theta3(弧度表⽰)k1=(p_x^2+p_y^2+p_z^2-a2^2-a3^2-d2^2-d4^2)/(2*a2);sqr3=[sqrt(a3^2+d4^2-k1^2),-sqrt(a3^2+d4^2-k1^2) ];ta3=atan2(a3,d4)-atan2(k1,sqr3(j));fs23=-((a3+a2*cos(ta3))*p_z)+(cos(ta1)*p_x+sin(ta1)*p_y)*(a2*sin(ta3)-d4); sc23=(-d4+a2*sin(ta3))*p_z+(cos(ta1)*p_x+sin(ta1)*p_y)*(a2*cos(ta3)+a3); ta23=atan2( fs23,sc23);%求解theta2 (弧度表⽰)ta2=ta23-ta3;%求解theta4 (弧度表⽰)fs4=[ -a_x*sin(ta1)+a_y*cos(ta1),a_x*sin(ta1)-a_y*cos(ta1)];sc4=[ -a_x*cos(ta1)*cos(ta23)-a_y*sin(ta1)*cos(ta23)+a_z*sin(ta23),a_x*cos(ta1)*cos(ta23)+a_y*sin(ta1)*cos(ta23)-a_z*sin(ta23)];fprintf(fid,'%d,',sc4(1,1));fprintf(fid,'\t');fprintf(fid,'%d,',sc4(2,1));fprintf(fid,'\t');fprintf(fid,'%d,',fs4(1,1));fprintf(fid,'\t');fprintf(fid,'%d,',fs4(1,2));fprintf(fid,'\t');fprintf(fid,'\n');ta4=atan2(fs4(k),sc4(k));%求解theta5 (弧度表⽰)fs5=-a_x*(cos(ta1)*cos(ta23)*cos(ta4)+sin(ta1)*sin(ta4))...-a_y*(sin(ta1)*cos(ta23)*cos(ta4)-cos(ta1)*sin(ta4))...+a_z*(sin(ta23)*cos(ta4));sc5=a_x*(-cos(ta1)*sin(ta23))+a_y*(-sin(ta1)*sin(ta23))+a_z*(-cos(ta23));ta5=atan2(fs5,sc5);%求解theta6 (弧度表⽰)fs6=-n_x*(cos(ta1)*cos(ta23)*sin(ta4)-sin(ta1)*cos(ta4))...-n_y*(sin(ta1)*cos(ta23)*sin(ta4)+cos(ta1)*cos(ta4))...+n_z*(sin(ta23)*sin(ta4));sc6= n_x*(cos(ta1)*cos(ta23)*cos(ta4)+sin(ta1)*sin(ta4))*cos(ta5)... -n_x*cos(ta1)*sin(ta23)*sin(ta5)...+n_y*(sin(ta1)*cos(ta23)*cos(ta4)+cos(ta1)*sin(ta4))*cos(ta5)...-n_y*sin(ta1)*sin(ta23)*sin(ta5)...-n_z*(sin(ta23)*cos(ta4)*cos(ta5)+cos(ta23)*sin(ta5));ta6=atan2(fs6,sc6);%save%将其化为⾓度Theta=[ta1 ta2 ta3 ta4 ta5 ta6]./pi*180endendend关于C++版本的运动学正解和逆解的代码,可以在以下链接下载。
PUMA560机器人运动学分析

PUMA560机器人运动学分析——基于matlab程序的运动学求解求解PUMA560正向运动学解。
求解PUMA560逆向运动学解。
求解PUMA560的雅克比矩阵。
利用GUI创建运动分析界面。
姓名:xxx学号:201100800406学院:机电与信息工程学院专业:机械设计制造及其自动化年级2011指导教师:xx前言说明此次大作业,是我自己一点一点做的。
程序代码写好之后,感觉只是将代码写上去太过单调,而又不想将课本上或PPT上的基础知识部分复制上去,但我又想让自己的大作业有一点与众不同,所以我决定弄一个GUI界面。
开始对GUI一窍不通,经过几天的学习,终于有了点成果,但还是问题不断,有很多想法却难以去实现,考试在即,只能做成这样了,希望见谅。
目录前言说明 ................................................................................. - 1 -求解PUMA560正向运动学解 ............................................... - 2 -求解PUMA560逆向运动学解 ............................................... - 5 -求解PUMA560的雅克比矩阵 ............................................. - 15 -利用GUI创建运动分析界面................................................ - 22 -求解PUMA560正向运动学解在已知PUMA560各关节连杆DH参数,以及给定相应的关节变量之后,可以通过正向运动学求解出机械手末端抓手在基系内的位姿。
从而利用输入不同的关节变量组合,实现对PUMA560机器人的准确控制。
以下是利用matlab编写的求解PUMA560正向运动学解的函数zhenjie.m:function T=zhenjie(c1,c2,c3,c4,c5,c6)%求puma560正解a2=431.8;a3=20.32;d2=149.09;d4=433.07;c1=c1/180*pi;c2=c2/180*pi;c3=c3/180*pi;c4=c4/180*pi;c5=c5/180*pi;c6=c6/180*pi;A1=[cos(c1),-sin(c1),0,0;sin(c1),cos(c1),0,0;0,0,1,0;0,0,0,1];A2=[cos(c2),-sin(c2),0,0;0,0,1,d2;-sin(c2),-cos(c2),0,0;0,0,0,1];A3=[cos(c3),-sin(c3),0,a2;sin(c3),cos(c3),0,0;0,0,1,0;0,0,0,1];A4=[cos(c4),-sin(c4),0,a3;0,0,1,d4;-sin(c4),-cos(c4),0,0;0,0,0,1];A5= [cos(c5),-sin(c5),0,0;0,0,-1,0;sin(c5),cos(c5),0,0;0,0,0,1];A6=[cos(c6),-sin(c6),0,0;0,0,1,0;-sin(c6),-cos(c6),0,0;0,0,0,1];T=A1*A2*A3*A4*A5*A6end其中c1,c2,c3,c4,c5,c6,为分别输入的各关节变量,即连杆1、连杆2、连杆3、连杆4、连杆5、连杆6的关节转角,直接利用关节矩阵相乘得到机械手末端抓手在基系内的位姿。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
The movement simulation and trajectory planning ofPUMA560 robotShibo zhaoAbstract:In this essay, we adopt modeling method to study PUMA560 robot in the use of Robotics Toolbox based on MATLAB. We mainly focus on three problems include: the forward kinematics, inverse kinematics and trajectory planning. At the same time, we simulate each problem above, observe the movement of each joint and explain the reason for the selection of some parameters. Finally, we verify the feasibility of the modeling method.Key words:PUMA560 robot; kinematics; Robotics Toolbox; The simulation;I.IntroductionAs automation becomes more prevalent in people’s life, robot begins more further to change people’s world. Therefore, we are obliged to study the mechanism of robot. How to move, how to determine the position of target and the robot itself, and how to determine the angles of each point needed to obtain the position. In order to study robot more validly, we adopt robot simulation and object-oriented method to simulate the robot kinematic characteristics. We help researchers understand the configuration and limit of the robot’s working space and reveal the mechanism of reasonable movement and control algorithm. We can let the user to see the effect of the design, and timely find out the shortcomings and the insufficiency, which help us avoid the accident and unnecessary losses on operating entity. This paper establishes a model for Robot PUMA560 by using Robotics Toolbox,and study the forward kinematics and inverse kinematics of the robot and trajectory planning problem.II.The introduction of the parameters for the PUMA560 robot PUMA560 robot is produced by Unimation Company and is defined as 6 degrees of freedom robot. It consists 6 degrees of freedom rotary joints (The structure diagram is shown in figure 1). Referring to the human body structure, the first joint(J1)called waist joints. The second joint(J2)called shoulder joint. The third joint (J3)called elbow joints. The joints J4 J5, J6, are called wrist joints. Where, the first three joints determine the position of wrist reference point. The latter three joints determine the orientation of the wrist. The axis of the joint J1 located vertical direction. The axis direction of joint J2, J3 is horizontal and parallel, a3 meters apart. Joint J1, J2 axis are vertical intersection and joint J3, J4 axis are vertical crisscross, distance of a4. The latter three joints’ axes have an intersection point which is also origin point for {4}, {5}, {6} coordinate. (Each link coordinate system is shown in figure 2)Fig1】【4 the structure of puma560Fig2】【4 the links coordinate of puma 560When PUMA560 Robot is in the initial state, the corresponding link parameters are showed in table 1. m d m d m a m a 4331.0,1491.0,0203.0,4381.04232==== The expression of parameters:Let length of the bar 1-i α represent the distance between 1-i z and i z along 1-i x . Torsion angle 1-i α denote the angle revolving 1-i x from 1-i z to i z . The measuring distance between 1-i x and i x along i z is i d . Joint angle i θ is the angle revolving from 1-i x to i x along i z .Table 1】【4 the parameters of puma560link )/(1 -i α)/(1 -i a)/( i θ)/(m d iRange1 0 0 90 0 -160~1602 -90 0 0 0.1491 -225~453 0 0.4318 -90 0 -45~2254 -90 -0.0213 0 0.4331 -110~1705 90 0 0 0 -100~100 6-90-266~266III.The movement analysis of Puma560 robot3.1 Forward kinematicDefinition: Forward kinematics problem is to solve the pose of end-effecter coordinate relative to the base coordinate when given the geometric parameters of link and the translation of joint. Let make things clearly :What you are given: the length of each link and the angle of each jointWhat you can find: the position of any point (i.e. it’s ),,,,,(γβαz y x coordinate)3.2 The solution of forward kinematicsMethod: Algebraic solutionPrincipal: )(q k x = The kinematic model of a robot can be written like this, where q denotes the vector of joint variable, x denotes the vector of task variable,()k is the direct kinematic function that can be derived for any robot structure .The origin of )(q kEach joint is assigned a coordinate frame. Using the Denavit-Hartenberg notation, you need 4 parameters (d a ,,,θα) to describe how a frame (i ) relates to a previous frame(1-i )T ii 1-. For two frames positioned in space, the first can be moved into coincidence with the second by a sequence of 4 operations:1. Rotate around the 1-i x axis by an angle 1-i α.2. Translate along the 1-i x axis by a distance 1-i α.3. Rotate around the new z axis by an angle i θ.4. Translate along the new z axis by a distance i d .),(),(),(),(111i i i i i id z Transl z Rotz x Transl x Rotx T θαα---= (1.1)⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--∂-=----------100001111111111i i i i i i i i i i i i i i i i ii i s d c c c c s s d s c c c s s c T αααθαθαααθαθθθ (1.2) Therefore, according to the theory above the final homogeneous transformcorresponding to the last link of the manipulator:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡==100065544332211006z z z z y y y y x x x x p a s n p a s n p a s n T T T T T T T (1.3)3.3Inverse kinematicDefinition : Robot inverse kinematics problem is that resolve each joint variables of the robot based on given the position and direction of the end-effecter or of the link (It can show as position matrix T). As for PUMA560 Robot, variable 61θθ need to be resolved.Let make things clearly :What you are given: The length of each link and the position of some point on the robot.What you can find: The angles of each joint needed to obtain that position.3.4 The solution of inverse kinematicsMethod: Algebraic solutionPrincipal: ••=q q J x )(Where q k J ∂∂=/ is the robot Jacobian. Jacobian can be seen as a mapping from Joint velocity space to Operational velocity space.3.5 The trajectory planning of robot kinematicsThe trajectory planning of robot kinematics mainly studies the movement of robot. Our goal is to let robot moves along given path. We can divide the trajectory of robots into two kinds. One is point to point while the other is trajectory tracking. The former is only focus on specific location point. The latter cares the whole path.Trajectory tracking is based on point to point, but the route is not determined. So, trajectory tracking only can ensure the robots arrives the desired pose in the end position, but can not ensure in the whole trajectory. In order to let the end-effecter arriving desired path, we try to let the distance between two paths as small as possible when we plan Cartesian space path. In addition, in order to eliminate pose and position’s uncertainty between two path points, we usually do motivation plan among every joints under gang control. In a word, let each joint has same run duration when we do trajectory planning in joint space.At same time, in order to make the trajectory planning more smoothly, we need to apply the interpolating method.Method: polynomial interpolating [1]Given: boundary condition⎩⎨⎧==ff θθθθ)()(t 00 (1.3)⎪⎩⎪⎨⎧==••0t 00)()(f θθ(1.4)Output : joint space trajectory ()t θ between two points()t θ=332210t a t a t a a +++ (1.5)Polynomial coefficient can be computed as follows:⎪⎪⎪⎩⎪⎪⎪⎨⎧--=-===)(2)(30023022100θθθθθf f f f t a t a a a (1.6)IV. Kinematic simulation based on MATLAB•How to use linkIn Robotics Toolbox, function ’ link ’ is used to create a bar. There are two methods. One is to adopt standard D-H parameters and the other is to adopt modified D-H parameters, which correspond to two coordinate systems. We adopt modified D-H parameters in our paper. The first 4 elements in Function ‘link ’ are α, a, θ, d. The last element is 0 (represent Rotational joint) or 1 (represent translation joint). The final parameter of link is ’mod’, which means standard or modified. The default is standard. Therefore, if you want to build your own robot, you may use function ‘link ’. You can call it like this:’ L1=link([0 0 pi 0 0],'modified'); •The step of simulation is:Step1: First of all, according to the data from Table 1, we build simulation program of the robot (shown in Appendix rob1.m).Step2: Present 3D figure of the robot (shown in Fig4). This is a three-dimensional figure when the robot located the initial position (0i =θ). We can adjust the position of the slider in control panel to make the joint rotation (in Fig 5), just like controlling real robot.Step3:Point A located at initial position. It can de described as ]0,0,0,0,0,0[=A q . The target point is Point B. The joint rotation angle can be expressed as ]0,392.0,0,7854.0,7854.0,0[--=B q . We can achieve the solution of forwardkinematics and obtain the end-effecter pose relative to the base coordinate system is (0.737, 0.149, 0.326) , relative to the three axes of rotation angle is the (0, 0, -1).The ro bot’s three-dimensional pose inq is shown in Fig 6.BStep4: According to the homogeneous transformation matrix, we can obtain each joint variable from the initial position to the specified locationStep5:Simulate trajectory from point A to point B. The simulation time is 10s. Time interval is 0.1s. Then, we can picture location image,the angular velocity and angular acceleration image (shown as Fig 8) which describe each joint transforms over time from Point A to Point B. In this paper, we only present the picture of joint 3. By using the function ‘T=fkine(r,q)’, we obtain ‘T’ a three-dimensional matrix.The first two dimensional matrix represent the coordinate change while the last dimension is time ‘t’.zhaoshiboxyzFig 4Fig 5-1-0.50.51-1-0.500.51-1-0.500.51XYZzhaoshibox yzFig 6Fig 7012345678910time t/sa n g l e /r a d012345678910time t/sv e l o c i t y /(r a d /s )012345678910time t/sa c c e l e r a t i o n /(r a d /s 2)Fig8V The problem during the simulation•The reason for selection of some parameterThe parameter of link: From kinematic simulation and program, you can see that I set certain value not arbitrary when I call ‘link ’. That is because I want the simulation can be more close to the real situation .So; I adopt the parameter of puma560 (you can see it from the program) and there is no difference between my robot and puma560 radically.The parameter of B q : When I choose the parameter of B q , I just want to test something.For example, when you denote the parameter of ‘B q ’ like this‘]0,392.0,0,7854.0,7854.0,0[--=B q ’, you want to use the function ‘fkine(p560, B q )’ to obtain the homogenous function ‘T ’, then, you want to use ‘ikine(p560,T)’ to test whether the ‘B q ’ is what you have settled before. The result is as follows:B q =[0 -pi/4 -pi/4 0 pi/8 0]; T=fkine(p560, B q );⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=100032563.038268.009238.01500.00107317.09238.003826.0T B q =ikine(p560,T)B q =[0 -pi/4 -pi/4 0 pi/8 0]Actually, not all of the parameter B q can do like this. For example, when you try B q =[pi/2,pi/2,pi/2,pi/2,pi/2,pi/2] , the answer is not B q itself.VI. References[1]/wiki/Robot_ [online], 7-ferbury-2015[2]/p-947411515.html [online], 7-ferbury-2015[3]/wiki/Jacobian_algorithm [access ed 8-February-2015][4] Youlun Xiong, Han Ding, Encang Liu, Robot[M], Tinghua university press ,1993 VIIAppendixclc; clear;%modified 改进的D-H法L1=link([0 0 pi 0 0],'modified');L2=link([-pi/2 0 0 0.1491 0],'modified');L3=link([0 0.4318 -pi/2 0 0],'modified');L4=link([-pi/2 0.0203 0 0.4318 0],'modified');L5=link([pi/2 0 0 0 0],'modified');L6=link([-pi/2 0 0 0 0],'modified');r=robot({L1 L2 L3 L4 L5 L6});='zhaoshibo';%模型的名称drivebot(r)track.m%前3 个关节对机械手位置的影响qA=[0,0,0,0,0,0]; %起始点关节空间矢量qB= [0 -pi/4 -pi/4 0 pi/8 0]; %终止点关节空间矢量t=[0:0.1:10]; %仿真时间[q,qd,qdd]=jtraj(qA,qB,t); %关节空间规划plot(r,q)%关节3 的角速度、角速度和角加速度曲线figuresubplot(1,3,1)plot(t,q(:,3))%关节3 的位移曲线xlabel('时间t/s');ylabel('关节的角位移/rad');grid onsubplot(1,3,2)plot(t,qd(:,3))%关节3 的位移曲线xlabel('时间t/s');ylabel('关节的角速度/(rad/s)');grid onsubplot(1,3,3)plot(t,qdd(:,3))%关节3 的位移曲线xlabel('时间t/s');ylabel('关节的角加速度/(rad/s^2)');grid on。