




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MatlabRoboticToolbox工具箱学习笔记(一)
软件:matlab2023a
工具箱:MatlabRoboticToolboxv9.8
Mat1abRoboticToolbox工具箱学习笔记根据RobotToolbox
demonstrations目录,将分三大部分阐述:
1>General(Rotations,Transformations,Trajectory)
2、Arm(Robot,Animation,Forwarwkinematics,Inversekinem
atics,Jacobians,Inversedynamics,Forwarddynamics,
Symbolic,Codegeneration)
3、Mobile(Drivingtoapose>Quadrotor,Braitenberg,
Bug,D*,PRM,SLAM,Particlefilter)
General/Rotations
%绕x轴旋转pi/2得到的旋转矩阵
(1)r=rotx(pi/2);
%matlab默认的角度单位为弧度,这里可以用度数作为单位2(A)R=
rotx(30,'deg')*roty(50,'deg')*rotz(10,'deg');
%求出R等效的任意旋转变换的旋转轴矢量vec和转角theta,(3)[th
eta,vec]=tr2angvec(R);
%旋转矩阵用欧拉角表达,R=rotz(a)*roty(b)*rotz(c)4(A)eul
=tr2eu1(R);
%旋转矩阵用roll-pitch-yaw角表达,R=rotx(r)*roty(p)*ro
tz(y>(5)rpy=tr2rpy(R);
%旋转矩阵用四元数表达
一个有固定点的刚体通过绕该点的某个轴转
过特定角度可达到任何姿态
转轴的方向可以表示成一个单位矢量:
n=cosa-i+cos/?•j+cosy•k
则描述该转动的四元数可以表示成:
e0_
q=cos—l-sin—n
22
000e
=cos—+sin—cosa•i+sin—cosp-j+sin-cosy-k
2222
四元数既反映了转动的方向又反映了转动的幅值.
四元数的表示:
e0
+sin—cosJ3•j+sin-COS/-k
22
q=2+P[i+P?j+P3k
,---标量部分
Pyi+P?j+P3k--矢量部分
包括一个实数单位1和三个虚数单位i,j,k
另一种表示法:q=”,尸),尸代表矢量部分
A(6)q=Quaternion(R);
%将四元数转化为旋转矩阵
(7)q.R;
%界面,可以是“rpy”,“eluer”角度单位为度。8(A)tripleangleCrpy7);
AGeneral/Transformations
%沿乂轴平移0.5,绕y轴旋转pi/2,绕z轴旋转-pi/2
(1)t=transl(0.5,0.0,0.0)*troty(pi/2)*trotz(-pi/2)
%将齐次变换矩阵转化为欧拉角
(2)tr2eu1(t)
%将齐次变换矩阵转化为roll、pitch、yaw角
(3)tr2rpy(t)
General/Trajectory
c1ear;Aclc;
pO=-1;%定义初始点及终点位置
pl=2;Ap=tpoly(pO,pl,50);%取步长为50
figure(1);AP1ot(p);%绘图,可以看到在初始点及终点的一、二
阶导均为零A[P,pd,pdd]=tpoly(p0,pl,50);%得到位置、速
度、加速度
%p为五阶多项式,速度、加速度均在一定范围内Migure(2);
subplot(3,1,1);plot(p);x1abel('Time');y1abel
('P');
subplot(3,l,2);p1ot(pd);xlabe1('Time');ylabel('pd');A
subplot(3,1,3);plot(pdd);xlabel('Time');yla
bel('pdd');
%此外一种方法:
[p,pd,pdd]=Ispb(p0,pl,50);.*figure(3)泠subplot(3,1,1);p1
ot(p);xlabe1('Time');y1abel('p');
subp1ot(3,l,2);plot(pd);xlabe1('Time');y1abel('p
d');%可以看到速度是呈梯形
subplot(3,1,3);plot(pdd);xlabel('Time');y1abe1('pd
d');
%三维的情况:Ap=mtraj(@tpo1y,[012],[210],50);.*fi
gure(4);
plOt(p)
%对于齐次变换矩阵的情况ATO=trans1(0.4,0.2,0)*trot
x(pi);%定义初始点和目的点的位姿AT1=transl(-0.4,-0.2,
0.3)*troty(pi/2)*trotz(-pi/2);
T=ctraj(TO,T1,50);,first=T(:,:,1);%初始位姿矩阵
tenth=T(:,:,10);%第十个位姿矩阵Afigure(5);^tranimate(T);%动
画演示坐标系自初始点运动到目的点的过程
Mat1abRoboticToo1box工具箱学习笔记
(二)
Arm/Robots
机器人是由多个连杆连接而成的,机器人关节分为旋转关节和移动关节。创建
机器人的两个最重要的函数是:Link和SerialLink。
1、Link类
一个Link包含了机器人的运动学参数、动力学参数、刚体惯性矩参数、电机
和传动参数。
操作函数:
%A连杆变换矩阵
%RP关节类型:'R'或'P'A%friction摩擦力&%nofricti
on摩擦力忽略
%dyn显示动力学参数A%is1imit测试关节是否超过软限制
%isrevolute测试是否为旋转关节
%isprismatic测试是否为移动关节
%display连杆参数以表格形式显示
%char转为字符串
运动学参数:
%theta关节角度
%d连杆偏移量A%a连杆长度A%alpha连杆扭角
%sigma旋转关节为0,移动关节为1
%mdh标准的D&H为0,否则为I
%offset关节变量偏移量
%qlim关节变量范围[minmax]
动力学参数:
%m连杆质量
%r连杆相对于坐标系的质心位置3xl
%I连杆的惯性矩阵(关于连杆重心)3X3A%B粘性摩擦力(对于电
机)lx1或2x。%Tc库仑摩擦力1x1或2x1
电机和传动参数:
%G齿轮传动比
%Jm电机惯性矩(对于电机)
2、SerialLink类
操作函数:
%plot以图形形式显示机器人
%teach驱动机器人
%isspherica1测试机器人是否有球腕关节
%islimit测试机器人是否到达关节极限
%fkine前向运动学求解4%ikine6s6旋转轴球腕关节机器人的逆向
运动学求解
%ikine33旋转轴机器人的逆向运动学求解
%ikine采用迭代方法的逆向运动学求解
%jacobO在世界坐标系描述的雅克比矩阵
%jacobn在工具坐标系描述的雅克比矩阵A%maniplty可操纵性度
%jtraj关节空间轨迹
%acce1关节加速度
%coriolis关节柯氏力
%dyn显示连杆的动力学属性
%fdyn关节运动
%friction摩擦力
%grav1oad关节重力
%inertia关节惯性矩阵
%nofriction设立摩擦力为0
%rne关节的力/力矩
%Pay1oad在末端坐标系增长负载
%perturb随机扰动连杆的动力学参数
属性:A%links连杆向量(lxN)
%gravity重力的方向[gxgygz]A%base机器人基座的位姿
(4x4>%tooI机器人的工具变换矩阵[T6totooltip](4x4>%q
lim关节范围[qminqmax](Nx2>%offset偏置(Nxl)*%name机
器人名字(在图形中显示)
%manuf注释,制造商名
%comment注释,总评
%p1otoptoptionsforplot()method(ce11array)
A%n关节数
%config机器人结构字符串,例如RRRRRR,
%mdh运动学中约定的布尔数(0=DH,1=MDH)
如何创建一个机器人?
%Link调用格式:1(A%{A)L=Link()创建一个带默认参数的连杆
*(2)L=Link(L1)复制连杆LS(3)L=Link(OPTIONS)创建一
个指定运动学、动力学参数的连杆£OPTIONS可以是:
%'theta',THjointang1e,ifnotspecifiedjointisrevo1ute
%'d*,Djointextension,ifnotspecifiedjointisprismatic
%'a*,Ajointoffset(default0>A%'alpha\Ajointtwist(defa
uIt0>%'standard*definedusingstandardD&Hparameters(d
efault)A%'modified'definedusingmodifiedD&Hparameter
s.A%'offset',Ojointvariableoffset(defauIt0)
%'q1im;Ljoint1imit(default[_])
%T,Ilinkinertiamatrix(3x1,6x1or3x3>%'r\R1
inkcentreofgravity(3xI>%'m',Mlinkmass(1x1)%
'G',Gmotorgearratio(default0)A%'B',Bjointfriction,mo
torreferenced(defauIt0)A%'Jm',Jmotorinertia,motorr
efereneed(default0>%'Tc',TCou1ombfriction,motorreferenc
ed(lx1or2x1),(default[00])
%'revolute'forarevolutejoint(defau1t)
%'prismatic'foraprismaticjoint'p'
%'standard'forstandardD&Hparameters(default).
%rmodified'formodifiedD&HparametersA%'sym'c
onsidera11parameterva1uesassymbolicnotnumeria注:不
能同时指定“theta”和“d”
连杆的惯性矩阵(3x3)是对称矩阵,可以写成3x3矩阵,也可以是[IxxIyyIzzlxy
lyzIXZ]A所有摩擦均针对电机而不是负载
齿轮传动比只用于传递电机的摩擦力和惯性矩给连杆坐标系。A%]
%Seria1Link调用格式:a%{
(1)R=Seria1Link(LINKS,OPTIONS),OPTIONS可以是:'name\'
comment\'manufacturer7
'base'>'toof>'gravityz>'plotopt^(2)R=Seria1Link(DH,OPTI
ONS),矩阵DH的构成:每个关节一行,每一行为[thetadaalphas(默认为旋转关
节),第五列(sigma)为可选列,sigma=O(默认)为旋转关节,sigma=1为移动关节A
(3)R=Seria1Link(0PTIONS)没有连杆的机器人劣
(4)R=SerialLink([RlR2,OPTIONS)机器人连接,将R2的基座连
接到R1的末端.5(劣A)R=Seria1Link(RI,options)复制机器人Rk%}
L1=Link(7dz,0,'a',1,'aIpha',pi⑵;%定义连杆1,没有写
theta说明theta为关节变量
LI.a;%查看a的值ALI.d;%查看d的值
%还可以LI.RP,Ll.display,L1.mdh,Ll.isprismatic,Ll.isrevolute
等等,这样就可以查看一些默认值
L2=LinkCd',0,'a',1,'a1pha',0);
bot=Seria1Link([LIL2],'name','myrobot');Abot.n;%查看连杆数
目Abot.fkine([0.10.2]);%前向运动学Abot.plot([0.10.2]);%绘制机
器人
定义完连杆和机器人便可以求机器人前和逆向运动学、动力学等等。
L1.参数或属性():查看连杆的参数或属性
L1.操作函数(参数):操作连杆参数
bot.属性():查看机器人的属性
bot.操作函数(参数):操作机器人,可以进行前向、逆向运动学求解等
实例:StanfordManipulator
9仇
D-H参数表:
Linkdia0i
100-90e*
2d120+909*
3d*000
400-90尹
500+90甲
6de00夕
clear;AC1C;AL1=Link('d7,0,'a0,'alpha',-pi/2);%定
义连杆
L2=LinkCd,,l,'a,,0,'alphapi/2);
L3=Link('theta',0,'a',0,'a1pha',0);
L4=Link(zd',0,'a',0,'a1pha',-pi/2);AL5=Link(zd',0,'a',0,'a
Iphapi/2);AL6=Link(d,1,'a',0,'aIpha',0);
bot=SerialLink([LlL2L3L4L5L6]);%连接连杆
bot.disp1ay();%显示D—H参数表
forward_kinematics=bot.fkine([—0.20.1100.112])%前向
运动学
bot=
robot(6axis,RRPRRR,stdDH)
—---------+----------+-----------+-----------
j1theta|d1a1alpha
____.•一一一一一一一一」-一一一一一__
1|qi|0|0|-1.571
2|q2|1|0|1.571
3|0|q3|0|0
4|q4|0|0|-1.571
5|q5|0|0|1.571
6|q6|1|0|0
——十・・•---------+-----------+-----------+---
grav==0base:=1000tool=1000
001000100
9.8100100010
00010001
forward_kinematics=
0.0971-0.45330.88602.0631
0.9199-0.3806-0.09390.6878
0.37980.80600.454010.4041
0001.0000
心求出末端的齐次变换矩阵:
c1ear;-*c1c;
LI=Link('d',0,'a;。,'alpha',-pi/2;sym');%定义连杆AL2=Link('d',
'd2','a;0,'alpha',pi/2,zsym');
L3=Link('theta',0,'a',0,'alpha0,'sym');AL4=Link('d',0,'a',0,'al
pha',-pi/2,'sym');
L5=Link('dz,0,'a',0,'aIpha',pi/2;sym');AL6=Link('d','d6',
'a',0,'alpha',0/sym')泠bot=Seria1Link([LIL2L3L
4L5L6]);%连接连杆
symstheta1theta2d3theta4theta5theta6;-*forward_kinem
atics=bot.fkine(fthetaltheta2d3theta4theta5theta61)%前向运
动学
Stanfordarm的运动学逆解:
clear;AC1c;AclearL
%thdaaIphaAL(1)=Link([000-pi/
20]);%定义连杆
L(2)=Link([010pi/20]);
L(3)=Link([00001]);
L(4)=Link([000-pi/201);
L(5)=Link([000pi/20]);
L(6)=Link([01000]);Abot=SerialLink(L,'name",
'Stanfordarm');%连接连杆AT=transi(1,2,3)*trotz(60,deg')*t
roty(30,'deg')*trotz(90,'deg')Mnverse_kinematics=bot.iki
ne(T,'pinv');%逆向运动学Athetal=inverse_kinematics(1);
theta2=inverse_kinematics(2);-*d3=inverse_kinematics(3);-*th
eta4=inverse_kinematics(4)泠theta5=inverse_kinematics(5);
theta6=inverse_kinematics(6);
forward_kinematics=bot.fkine([thetaltheta2d3theta4theta5t
heta6])%前向运动学,验证结果的准确性.
%求解结果为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全媒体运营师高级模拟试卷:全媒体内容策划与网络内容审核
- 骨科专科护理门诊
- 基础护理学2.填空题复习试题及答案
- 德语欧标B2024-202年情景对话专项训练试卷及解析
- 患者出入院护理流程与管理
- 2025年注册消防工程师技术实务火灾风险评估难点试题解析
- 2025年工业机器人系统运维员高级模拟试题集:机器人编程与维护技能提升策略
- 2025年MSOffice心态调整建议试题与答案
- 福建省厦门市08-09学年高二下学期期末考试(生物)
- 福建省莆田市第二十五中学2018-2019学年高二地理下学期第一次月考试题(含解析)
- 2016年社区获得性肺炎(CAP)指南解读与抗生素应用
- 预应力混凝土连续梁张拉记录
- GB/T 41028-2021航空航天流体系统液压软管、管道和接头组件的脉冲试验要求
- GB/T 28728-2012溶液聚合苯乙烯-丁二烯橡胶(SSBR)微观结构的测定
- 化工环境保护与及安全技术概论考试题及答案
- 领退转款账户确认书
- 精益生产精管理培训课件
- 监理大纲(综合)
- 钳工技能-刮削与研磨课件
- 浙大中控DCS系统AdvanTrol-Pro软件培训-编程综合编程案例课件
- 2021版《安全生产法》培训课件
评论
0/150
提交评论