工业机器人实验报告.docx

上传人:b****7 文档编号:8966682 上传时间:2023-02-02 格式:DOCX 页数:19 大小:1.80MB
下载 相关 举报
工业机器人实验报告.docx_第1页
第1页 / 共19页
工业机器人实验报告.docx_第2页
第2页 / 共19页
工业机器人实验报告.docx_第3页
第3页 / 共19页
工业机器人实验报告.docx_第4页
第4页 / 共19页
工业机器人实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

工业机器人实验报告.docx

《工业机器人实验报告.docx》由会员分享,可在线阅读,更多相关《工业机器人实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

工业机器人实验报告.docx

工业机器人实验报告

 

工业机器人实验报告

 

 

姓名:

年级:

学号:

 

前言

六自由度工业机器人是个较新的课题,虽然其在国外已经具有了较完善的研究,但是在国内对于它的研究依旧停留在较低的水平上。

机器人技术几种了机械工程、电子技术、计算机技术、自动化控制理论及人工智能等多学科的最新研究成果,代表机电一体化的最高成就,是当代科学技术发展最活跃的领域之一。

在传统的制造领域,工业机器人经过诞生、成长、成熟期后,已成为不可缺少的核心自动化装备,目前世界上有近百万台工业机器人正在各种生产现场工作。

在非制造领域,上至太空舱、宇宙飞船、月球探索,下至极限环境作业、医疗手术、日常生活服务,机器人技术的应用以拓展到社会经济发展的诸多领域。

一、六自由度机械手臂系统的介绍

在本次综合创新型试验中我们用到的是六自由度机械手,其是典型的机电一体化设备,自该试验中我们主要是在对其机械结构和电气结构进行分析后,在主装好的数控系统利用c语言使六自由度机械手实现运动;在实验中我们所用的机械手臂简图.

六自由度机械手臂是一套具有6个自由度的典型串联式小型关节型机械手臂,带有小型手抓式;主要由机械系统和控制系统两大部分组成,其机械系统的各部分采用模块化结构,每个部分分别由一个伺服电动机来带动,每个电动机在根据控制要求以及程序的要求来运动从而实现运动要求;其机械系统主要包括以下六个组件,如图所示PSCPort0,1,2,3,4,5六个组件也就是底座,臂膀,手腕及夹持手指。

每个组件由一个伺服电机驱动关节运动,组件1也就是由PSCPort0构成的底座,其主要作用就是完成整体的水平面转动,转动范围360度;PSCPort1,2,3这三个组件既是臂部,控制手臂在与底座旋转的垂直平面转动其转动范围为180度也即是控制手臂的俯仰;PSCPort4这个组件也使机械关节,既是手部关节,可完成机械手部的任意转动,确定机械手的夹持方向;PSCPort5机械手钳口,完成对物体的夹持。

控制系统,控制系统主要是通过运动要求用C语言编程然后烧结到所带的单片机上通电进行控制;此机械手臂没有传感检测器和反馈线路,该控制系统为开环控制系统。

二.六自由度机械手臂的机械系统介绍

1下图为机械手臂的机械运动简图:

在图中分别标注的是六个伺服电机;

伺服电机1固定,此机械手臂的回转自由度归属于底盘,用师傅电机1来控制底盘在水平面的360度的回转,实现手臂的整体回转,底盘与臂部相连;

伺服电机2,3,4分别为臂部运动的控制电机,能根据要求实现在与水平面垂直面的俯仰摆动等动作;

伺服电机5为手部关节的控制电机,其与电机4相固定,实现在手部的360度旋转,以便于机械手能夹取不同方向的物件;同时电机6固定在手部上,用来控制手爪的伸张程度从而来夹取不同尺寸形状大小的物体。

此六自由度机械手臂的特点:

1.手部和手腕连接处可拆卸,手部和手腕连接处为机械结构。

b.手部是机械手臂的末端操作器,只能抓握一种工件或几种在形状、尺寸、质量等方面相近似的工件,只能执行一种作业任务。

c.手部是决定整个机械手臂作业完成好坏,作业柔性好坏的关键部件之一。

此机械手臂的手爪是机械钳爪式类别中的平行连杆式钳爪。

一个交流电动机驱动,一对齿轮啮合传动实现手爪的张开和闭合。

2重要零件的介绍:

图7

小弹簧是必须的,它可以抵消手臂前向的作用力使关节3的电机能够达到提起的最大位置。

 

三控制系统的分析

1教学版的介绍

