您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 高中教育 > 机器人运动学实验报告
中南大学工业机器人导论实验报告机电工程学院机械专业班同组人姓名学号指导老师实验日期2013年10月22日成绩实验名称机器人运动学实验一、实验目的1.了解四自由度机械臂的开链结构;2.掌握机械臂运动关节之间的坐标变换原理;3.学会机器人运动方程的正反解方法。二、实验原理简述本实验以SCARA四自由度机械臂为例研究机器人的运动学问题.机器人运动学问题包括运动学方程的表示,运动学方程的正解、反解等,这些是研究机器人动力学和机器人控制的重要基础,也是开放式机器人系统轨迹规划的重要基础。机械臂杆件链的最末端是机器人工作的末端执行器(或者机械手),末端执行器的位姿是机器人运动学研究的目标,对于位姿的描述常有两种方法:关节坐标空间法和直角坐标空间法。本次实验用D-H变化方法求解运动学问题。建立坐标系如下图所示连杆坐标系{i}相对于{i−1}的变换矩阵可以按照下式计算出,其中连杆坐标系D-H参数为由表1-1给出。齐坐标变换矩阵为:其中描述连杆i本身的特征;和描述连杆i−1与i之间的联系。对于旋转关节,仅是关节变量,其它三个参数固定不变;对于移动关节,仅是关节变量,其它三个参数不变。其中连杆长l1=200mm,l2=200mm,机器人基坐标系为O-X0Y0Z0。根据上面的坐标变换公式,各个关节的位姿矩阵如下:表1-1连杆参数表运动学正解:各连杆变换矩阵相乘,可得到机器人末端执行器的位姿方程(正运动学模型)为:其中:z轴为手指接近物体的方向,称接近矢量a(approach);y轴为两手指的连线方向,称方位矢量o(orientation);x轴称法向矢量n(normal),由右手法则确定,n=o*a。p为手爪坐标系原点在基坐标系中的位置矢量。运动学逆解:通常可用未知的连杆逆变换右乘上式:令两式对应元素分别相等即可解出。其中将上式回代,可得,1112)sin()cos(lrrarctg式中:22yxppr;yxpparctg令第二行第四个元素对应相等,可得:令第四行第三个元素对应相等,可得:所以,三、实验仪器与设备1.KLD-400型SCARA教学机器人2.KLD-400型SCARA教学机器人配套软件控制系统3.装有Windows系列操作系统的PC机4.KLD-400型SCARA教学机器人控制箱5.实验平台(带有标尺的)板四、实验数据及其处理、图表1.正运动学分析结果:输入输出12d34XYZ手爪3010-30-120326.41228.56-30-1206020-20-90134.73370.17-20-909040-10-60-128.56353.21-10-601205000-296.96207.9400150601030-346.4101030180802060-234.73-196.9620602.逆运动学分析结果:注:(240°即-120°)五、程序代码1、正运动分析#includestdio.h#includemath.hintmain(){inti,j,k;floatt,d3,o1,o2,o4,pi=3.1415926;floatT[4][4]={0},S[4][4]={0};printf(guanjiedian:\n);//数据输入scanf(%f%f%f%f,&o1,&o2,&d3,&o4);o1=o1/180*pi;o2=o2/180*pi;o4=o4/180*pi;floatT1[4][4]={{cos(o1),-sin(o1),0,0.2*cos(o1)},//矩阵{sin(o1),cos(o1),0,0.2*sin(o1)},{0,0,1,0},{0,0,0,1},},T2[4][4]={{cos(o2),-sin(o2),0,0.2*cos(o2)},{sin(o2),cos(o2),0,0.2*sin(o2)},{0,0,1,0},{0,0,0,1},},T3[4][4]={{1,0,0,0},{0,1,0,0},{0,0,1,-d3},{0,0,0,1},},T4[4][4]={{cos(o4),-sin(o4),0,0},{sin(o4),cos(o4),0,0},{0,0,1,0},{0,0,0,1},};for(i=0;i4;i++)for(j=0;j4;j++){for(t=0,k=0;k4;k++){t+=T1[i][k]*T2[k][j];//第一段矩阵相乘}T[i][j]=t;}for(i=0;i4;i++)for(j=0;j4;j++){S[i][j]=T[i][j];}for(i=0;i4;i++)for(j=0;j4;j++){for(t=0,k=0;k4;k++){t+=S[i][k]*T3[k][j];//第二段矩阵相乘}T[i][j]=t;}for(i=0;i4;i++)for(j=0;j4;j++){S[i][j]=T[i][j];}for(i=0;i4;i++)for(j=0;j4;j++){for(t=0,k=0;k4;k++){t+=S[i][k]*T4[k][j];//第三段矩阵相乘}T[i][j]=t;}printf(X=%fY=%fZ=%f,1000*T[0][3],1000*T[1][3],-T[2][3]);//结果输出}2、逆运动分析#includestdio.h#includemath.hintmain(){floatM=0,m=0;floato1=0,o2=0,o4=0,d3=0;floatx=0,y=0,z=0,s=0,q[5];floatn1=0,n2=0,pi=3.1415926;floatr,k;inti=0;printf(shurun1,n2,x,y,z:\n);for(i=0;i5;i++){scanf(%f,&q[i]);//参量输入}n1=q[0];n2=q[1];x=q[2];y=q[3];z=q[4];s=x*x+y*y;M=s/(0.4*sqrt(s));m=1-M*M;r=sqrt(s);k=atan(x/y);o1=atan(M/sqrt(m))-atan(x/y);o2=atan(r*cos(o1+k)/(r*sin(o1+k)-0.2));d3=z*1000;o4=asin(n2*cos(o1)-n1*sin(o1))-o2;//这个地方有个问题:对于反三角函数,区间需要单o1=o1*180/pi;//独处理o2=o2*180/pi;o4=o4*180/pi;printf(o1=%fo2=%fd3=%fo4=%f,o1,o2,d3,o4);}六、对机器人运动学认识机器人运动学,主要是利用数学手段对实时机构进行运动学分析,能够很好的控制各机构与末端执行器的位置的操作,通过特定的数据分析和自动化控制能够让我们的机器人具有足够高的准确性和可操控性。机器人运动学的主要任务是为机器人运动的控制提供分析的手段和方法,因此需要建立末端执行器,各运动构件的位置方向与各关节位移之间的关系。其中,各构件的位置方向是用3维笛卡尔坐标描述的。对于各运动构件上笛卡尔坐标系的变换关系,采用齐次坐标变换,以此导出末端执行器,各运动构件与各关节的位置的计算方法。例如第一个构件的位置及方向用齐次坐标举证A1描述,第二个构件的位置及方向用齐次坐标矩阵A2描述。。。则第i个构件的位置及方向的齐次坐标变换Ti=A1*A2*。。。。*Ai。即各齐次坐标矩阵依次连乘,便可得到齐次坐标变换。并借此通过各关节转动或移动去控制末端执行器的位姿以实现机器人的工作任务。1、机器人是由多个自由度的机构组成的,机器人的自由度越多,则分析工作越复杂。2、笛卡尔坐标的3维矢量空间与关节变量决定的n维矢量空间的相互变换,是机器人运动学中的基本数学问题。3、机器人机构不可避免要给分析工作带来复杂性,实时控制时的计算量很大,如何开发一些更小计算量的分析方法,则要求机器人运动学不断改进和发展。
本文标题:机器人运动学实验报告
链接地址:https://www.777doc.com/doc-5254603 .html