Matlab-Robotic-Toolbox工具箱学习笔记_第1页
Matlab-Robotic-Toolbox工具箱学习笔记_第2页
Matlab-Robotic-Toolbox工具箱学习笔记_第3页
Matlab-Robotic-Toolbox工具箱学习笔记_第4页
Matlab-Robotic-Toolbox工具箱学习笔记_第5页
已阅读5页,还剩15页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、Matlab Robotic Toolbox 工具箱学习笔记(一)软件:matlab2013a工具箱:Matlab Robotic Toolbox v9.8Matlab Robotic Toolbox 工具箱学习笔记根据 Robot Toolboxdemo nstrati ons目录,将分三大部分阐述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarw kinematics,Inversekin ematics,Jacobia ns,l nverse dyn amics,Forward dyn

2、 amics,Symbolic,Code gen erati on)3、Mobile(Driving to apose,Quadrotor,Braite nberg,Bug,D*,PRM,SLAM,Particle filter)Gen eral/Rotati ons%绕x轴旋转pi/2得到的旋转矩阵(1) r = rotx(pi/2);%matlab默认的角度单位为弧度,这里可以用度数作为单位R = rotx(30, deg) * roty(50, deg) * rotz(10, deg);%求出R等效的任意旋转变换的旋转轴矢量vec和转角theta(3) theta,vec = tr2a

3、ngvec(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);%旋转矩阵用四元数表示转轴的方向可以表示成一个单位矢量0四元数的表示q代表矢量部分%将四元数转化为旋转矩阵(7)q.R一个有固定点的刚休通过绕该点的某个轴转 过特定角度可达到任何姿态(6) q = Quaternion(R)g =九 + PJ + PJ + P尹-标量部分矢量部分n = cos a i + cos 3

4、 * j + cos y k则描述该转动的四元数可以表示成:q cos + sin * n22000=cossin 一 cos a - i + sin 一 eas # j + s-in cos y2222四元数既反映了转动的方向又反映了转动的幅值.PJ + PJ + P包活一个实数单位I和三个虚数单位i,j, 另一种表示法:q = U、尸)6cos 2+.&sin co& a2” i +.Qsin cos ft2* j +.0 sin 一 cos y2%界面,可以是“rpy, “ elue角度单位为度。(8)triplea ngle(rpy);AGen eral/Tra nsformati o

5、ns%沿x轴平移0.5,绕y轴旋转pi/2,绕z轴旋转-pi/2(1) t = transl(0.5, 0.0, 0.0) * troty(pi/2) * trotz(-pi/2)%将齐次变换矩阵转化为欧拉角(2) tr2eul(t)%将齐次变换矩阵转化为roll、pitch、yaw角(3) tr2rpy(t)Gen eral/Trajectoryclear;clc;p0 = -1;%定义初始点及终点位置pl = 2;p = tpoly(pO, p1, 50);% 取步长为 50figure(1);plot(p);%绘图,可以看到在初始点及终点的一、二阶导均为零p,pd,pdd = tpoly

6、(p0, p1, 50);% 得到位置、速度、加速度%p为五阶多项式,速度、加速度均在一定范围内figure(2);subplot(3,1,1); plot(p); xlabel(Time); ylabel(p);subplot(3,1,2); plot(pd); xlabel(Time); ylabel(pd);subplot(3,1,3); plot(pdd); xlabel(Time); ylabel(pdd);%另外一种方法:p,pd,pdd = lspb(p0, p1, 50);figure(3);subplot(3,1,1); plot(p); xlabel(Time); ylab

7、el(p);subplot(3,1,2); plot(pd); xlabel(Time); ylabel(pd);% 可以看到速度是呈梯形subplot(3,1,3); plot(pdd); xlabel(Time); ylabel(pdd);%三维的情况:p = mtej(tpoly, 0 1 2, 2 1 0, 50); figure(4);plot(p)%对于齐次变换矩阵的情况TO = transl(0.4, 0.2, 0) * trotx(pi);% 定义初始点和目标点的位姿 T1 = transl(-0.4, -0.2, 0.3) * troty(pi/2) * trotz(-pi/

8、2);T = ctraj(T0, T1, 50);first二T(:,:,1);%初始位姿矩阵ten th=T(:,:,10);%第十个位姿矩阵figure(5);trani mate(T);%动画演示坐标系自初始点运动到目标点的过程Matlab Robotic Toolbox工具箱学习笔记(二)Arm/Robots机器人是由多个连杆连接而成的,机器人关节分为旋转关节和移动关节。创建 机器人的两个最重要的函数是:Link和SerialLink。1、Link 类一个Link包含了机器人的运动学参数、动力学参数、刚体惯性矩参数、电机和 传动参数。操作函数:%A连杆变换矩阵% RP关节类型:R或P%