在六自由度机械手臂中我们采用的开环控制系统,因为没有反馈线路和传感检测器;主要是通过计算机编程,用AT89S52单片机根据所编制的程序来控制机械手臂的运动;控制系统主要就是由单片机教学版和电机控制器组成,我们所用的六自由度机械手臂其电路图如下;

 

①—串行接口用来连接到计算机下载程序;②—ISP接口,为程序下载器与1有区别;③—电源接口;④—三位开关,用来控制教学版的通断电;⑤—绿色LED电源指示灯;⑥—AT89S52单片机;⑦—“Reset”按钮;⑧—面包板;⑨—专用电机控制接口插座,用来连接到电机控制器上从而控制电机的运动;

●连接单片机教学板ISP接口到计算机,以便程序下载;

●连接单片机教学板串行接口到计算机,以便调试和交互;

●连接机器人到电池或者是供电电源。

2AT89S52介绍

C51宝贝车机器人采用了AT89S52,不需要仿真机,编程机运用ISP(IN-systemprogrammable)的可反复擦写1000次以上,配置十分灵活,可扩展性特别强。

其上的AT89S52的引脚情况如图9所示。

图10AT89S52引脚图

图9是51标准的40引脚双列直插式集成电路芯片:

P0.0~P0.7,P0口8为双向口线(在引脚的39~32号端子);

P1.0~P1.7,P1口8为准双向口线(在引脚的1~8号端子);

P2.0~P2.7,P2口8为准双向口线(在引脚的21~28号端子);

P3.0~P3.7,P3口8为多用途(在引脚的10~17号端子);

P0口有两个功能:

当外部扩展存储器时,当做低8位数据/地址总线来使用;不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入和输出时应在外部接上拉电阻。

P1口只做I/O口使用;其内部有上拉电阻。

P2口有两个功能:

当扩展外部存储器使用时,当作地址总线高八位使用;不扩展时做一般I/O口使用期内部有上拉电阻。

P3口有两个功能:

除了作为I/O口使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。

3教学板与电机控制器

教学板与电机控制器连接后好,开通电源就可以根据所编制的程序来控制机械手运动了,其简图如下:

教学板上的电机专用接口,WRB,三个接口分别与电机控制器上的WRB接口对应连接,电机控制器上的p0~p6口分别与6个电机相连来分别控制电机的运动。

单片机根据所编制的程序控制电机控制器,点击控制其根据要求来控制各个电机的运动;然后将三位教学板的电池装上,将三位开关拔到1,将电机控制器的开关拔到ON,我们就可以看到六自由度机械手能根据要求运动。

教学板与电机控制器连接图

 

4运动程序

根据控制要求编制的程序如下:

intcodearmdata[]={750800,800,540,750,1250,

450,800,800,540,750,1250,

450,550,650,900,750,1250,

450,450,650,950,750,550,

450,800,800,540,750,550,

450,550,650,950,750,550,

450,450,650,990,750,1250,

450,800,800,540,750,1250,

450,550,630,1000,750,1250,

450,450,640,1000,750,550,

450,800,800,540,750,550,

450,800,800,540,750,550,

450,450,640,1000,750,550,

450,450,640,950,750,1250,

450,800,800,540,750,1250,

0xff};

五小结

在对工业机器人这门课程的学习后,学校教学计划开设该实验。

我们经过两个星期的实验和探索,并且在老师的讲解以及师兄和同学的帮助协作下,我们基本完成了实验的要求和目的;通过这次实验我们掌握了六自由度机械手的基本物理结构和运动原理,深入了解了单片机的编程,复习和编写、调试C语言程序;同时掌握相关软件的操作使得程序能够烧入单片机(我们懂得怎样去操作头文件和文件的操作,了解和基本熟悉了keil软件,把C语言程序编译成.hex后缀的程序,然后再通过烧入软件烧入单片机)。

通过调整程序中的不同坐标值得到不同的运动,这次实验不仅让我们真实地去了解了六自由度机械手、单片机以及相关软件,更让我们在自己的实践和探索中学到了怎样去学习,怎样获取我们需要的材料等等,总的来说,这次试验的收获挺大的。

 

数控机床工作台实验报告

一数控机床十字工作台伺服系统结构的介绍

在本次实验中我们接触的是数控机床十字工作台也是X-Y工作台,数控十字工作台也主要包括两个部分,机械部分和控制部分,在机械系统部分主要有滚珠丝杆副,导轨副,步进电机,工作台等组成;其控制系统我们所用的机床是用的是开环伺服系统,主要包括驱动器(缓行脉冲分配器和功率放大器),微机等组成该工作台结构简单通过微机技术的简单应用,实现对机床工作台的控制,实现了了X-Y工作台的自动化,大大的减轻了劳动强度,提高生产效率,其功能也远远高于普通的工作传统工作台.

