Robotics Toolbox实例学习_第1页
Robotics Toolbox实例学习_第2页
Robotics Toolbox实例学习_第3页
Robotics Toolbox实例学习_第4页
Robotics Toolbox实例学习_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 offse

2、t)       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代表

3、采用标准的D-H参数,modified代表采用改进的D-H参数。参数alpha代表扭转角 ,参数A代表杆件长度,参数theta代表关节角,参数D代表横距,参数sigma代表关节类型:0代表旋转关节,非0代表移动关节。另外LINK还有一些数据域:       LINK.alpha       %返回扭转角       LINK.A    &

4、#160;   %返回杆件长度       LINK.theta       %返回关节角       LINK.D        %返回横距       LINK.sigma   

5、;  %返回关节类型       LINK.RP            %返回R(旋转)或P(移动)       LINK.mdh      %若为标准D-H参数返回0,否则返回1      

6、0;LINK.offset      %返回关节变量偏移       LINK.qlim         %返回关节变量的上下限 min max       LINK.islimit(q)     %如果关节变量超限,返回 -1, 0, +

7、1       LINK.I         %返回一个3×3 对称惯性矩阵       LINK.m        %返回关节质量       LINK.r   

8、60;     %返回3×1的关节齿轮向量       LINK.G        %返回齿轮的传动比       LINK.Jm      %返回电机惯性       LINK.B

9、0;       %返回粘性摩擦       LINK.Tc       %返回库仑摩擦       LINK.dh              return legacy DH r

10、ow       LINK.dyn         return legacy DYN row其中robot函数的调用格式:       ROBOT                  

11、60;  %创建一个空的机器人对象       ROBOT(robot)              %创建robot的一个副本       ROBOT(robot, LINK)       %用LINK来创建新机器人对象来代替ro

12、bot       ROBOT(LINK, .)         %用LINK来创建一个机器人对象       ROBOT(DH, .)             %用D-H矩阵来创建一个机器人对象   

13、0;   ROBOT(DYN, .)             %用DYN矩阵来创建一个机器人对象利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。下面举例来说明:A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:>> transl(0.5,0,0)ans =  

14、  1.0000         0         0    0.5000         0    1.0000         0&#

15、160;        0         0         0    1.0000         0        

16、0;0         0         0    1.0000B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:>> rotx(pi/4)ans =    1.0000         0 &#

17、160;       0         0         0    0.7071   -0.7071         0     

18、60;   0    0.7071    0.7071         0         0         0         

19、;0    1.0000C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:>> roty(pi/2)ans =    0.0000         0    1.0000         0     

20、0;   0    1.0000         0         0   -1.0000         0    0.0000     

21、;    0         0         0         0    1.0000D 机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:>> rotz(-pi/2)ans =  &

22、#160; 0.0000    1.0000         0         0   -1.0000    0.0000         0     

23、60;   0         0         0    1.0000         0         0    

24、0;    0         0    1.0000当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。 3 轨迹规划利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。其中ctraj函数的调用格式:    

25、   TC = CTRAJ(T0, T1, N)       TC = CTRAJ(T0, T1, R)参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。其中jtraj函数的调用格式:       Q QD QDD = JTRAJ(Q0, Q1, N)       Q QD QDD = JTRAJ(Q0,

26、 Q1, N, QD0, QD1)       Q QD QDD = JTRAJ(Q0, Q1, T)       Q QD QDD = JTRAJ(Q0, Q1, T, QD0, QD1)参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。QD和QDD为返回的规划轨迹的速度和加速度。其中trinterp函数的调用格式:TR = TRINTERP(T0, T1, R)参数TR为在T0

27、和T1之间的坐标变化插值,R需在0和1之间。要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2; q,qd,qdd=jtraj(qz,qr,t);其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。  4 运动学的正问题

28、利用Robotics Toolbox中的fkine函数可以实现机器人运动学正问题的求解。其中fkine函数的调用格式:TR = FKINE(ROBOT, Q)参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。以PUMA560为例,定义关节坐标系的零点qz=0 0 0 0 0 0,那么fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。比如:t=0:0.056:2; q=jtraj(qz,qr,t); T=fkine(p560,q);返回的矩阵T是一个三维的矩阵,前两维是4×4的矩

29、阵代表坐标变化,第三维是时间。 5 运动学的逆问题利用Robotics Toolbox中的ikine函数可以实现机器人运动学逆问题的求解。其中ikine函数的调用格式:       Q = IKINE(ROBOT, T)       Q = IKINE(ROBOT, T, Q)       Q = IKINE(ROBOT, T, Q, M)参数ROBOT为一个机器人对

30、象,Q为初始猜测点(默认为0),T为要反解的变换矩阵。当反解的机器人对象的自由度少于6时,要用M进行忽略某个关节自由度。有了关节的轨迹规划之后,我们也可以用ikine函数来进行运动学逆问题的求解。比如:t=0:0.056:2; T1=transl(0.6,-0.5,0); T2=transl(0.4,0.5,0.2); T=ctraj(T1,T2,length(t); q=ikine(p560,T);我们也可以尝试先进行正解,再进行逆解,看看能否还原。Q=0 pi/4 pi/4 0 pi/8 0; T=fkine(p560,q); qi=ikine(p560,T); 6 动

31、画演示有了机器人的轨迹规划之后,我们就可以利用Robotics Toolbox中的plot函数来实现对规划路径的仿真。puma560;T=0:0.056:2; q=jtraj(qz,qr,T); plot(p560,q);当然,我们也可以来调节PUMA560的六个旋转角,来实现动画演示。drivebot(p560)Matlab Robotic Toolbox工具箱学习笔记根据Robot Toolbox demonstrations目录,将分三大部分阐述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Fo

32、rwarw kinematics,Inverse kinematics,Jacobians,Inverse dynamics,Forward dynamics,Symbolic,Code generation)3、Mobile(Driving to a pose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter)General/Rotations%绕x轴旋转pi/2得到的旋转矩阵(1)r = rotx(pi/2);%matlab默认的角度单位为弧度,这里可以用度数作为单位(2)R = rotx(30, 'deg') *

33、roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋转变换的旋转轴矢量vec和转角theta(3)theta,vec = tr2angvec(R);%旋转矩阵用欧拉角表示,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋转矩阵用roll-pitch-yaw角表示, R = rotx(r)*roty(p)*rotz(y)(5)rpy = tr2rpy(R);%旋转矩阵用四元数表示(6)q = Quaternion(R);%将四元数转化为旋转矩阵(7)q.R; %界面,可以是“rpy”,“eluer”角度单位为度。(8)tripleangle('rpy');General/Transformations%沿x轴平移0.5,绕y轴旋转pi/2,绕z轴旋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论