基于运动控制卡的两关节机械手臂控制系统设计毕业论文设计40论文41.docx
- 文档编号:17263830
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:24
- 大小:290.77KB
基于运动控制卡的两关节机械手臂控制系统设计毕业论文设计40论文41.docx
《基于运动控制卡的两关节机械手臂控制系统设计毕业论文设计40论文41.docx》由会员分享,可在线阅读,更多相关《基于运动控制卡的两关节机械手臂控制系统设计毕业论文设计40论文41.docx(24页珍藏版)》请在冰点文库上搜索。
基于运动控制卡的两关节机械手臂控制系统设计毕业论文设计40论文41
(此文档为word格式,下载后您可任意编辑修改!
)
学校代码:
学号:
毕业设计(论文)
BACHELORDISSERTATION
论文题目:
基于运动控制卡的两关节机械手臂控制系
统设计
学位类别:
学科专业:
机械设计制造及自动化
作者姓名:
导师姓名:
完成时间:
基于运动控制卡的两关节机械手臂控制系统设计
摘要
本次两关节的机械手控制系统的设计,我们用控制卡来进行设计。
通过微软公司开发的VC6.0软件,编制运动控制系统的控制界面,再在界面中的命令控件中进行参数的设置、代码编写。
继而把界面程序一一导入到我们所用的GT这一系列运动控制卡中,通过导入程序后的运动控制卡,来进行驱动电机的驱动器,继而再通过驱动器驱动伺服电机,同样地,之后就是通过伺服电机输出轴的输出的速度、转矩和转向,带动两关节机械手的运动。
这也就是说,最后机械手的运动轨迹就是我们之前在控制界面中通过代码设置的预定动作。
当然,在本次运动控制系统中还包括其他的辅助环节,比如各个器件之间的连线等。
本文介绍的控制系统,这当中最主要的部分当然是运动控制卡。
介绍了运动控制卡的硬件、接线方式、软件构成和里面的开发环境、信息传递与处理机制;两关节机械手等;与此同时,本篇论文也介绍了VC6.0编程的特点及调用函数的方式。
这次之所以基于运动控制卡进行设计,那是因为运动控制卡与以前的设备比较起来,有许多优点。
首先,运动控制卡用起来不麻烦,我们要做的就是在电脑上进行编程,对专业软件要求不高;还有就是,有很多新的能力,可以实现各种各样的轨迹控制;最后,它的结构不是分散的,能用在很多场合,与此同时,用户可以根据实际需要进行扩充。
关键词:
运动控制卡;VC6.0;控制界面;机械手
Basedonthemotioncontrolcardoftwojointmechanicalarmcontrolsystemdesign
ABSTRACT
.Thetwojointsofthemanipulatorcontrolsystemdesign,weusecontrolcardfordesignByMicrosoft'sVC6.0softwaretocompiletheinterfaceofthemotioncontrolsystem,thenSetuptheparametersandcompileintheinterfaceofthecontroldesignandcompilecodes,ThenimporttheinterfaceprogramtoGTseriesofmovementcontrolCARDS,byimportingtheprogramtothemovementcontrolCARDStodrivetheservomotordrive,thenthroughthedriveservomotordrive,inthesameway,thenthroughtheoutputoftheservomotoroutputshaftspeed,torqueandsteering,drivingmotionplatformmovement.Thismeansthatinthecontrolbeforethefinalmotionplatformtrajectoryisourinterfacethroughthereservationcodeisset.And,ofcourse,inthemotioncontrolsystemincludesotherauxiliarylinks,suchastheconnectionbetweeneachdevice,theriseandfallofpenrack,etc.
Thispaperexpoundsthemaincontentofthebaseprincipleandcompositionofcontrolsystem,whichcorepartisthemovementcontrolCARDS,motioncontrolcardwasintroducedindetailthemode,softwarecompositionanddevelopmentenvironment,informationtransmissionandprocessingmechanism;Thecompositionoftwojointsofthemanipulator;Atthesametime,thispaperalsointroducesthecharacteristicsandcallingfunctionofVC6.0programmingapproach.Thedesignofmotioncontrolsystemisbasedonmotioncontrolcard,that'sbecausethemovementcontrolCARDScomparedwiththetraditionalnumericalcontroldevice,,aslongasthesimpleprogrammingcanbeonthecomputer,doesnotnecessarilyneedveryprofessionalCNCsoftware;Second,itsfunctionenhanced,canachieveavarietyoftrajectorycontrol;Finally,itisthestructureoftheintegratedmodular,strongcommonality,atthesametime,theusercanaccordingtotheactualneedforexpansion.
KEYWORD:
motioncontrolcard;VC6.0;Controlinterface;manipulator
第一章绪论1
1.1课题背景1
1.2开放式控制系统1
1.3设计任务2
1.4设计要求2
第二章本次控制系统的结构组成3
2.1运动控制系统简介3
2.1.1GT系列运动控制器5
2.1.2伺服电机驱动器6
2.1.3伺服电机6
2.1.4两关节机械手7
2.2安装步骤7
第三章系统控制界面的制作及程序的编写10
3.1VC++编程10
3.1.1VC6.0介绍10
3.1.2控制界面的编制12
3.2动态链接库和GTCard类14
3.2.1动态链接库的调用14
3.2.2GTCard类15
3.3界面控制程序的编制17
3.3.1初始化程序17
3.3.2回零程序18
3.3.3曲线模式19
3.3.4点动程序21
3.3.5停止程序22
3.3.6退出程序23
3.4多轴协调运动24
3.4.1坐标映射24
3.4.2两轴直线插补24
3.4.3两轴圆弧插补25
3.4.4自定义曲线26
3.5编译与运行28
第四章设计成果与不足30
第五章总结31
参考文献32
致谢33
第一章绪论
1.1课题背景
随着我们人类自身的进步与发展,尤其表现在对知识的越来越懂和科技的研发加快、人类对劳动这个概念的转变、市场效益及利益驱动,人们制造出了各种机器来代替人工劳动,这是一次举足轻重的工业革命。
极大地提高了工作效益,同时也相应的提高了工件的精度,解放了人类的双手,更重要的是给工厂带来了巨大的利润,为市场所接受。
在机械方面,早期的各类机床比以前的纯手工劳动极大地节省了人力,降低了成本,但还是需要人力去实时的监控,不间断的控制机床,不能满足大批量的生产,尤其在加工一些复杂、精密的工件时,有经验的工人会表现的好些,但传统机床还是不如人意。
与此同时,要熟练的掌握机床需要很长的一段时间,这在某方面也增加了成本和时间的浪费,更严重的问题是传统的机床安全防护装置的缺失,对于机床本体状态不能实时的监控,以及对于工人的安全缺乏保护。
所以,传统的机床工作经常发生突然停机以及手指断裂等。
后来随着计算机这个领域的快速进步,自动化操作也跟着发展了起来,所以出现了刚开始的数字控制机床,相比于刚出现的机床,数控机床在工作效率和精度上更上一层楼,同时,数控车床的操作简单,更加节省了人工劳动,不需要人工实时的监测,但由于数控机床造价昂贵且维修成本也高,所以设计人员有不断的进行改进,除了在机床本体寿命上费劲心思,又在市场需要的基础上,对数控机床的各项功能提出了更加严苛的要求,加工中心应运而生,加工中心更加智能化,能加工出形状更加复杂、精度要求更加高的零部件。
由于计算机技术与自动化技术的不断发展,人类从使用传统机床,逐渐地用上了早期的数控机床,数控机床的出现极大的提高了效益和精度,但在另一方面,也极大地困扰了企业。
比如数控机床造价昂贵、维修成本高,更严重的是,它的通用性差,换了一台机床,就无法正常工作了,这使得科研人员又进行了改进。
尝试开发出一种操作简便、通用性强,避免由于机床的不同类型,数控装置不能正常工作,有些数控机床的编程不能相互调用的问题。
现在数字控制这方面的发展大方向就是“PC+运动控制器”的这种方式。
1.2开放式控制系统
在我们平日所见的的数字控制系统中,使用较多的为日本、德国一些公司的产品。
在当今市场的要求下,急需要一种数字控制系统,它不仅有多样的功能性,而且通用性也要强,也就是说兼容性好,换台机床即使工作本体改变了,但只要更改一下编程,能正常准确的工作。
与此同时,更重要、更人性化的是用户可以根据自身实际需要来扩充相应功能,这也就是开放式数字控制的基本特征。
这也是数字控制系统发展的趋势,相比于以前的封闭式控制系统,开放式数字控制系统就是把使用的东西集成在一起,不需要一个个去不同的地方去找,方便使用者使用。
系统也可以移植使用,就是说可以用在不同的机器上,不会说因为不兼容而无法工作,打破了封闭式数字控制系统的那种固定无法更改的模式。
给使用者一个很大的发挥空间,可以根据自身实际需要,添加一些新的功能。
这样对那些用户来说,是大大的利好。
开放式数字控制系统,可以很快的进行反应,适应各种各样的加工需要,现在数字控制系统的大方向就是“PC+运动控制卡”,它与传统的数字控制系统相比,具有以下特点:
首先,在技术这一块,有不少进步,与此同时,功能也多样化了,可以实现各种各样的运动轨迹的控制;其次,开放式数字控制系统,它的结构不再是分散的,采用了模块化的设计,可以用在很多的地方;再次,它操作一点都不复杂,在计算机上经过简单的编程,它就可以进行运动控制,对专业软件这块没有多大的要求;最后,它的通用性强,通过更改编写的代码,即可用在不同的机床上,用户还可以根据自身需要扩充功能。
1.3设计任务
本次运动控制系统设计是基于GT系列运动控制卡来完成的,通过使用计算机高级语言C++作为编写工具,再结合微软公司的VC6.0软件,编制运动控制系统的控制界面,通过调用固高科技编写的GT400.CGTCardgtcard;这样就应该没有问题了,类目录里多了一个新类,CGTCard,里面有很多函数,我们就可以很方便的进行使用。
3.3界面控制程序的编制
3.3.1初始化程序
初始化程序包括对板卡的初始化、专用输入参数的设置、运动轴的初始化。
具体程序如下图3.8所示
图3.8初始化程序
3.3.2回零程序
对于XY轴来说,每次进行运动之前都需要回零,我们主要调用的是Home_Zero这个函数,而这个函数回零的思想:
首先判断当前轴的位置,然后进行正向运动,直到正极限位置,记下当前位置,然后反向运动,直到负极限位置,记下当前位置。
然后系统会进行位置运算,就是这两个极限位置的绝对值差的一半就是零点位置。
其次系统还会检测这个位置是否为零点,主要是通过霍尔元件来检测。
程序如下图3.9所示
图3.9回零程序
3.3.3曲线模式
我们本次使用的运动控制卡,它给我们提供了4种运动模式。
而我们常用的是曲线模式,曲线模式中又分为S形和梯形。
因为曲线模式它的运动较为平缓,对元器件的冲击较小,所以我们选用曲线模式。
S-曲线这种模式,它有五个主要的参数,具体如下表3-1所示:
表3-1S形曲线参数列表
S形曲线模式下,它的速度曲线一般有7段,如下图3-10所示,但它是对称的,总的来说它的曲线段只有4种情况。
在第一曲线段,它会以MAX_Acc作为加速的目标,与此同时,以jerk作为它的增加的量来加速,一直到它的Acc为我们之前设置的Max_Acc为止;第二段,是一段均匀加速的阶段,它的Acc是一成不变的,就是先前设置MAX_Acc;第三曲线段,它是变减速运动,它的Acc在不断地减少,而减少的幅度就是之前设置的jerk的负值,当Acc为零,也就是说这段速度达到最大时,这段运动就结束了;第四曲线段,是一种速度不变的运动,保持最大速度不变。
至于另外曲线段和前面的曲线段类似。
图3-10S-曲线模式的速度曲线
有时S曲线模式中,它的第四曲线段可以没有。
在梯形曲线模式中,它主要由四个参数,如下表3.2所示。
表3-2梯形曲线参数列表
梯形曲线模式相比S形曲线模式而言较简单,它只有3个曲线段,分别为匀加速运动、匀速运动、匀减速运动。
如下图3-11所示
图3-11梯形曲线模式的速度
在第一段内,是一段Acc不变的运动,它是以之前设定的Acc来运动,直到MAX_Acc;在第二段内,是一段速度不变的过程,它的Acc为零;第三段内,是一段速度均匀减少的过程,它是以之前设定的Acc负值进行减速,直到速度为零。
在一些情况下,也许还没达到最大设定值,这个运动就要开始减速,这样就没有第二曲线段。
在梯形曲线模式这种控制方式下,任意时刻都可以更改速度和位置。
它相比于S曲线来说更加的自由,此时的速度曲线就如图3-12所示。
图3-12改变后速度曲线
3.3.4点动程序
在我们实现单轴点动过程中,有一个JOG函数是需要我们调用的,它就是点动函数。
在这个函数中有四个参数:
第一个是点动的轴,如果我们要对哪个轴进行点动,我们就要把那个轴设为当前轴;第二个是点动的距离,这就是来设置我要点动多远;第三个就是点动的速度,这就是来设置在点动过程中以多快的速度来动;第四个是点动的方向,对于一根轴,它有正反两个方向,我们可以设置往正向运动为+1,往负向运动为-1。
点动程序如下图3-13所示。
图3-13点动程序
3.3.5停止程序
在单轴运动中,我们需要停止运动或者有时候会出现一些意外情况,就需要我们来设置一个停止按钮,来对这些意外的情况进行快速处理。
本次使用的动态链接库中,给我们提供了两种停止函数,一种急停,另一种是平滑停止。
函数如下表3-3所示。
表3-3停止函数列表
GT_AbptStp()这是一个紧急停止的函数,它让当前运动的那根轴立即停止,同时将速度变为0。
当想立即停止运动时,通常用这个函数。
平滑停止,由它的字面意思就可以知道,这个停止它是渐进式的过程,有一段减速过程。
在曲线模式下,运行平滑停止这个命令后,运动速度会出现下图3-14所示
图3-14曲线模式下平滑停止速度曲线图
具体的停止程序如下所示
;
图3-15停止程序
3.3.6退出程序
所有程序都运行完之后,我们所要做的就是退出这个程序。
而退出程序只有一句代码,即CDialog:
:
OnOK()。
在我们退出之前,不能忘记得事情是得首先关闭各轴的运动和相关控制器。
具体的退出程序如下所示
图3-16退出程序
3.4多轴协调运动
3.4.1坐标映射
对于本次XY两轴运动控制设计中,两轴的协调运动是这次设计的关键,协调运动包括直线运动和弧线运动,在我们进行轨迹运动前,首先就要进行坐标映射。
坐标映射的作用就是把各个运动轴对应到坐标系中,也就是把运动工作平台刻度化,有利于运动轨迹参数的设定,对于坐标映射,我们主要调用MapAxis()这个函数。
程序如下所示。
图3-17坐标映射
3.4.2两轴直线插补
在坐标系中,在我们画直线时,是需要起点和终点的。
一般情况下,起点有这么两种情况:
我们选择一个起点,然后以这个起点开始画一条直线;要么就是以上一个轨迹的终点作为我们画直线的初始点,来画一条直线。
在绘制直线时,我们需要用到的是这个函数LineXY(),用来直线插补。
只要在函数设定终点就可以画一条直线,这条直线不仅是平行于坐标轴,也可以是平面内斜线。
程序如下所示
图3-18直线插补程序
3.4.3两轴圆弧插补
在XY轴坐标系中绘制圆弧,本次设计使用的控制卡提供给我们两种绘制的方法,在这之前,我们先介绍一下圆弧插补的原理。
在基准脉冲插补中,应用较多的是逐点比较法和数字积分法【4】。
在这,我们选择介绍逐点比较法,在这种方法中,主要有4个方面:
第一个就是判别该点与圆心的距离是不是和程序里设置的半径相同,如果不同,那么当F>0,就表示该点在圆弧外部,如果F<0,表示这个点在圆弧的内部;第二步就是坐标如何来运动,使得该点不断的接近预先设置的点;第三步,就是计算这个点现在的位置和理论上的位置到底有多少距离,以便不断地修正;第四步,就是判断这个点是不是回到了一开始预先设定的位置。
如下图3-19所示
图3-19逐点比较法
在画圆弧的过程中,我们采取了两种方法。
第一种是根据初始点、圆心、角度来实现圆弧;第二种是根据两点、圆弧半径、运动的角度。
第一种方式中,我们需要使用这个ArcXY()函数。
其中需要设定圆弧的初始点,设好了之后,我们再确定圆心,接着就是该段圆弧的圆心角,以逆时针为正。
具体程序如下所示。
图3-20圆弧插补程序1
在第二种方式中,我们需要调用ArcXYP()函数。
这个函数有三个参数:
首先圆弧的终点需要确定;接下来是半径值的设定,这其中需要区分优弧和劣弧。
当半径值为正时,表示优弧,当半径值为负值时,表示劣弧;第三个参数就是旋转方向,轴的正方向用1表示,同样地,轴的负方向用-1表示。
具体的程序如下所示:
图3-21圆弧插补程序2
3.4.4自定义曲线
在编写之前的单轴点动、直线运动和圆弧运动后,我决定用这些程序来定义一个特殊的轨迹,也就是这个自定义轨迹。
所谓自定义曲线,按照字面来讲就是按照自己的所设计的轨迹,在执行这个程序段时再结合笔架的抬起和落下,绘制一个汉字“和”。
具体的程序如下所示:
GT_StrtList();
GT_MvXY(0,0,0.01,0.00000001);
GT_LnXY(-5,5);
OnBtnPenOn();
OpenPort(1,true);
GT_ArcXY(-5,12.5,75);
OnBtnPenOff();
OpenPort(1,false);
GT_LnXY(-10,0);
OnBtnPenOn();
OpenPort(1,true);
GT_LnXY(7.5,0);
OnBtnPenOff();
OpenPort(1,false);
GT_LnXY(0,6.5);
OnBtnPenOn();
OpenPort(1,true);
GT_LnXY(0,-15);
OnBtnPenOff();
OpenPort(1,false);
GT_LnXY(0,0);
OnBtnPenOn();
OpenPort(1,true);
GT_LnXY(-7.5,-10);
OnBtnPenOff();
OpenPort(1,false);
GT_LnXY(0,0);
OnBtnPenOn();
OpenPort(1,true);
GT_LnXY(5,-7.5);
OnBtnPenOff();
OpenPort(1,false);
GT_LnXY(10,2.5);
OnBtnPenOn();
OpenPort(1,true);
GT_LnXY(10,-5);
GT_LnXY(15,-5);
GT_LnXY(15,2.5);
GT_LnXY(10,2.5);
GT_EndList();
GT_StrtMtn();
输入这个自定义轨迹程序之后,机械手就会根据这个程序进行运动,最终就会形成一个“和”字!
如下图3-22所示
图3-22轨迹“和”
3.5编译与运行
通过以上函数及程序的介绍,我们基本上解决了控制界面上所有的代码。
当我们双击一个命令控件,当前的窗口就会由控制界面进入到界面的源程序中的相应位置,具体情况如下图3-23所示.
图3-23添加程序到控件中
把该添加的程序搞好之后,我们最后做的事就是调试、运行。
如果没有出现什么错误,结果就会如下图3-24所示
图3-24运行结果
如果显示有错误或者警告,就去按照提示对程序进行修改,然后在运行,直至没有错误。
第四章设计成果与不足
本次毕业设计大致顺利,利用VC6.0编制系统的控制界面。
而这个界面中有许多的控件,包括系统的初始化、单轴的点动、平面内的直线和圆弧运动、坐标系的映射。
自定义曲线以及退出等相应的程序。
成果:
1、我们编写了一个GTCard类,能够实现各轴回零和初始化等
2、编写的程序能够使机械手按照我们设置的速度与运动距离完成点动
3、编写的程序能够在平面内按照预定的轨迹完成直线和圆弧运动
4、能完成坐标系的映射
5、设置出了整体的编辑界面
6、两关节机械手功能基本实现。
不足:
1、程序代码很粗糙,不是很周到。
2、没能完成界面的美化(设置界面背景和字体颜色)
3、机械手的动作比较简单,没有进行深度的设计。
第五章总结
“PC+运动控制器”是未来发展的大方向。
它越来越多的被运用,从简单的单轴点动,再到多轴协调运动,都能够完全胜任。
这种方法可以充分利用资源构建交流平台,便于用户沟通交流使用。
通过本次设计所用到的两轴控制系统的一些知识,对数控机床的工作有了一定的认识。
本次基于运动控制卡的运动控制系统设计就是数控机床的未来主流数字控制系统,所有的数控机床都是在此基础上发展而来的,所以本次设计对以后研究机床系统,尤其是数字控制机床有很大的帮助,为以后的工作奠下了坚实的基础。
学习VC6.0软件有很大的挑战,刚开始对于我们来说就是一个完全陌生的领域,即使我们之前学过C语言,我们
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 运动 控制 关节 机械 手臂 控制系统 设计 毕业论文 40 论文 41