二工作台机械系统的介绍

实验中我们用的工作台机械系统主要包括步进电动机X2,滚珠丝杆副X2,联轴器,导轨,支撑座,轴承,其机械结构简图如下图所示:

机械结构简图

图中为保证传动精度和平稳性以及结构的紧凑,我们用的是滚珠丝杠螺母传动副,而且滚珠丝杠副具有轴向刚度高能通过适当预紧可消除丝杠与螺母之间的轴向间隙,不易磨损等优点,运动平稳,是用寿命长等优点;

支承座采用的是固定支承式用的是深沟球轴承和向心轴承;

因为工作台作为实验用运动部件重量和工作载荷都很小载荷几乎没有,实验台用的是直线滚动导轨副提高运动平稳性和减少工作台的摩擦系数;

在该工作台中分别用两个步进电机控制两个丝杠副运动,分别控制X方向和Y方向的运动,控制系统根据用户编制的程序的要求,发出脉冲型号控制两个步进电机,让两个工作台运动,从而实现了X-Y一体化的功能。

三控制系统的介绍

在实验中我们用的数控机床工作台伺服系统所用的是开环伺服系统;全闭环控制系统,结构复杂技术难度大,成本高;半闭环控制,调试比开环控制要困难,而其结构也相对复杂;经综合考虑要求经济性,而且运动精度要求不高,为简化结构和降低成本,所以我们选用的开环伺服结构;

在实验中我们使用的工作台控制系统如下图:

控制系统的实物简图

开环控制的系统框图:

cpu

电隔离

功率放大电路

电机x

丝杠X

 

电机Y

 

丝杠Y

开环控制的框图

控制系统的电器图

控制系统电器简图

因为开环系统我们采用的是步进电机,步进电机的运行特性与配套使用的驱动电源(驱动器)有密切关系。

驱动电源由脉冲分配器,功率放大器等组成。

驱动电源是将变频信号源(微机)送来的脉冲信号及方向信号按要求的配电方式自动地循环供给电动机的各相绕组,以驱动电动机转子的正反向旋转。

环行脉冲分配器:

步进电机的各相绕组必须按一定的顺序通电才能正常工作,使电动机绕组的通电顺序按一定规律变化;

功率放大器:

从计算机输出口或从环行分配器输出的信号脉冲电流一般只有几个毫安,不能直接驱动步进电动机运转,功率放大器将脉冲电流进行放大,使其增大到几至十几安培,来驱动电机运转;

4程序

根据控制要求编制的程序如下:

//*******设置默认初始速度为1000*********

m_nStartvX=1000;

m_nStartvY=1000;

m_nStartvZ=1000;

m_nStartvA=1000;

//*********设置默认驱动速度为2000********

m_nSpeedX=2000;

m_nSpeedY=2000;

m_nSpeedZ=2000;

m_nSpeedA=2000;

//*********设置默认加速度为1500**********

m_nAddX=1500;

m_nAddY=1500;

m_nAddZ=1500;

m_nAddA=1500;

//********设置默认目标位置为100000******

m_nPulseX=100000;

m_nPulseY=100000;

m_nPulseZ=100000;

m_nPulseA=100000;

//***********设置加速时间***************

m_dTaccX=0.1;

m_dTaccY=0.1;

m_dTaccZ=0.1;

m_dTaccA=0.1;

//*********设置延时时间为0************

m_nDelayTime=0;

UpdateData(FALSE);

//***********启动定时器*************

SetTimer(MAINTIMER,100,NULL);

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCDEMODlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallydoneforyoubytheframework.

voidCDEMODlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

//Centericoninclientrectangle

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

//Drawtheicon

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialog:

:

OnPaint();

}

}

//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags

//theminimizedwindow.

HCURSORCDEMODlg:

:

OnQueryDragIcon()

{

return(HCURSOR)m_hIcon;

}

 

/*********************************

联动按钮动作

*******************************/

voidCDEMODlg:

:

OnButtonPmove()