9、 frictio n摩擦力% n ofriction 摩擦力忽略% dyn显示动力学参数% islimit测试关节是否超出软限制% isrevolute测试是否为旋转关节% isprismatic测试是否为移动关节% display连杆参数以表格形式显示% char 转为字符串运动学参数:% theta关节角度% d连杆偏移量% a连杆长度% alpha连杆扭角% sigma旋转关节为0,移动关节为1% mdh 标准的D&H为0,否则为1% offset关节变量偏移量% qlim 关节变量范围min max动力学参数:% m 连杆质量% r连杆相对于坐标系的质心位置 3x1% I连杆的惯性矩阵

10、(关于连杆重心)3x3% B粘性摩擦力(对于电机)1x1或2x1% Tc库仑摩擦力1x1或2x1电机和传动参数:% G齿轮传动比% Jm 电机惯性矩(对于电机)2、SerialLink 类操作函数:% plot% teach以图形形式显示机器人驱动机器人% isspherical测试机器人是否有球腕关节% islimit测试机器人是否抵达关节极限% fkine前向运动学求解% iki ne6s6旋转轴球腕关节机器人的逆向运动学求解%iki ne33旋转轴机器人的逆向运动学求解% ikine采用迭代方法的逆向运动学求解%jacobO在世界坐标系描述的雅克比矩阵%jacobn在工具坐标系描述的雅克

11、比矩阵% man iplty可操纵性度% jt关节空间轨迹% accel关节加速度% coriolis关节柯氏力% dyn显示连杆的动力学属性% fdyn关节运动% frictio n摩擦力% gravload关节重力% in ertia关节惯性矩阵% nofriction 设置摩擦力为0% rne关节的力/力矩% payload在末端坐标系增加负载% perturb随机扰动连杆的动力学参数属性:% links 连杆向量(1xN)% gravity 重力的方向gx gy gz% base机器人基座的位姿(4x4)% tool机器人的工具变换矩阵T6 to tool tip (4x4)% qli

12、m 关节范围qmin qmax (Nx2)% offset 偏置(Nx1)% name机器人名字(在图形中显示)% manuf注释,制造商名% comment 注释,总评% plotopt opti ons for plot() method (cell array)% n 关节数% config机器人结构字符串,例如RRRRRR% mdh运动学中约定的布尔数(0=DH,仁MDH)怎样创建一个机器人?%Link调用格式:%(1) L = Lin k()创建一个带默认参数的连杆(2) L = Link(L1)复制连杆 L1(3) L = Link(OPTIONS)创建一个指定运动学、动力学参数的

13、连杆OPTIONS可以是:% theta,TH joint an gle, if not specified joint is revolute% d,D joint exte nsion, if not specified joint is prismatic% a,Ajoi nt offset (default 0)% alpha,A joint twist (default 0)% sta ndard defi ned using sta ndard D&H parameters (default).% modified defi ned using modified D&H param

14、eters.% offset,。joi nt variable offset (default 0)% qlim,L joint limit (default )% I,I link in ertia matrix (3x1,6x1 or 3x3)% r,R link cen tre of gravity (3x1)% m,M link mass (1x1)% G,G motor gear ratio (default 0)% B,Bjoi nt frictio n, motor refere need (default 0)% Jm,Jmotor in ertia, motor refere

15、nced (default 0)% Tc,TCoulomb frictio n, motor refere need (1x1 or 2x1), (default 0 0)% revolute for a revolute join t (default)% prismatic for a prismatic join t p% sta ndard for sta ndard D&H parameters (default).% modified for modified D&H parameters.% symcon sider all parameter values as symboli

16、c n ot nu meric注:不能同时指定“ thetalT“ d ”连杆的惯性矩阵(3x3)是对称矩阵,可以写成3x3矩阵,也可以是Ixx Iyy Izz Ixy lyzIxz所有摩擦均针对电机而不是负载齿轮传动比只用于传递电机的摩擦力和惯性矩给连杆坐标系。%SerialLi nk调用格式:%(1) R = SerialLink(LINKS, OPTIONS) , OPTIONS 可以是:name、comment、manu facturerbase、tool、gravity、plotopt(2) R = SerialLink(DH, OPTIONS),矩阵 DH 的构成:每个关节一行,每

