




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“机器人技术基础”实验指导书一、MATLAB工具箱的安装实验中要用到MATLAB的RoboticsToolbox机器人工具箱,该工具箱的下载地址是:/wordpress/?ddownload=412MachineVisionToolbox机器视觉工具箱的下载地址是:/wordpress/?ddownload=352将下载的文件解压到一个名为rvctools的文件夹中,然后将该文件夹复制到matlab安装路径下的toolbox文件夹下,打开MATLAB找到设置路径选项:选择添加并包含子文件夹,选择刚才复制的rvctool文件夹,点击确定:在命令行中输入startup_rvc,回车,如果出现工具包的版本和信息,说明安装成功。---------------------坐标变换机器人学中关于运动学和动力学最常用的描述方法是矩阵法,这种数学描述是以四阶方阵变换三维空间点的齐次坐标为基础的。如已知直角坐标系{A}中的某点坐标,那么该点在另一直角坐标系{B}中的坐标可通过齐次坐标变换求得。一般而言,齐次变换矩阵ABT是4×4的方阵,具有如下形式:其中ABR和ApBo分别表示{A}{B}两坐标系之间的旋转变换和平移变换。利用MATLABRoboticsToolbox工具箱中的transl、trotx、troty和trotz函数可以非常容易的实现用齐次变换矩阵表示平移变换和旋转变换。例如机器人在X轴方向平移了0.5米的齐次坐标变换可以表示为而绕Y轴旋转90°可以表示为:>>T=troty(pi/2)复合变换可以由若干个简单变换直接相乘得到,例如让物体绕Z轴旋转90°,接着绕Y轴旋转-90°,再沿X轴方向平移4个单位,则对应的齐次变换可以表示为:>>T=transl(4,0,0)*troty(-pi/2)*trotz(pi/2)构建机器人对象要用计算机对机器人运动进行仿真,首先需要构建相应的机器人对象。在机器人学的教学中通常把机械手看作是由一系列关节连接起来的连杆构成。为描述相邻杆件间平移和转动的关系,Denavit和Hartenberg提出了一种为关节链中的每一杆件建立附属坐标系的矩阵方法,通常称为D-H参数法。D-H参数法是为每个连杆坐标系建立4×4的齐次变换矩阵,表示与前一杆件坐标系的关系。在RoboticsToolbox中,构建机器人对象主要在于构建各个关节,而构建关节时,会用到Link函数,其一般形式为:L=Link([thetaDAalphasigma])参数‘theta’代表关节角,参数‘D’代表偏距,参数‘A’代表连杆长度,参数‘alpha’代表扭转角,参数‘sigma’代表关节类型:0代表旋转关节,非0代表平动关节。例如,通过如下的语句即可构建一个机器人连杆:L=Link([0,0.1,0.2,pi/2,0])L=Revolute(std):theta=q,d=0.1,a=0.2,alpha=1.5708,offset=0该Link对象的显示值不仅给出了其运动学参数,还表示了其他的一些状态,例如它是一个转动关节(Revolute),以及使用了标准的D-H参数表达(std)。尽管赋给了θ一个值,但是并没有显示出来,这个值在运动学参数系列中仅仅作为一个占位者。θ将被关节变量q所取代,因此它的值在Link对象中被忽略掉了。这个值将由Link对象进行管理。Link对象有许多的参数和方法,详细内容可以参考帮助文件。利用Link对象构建机械臂的方法如下:>>L(1)=Link([0010]);%根据D-H法定义一个连杆>>L(2)=Link([0010]);>>LL=Revolute(std):theta=q1d=0a=1alpha=0offset=0Revolute(std):theta=q2d=0a=1alpha=0offset=0这个向量将被传递给构造函数SerialLink:>>two_link=SerialLink(L,'name','two_link');%这个函数可以把定义好的连杆组成一个机械臂%所以输入这个值会出现它的D-H表>>two_linktwo_link=two_link::2axis,RR,stdDH,slowRNE+---+-----------+-----------+-----------+-----------+-----------+|j|theta|d|a|alpha|offset|+---+-----------+-----------+-----------+-----------+-----------+|1|q1|0|1|0|0||2|q2|0|1|0|0|+---+-----------+-----------+-----------+-----------+-----------+可以看出,该机器人的结构字符串为“RR”,表明它有两个转动关节,而且它是使用标准的D-H参数定义的。同时对象中还列出了连杆的运动学参数,而关节变量用“q1”和“q2”表示。我们还为机器人取了一个名字,它在任何图形显示机器人时都会出现。输入指令:>>mdl_planar2它将直接执行上述步骤,将该机器人定义在MATLAB的工作空间,并创建名为two_link的SerialLink对象。该SerialLink对象是使用机器人工具箱的关键。它含有大量的方法和特性。例如:two_link.nans=2该指令返回关节数目。links=two_link.linkslinks=Revolute(std):theta=q1d=0a=1alpha=0offset=0Revolute(std):theta=q2d=0a=1alpha=0offset=0该指令返回一个Link对象的向量,Link对象中包含机器人。我们还可以复制一个SerialLink对象,并命名为bob:>>clone=SerialLink(two_link,'name','bob')clone=bob::2axis,RR,stdDH,slowRNE+---+-----------+-----------+-----------+-----------+-----------+|j|theta|d|a|alpha|offset|+---+-----------+-----------+-----------+-----------+-----------+|1|q1|0|1|0|0||2|q2|0|1|0|0|+---+-----------+-----------+-----------+-----------+-----------+这样,只需指定相应的D-H参数,我们便可以对任意种类的机械手进行建模。通过RoboticsToolbox扩展了的plot函数还可将创建好的机器在三维空间中显示出来:>>two_link.plot([00])除了用户自己构建机器人连杆外,RoboticsToolbox也自带了一些常见的机器人对象,如教学中最为常见的puma560、standford等。通过如下的语句即可调用工具箱已构建好的puma560机器人,并显示在三维空间中:>>mdl_puma560>>p560p560=Puma560[Unimation]::6axis,RRRRRR,stdDH,slowRNE-viscousfriction;paramsof8/95;+---+-----------+-----------+-----------+-----------+-----------+|j|theta|d|a|alpha|offset|+---+-----------+-----------+-----------+-----------+-----------+|1|q1|0|0|1.5708|0||2|q2|0|0.4318|0|0||3|q3|0.15005|0.0203|-1.5708|0||4|q4|0.4318|0|1.5708|0||5|q5|0|0|-1.5708|0||6|q6|0|0|0|0|+---+-----------+-----------+-----------+-----------+-----------+>>p560.plot(qz)注意到机械手的末端附有一个小的右手坐标系,分别用红、绿、蓝色箭头代表机械手腕关节处的X,Y,Z轴方向。并且在XY平面用灰色直线表示整个机械手的垂直投影。更进一步的,我们可以通过teach函数来驱使机器人运动,就像实际在操作机器人一样。具体驱动方式是为机器人每个自由度生成一个变化范围的滑动条,以手动的方式来驱动机器人的各个关节,以达到驱动机器人末端执行器的目的。这种方式对于实际的多连杆机械手的运动演示非常有益,从而对机械手的关节、变量等概念有更深入的理解。>>p560.teach()机器人运动学求解机器人运动学主要是研究关节变量空间和机器人末端执行器位置和姿态之间的关系。常见的机器人运动学问题可归纳为两类:1)运动学正问题(又称为直接问题):对一给定的机器人,已知杆件几何参数和关节角矢量,求机器人末端执行器相对于参考坐标系的位置和姿态;2)运动学逆问题(又称为解臂形问题):已知机器人杆件的几何参数,给定机器人末端执行器相对于参考坐标系的期望位置和姿态(位姿),机器人能否使其末端执行器达到这个预期的位姿。如我们要求解所有关节变量为0时的末端机械手状态,则相应的正运动学可由下述语句求解:>>p560.fkine(qz)ans=1000.4521010-0.150010.43180001它返回一个对应末端执行器位姿的齐次变换。逆运动学问题则是通过一个给定的齐次变换矩阵,求解对应的关节变量。例如,假定机械手需运动到[0,–pi/4,–pi/4,0,pi/8,0]姿态,则此时末端机械手位姿所对应的齐次变换矩阵为:>>q=[0-pi/4-pi/40pi/80]q=0-0.7854-0.785400.39270>>T=fkine(p560,q)T=0.382700.92390.7371010-0.1501-0.923900.3827-0.32560001现在假定已知上述的齐次变换矩阵T,则可以通过ikine函数求解对应的关节转角:>>qi=ikine(p560,T)qi=0.0000-0.7854-0.78540.00000.3927-0.0000发现与原始的关节转角数值相同。值得指出的是,这样的逆运动学求解在手工计算中几乎是无法完成的。轨迹规划机器人轨迹规划的任务就是根据机器人手臂要完成的一定任务,例如要求机械手从一点运动到另一点或沿一条连续轨迹运动,来设计机器人各关节的运动函数。目前进行轨迹规划的方案主要有两种:基于关节空间方案和基于直角坐标方案。出于实际运用考虑,在教学中以讲解关节空间求解为主,这里也只演示关节空间的求解方案。假设puma560型机器人要在2秒内从初始状态qz(所有关节转角为0)平稳地运动到朝上的“READY”状态qr,则在关节空间进行轨迹规划的过程如下:首先创建一个运动时间向量,假定采样时间为56毫秒,则有:>>t=[0:.056:2]';在关节空间中插值可以得到:>>[q,qd,qdd]=jtraj(qz,qr,t);q是一个矩阵,其中每行代表一个时间采样点上各关节的转动角度,qd和qdd分别是对应的关节速度向量以及关节加速度向量。jtraj函数采用的是7次多项式插值,默认的初始和终止速度为0。对于上面的运动轨迹,主要的运动发生在第2个及第3个关节,通过MATLAB标准的绘图函数可以清楚的看到这两个关节随时间的变化过程。我们还可以通过RoboticsToolbox扩展了的plot函数以三维动画的形式演示整个运动过程,调用语句为:>>p560.plot(q)>>qplot(t,q);六、PUMA560机械臂仿真分析完整过程MATLAB的机器人工具箱提供了很好的可视化工具,其中几个常用的函数为:L(1)=Link([0010]);%根据D-H法定义一个连杆L(2)=Link([0010]);two_link=SerialLink(L,'name','twolink');%这个函数可以把定义好的连杆组成一个机械臂%所以输入这个值会出现它的D-H表>>two_linktwo_link=twolink(2axis,RR,stdDH)+---+-----------+-----------+-----------+-----------+|j|theta|d|a|alpha|+---+-----------+-----------+-----------+-----------+|1|q1|0|1|0||2|q2|0|1|0|+---+-----------+-----------+-----------+-----------+工具箱中有已建好的PUMA560机械臂mdl_puma560%调用机械臂参数>>p560%出现D-H表p560=Puma560(6axis,RRRRRR,stdDH)Unimation;viscousfriction;paramsof8/95;+---+-----------+-----------+-----------+-----------+|j|theta|d|a|alpha|+---+-----------+-----------+-----------+-----------+|1|q1|0|0|1.571||2|q2|0|0.4318|0||3|q3|0.15|0.0203|-1.571||4|q4|0.4318|0|1.571||5|q5|0|0|-1.571||6|q6|0|0|0|+---+-----------+-----------+-----------+-----------+内部已定义了四个特殊位姿qz(0,0,0,0,0,0)qr(0,π/2,−π/2,0,0,0)qs(0,0,−π/2,0,0,0)qn(0,π/4,−π,0,π/4,0)p560.plot(qz)%输入这个函数就能画出机械臂的构型对应构型如下T=p560.fkine(qn)%可以求出这个构型的变换矩阵qi=p560.ikine6s(T)%运动学反解从影子可以明显发现,末端的位姿一致,但机械臂的构型不同,说明同一位姿对应两个构型,运动学反解不是唯一的。如果能给出末端的轨迹,可以通过工具箱观察PUMA560的运动过程。>>T1=transl(0.4,0.2,0)*trotx(pi);%初始变换矩阵>>T2=transl(0.4,-0.2,0)*trotx(pi/2);%最终变换矩阵>>q1=p560.ikine6s(T1);%求广义变量>>q2=p560.ikine6s(T2);>>t=[0:0.05:2]';%两秒内40步完成>>q=jtraj(q1,q2,t);%通过插值函数得到轨迹p560.plot(q)%生成动画qplot(t,q);%给出每个关节的运动曲线七、机器人绘图我们的目标是创建一个让PUMA560机器人绘制字母“E”的轨迹。首先,加载PUMA560模型:>>mdl_puma560;接着,我们定义一些能体现该字母笔画的途经点:>>path=[101;100;000;020;120;121;011;010;110;111];它们被定义在xy平面上,无特定单位。绘图笔的放下和抬起分别对应z=0和z>0。分段路径可以绘制如下:>>plot3(path(:,1),path(:,2),path(:,3),'color','k','LineWidth',2)我们将其转换为一条连续路径:>>p=mstraj(path,[0.50.50.3],[],[222],0.02,0.2);其中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 连锁餐厅库存管理系统合作协议
- 国际商务跨文化交际知识试题库
- 设备维修预估费用明细表
- 互联网营销的成功案例分析
- 一氧化碳中试平台在工业领域的应用与挑战
- 工业一般固废循环利用及填埋处置项目实施方案
- 2025年信息技术应用能力考试模拟试卷及答案
- 2025年心理学专业考试试题及答案
- 2025年人机接口与交互设计相关知识测试卷及答案
- 2025年教育管理学与教育政策硕士专业考试题及答案
- 水电站安全知识
- 2025年教育观念测试题及答案
- 2024年贵州省普通高中学业水平选择性考试地理试题(原卷版+解析版)
- 三年级下册语文1-8单元写作范文
- 游泳安全讲座
- 中小企业车间租赁合同范本
- 2025年江苏盐城燕舞集团有限公司招聘笔试参考题库含答案解析
- 手持砂轮机培训课件
- 辐射防护复习题及答案
- 2024年上海市中考英语试题和答案
- 安全管理红线
评论
0/150
提交评论