{

UpdateData(TRUE);

longStartv[]={m_nStartvX,m_nStartvY,m_nStartvZ,m_nStartvA};//初始速度

longSpeed[]={m_nSpeedX,m_nSpeedY,m_nSpeedZ,m_nSpeedA};//驱动速度

longAdd[]={m_nAddX,m_nAddY,m_nAddZ,m_nAddA};//加速度

if(m_bX)

{

//*************速度设定***************//

g_CtrlCard.Setup_Speed(1,m_nStartvX,m_nSpeedX,m_nAddX);

//*************X轴驱动***************//

g_CtrlCard.Axis_Pmove(1,m_nPulseX);

}

if(m_bY)

{

//*************速度设定**************//

g_CtrlCard.Setup_Speed(2,m_nStartvY,m_nSpeedY,m_nAddY);

//*************Y轴驱动****************//

g_CtrlCard.Axis_Pmove(2,m_nPulseY);

}

if(m_bZ)

{

//*************速度设定**************//

g_CtrlCard.Setup_Speed(3,m_nStartvZ,m_nSpeedZ,m_nAddZ);

//*************Z轴驱动**************//

g_CtrlCard.Axis_Pmove(3,m_nPulseZ);

}

if(m_bA)

{

//*************速度设定**************//

g_CtrlCard.Setup_Speed(4,m_nStartvA,m_nSpeedA,m_nAddA);

//*************A轴驱动***************//

g_CtrlCard.Axis_Pmove(4,m_nPulseA);

}

}

/*********************************

插补按钮动作

*********************************/

voidCDEMODlg:

:

OnButtonInpmove()

{

UpdateData();

longStartv[]={m_nStartvX,m_nStartvY,m_nStartvZ,m_nStartvA};//初始速度

longSpeed[]={m_nSpeedX,m_nSpeedY,m_nSpeedZ,m_nSpeedA};//驱动速度

longAdd[]={m_nAddX,m_nAddY,m_nAddZ,m_nAddA};//加速度

longPulse[]={m_nPulseX,m_nPulseY,m_nPulseZ,m_nPulseA};//轴的驱动脉冲数

//doubleTacc[]={m_dTaccX,m_dTaccY,m_dTaccZ,m_dTaccA};//加速时间

//************两轴插补***********//

if(m_bX&&m_bY&&!

m_bZ&&!

m_bA)//XY两轴插补

{

g_CtrlCard.Setup_Speed(1,Startv[0],Speed[0],Add[0]);

g_CtrlCard.Interp_Move2(1,2,Pulse[0],Pulse[1]);

}

elseif(m_bX&&!

m_bY&&m_bZ&&!

m_bA)//XZ两轴插补

{

g_CtrlCard.Setup_Speed(1,Startv[0],Speed[0],Add[0]);

g_CtrlCard.Interp_Move2(1,3,Pulse[0],Pulse[2]);

}

elseif(m_bX&&!

m_bY&&!

m_bZ&&m_bA)//XW两轴插补

{

g_CtrlCard.Setup_Speed(1,Startv[0],Speed[0],Add[0]);

g_CtrlCard.Interp_Move2(1,4,Pulse[0],Pulse[3]);

}

elseif(!

m_bX&&m_bY&&m_bZ&&!

m_bA)//YZ两轴插补

{

g_CtrlCard.Setup_Speed(2,Startv[1],Speed[1],Add[1]);

g_CtrlCard.Interp_Move2(2,3,Pulse[1],Pulse[2]);

}

elseif(!

m_bX&&m_bY&&!

m_bZ&&m_bA)//YW两轴插补

{

g_CtrlCard.Setup_Speed(2,Startv[1],Speed[1],Add[1]);

g_CtrlCard.Interp_Move2(2,4,Pulse[1],Pulse[3]);

}

elseif(!

m_bX&&!

m_bY&&m_bZ&&m_bA)//ZW两轴插补

{

g_CtrlCard.Setup_Speed(3,Startv[2],Speed[2],Add[2]);

g_CtrlCard.Interp_Move2(3,4,Pulse[2],Pulse[3]);

}

5小结

通过这次试验,我对数控机床的结构和原理有了更进一步的认识,更是对这十字工作台有更深的理解。

同时我们还对数控机床的编程有了一定的温习,也认识到对于现阶段的我们,数控机床的精髓在于程序的编辑和十字工作台的结构设计,这既是对我们课堂所学知识的更深认识,也是对实际生产的初步理解,对我们即将步入社会进入车间的学生是至关重要的。

实验教学的全过程包括认识、基础、综合3个阶段。

以往的实验与实际应用中的硬件电路相脱节,使学生缺乏硬件设计及调试分析能力,像这次这样的实验,对学生的要求比较高,同时考究学生的思考和动手能力,但同时这也是我们的一次试手的机会,庆幸的是我报我好了这次机会,也学到了许多。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1