17、一行为theta d a alpha(默认为旋转关节),第五列(sigma)为可选列,sigma=0 (默认)为旋转关节,sigma=1为移动关节(3) R = SerialL in k(OPTIONS) 没有连杆的机器人(4) R = SerialLink(R1 R2 ., OPTIONS) 机器人连接,将R2的基座连接到 R1的末 端.(5) R = SerialLink(R1, options) 复制机器人 R1%L1 = Link(d, 0, a, 1, alpha, pi/2);%定义连杆 1,没有写 theta说明 theta 为关节 变量L1.a;%查看a的值L1.d;%查看d的

18、值%还可以 L1.RP, L1.display,L1.mdh,L 1.isprismatic, L1.isrevolute 等等,这样 就可以查看一些默认值L2 = Lin k(d, 0, a, 1, alpha, 0);bot = SerialLi nk(L1 L2, n ame, my robot);bot. n;%查看连杆数目bot.fki ne(0.1 0.2);% 前向运动学bot.plot(0.1 0.2);% 绘制机器人定义完连杆和机器人便可以求机器人前和逆向运动学、动力学等等。L1.参数或属性():查看连杆的参数或属性L1.操作函数(参数):操作连杆参数bot.属性():查看机

19、器人的属性bot.操作函数(参数):操作机器人,可以进行前向、逆向运动学求解等实例:Stanford ManipulatorD-H参数表:Linktig%100-90少20+90fl*3d*000400-90fl*5Q0+900*600clear;clc;L1 = Link(d, 0, a, 0, alpha, -pi/2);%定义连杆L2 = Lin k(d, 1, a, 0, alpha, pi/2);L3 = Li nk(theta, 0, a, 0, alpha, 0);L4 = Lin k(d, 0, a, 0, alpha, -pi/2);L5 = Lin k(d, 0, a, 0

20、, alpha, pi/2);L6 = Li nk(d, 1, a, 0, alpha, 0);bot = SerialLink(L1 L2 L3 L4 L5 L6);% 连接连杆bot.display();%显示 D-H 参数表forward_kinematics=bot.fkine(-0.2 0.1 10 0.1 1 2)%前向运动学bot =robot (6 axisRRPRRR stdDH)+ +alpha| j | theta |d |a1 1|ql| 0I1 2|q2|1011 3|0|q3|011 4|1q40|0l1 5|q5|0|0|1 6|qel1 1创JU qp(KbKi

21、 mb彳 lA-MHMU”卜iMiiBiMl! Mi-1.5711.5710 -1.571 15710grav =0base = 100 0tool =10000010 001009.81001 00010000 10001forwardkinematics =-0.0971-0.45330.88602.06310.9199-0.3806-0.09390.68780.37980.80600.454010.40410001.0000求出末端的齐次变换矩阵:clear;clc;L1 = Link(d, 0, a, 0, alpha, -pi/2,sym);%定义连杆L2 = Lin k(d, d2

22、, a, 0, alpha, pi/2,sym);L3 = Li nk(theta, 0, a, 0, alpha, 0,sym);L4 = Lin k(d, 0, a, 0, alpha, -pi/2,sym);L5 = Lin k(d, 0, a, 0, alpha, pi/2,sym);L6 = Lin k(d, d6, a, 0, alpha, 0,sym);bot = SerialLink(L1 L2 L3 L4 L5 L6);% 连接连杆syms theta1 theta2 d3 theta4 theta5 theta6;forward_ki nematics=bot.fki ne

23、(theta1 theta2 d3 theta4 theta5 theta6)%J 向运动学Sta nford arm的运动学逆解:clear;clc;clear L%th da alphaL(1)=Li nk( 000-pi/20);%定义连杆L(2)=Li nk( 010pi/20);L(3)=Li nk( 00001);L=Li nk( 000-pi/20);L(5)=Li nk( 000pi/20);L(6)=Lin k( 01000);bot = SerialLink(L, name, Stanford arm);%连接连杆 T=tra nsl(1,2,3)*trotz(60,deg

24、)*troty(30,deg)*trotz(90,deg)in verse_ki nematics=bot.iki ne(T,pi nv);% 逆向运动学 theta仁i nv erse_ki nematics(1);theta2=i nv erse_ki nematics(2);d3=inv erse_k in ematics(3);theta4=i nv erse_ki nematics(4);theta5=i nv erse_ki nematics(5);theta6=i nv erse_ki nematics(6);forward_ki nematics=bot.fki ne(theta1 theta2 d3 theta4 t

温馨提示

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

评论

0/150

提交评论