第一篇:安川机器人远程控制总结 _机器人端
安川机器人远程控制总结
一、master程序
1、master程序的设置
单击【主菜单】—>选择屏幕上的【程序内容】—>【新建程序】,如图1-1。
图1-1 单击【选择】显示如图1-2所示的界面,单击【选择】,输入程序名,单击软键盘【ENTER】,显示如图1-3所示的界面,单击【执行】,此处程序名为“MASTER”,程序创建完毕。
图1-2
图1-3 单击【主菜单】—>选择屏幕上的【程序内容】—>【主程序】,如图1-4。
图1-4 单击【选择】,显示如图1-5所示的设置主程序界面。
图1-5 单击【选择】,出现如图1-6所示的界面,单击【向下】选择“设置主程序”。
图1-6 显示如图1-7所示的界面,单击【向下】选择“MASTER”单击【选择】。
如图1-7 主程序设置完毕。
2、MASTER程序的编辑
单击【主菜单】—>选择【程序内容】—>【选择程序】—>【选择】,出现如图1-7所示的界面,单击【向下】,选择“MSATER”,单击【选择】。在如图2-1所示的界面下编辑主程序。
图2-1 此处以2个工位,每个工位3种工件的工作站为例创建主程序内容,需要熟悉机器人示教器的基本操作(如【命令一览】【插入】【回车】【选择】)。
插入DOUT OT#(1)OFF程序举例:
光标定位在左侧行号处,如图2-2,如图单击【命令一览】,选择【I/O】,单击【选择】,选择【DOUT】,如图2-3所示的界面
图2-2
图2-3 单击【选择】,显示如图2-4所示的界面,光标定位在“DOUT”上,单击【选择】,显示如图2-5所示的界面,光标定位到“数据”行的ON,单击【选择】,切换成“OFF”,单击两次【回车】则可出入该指令。需要指出的是在光标定位处插入指令是向下插入。
图2-4
图2-5
程序内容如下(安装在机器人中的MASTER程序见附件MASTER):
第二行的NAME才是机器人控制器登录的程序名,单纯的修改文件名不能改变程序名
/JOB
//NAME MASTER
//POS
///NPOS 0,0,0,0,0,0
//INST
///DATE 2016/06/01 17:13
///ATTR SC,RW ///GROUP1 RB1
NOP '
'=初始化= DOUT OT#(1)OFF DOUT OT#(2)OFF '=初始化=
' '=主程序= *MAIN
'***工位1判断*** JUMP *JOB1 IF IN#(6)=ON '***工位2判断*** JUMP *JOB2 IF IN#(7)=ON '***无工位被选中***
JUMP *MAIN '=主程序=
'
'=工位1工件选择程序=
*JOB1 '***把IGH#(1)的4位赋给B000***
DIN B000 IGH#(1)
'***当 B000=1跳到*JOB1-1标签***
JUMP *JOB1-1 IF B000=1 '***当 B000=2跳到*JOB1-2标签***
JUMP *JOB1-2 IF B000=2
'***当 B000=3跳到*JOB1-3标签***
JUMP *JOB1-3 IF B000=3 '***当无工件被选中,暂停***
PAUSE JUMP *MAIN '=工位1工件选择程序=
'
'=工位2工件选择程序=
*JOB2 '***把IGH#(1)的4位赋给B000***
DIN B000 IGH#(1)'***当 B000=1跳到*JOB2-1标签***
JUMP *JOB2-1 IF B000=1 '***当 B000=2跳到*JOB2-2标签***
JUMP *JOB2-2 IF B000=2
'***当 B000=3跳到*JOB2-3标签***
JUMP *JOB2-3 IF B000=3 '***当无工件被选中,暂停***
PAUSE JUMP *MAIN
'=工位2工件选择程序=
'
'=工位1的1#工件焊接调用=
*JOB1-1 DOUT OT#(1)ON CALL JOB:JOB1-1 DOUT OT#(1)OFF JUMP *MAIN
'=工位1的1#工件焊接调用=
'
'=工位1的2#工件焊接调用=
*JOB1-2 DOUT OT#(1)ON
CALL JOB:JOB1-2 DOUT OT#(1)OFF JUMP *MAIN
'=工位1的2#工件焊接调用=
' '=工位1的3#工件焊接调用=
*JOB1-3 DOUT OT#(1)ON CALL JOB:JOB1-3 DOUT OT#(1)OFF JUMP *MAIN
'=工位1的3#工件焊接调用=
' '=工位2的1#工件焊接调用=
*JOB2-1 DOUT OT#(2)ON CALL JOB:JOB2-1 DOUT OT#(2)OFF JUMP *MAIN
'=工位2的1#工件焊接调用=
'
'=工位2的2#工件焊接调用=
*JOB2-2 DOUT OT#(2)ON CALL JOB:JOB2-2 DOUT OT#(2)OFF JUMP *MAIN '=工位2的2#工件焊接调用=
'
'=工位2的3#工件焊接调用=
*JOB2-3 DOUT OT#(2)ON CALL JOB:JOB2-3 DOUT OT#(2)OFF JUMP *MAIN '=工位2的3#工件焊接调用=
END
指令含义如下:
IGH#()指令包含4个点,IGH#(1)包含IN#(1)—IN#(4),依次类推
二、安川IO基板及端子台
1、IO基板和端子台介绍
机器人控制柜标配后面板4个机器人通用IO基板CN306~CN309(共40个IO,但是通用IO只有24个,其余16个作为专用IO,IO均是NPN信号,其中的CN307上的OUT17---OUT24为继电器输出,注意订货时端子板和数据连接线是否需另外购买。)和1个机械安全端子台基板CN219;机械安全端子台IO中的21和22号端子为外部启动所需的“开启外部伺服”(时序图中的“伺服开启”,时序图如图1-2所示),如图1-1所示;通用IO端子台CN308中的B1端子为外部启动所需的“外部启动”。
在上文的“MASTER程序编辑”中是把工件编码接到IGH#(1)上,然后转存到了B000中。自此,启动时序和工件编码介绍完毕,按照上述介绍接线即可完成机器人的启动和焊接程序的调用。接线图如图1-1和1-3所示
另外,IO的COM口连接在机器人背面的CN303上,出厂时1和3短接、2和4短接,需要将两个跳线拆除,将外部电源连接在1/2口。
图1-1
图1-2
图1-3
2、机器人通用IO基板CN306~CN309对应机器人地址的修改
机器人外部输入输出物理接口与机器人地址关系一一对应,如时序图中的“外部启动”对应CN308上的B1,并将信号传送到机器人地址20010,这是机器人的默认出厂设置,此设置可在机器人的用户梯形图中设置和修改。具体操作方法如下:
用户梯形图修改方法与用法:
单击【主菜单】—>选择屏幕上的【系统信息】—>【安全模式】,如图2-1。
图2-1 单击【选择】,显示如图2-2所示的界面
图2-2 单击【选择】,单击【向下】选择“管理模式”,输入密码,单击【回车】,显示如图2-3所示的界面,即进入“管理模式”
图2-3 单击【主菜单】—>选择屏幕上的【输入输出】—>【梯形图程序】,如图2-4。
图2-4 单击【选择】,显示如图2-5所示的界面(如果显示“系统梯形图”,则单击顶部的【显示】切换成用户梯形图)
图2-5 将光标移到指令部分,单击【选择】,显示如图2-6所示的界面
图2-6 将光标移到地址处,单击【选择】,显示如图2-7所示的界面,输入继电器标号20034,单击两次【回车】,显示如图2-8所示的界面
图2-7
图2-8 单击如图2-9所示的界面左上角的【数据】,选择【编译】,单击【选择】,显示如图2-10所示的界面,选择【是】,单击【选择】
图2-9
图2-10 自此,修改完毕后,机器人“外部启动”更改到IN5,当IN5(CN309上的B5)有信号输入时,20034有效,CN308上的B1端子不再具有外部启动的功能。
此外,用户梯形图还可以增加内容来实现更多的功能。
注:修改输出端口,需要将用户梯形图的最后一行做修改(BMOV #10010,494,#30030,将10010后的494个字节传送到30030),30030之后的494个字节只有通过内部地址连接后,才能正常输出,所以当需要修改端子台地址的时候,需要将30030之后所需要的位数让出来,剩余的如果不足一个字节,则用位传送指令STR传送。例如,将CN308端子台上的30010 改到CN309上的30030,将30011 改到30031,将30013改到30032,将30015改到30033,将30014改到30034,需要在用户梯形图中做如下修改:
BMOV #10020,493,#30040
STR #10015 OUT #30035 STR #10016 BMOV #10010,494,#30030 改成OUT #30036
STR #10017 OUT #30037
STR #50070
OUT #30010(改成30030)
STR #50073 OUT #30011(改成30031)
STR #70020 OUT #30013(改成30032)
OR #50056
OUT #30015(改成30033)
STR #50015 OR #50016
OUT #30014(改成30034)
端子台接线图参照DX200使用说明书的第14-51页
操作过程中发现的问题总结:
1、命令一览众的MOVL和单击【选择】直接插入的MOVL有什么区别?
命令一览中的MOVL需要使用P000-P127中的位置变量,这些位置型变量是全局变量,且只有127个,不宜用作工作程序中的示教点;单击【选择】直接插入的MOVL不用使用P000-P127这些全局变量,会在程序内部新建局部变量(示教器中看不到,需要在电脑上用文本文档打开才能看到这些局部变量)
2、单击【选择】直接插入的MOVL,MOVC,MOJ指令如何插入和切换?
原则为先插入到程序中再切换修改
将光标定位在左侧行号,单击【选择】,使能后点击【回车】,出现如图2-1所示的界面
图2-1 如果想插入的不是MOVJ,而是MOVL,则将光标定位到右侧指令处,如图2-2
图2-2 单击【选择】,然后按住【转换】+【向下】就可以在几个指令之间切换,直到下方显示MOVL,如图2-3所示,单击【回车】就完成了插入MOVL指令,如图2-4
图2-3
图2-4
3、编程示教的过程中如何更换工具和修改已编程序的工具号?
工具号如何显示?在程序中单击【显示】—>【显示工具号】
更换工具:
按【转换】+【坐标】,按【向下】选则想要的工具,再按【转换】+【坐标】,以后新插入的指令所用工具都为新选择的工具。
修改已编程序的工具号: 选择想要修改工具号的行,并将光标定位在行号上,按【转换】+【坐标】,按【向下】选则想要的工具,再按【转换】+【坐标】,单击【修改】,使能后单击【回车】,就完成了修改。
工具号
行号
图3-1
4、如何删除程序文件?
在程序一览画面下选择想要删除的程序文件,单击【切换】+【选择】,该程序名前方会出现一个黑色的实心圆点,然后单击【程序】—>【删除程序】
5、如何删除程序中的多条指令?
将光标定位在想要删除的第一行的指令侧,按【转换】+【选择】,该行的行号变成蓝色背景,然后单击【向下】可以多选程序,选择完毕后,单击【编辑】—>【剪切】或【注释化】就可以删除。如图5-1 如果想要取消注释化,就将光标定位到想取消注释化的行的指令侧,单击【总
括注释化解除】就会将所有注释化的行解除注释化。如图5-2
图5-1
图5-2
6、程序的注释要求
7、如何将程序文件导出到USB设备?如何将程序文件通过USB设备导入到机器人控制器?
如何将程序文件导出到USB设备:
将USB设备插入到示教器(或控制柜内的USB口)单击【主菜单】—>选择屏幕上的【外部存储】—>【装置】,选择“USB:示教编程”(或USB1:控制柜(%s),或USB2:控制柜(%s)),单击【主菜单】—>选择屏幕上的【外部存储】—>【保存】,选择“程序”,单击【选择】,选择想要保存的程序文件,单击【选择】,程序名前方会显示一个黑色五角星,单击【回车】,保存完成。
如何将程序文件通过USB设备导入到机器人控制器?
将USB设备插入到示教器(或控制柜内的USB口)单击【主菜单】—>选择屏幕上的【外部存储】—>【装置】,选择“USB:示教编程”(或USB1:控制柜(%s),或USB2:控制柜(%s)),单击【主菜单】—>选择屏幕上的【外部存储】—>【安装】,选择“程序”,单击【选择】,选择想要安装的程序文件,单击【选择】,程序名前方会显示一个黑色五角星,单击【回车】,安装完成。
需要指出的是,导出的程序文件,需要经过在电脑上修改程序文件内部的名(文本的第二行NAME)后才能导入到机器人控制器,或者将机器人控制器中的同名程序文件删除。否则安装时会提示“错误 2040 :已登录的程序名”。
第二篇:机器人总结
1、机器人系统组成部分?答:通常由四个相互作用的部分组成:机器手、环境、任务和控制器。
2、机器人学研究的内容? 答:机器人研究的基础内容有以下几方面:(1)空间机构学;(2)机器人运动学;(3)机器人静力学;(4)机器人动力学;(5)机器人控制技术;(6)机器人传感器;(7)机器人语言。
3、机器人的驱动方式?答:可以分为电气驱动、液压驱动和气动。
4、一般认为,机器人应该具有的共同点?1)机器人的动作具有类似与人或其他生物的某些器官功能。2)是一种自动机械装置,可以在无人参与下(独立性),自动完成各种操作或动作功能,即具有通用性。可以再编程,程序流程可变,即具有柔性(适应性)3)具有不同程度的智能性,如记性、感知、推理、决策、学习。
5、机器人行走机构的轨迹可分为:固定轨迹式、无固定轨迹式。无固定轨迹式又可分为:步行式、履带式、轮式、脚混合式。
6、什么是位姿:刚体参考点的位置和刚体姿态统称为刚体的位姿。
7、齐次变换的作用:齐次变换ABT表示同一点相对不同坐标系{B}和{A}中的变换,也用来描述坐标系{B}相对与另一坐标系{A}的位姿,同时还可以用来作为点的运动算子。
8、旋转矩阵的几何意义:1)ABR可以表示固定于刚体上的坐标系{B}对参考系坐
BP变R标系的姿态矩阵。2)A可作为坐标变换矩阵,它使得坐标系{B}中的坐标B换成{A}中点的坐标AP。
9、变换矩阵相乘不满足“交换律”,变换矩阵的左乘和右乘的运动解释是不同的:变换顺序“从右到左”,指明运动是相对固定坐标系而言的;变换顺序“从左到右”,指明运动是相对运动坐标系而言的。
10、RPY角和欧拉角的不同点:RPY角的设定是相对固定坐标系旋转的,欧拉角是相对于运动坐标系旋转的,都是以一定的顺序绕坐标主轴旋转三次得到方位的描述。
11、操作臂运动学研究的是手臂各连杆间的位移关系、速度关系和加速度关系。
12、操作臂运动学反解的方法可分为两类:封闭解和数值解。获得封闭解的两种途径:代数解和几何解。
ai1=从zi1到zi沿xi1测量的距离;i1=从zi1到zi绕xi113、DH法描述的参数为:旋转的角度;di=从xi1到xi沿zi测量的距离;i=从xi1到xi绕zi旋转的角度。
14、已知关节角度求解末端位姿叫做顺运动学;已知末端位姿求解关节角度叫做逆运动学。
15、对于n个关节的机器人,其雅可比J(q)是6n阶矩阵。其中前3行代表对手爪线速度v的传递比;后3行代表对手爪的角速度w的传递比。
n-116、微分变换法求解雅可比的步骤:(1)计算各连杆变换01T,12T,„,nT。(2)计算各连杆至末端连杆的变换:
n-1nT=
n-1nT,n-2nTnn21Tn-1nT,„.,i-1ni01iTi1iTnT,„,0T所决(3)计算J(q)的各列元素,第i列TJi由nnT1TnT。(pn)znznzoTTJlioJ定。根据公式TJli(po)z(转动关节i),(移动关节i);zaiz(pa)z(azaz0(移动关节i)0(转动关节i);TJai。0
17、动力学研究的是物体的运动和受力之间的关系。操作臂动力学有两个问题需要解决:(1)动力学正问题——根据关节驱动力和力矩,计算操作臂的运动(关节位移、速度和加速度);(2)动力学逆问题——已知轨迹运动对应的关节位移、速度和加速度,求出所需要的关节力和力矩。
18、对机器人动力学的研究采用的方法很多:有拉格朗日方法、牛顿—欧拉方法、高斯方法、凯恩方法、旋量对偶数方法等。
19、动力学正问题与操作臂的仿真研究有关,逆问题是为了实时控制的需要,利用动力学模型,实现最优控制,以前达到良好的动态性能和最优指标。
20、运动学逆问题是根据关节位移、速度和加速度求索需要的关节力和力矩,整个算法由两部分组成:首先向外递推计算各连杆的速度和加速度,由牛顿—欧拉公式算出各连杆的惯性力和力矩。第二步向内递推计算各连杆相互作用的力和力矩,以及关节驱动力和力矩。
h(q,q)G(q)该式是操作臂在关节空间中的动力学方程封闭形
21、D(q)q)是离心力和哥氏力向量;式的一般结构式。D(q)称为操作臂的惯性矩阵;h(q,qG(q)是重力矢量。
22、规划实际上就是一种问题求解技术,即从某个特定问题的初始状态出发,构造一系列操作步骤(也称算子),使之达到解决该题的目标状态。
23、所谓轨迹是指操作臂在运动过程中的位移、速度和加速度。
24、弧焊和曲面加工等,不仅要规定操作臂的起始点和终止点,而且要指明两点间的若干中间点,必须沿特定的路径运动(路径约束)。这类称为连续路径运动或者轮廓运动,而前者称点到点运动(PTP)。
关节轨迹的插值方法:三次多项式插值、过路径点的三次多项式插值、高阶多项式插值、用抛物线过渡的线性插值。
第三篇:三年机器人总结
浅谈机器人课堂教学
机器人技术,是一个国家科技发展水平和国民经济现代化、信息化的重要标志。因此,机器人技术是世界强国重点发展的高技术,谁能够掌握它,谁将在21世纪取得更为广阔的生活空间。机器人是一种能够自动完成任务的自动化机器,它具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高度灵活性的自动化机器。真正意义的机器人应该是具有一定智能的计算机控制系统。它是人类制造的一种高级工具,是按照人类的某种方式进行工作的一种机器,因此我们又称它为“智能机器人”。
“智能机器人” 引入课堂教学,不仅有利于信息技术教育的发展,有利于我们探索教育改革和人才培养的新途径、新方法,还为我们实施素质教育提供了一个可操作性的实践平台。我校根据素质教育和校外教育的要求,引进乐高课堂机器人对中学生开展了机器人教育活动,取得了良好的教育效果。在近两年的教学实践和探索中,我逐渐对机器人课堂教学有了一定的思考和认识,现总结如下:
一、注重师生交往,让学生有主人公的感觉。
在传统的教学模式中教学基本上就是教师讲、学生听,这往往使学生处于被动的学习状态。新课程改革中,教育理论工作者与教师们达成了一种共识:教学是教师的教与学生的学的统一,这种统一的实质是交往。教学是一种对话、一种沟通,是合作、共建,是以教促学、互教互学。以这种教育观点为指导,大胆尝试性的在机器人课堂教学中采取了这种交往式的教学方法。在基础理论的讲解中,我精心设计了大量的问题,学生可以自由发表不同见解,同时学生也可以随时提出有关的问题供大家进行讨论。在机器人身体搭建、大脑编程部分,我和学生共同讨论、设计机器人的不同组成与功能部分,最后有效控制和选择实现。这样一来,学生就会很自然的融入到整个教学活动过程,充分体验到了学习主人公的感觉,调动了学生的兴趣与积极性,达到了很好的教学效果。
二、以任务为驱动,通过解决问题来进行学习。
智能机器人课堂教学的方法有很多,如讲授法、直观演示法,任务驱动法,自主探究法,讨论法等等。我们应当针对本校实际教学情况选择恰当的教学方法。在讲授机器人基本理论知识时,可采用讲授、讨论法;在完成简单的机器人制作时,可采用自主探究、任务驱动法;在描述某个竞赛项目,可采用直观演示等方法,总之教学时要因地制宜,灵活应用。
在机器人编程教学环节中,我主要采用以任务为驱动的教学方式,设计了形式多样的任务,让学生在“做”中学,力求引导学生勤动脑、多实践,通过任务的完成,让学生发现问题,深入分析,总结规律,引导学生参与问题的探究、思考,让学生通过一系列问题的解决来进行学习。例如,在“小区巴士车的运行”这个项目中,我首先向学生说明问题的情景“小区内有一辆巴士车,要经过四个站台,完成一个完整的线路行驶,四个站台呈正方形格局。”然后提出问题“想一想,这辆巴士车的工作流程是怎么样的?我们能否编程实现这一流程,使这辆巴士车成为小区内的无人驾驶智能车?”通过这种方式,鼓励学生以小组为单位进行问题的分析与讨论,结合所学的知识,设计出一套完整的解决方案并编程实现。在课堂上学生们试着将具体的任务要求抽象为编程的思想,再用图形化编程语言在计算机上编成程序,然后通过计算机和机器人之间连接的数据线,将程序下载到机器人的大脑中,通过观察机器人的运行情况来调试、验证、反思、改进程序。这样在设计、搭建、编程和调试等一系列过程中,不但能够让学生学到很多知识,还让学生体验到了挑战困难,获得成功的快乐,增强了自信心和创造力。
三、激发学生潜能,培养与提高学生的综合能力。
在机器人课堂教学中,通过搭建,在搭建机器人的身体过程中,可以很好的锻炼学生的动手能力,空间想象与再现能力等,通过机器人大脑程序的编制,可以发展提高学生的抽象思维能力、逻辑思维能力和分析解决问题的能力,通过机器人竞赛可以培养学生的团队合作能力和竞争意识。
我们在实际教学过程中,可以综合运用各种教学方法和手段,利用各种教育教学资源,精心设计,努力激发学生的潜能,培养与提高学生的综合能力,促进学生的全面均衡发展。团队合作能力是当今社会非常重要的一种能力,在我们的机器人课堂教学中有很多方式可以很好的培养与提高学生团队合作的能力。例如:机器人竞速比赛项目就要求学生以小组为单位共同完成机器人的设计、搭建、编程与调试等一系列工作,然后与其他组的同学进行比赛。在这期间,不但同学间要配合默契,而且他们控制的机器人也要配合有序。这就要求小组成员分工合作,发挥每个人的聪明才智,这样才能取得成功。
培养具有创新能力的人,是时代赋予教育的职责。事实证明,机器人课堂教学是培养学生的动手和创新能力的一个优秀载体,在教学实践中通过提问、评价和总结,引导学生积极思考,提出解决问题的新方法,从而提升学生创新能力的发展。强烈的好奇心和旺盛的求知欲是驱使人积极进取、主动思考,从而提出独创性思想的动力。因此,我们可以在教学中通过提问,鼓励学生进行发散性思维,发挥各自聪明才智,探寻解决问题的方法,进而引导创新。同时,及时对学生的表现进行评价,可以使他们获得成就感,从而提高学生的自信心和学习机器人的兴趣,进而达到鼓励创新的目的。在教学实践过程中我们还要及时总结经验教训,引导学生讲述自己发现和存在的问题,让学生进行质疑、思考、讨论、提炼出新的问题,促进学生创新能力的进一步发展。让智能机器人教学走进中小学课堂
智能机器人是科技发展的前沿领域,是一门具有高度综合渗透性、前瞻未来性、创新实践性的学科,蕴涵着极其丰富的教育资源。
教育要面向现代化。让智能机器人教育走进中小学,开发机器人文化的教育功能和发掘智能机器人的教育价值,对推进教育创新,促进教育改革和教育现代化,具有重要的现实意义和战略意义。教育要面向世界。日本、美国等一些发达国家高度重视机器人学科教育对高科技社会的作用和影响,已在信息技术课与课外科技活动开设了有关机器人的课程内容。要赶超世界教育先进水平,机器人教育必须从中小学抓起。教育要面向未来。21世纪中期,人类社会将全面进入以智能机器人为代表的智能时代。在基础教育领域开展智能机器人教育,是为了让中国今天的中小学生能够有准备地迎接属于他们的明天——智能机器人时代的到来。如何把智能机器人教学引入中小学课堂具有着深远和重大的意义。
通过几年的实践,如何将智能机器人教学引入中小学课堂,如何在智能机器人教学中培养学生综合能力,总结出几点肤浅的体会:
一、创设情境,培养学生兴趣,调动学生学习积极性
创造力首先来自于思维的能力,而思维的能力来自于学习。在中学阶段的计算机语言与智能机器人教学上,我力争给学生一种开放的教学环境,这种环境不强调教师的权威,它提倡师生间的共在与共知,它强调对于生活世界与生活意义的关注。例如:安排“随机走的智能机器人”教学内容时,由于考虑到中学生直观性比较强,而且对有关电机的知识了解不够,采用三名同学到讲台前,第一个同学扮演电脑,发号施令,一个同学扮演智能机器人的左轮,另一个扮演智能机器人的右轮,他俩手牵手面向大家,当电脑发出前进的命令后,两名同学就会同时前行;当下达左转的命令后,一名同学会后退,一名同学前进,就会实现智能机器人左转。台上的同学们表演时,下面的同学认真观看。表演结束后,鼓励大家畅所欲言,讨论当智能机器人前、后、左、右移动时,两个轮子的运动情况,通过表演与讨论得出智能机器人运动的原理。课后留下作业:注意观察马路上汽车轮的运动情况,看看和我们课上得出的结论有无出入。这种情景化的教学方式,学生通过自己看、说、讨论去掌握有关知识,在理解的基础上得出结论,因此印象深刻,不易忘记。在这样的教学过程中,学生不但掌握了知识,也锻炼了自学、概括的能力,培养了理解、表达能力。学生的主体意识得到了张扬,学习的主体作用得到了发挥。
二、自主设疑,把学习的主动权交给学生
一位老教师说得好:“学习的灵感不应在静如止水的深思中产生,而多是在积极发言中,相互辩论中突然闪现。”传统的教学模式,注重有序的课堂秩序,这样学生往往是被遏制住兴奋,压抑着学习的冲动,只能被动地接受知识。这样使得学生对所学知识只能单纯地死记硬背而不能灵活运用。最主要的是学生没有形成自主学习的能力和自主学习的意识,这样的学习是机械式、填鸭式的,是会对学生今后的学习造成制约。在计算机语言与智能机器人的教学活动中,我们安排每两人一组进行互助式学习,课上允许他们自由讨论、分析。在固守传统的某些人眼中,这时的课堂秩序是有些乱的,但我发现在这样的氛围中,学生编写程序的积极性更高了,思路也更开阔了,这在一定程度上激发了学生学习的主动性,他们真正成为了学习过程的主体。他们喜欢争先发言,还经常会为一个问题争得面红耳赤,这时就应需要教师进行引导和点拨,适时把他们引至问题的关键处。这是一个开放的、体现学生主体作用的课堂,这里有他们自由表达意见的空间。对于学生来说,重在学会使用技术,会用头脑自主的思考。因此教学中,通过用计算机语言控制智能机器人的方式,让学生通过自己的感官和切身的体验来理解计算机语言是智能控制的灵魂。还不失时机地鼓励他们用各种方式进行探索。
三、主动探索-------给学生创造广阔的施展舞台
传统的教学习惯是:一堂新课,授课老师就像剥笋一样一层一层地剖析,直到最后水到渠成,自然地揭示出主题。这样以来一堂课的时间就在教师的讲解中度过了,学生没有动脑思考、动手实践的机会。我认为智能机器人教学,是理论与实践结合的课程,课堂上学生的动手时间应占用多半,只有这样,学生才能在实践的过程中,充分掌握计算机技能,破除对智能机器人的神秘感。因此,在教学中事先设疑,让学生先思考、动手实践,一旦出现问题,再组织学生集思广益地找出问题的症结所在,去解决它。每次的课堂小结,都是学生自己来进行的,学生之间互相补充,弥补不足。这样不仅使他们能知其然,更知其所以然。将时间留给学生,可以进一步激发学生求知的欲望,发挥他们的主体能动性,培养他们主动学习的意识。无论何种形式的智能机器人课程,都必须通过教师创造性的劳动来开发。在智能机器人教育进入中小学课程教学模式的探索中,始终贯穿了教师对专业成长的探索和实践。教师主体意识、责任感,主体能动力量和创造精神的提升使教师的课程开发能力、教学实践能力、创新能力得到跨越式的发展。教师的发展带来的是课程的发展、学校的发展,最终是学生的发展。
四、重视总结、评价,体验成功。
评价可以包括自我评价、同学评价及教师评价。智能机器人的任务完成情况评价,可以从完成任务的方式和完成任务的效率上进行衡量,用最简单的方式、最快的速度完成特定的任务一般就是最佳方案。在同学互评过程中,教师要引导学生多进行正面的、鼓励性的评价。另外,教师在评价的过程中也应该重视人文性,对于学生的合作精神、钻研精神等应该予以充分的肯定。例如教学《智能机器人感官世界》中,可以将机器人的硬件看作一个刚刚出生的孩子,而学习为机器人编程序的过程是学生赋予机器人行走、避障、避碰、说话、听话、观察等人类行为功能的过程。学生在学习的过程中始终感受着失败的遗憾和成功的喜悦,对遗憾和喜悦的感受必然形成学习的动力和兴趣。之后的教师评介和鼓励将成为学生的内在动力.总之,智能机器人作为信息技术教学的内容在小学信息技术教育中出现,会给信息技术教育带来新的内容、新的思考和新的活力。借助智能机器人学生可以进行多项目的研究性学习。为学生将来可以更容易地适应各种技术革新,也更容易在未来的信息时代获得成功。机器人学习总结及活动开展计划
我校开展机器人活动收获不少,对机器人活动尤其是外省开展机器人活动情况和经验以及比赛有了进一步了解现总结如下: 各省市开展机器人活动情况: 通过学习了解了些其他学校开展活动的形式和内容,有不少可以我们借鉴的地方.首先,已经开展了机器人活动的学校基本都是各地,地区重点学校或者是实验学校,条件比较好.有专门的人员负责该活动,活动在全校广大学生中选人.条件好的学校建立了专门的机器人活动中心(也就是机器人实验室),硬件条件好,各学校机器人数量从7,8多台到20多台不等,甚至开课的学校达到30多台机器人用于教学活动,有专门的电脑室和机器人改装室和比赛场地等几个专门的活动室;其次活动形式,基本上大部分学校是选拔部分动手能力强.灵活,聪明编程基础比较好的学生参加,也有部分学校(尤其是已经取得好成绩的学校,比如前全国灭火冠军黑龙江的,比如广东省一直成绩突出的南海实验中学)专门开设了机器人课,用他们的话来说开课主要是为你比赛和活动培养和发现好的苗子进一步发展,广大学生的参与让他们有很多新的思路和设想能够更好更多的改进和创新的思路.第三活动经费和比赛安排,每年机器人项目都因为有新的想法,思路,新的比赛规则和项目都要涉及到新的设备零件的添加,还有就是机器人维修,所以基本上学校每年都有固定资金的投入,负责活动的老师也从1-3人不等,一有机会就去参加比赛至少去观摩.机器人活动具体软硬件方面大家通过广袤达的授课和交流学习了一些新的硬件改造和软件方面的知识.主要是硬件改造方面:比如加测距卡干扰声音启动的改造,踢球装置的改造,远红外感应器的灵敏度的改进等,这些方面的收获很重要可以很大程度上提高比赛的成绩.机器人比赛经验和规则方面今年全国比赛又有新的改变,灭火比赛增加了一个房间,还可以选择救援,增加了机器人舞蹈项目(表演项目);增加了积分系数这样更有利于比赛的公平进行,不同的启动方式,寻找方式等都有系数.比赛方面,学生是关键所以平时要多训练多和其他学校尤其是外面的学校友谊赛(因为一个地区大家的思路基本上一样的,和外面比赛有利于发现新的问题和战术,尤其是足球比赛)增加比赛经验,平时一定要现在学校自己内部多练习,才能在大赛的时候有遇到问题随机应变.根据培训学习与其他省市学校的交流结合我校开展机器人活动的情况对我校将来机器人活动的开展和一下几点设想和计划: 首先完善机器人活动设备: 争取申请一个机器人活动室,场地一定要挂上窗帘(折光窗帘),修复机器人比赛场地.没有一个符合比赛要求场地和环境不可能指望在比赛中能够取得好的成绩,以往比赛前临时几个星期要学生回来训练平时一切老师搞定是不可能长期做下去的,比赛靠的是学生老师都不能进入场地观看,所以一定要加大学生训练的力度,争取更多机会让学生自己动手.最基本场地要求:所有窗帘要有很好的遮光,场地要平整,有专门的改装平台和工具(以前是临时的废弃课桌)机器人保管柜,2台专用的比赛用笔记本(要有com口,配置不用很高,平时训练可以只要一台就可以了,现有的联想机都可以),模拟训练的时候可以在计算机房上课和培训,但是还是要加大实地场地的训练力度.完善学生辅导机制固定时间和地点辅导,每个星期都应该2次以上的辅导时间.最好能够开展机器人实验教学,辅导最好要有专门的辅导教材.完善比赛每年全国,全省,市都有那么几次比赛,争取每次都能够参加,就算不能参加也要派人去学习,只要走出去了才能有更多的思路,有条件可以开展校际间的比赛,尤其是和实验中学,高中等的比赛每次都没有新的收获,及了解了别人的情况又丰富了学生大赛经验,很有必要进行.现在已经有说法教育部准备把机器人活动课作为一个提高素质教育的选修课在全国范围内开展,机器人活动也将在全国广泛的开展起来.我们已经走在大多数学校的前面,更应该重视,它不仅仅是为了参加比赛更应该是培养素质教育提高学生爱科学探究学问的途径.时间过的真快,转眼就又到年底了,经过了一学期机器人活动小组的教学,感觉大家的收获还是很大的。
这学期的机器人活动兴趣班主要是由高
二、高三年级的学生所组成的。对于高一的学生来讲,学习操作机器人还是有些困难,难能可贵的是,这帮孩子很听话,很好学,很乐学,进步令人欣慰。要想操控好机器人必须具备三个条件,一是要有好的遥控操作基础,能够熟练地操控遥控器;二是要对机器人的结构比较熟悉和了解;三是还要有理解程序能力与善于动手维修的能力。本来以为高一年级的学生在这些方面都比较陌生,可是令我意外的是,每当讲解过后,他们也能知晓一二,并且兴趣很浓厚。于是,在接下来的培训活动中间,着意对其多倾斜了点,希望他们早日成长。
这次与孩子们一起开展机器人兴趣活动,没有像以前那样先教孩子们一个个熟悉机器人软件的使用,也没有谈太多的理论知识。因为总结以前的经验,我发现这些对于高中阶段的孩子们都不太适合,在他们这个好奇心强、持续性短的年龄阶段,他们习惯的就是见识真实的、能看的见、摸得着的机器人,并且有机会能很快自己动手做出来,亲自操控它。根据孩子们的这种年龄和知识特点,我选择了这样的教学方法,那就是不直接讲解程序的设计与程序的意图,而是在一次次简单的机器人操作中让孩子们来感知程序的存在和重要性,并想知道程序到底是怎么样来帮助人实现自己的意图,让机器人按照自己的意图行动和完成任务的。用任务驱动式的教学方法来引导孩子们参与机器人活动,激发兴趣,保持兴趣。
经过这学期的学习活动,孩子们从刚开始时自己头脑中想象的、不具体的机器人开始,到现在都已经掌握了操控机器人的方法与知识。如对机器人结构的了解,对遥控器与机器人运动方式的掌握,对竞赛规则的学习,对竞赛实战的模拟。还有个别孩子表现很是突出,在数百人的观摩现场都能游刃有余的操控机器人进行比赛,真是很棒的。当然,活动小组也有些准备不充分、考虑欠周到的地方,比如,时间方面,刚开始时,时间定在周一、周二、周三、周四的七八节,但是由于后来要参与学校会议集体备课等相关教学活动,又不得不改在了周二和周三,看到现在孩子们的表现,又自责刚开始时对高一的孩子们估计过低,不过,两位高年级的老队员表现很不错,为活动小组的开展做了不少的贡献,看着孩子们一天天的成长起来,为这些聪明的孩子感到骄傲的同时,也感觉到自己肩膀上的担子的分量日益加重,在接下来的一学期里我将继续努力准备与组织好孩子们参与和学习机器人的活动,同时也要积极更新自己的知识与技能,与孩子们一起成长。
第四篇:机器人比赛总结
2011中国柳州青少年机械奥运城际赛
2011中国柳州青少年机械奥运城际赛汇报
指导老师:
吴金湖、成志慧、陈景(共3人)参赛学生:
吴昆霖、韦容奕、李玉泉、成翼驰、陈文韬、陶杜辉、唐中格、莫志彪、廖程浩、张钰崴、唐晨熙、覃江龙、吴晋锴、林诗云、周健平、黄仁铭、庞东峻、程沛鹏、卢志明、吴明迪、韦祖丹(共21人)材料:铝板、木板、塑料板主要由福华提供 工具:主要在鹊北五金店采购 日常管理:
1、每天进行考勤、及时准确的掌握学生参加培训情况,并及时和家里联系;
2、分工负责管理学生使用的材料和工具,尽量确保不损坏、不丢失;
3、确保学生使用工具的安全;
4、及时对一些不良行为进行教育。时间安排:
7月13、14日:前期准备,主要包括材料和工具的联系和采购
7月15、16、17、18、19、20、21、22日:组织学生到校培训和制作机器人 7月25、26、27日:指导老师攻克几个疑难问题,包括短跑的稳定性、拔河的摩擦力、障碍赛的比例结构、蛙泳的动力以及造型设计的外观等棘手问题。7月28日:组织学生进行最后一次调试工作,并布置初赛的要求
2011中国柳州青少年机械奥运城际赛
获奖项目:
★手摇发电机械人牧羊犬比赛——季军(第三名)廖程浩、吴昆霖、韦祖丹
★手摇发电机械人拔河比赛——殿军(第四名)
成翼驰、韦容奕、陶杜辉
★手摇发电机械人四式接力泳赛——殿军(第四名)
张钰崴、唐晨熙、莫志彪 程沛鹏、卢志明、吴明迪 周健平、黄仁铭、庞东峻 覃江龙、吴晋锴、林诗云
★手摇发电单马达机械人造型设计比赛——殿军(第四名)
张钰崴
柳州市雀儿山路小学 2011年8月28日
第五篇:工业机器人运动控制毕业论文
ADAMS环境下工业robot运动控制
和联合仿真
年 级: 2005级 学 号: 20051035 姓 名: *****
专 业: 机械设计制造及其自动化 指导老师: @@@@@
2009 年 6 月
西南交通大学本科毕业设计(论文)第I页
西南交通大学本科毕业设计(论文)第II页
摘 要
虚拟样机技术就是在建造第一台物理样机之前,设计师利用计算机技术建立机械系统的数字化模型,进行仿真分析并以图形方式显示该系统在真实工程条件下的各种特性,从而修改并得到最优设计方案的技术。
ADAMS软件是目前国际上应用最为广泛的虚拟样机分析软件,用户可以运用该软件非常方便地对虚拟机械系统进行静力学、运动学和动力学分析。但针对复杂的robot机械系统,要想准确的控制其运动,仅依靠ADAMS软件自身也很难做到;MATLAB软是Mathworks公司开发的一种集计算、图形可视化和编辑功能于一体的优秀数学应用软件,具有强大的计算能力,能够建立复杂的控制模型准确控制复杂robot系统的运动;OpenGL(开放式图形库全称)是SGI公司开发的底层三维图形API,目前在图形开发领域已成为工业标准。使用OpenGL可以创建视觉质量接近射线跟踪程序的精致漂亮的3D图形。Visual C++ 6.0已经成为集编辑、编译。运行、调试为一体的功能强大的集成编程环境,在Windows编程中占有重要地位。OpenGL和Visual C++ 6.0有紧密接口,利用二者可以开发出优秀的视镜仿真系统。ADAMS、MATLAB和Visual C++ 6.0由于定位不同,都有各自的优势和缺点,但是三者之间又可以通过接口联合控制或者混合编程。本文分别利用ADAMS对三自由度robot的运动学和轨迹优化方案进行研究,利用Visual C++ 6.0、OpenGL和从MATLAB里导出的控制模型的数据对三自由度robot进行了视景仿真的研究。论文首先通过建立坐标系和矩阵变换,对刚体的空间表示进行了阐述,然后采用通用的D-H法则,将robot关节角度参数化,推导出其正运动学方程和逆运动关节角,并计算出robot手部的初始坐标。其次采用ADAMS软件,详细介绍了robot三维建模过程,包括整体框架构建,单个构件绘图和布尔运算等,并对robot关节点进行了参数化设计。最后从robot轨迹规划的基本原理和方法出发,比较分析了关节空间轨迹规划和直角坐标空间轨迹规划的差别,并采用三次多项式和五次多项式对robot进行了轨迹规划,利用ADAMS软件中内嵌的Step函数对运动轨迹进行了仿真分析。然后在Windows XP Professional的系统环境下,以Visuall C++6.0为开发工具,建立了三自由度机械手视景仿真系统模型,实现了仿真系统对MATLAB控制模型导出数据的读取和利用。
关键词:运动学 轨迹规划 ADAMS虚拟样机技术 视景仿真
纹理映射
西南交通大学本科毕业设计(论文)第III页
Abstract
Virtual prototyping technology in the construction of the first physical prototype, designers use computer technology to build digital models of mechanical systems, simulation analysis and graphically display the various characteristics of the system in real engineering conditions to modify and get the most excellent design technology.ADAMS software is currently the most widely used international virtual prototype analysis software, users can use the software is very easy to statics, kinematics and dynamics of the virtual mechanical systems.However, the complexity of the robot mechanical systems, in order to accurately control its movements, and only rely on ADAMS software is also very difficult to achieve;of MATLAB soft Mathworks company has developed a set of computing, graphical visualization and editing functions in one of the best mathematical applications, computing power, able to build complex control model to accurately control the movement of complex robot systems;OpenGL(Open Graphics Library Name), SGI, the development of the underlying 3D graphics API, currently in the field of graphical development has become the industrial criteria.Use OpenGL to create exquisite and beautiful 3D graphics, visual quality close to the ray-tracing program.Visual C + + 6.0 has become a set of editor, compiler.Run, debug, as one of the features a powerful integrated programming environment, plays an important role in Windows programming.OpenGL and Visual C + + 6.0 interface, using the two can develop excellent endoscopic simulation system.ADAMS, MATLAB and Visual C + + 6.0 due to different positioning has its own advantages and disadvantages, but among the joint interface control, or mixed programming.In this paper, using the ADAMS program of three degrees of freedom of the robot kinematics and trajectory optimization using the Visual C + + 6.0, OpenGL and data export control from the MATLAB model the three degrees of freedom robot visual simulation.Firstly, through the establishment of the coordinate system and matrix transform space of the rigid body are described, and then use the DH rule, the robot joint angle parameters, deduced are kinematic equations and inverse kinematics, joint angles, and calculate the robot the initial coordinates of the hand.ADAMS software, followed by the detailed three-dimensional modeling of robot process, including the overall framework to build a single component mapping and Boolean operations, and the robot joint point of parametric design.Finally, the robot trajectory planning principles and methods, comparative analysis of the difference of the trajectory planning of the joint space and Cartesian coordinate space trajectory planning, and third order polynomial and quintic polynomial on robot trajectory planning, the use of the ADAMS software embedded in Step function of the trajectory of the simulation analysis.Then, in Windows XP Professional system environment, in to Visuall C + + 6.0 development tools, the establishment of a three degree of freedom robotic visual simulation system model, read and use the simulation system model to export data to MATLAB control.Key words: kinematics, trajectory planning ADAMS virtual prototyping technology, visual simulation, texture mapping
西南交通大学本科毕业设计(论文)第IV页
目 录
第一章 绪论............................................................1 1.1工业robot的发展现状............................................1 1.2 虚拟样机技术简介...............................................2 1.2.1 虚拟样机的定义和特点......................................2 1.2.2 研究现状和发展趋势........................................2 1.4 本文要研究的主要内容...........................................4 第二章 robot运动学....................................................5 2.1 空间点和坐标系的表示...........................................5 2.1.1 空间点的向量表示..........................................5 2.1.2坐标系在固定参考坐标系中的表示............................6 2.2 坐标系的变换..................................................6 2.2.1 齐次变换..................................................6 2.2.2 坐标系相对于旋转坐标系的变换.............................10 西南交通大学本科毕业设计(论文)第V页
2.2.3 变换矩阵的逆.............................................10 2.3 robot的正逆运动学.............................................11 2.3.1正运动学的D-H表示法.....................................12 2.3.2逆运动学方程的求解.......................................15 2.4 微分运动......................................................16 第三章 基于ADAMS的robot的虚拟样机分析...............................18 3.1 ADAMS概述.....................................................18 3.2 ADAMS中robot模型的建立.......................................18 3.2.1 设置建模环境.............................................19 3.2.2robot实体建模............................................19 3.2.3 robot模型的设置.........................................20 3.3 轨迹规划仿真分析..............................................21 3.3.1 轨迹规划方法的理论分析..................................21 3.3.2 轨迹规划仿真分析........................................27 第四章 基于模型的视景仿真系统的设计与实现.............................32 4.1 OpenGL概述....................................................33 4.1.1 OpenGL工作方式.........................................33 4.1.2 OpenGL绘制过程.........................................34 4.2 robot三维可视化框架建立......................................35 4.2.1 利用MFC建立单文档应用程序框架..........................35 4.2.2 设置OpenGL绘图环境.....................................37 4.3 机械手三维模型的建立.........................................40 4.3.1 导入机械手模型..........................................40 4.3.2 在OpenGL中建立机械手的模型.............................41 4.4 建立仿真场景.................................................44 5.4.1 纹理贴图的实现..........................................45 4.4.2 设置光照................................................48 4.5 基于模型的视景仿真的实现.....................................51 4.5.1 数据的读取..............................................52 西南交通大学本科毕业设计(论文)第VI页
4.5.2 利用读取的数据控制机械手的运动..........................55 4.5.3 实现观察视角的交互式键盘控制............................60 结论..................................................................63 致谢..................................................................65 附录..................................................................66 参考文献..............................................................73 实习报告..............................................................74
西南交通大学本科毕业设计(论文)第1页
第一章 绪论
1.1工业robot的发展现状
1961年,美国的Consolided Control Corp和AMF公司联合制造了第一台实用的示教再现型工业robot,迄今为止,世界上对工业robot的研究已经经历了四十余年的历程,日本、美国、法国、德国的robot产业已日趋成熟和完善。工业robot由操作机(机械本体)、控制器、伺服驱动系统和检测传感装置构成,是一种仿人操作、自动控制、可重复编程、能在三维空间完成各种作业的机电一体化自动化生产设备。特别适合于多品种、变批量的柔性生产。它对稳定、提高产品质量,提
【1】
高生产效率改善劳动条件和产品的快速更新换代起着十分重要的作用。
采用工业robot,不仅可提高产品的质量与产量,而且对保障人身安全,改善劳动环境,减轻劳动强度,提高劳动生产率,节约原材料消耗以及降低生产成本,有着十分重要的意义。和计算机、网络技术一样,工业robot的广泛应用正在日益改变着人类的生产和生活方式。在制造业中,尤其是在汽车产业中,工业robot得到了广泛的应用。如在毛坯制造(冲压、压铸、锻造等)、机械加工、焊接、热处理、表面涂覆、上下料、装配、检测及仓库堆垛等作业中,robot都已逐步取代了人工作业。如,2004年德国汽车制造业中每1万名工人中拥有工业robot的数量为1140台。【2】在国外,工业robot技术日趋成熟,已经成为一种标准设备被工业界广泛应用。从而,相继形成了一批具有影响力的、著名的工业robot公司,它们包括:瑞典的ABB Robotics,日本的FANUC、Yaskawa,德国的KUKA Roboter,美国的Adept Technology、American Robot、意大利COMAU,英国的AutoTech Robotics公司,这些公司已经成为其所在地区的支柱性产业。
在我国,工业robot的真正使用到现在已经接近20多年了,已经基本实现了试验、引进到自主开发的转变,促进了我国制造业、勘探业等行业的发展。2004年全年国产工业robot数量(主要指在国内生产和组装的)突破1400台,产值突破8亿元人民币。进口robot数量超过9000台,进口额达到2.6亿美元。国内各个工业robot厂家都呈现出产销两旺的局面。截至2004年底,我国工业robot市场已经突破30亿元人民币。现阶段,我国工业robot正逐步发展成为一种有影响力的【3】产业。
西南交通大学本科毕业设计(论文)第2页
1.2 虚拟样机技术简介
1.2.1 虚拟样机的定义和特点
虚拟样机技术就是在建造第一台物理样机之前,设计师利用计算机技术建立机械系统的数字化模型,进行仿真分析并以图形方式显示该系统在真实工程条件下的各种特性,从而修改并得到最优设计方案的技术。该技术以机械系统运动学、动力学和控制理论为核心,加上成熟的三维计算机图形技术和基于图形的用户界面技术,将分散的零部件设计和分析技术集成在一起,提供一个全新研发机械产品的设计方法。它是一种计算机模型,它能够反映实际产品的特性,包括外观、空间关系以及运动学和动力学的特性。借助于这项技术,设计师可以在计算机上建立机械系统的模型,伴之以三维可视化处理,模拟在真实环境下系统的运动和动力特性,并根据仿真结果精化和优化系统。虚拟样机技术利用虚拟环境在可视化方面的优势以及可交互式地探索虚拟物体的功能,对产品进行几何、功能、制造等许多方面交互的建模与分析。它在CAD模型的基础上,把虚拟技术与仿真方法相结合,为产品的研发提供了一个全新的设计方法。它具有以下特点:
A 全新的研发模式
虚拟样机技术实现了系统性的产品优化,使产品在概念设计阶段就可以迅速地分析、比较多种设计方案,确定影响性能的敏感参数,并通过可视化技术设计产品、预测产品在真实工况下的特征,从而获得最优工作性能。
B 研发成本低、周期短、产品质量高
通过计算机技术建立产品的数字化模型,可以完成无数次物理样机无法进行的虚拟试验,不但减少了物理样机的数量,降低了成本,而且缩短了研发周期、提高了产品质量。
C 实现了动态联盟
广泛地采用动态联盟, 通过Internet共享和交流,临时缔结成的一种虚拟企业,适应了快速变化的全球市场,克服单个企业资源的局限性。
1.2.2 研究现状和发展趋势
虚拟样机技术在一些较发达国家,如美国、德国、日本等已得到广泛的应用,应用领域从汽车制造业、工程机械、航空航天业、到医学以及工程咨询等很多方面。
美国航空航天局(NASA)的喷气推进实验室(JPL)研制的火星探测器“探路号”,就是JPL工程师利用虚拟样机技术仿真研究研发的。美国波音飞机公司的波音777飞机是世界上首架以无图方式研发及制造的飞机,其设计、装配、性能评价及分析就是采用了虚拟样机技术,不但缩短了研发周期、降低了研发成本,而且确保了最终 西南交通大学本科毕业设计(论文)第3页 产品一次接装成功。
我国从“九五”期间开始跟踪和研究虚拟样机的相关技术,主要研究集中在虚拟样机的概念、系统结构以及相关的支撑技术,应用多集中在一些高精尖领域。近年来,才尝试着将虚拟样机技术用于一般机械的开发研制。天津大学与河北工业大学采用虚拟样机技术联合开发了冲击式压实机,对其进行了仿真计算,得到各部件的运动规律曲线,验证了压实机各部件参数值的合理性。
【4】虚拟样机概念正向广度和深度发展,今后的虚拟样机技术将更加强调部件、技术、知识的重用,强调便于虚拟样机柔性协同的运行管理的组织重构,强调跨领域技术的沟通支持,重点在以下几个方面进行研究:
(1)基于虚拟样机的优化设计;(2)以虚拟样机为中心的并行设计设计;(3)分析和仿真工具的集成;(4)虚拟样机系统的容错性研究。
1.3 视景仿真技术简介
1.3.1 视景仿真的定义和特点
视景仿真又称虚拟仿真虚拟现实仿真。它是21世纪最有前景的高科技技术之一,它是计算机技术,图形图象技术,光学技术,控制技术等多种高科技的结合,是延伸人类感觉器官的一门科学,通过对现实世界或者是人类想象的虚拟世界进行三维建模并实时驱动,通过头盔显示器或者三维投影技术显示出来。
视景仿真(Visual Simulation)是一种基于可计算信息的沉浸式交互环境,具体地说,就是采用以计算机技术为核心的现代高科技生成逼真的视、听、触觉一体化的特定范围的虚拟环境,用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作 用、相互影响,从而产生“沉浸”于等同真实环境的感受和体验。其作为计算机技术中最为前沿的应用领域之一,它已经广泛应用于虚拟现实、模拟驾驶、场景再现、城市规划及其它应用领域。计算机仿真又称全数字仿真,是根据相似原理,利用计算机来逼真模仿研究系统中的研究对象,将研究对象进行数学描述,建模编程,并且在计算机中运行实现.作为计算机仿真的组成部分,视景仿真采用计算机图形图像技术,根据仿真的目的.构造仿真对象的三维模型并再现真实的环境,达到非常逼真的仿真效果.目前,视景仿真技术在我国已广泛应用于各种研究领域:军事演练、城市规划仿真、大型工程漫游、名胜古迹虚拟旅游、模拟训练以及交互式娱乐仿真等.视景仿真技术对作战装备的使用效果有很好的实时显示,给人以强烈的视觉上的冲击,对提高武器装备的性能、研制效率有着重要的作用
西南交通大学本科毕业设计(论文)第4页
1.3.2 工业robot视景仿真系统研究的意义
由于robot价格昂贵,以及robot的作业空间需要较大而独立的试验场地等诸多原因,不可能达到每个需要学习robot的人都能亲自操作robot的要求。而可视化技术的出现,使得人们能够在三维图形世界中观察robot,并通过计算机交互式对robot进行示教仿真。基于VC++6.0的OpenGL上的工业robot的视景仿真系统可以提供一个真实的实验平台,在不接触实际robot及其工作环境的情况下,通过图形技术,提供一个和robot进行交互的虚拟环境。此系统充分利用OpenGL的实时交互性,模拟工业robot的示教/再现过程,可以在此系统上编辑工业robot的程序并动态模拟工业robot的运动过程,观察工业robot的运动结果,检验所编写工业robot程序的正确性。进行实物实验之前,可以先在仿真系统上进行模拟仿真,观察实验的运动过程以及运动结果,避免直接在现实中操作对工业robot及周围物体可能造成的伤害。另外,对于刚接触工业robot的操作员来说,此系统可以提供与现实工业robot几乎相同的操作步骤,在操作员真正操作工业robot之前,可以增加其操作的熟练程度,增加安全系数。
1.4 本文要研究的主要内容
为了简化研究,本文采用一个3自由度关节robot,分别通过ADAMS软件的建模和仿真,结合MATLAB的运算功能,进行了robot运动学分析和空间坐标的轨迹规划,实现运动轨迹的最优化。又在Windows XP环境下,利用Visual C++6.0和OpenGL完成了基于模型的视景仿真系统的设计与实现,具体工作如下:
(1)进行运动学分析。按照通用的D-H法则,通过矩阵变换,得到了robot的正运动学方程和初始坐标,推导出robot逆运动学的关节角度。
(2)在ADAMS/View中构造robot部件,运用约束库中的移动和旋转副对部件进行链接,添加驱动力,实现robot的运动,完成三维建模。
(3)对robot的运行轨迹进行多项式优化,利用ADAMS/View的仿真和后处理模块,绘制小臂末端处所取点的位置、速度、加速度、角速度和角加速度曲线,结合曲线进行三次多项式和五次多项式轨迹规划的仿真分析,并进行比较分析。
(4)利用Visual C++6.0和OpenGL导入并建立机械手模型,建立仿真场景,实现基于模型数据的运动仿真,并实现视角的交互式键盘控制。
西南交通大学本科毕业设计(论文)第5页
第二章 robot运动学
robot运动学指研究robot各个连杆相对运动的空间几何关系。在实际应用中,最为感兴趣的问题是robot手部(即末端执行器)相对于参考坐标系的空间描述。robot可以看成为一个开环的运动链,该链是由一组杆件相连而成,其一端固定在基座上,另一端固定在robot手部上。两个杆件之间通过关节相连,关节由驱动器驱动,使杆件之间产生相对运动,从而使robot手部达到期望的位置和姿态。
在robot运动学的研究过程中,又可以分为两类基本问题,即robot运动学的正问题与逆问题。其中,robot运动学的正问题指在已知杆件几何结构参数和关节变量值的前提下,求解robot手部相对于参考坐标系的位置与姿态的问题;robot运动学的逆问题指根据robot手部在笛卡尔坐标系中的位置与姿态求解robot各关节的关节变量值的问题。
【5】2.1 空间点和坐标系的表示
2.1.1 空间点的向量表示
在直角坐标系中,可以用一个3×1的位置矢量来表示空间内任意一点的位置。对于直角坐标系中任意一点p的位置可以用3×1的位置矢量P表示为
px
Ppypz
(2-1)
如图2-1所示,px,py和pz分别 表示点P在当前坐标系中的三个坐标轴 方向的分量。这里P称为位置矢量,这
种表示法也可变化为如下形式:
图2-1 空间点的位置表示
ppxpypzw
(2-2),p为p的齐
T加入一个比例因子w,使得
pypxpzpx,py,pzwww 西南交通大学本科毕业设计(论文)第6页 次坐标。10 【】2.1.2坐标系在固定参考坐标系中的表示
当一个坐标系位于另一个坐标系中时,如图2-2所示,通常用三个互相垂直的单位向量n、o、a表示,这三个变量分别代表法线(normal)、指向(orientation)与接近(approach)向量(如图2-2所示)。每一个单位向量都可以由它所在参考坐标系中的三个分量表示,这样,坐标系F就可以表示为由四个向量组成的矩阵:
nxnyF =nz0oxoyoz0axayaz0py(2-3)
pz1px
图2-2 一个坐标系在另一个坐标系中的表示
式(2-3)中前三个列向量取w=0,表明该坐标系三个单位向量n、o、a的方向。而第四个列向量中w=1,表示该坐标系相对于参考坐标系的位置。
2.2 坐标系的变换
坐标系的变换包括绕固定参考坐标系的变换和绕运动参考坐标系的变换。
2.2.1 齐次变换
空间中一个坐标系相对于固定的参考坐标系的运动称为齐次变换。齐次变换可以是平移运动,可以是旋转运动,也可以是平移与旋转的复合运动。
(1)纯平移齐次变换
如果一个坐标系(它可能表示的是一个物体)在空间运动中相对于固定参考坐标系的姿态不发生变化,即该坐标系的三个单位向量方向不变,只改变它的坐标原点位置,则称这种运动为平移运动。如图2-3所示,坐标系{A}沿平移向量d平 西南交通大学本科毕业设计(论文)第7页 移到新的位置:
d=dxdydz(2-4)
T【7】其中dx,dy,dz是平移向量d相对于固定参考系三个坐标轴方向的分量。
图2-3 坐标系的平移
平移后新的坐标系原点位置向量可以表示为原来坐标系的原点位置向量与位移向量d的矢量和。若采用矩阵形式,新坐标系的矩阵表示可以通过将坐标系左乘变换矩阵。由于平移过程中方向向量保持不变,所以平移变换矩阵T可以简单地表示为: 10T0001000010dxdy(2-5)dz1可以看到,矩阵的前三列没有旋转运动(等同于单位矩阵),而最后一列表示平移运动,这个方程可以用符号表示如下:
Fnew即 Trans(dx,dy,dz)Fold(2-6)西南交通大学本科毕业设计(论文)第8页
Fnew1000nxnynz001000010dxnxdynydznz10pydypzdz1oxoyoz0axayaz0pypz1pxoxoyoz0axayaz0pxdx(2-7)(2)绕轴纯旋转齐次变换
为了简化旋转变换的推导,假设坐标系{B}位于坐标系{A}的原点。纯旋转就是{B}坐标系在空间中运动中相对于固定参考坐标系{A}的位置不发生变化,即只改变该坐标系三个单位向量的方向而不改变其原点位置。这样坐标系{B}可以由坐标系{A}经过旋转次变换后得到,由此可以推广到其他旋转情况。
设向量x, y, z为坐标系{A}的三个单位向量,空间任意一点p的位置可以用向量p表示。向量p在坐标系{A}中的表示为:
Ap=pxix+pyjy+pzkz(2-8)向量p在坐标系{B}中的表示为:
Bppnin+pojo+pk(2-9)B则向量P在坐标系{A}中的投影分别为
Pxix.Bpix.inpn+ix.jopo+ix.kp(2-10)Pyiy.Bpiy.inpn+iy.jopo+iy.kp(2-11)Pziz.Bpiz.inpn+iz.jopo+iz.kp(2-12)写成齐次矩阵形式则为:
西南交通大学本科毕业设计(论文)第9页
ix.pxininiy.py iniz.pz10ix.ininiy.iniz.0iy.ioiy.i0iz.i0iz.io0001ix.ioix.i0pnpo(2-13)p1ix.ioix.i0iy.ioiy.i0(2-14)
iz.i0iz.io0001ARB当坐标系{B}只相对于坐标系{A}单个轴转动时称为基本变换矩阵。如坐标系{B}只绕坐标系{A}的x轴转动角度θ时,基本转动变换矩阵记为Rot(x,θ),由式(2-14)可以计算得:
1Rot(x,)000CSS(2-15)C0可以用同样的方法来分析坐标系{B}绕坐标系{A}的y轴和z轴旋转的情况,结果如下:
C0Rot(y,)01S0CRot(z,)S0(3)复合齐次变换
0(2-16)CSS0C0(2-17)01复合齐次变换是有由固定坐标系或当前运动坐标系的一系列沿轴平移和绕轴旋转变换所组成的,此时该固定坐标系在参考系中不仅原点位置发生变化,同时它的三个坐标轴单位向量的方向也发生变化。此时的变换顺序很重要,变换顺序不同,结果不同。
我们假设坐标系(n, o, a)相对于参考坐标系(x ,y ,z)依次进行了下列四个变 西南交通大学本科毕业设计(论文)第10页 换:
绕z轴旋转θ度 绕z轴平移d 绕x轴平移a 绕x轴旋转α度 则复合齐次变换XYZxyzTnoa可由下式求解:
TnoRot(x,)Trans(a,0,0)Trans(0,0,d)Rot(z,)(2-18)可见,齐次变换矩阵是由一组平移和旋转矩阵依次左乘获得,矩阵书写的顺序
【6】和进行变换的顺序正好相反,而且变换的顺序不能更改,否则结果会随之改变。
2.2.2 坐标系相对于旋转坐标系的变换
前面我们所讨论的所有变换都是相对于固定参考坐标系的。也就是说,所有平移和旋转都是相对于参考坐标系的轴来测量的。然而事实上,也有可能相对于运动坐标系或当前坐标系的轴的变换。例如,相对于运动坐标系(当前坐标系)的n轴而不是参考坐标系的x轴旋转θ度。为了计算当前坐标系中点的坐标相对于参考坐标系的变化,我们需要右乘变换矩阵而不是左乘。由于运动坐标系中的点或刚体的位置总是相对于运动坐标系测量的,所以必须右乘来表示该点或刚体的位置矩阵。
2.2.3 变换矩阵的逆
A在分析robot时,如果已知坐标系{B}相对于坐标系{A}的值
BTB到{A}相对于{B}的描述
TA,为了得,需要求这个矩阵的逆。一个直接求逆的方法就是将44齐次变换求逆。同样,我们还可以通过变换的性质求逆。下面是关于x轴简单旋转矩阵的求逆过程。旋转矩阵如下:
1Rot(x,)000CSS(2-19)C0我们采用以下的步骤来计算旋转矩阵的逆: 1)计算矩阵的行列式 2)将矩阵转置
西南交通大学本科毕业设计(论文)第11页 3)将转置矩阵的每个元素用它的子行列式代替 4)用转置后的矩阵除以行列式 通过以上步骤我们得到:
1TRot(x,)000CS0S(2-20)C关于x轴的旋转矩阵的逆与它的转置矩阵相同,即:
TRot(x,)1Rot(x,)(2-21)2.3 robot的正逆运动学
对于一个已知构型的robot,当它的连杆长度和关节角度都已知时,计算robot手的位姿就称为正运动学。也就是说,如果已知robot所有的关节变量,用正运动学方程就能计算任一瞬间robot的位置和姿态。如果要将robot的手放到一个期望的位姿,就必须知道robot所有关节的长度和角度。由robot手的位姿来求关节和连杆变量的过程就称为robot的逆运动学。对于正运动学,必须推导出一组特定方程,我们只要将已知的关节和连杆变量代入方程就能计算出robot的位姿,然后再根据这些方程求解出逆运动学方程。
在空间中,要确定一个物体的几何状态需要确定其3个位移坐标(位置)和三个旋转坐标(姿态)。robot手部的空间位置和姿态的表示可以借助一个固连在它上面的参考坐标系来表示,只要这个坐标系可以在基座的参考坐标系的空间中表示出来,那么该robot手部相对于基座的位姿就是已知的了,可采用齐次坐标变换的方法完成这两个坐标系的坐标转化。
图2-3 robot手的位置和姿态描述
西南交通大学本科毕业设计(论文)第12页
robot手部的位姿如图2-3所示,可由固接在robot手部的坐标系{B}来表示。该坐标系由其原点位置和三个单位矢量(n, o, a)唯一确定。坐标系{A}表示固连在robot基座上的固定参考坐标系。向量P为坐标系{B}原点在坐标系{A}中的位置矢量。前面已经讨论过了一个坐标系在固定坐标系的表示故这里直接给出坐标系{B}在坐标系{A}中的位姿的表示:
nnYF =n0ooYo0aaYa0pY(2-22)p1p2.3.1正运动学的D-H表示法
robot建模采用的是Denavit和Hartenberg提出来的标准方法,我们简称为D-H模型,该模型可用于任何复杂的robot构型。
假设robot由一系列的关节和连杆构成,这些关节包括滑动的和旋转的,连杆长度任意,确保在空间能构成任意想要的robot模型。为了表示这个模型,我们需要为每个关节指定一个参考坐标系,然后再考虑从一个关节到下一个关节的变换。
假设一个robot由任意多的连杆和关节以任意形式构成。如图2-4所示,任意三个顺序连接的关节和连杆,每个关节都可以平移或旋转。指定第一个关节为关节n,第二个第三个关节分别为n+1和n+2,连杆n位于关节n和n+1之间,连杆n+1位于关节n+1和关节n+2之间,这些关节和连杆前后还有其他连杆和关节。
西南交通大学本科毕业设计(论文)第13页
图2-4 关节-连杆组合的通用D-H表示法
D-H表示法建模的第一步是为每个关节指定本地参考坐标系,每个关节都必须指定x轴和z轴,由于D-H法不用y轴,一般不指定y轴。具体步骤如下: 所有关节用z轴表示,如果关节是旋转,z轴位于按右手规则旋转的方向,如果关节是滑动的,z轴为沿直线运动的方向。关节n处z轴的下标记作n-1。对于旋转关节,绕z轴的旋转(角)是关节变量,对于滑动关节,沿z轴的连杆长度d是关节变量。
如图2-4所示,通常关节不一定平行或相交,因此z轴通常是斜线,但总有一条公垂线,正交于任意两条斜线。通常在公垂线方向上定义本地参考坐标系的x轴。例如an表示zn1和zn之间的公垂线,xn的方向即沿an方向。 如果两个关节的z轴平行,那么它们之间就有无数条公垂线,我们可以挑选与前一公垂线共线的公垂线,从而简化模型。
若两相邻的关节z轴相交,则不存在公垂线,我们选择垂直于两轴平面的任意直线,同样简化了模型。
在图2-4中,角表示绕z轴的旋转,d表示z轴上两相邻公垂线之间的距离,a表示每一条公垂线的长度,角表示相邻两z轴的夹角。通常只有和d是变量。从一个参考坐标系变换到另一个参考坐标系(例如从xn-zn到xn1-zn1),可以通过以下四步标准运动实现:
西南交通大学本科毕业设计(论文)第14页 绕zn轴旋转n1,使得xn和xn1相互平行且共面。 沿zn轴平移dn1距离,使得xn和xn1共线。
沿xn轴平移an1距离,使得的原点重合,此时两个坐标系的原点在同一位置。 将zn轴绕xn1旋转n1,使得zn和zn1对准。至此,坐标系n和坐标系n+1完全一致,变换结束。
在n+1和n+2坐标系间按照同样的运动顺序也可以实现坐标系间的变换。我们可以从参考坐标系开始,转换到robot底座,再到第一个关节,依次下去直至末端执行器。每个变换矩阵(记作A)都是由上述四个矩阵依次右乘的结果:nTn1An1Rot(z,n1)Trans(0,0,dn1)Trans(an1,0,0)Rot(x,n1)Cn1-Sn10010Sn1Cn100010000100010001000001dn101000001
000an1100CS100n1n10100Sn1Cn1001000(2-23)
An1Cn1Sn100Sn1Cn1Sn1Sn1Cn1Sn1an1Cn1an1Sn1dn11
(2-24)Cn1Cn1Sn10Cn10从robot基座到手(末端执行器)之间的总变换可以表示为:
RTHRT11T22T3...n1TnA1A2A3...An(2-25)
为了简化计算,我们为关节和连杆参数制作一个表格,每个参数可以从robot的原理图上读出,计算时再这些参数代入A矩阵。在本文中设计的简单三自由度robot模型参数如图2-5所示。所有链接采用旋转关节,D-H参数如表2-1所示。
西南交通大学本科毕业设计(论文)第15页
图2-5 简单三自由度robot(单位:英寸)表2-1 robotD-H参数表(逆转为正,顺转为负)连杆i 1 2 3 4
d
0 65 0 0
a
0 0 200 150
90° 0°-30°-30°
0°-90° 0° 0°
将上述角度值代入式(2-25),运用MATLAB进行计算出robot初始位置坐标:
2.3.2逆运动学方程的求解
为了让robot处于适当的位姿,我们需要求解每个关节的角度值,这就是robot
R的逆运动学。我们可以通过矩阵
TH左乘
An1来求解,如下:
RTH为了求解角度,我们从式:
nnYA1A2A3...Ann0A11ooYo0aaYa0p(2-26)p1pY开始,依次左乘上述矩阵,得到每个关节角度表达 西南交通大学本科毕业设计(论文)第16页
A11nnYn0ooYo0aaYa0pY(2-27)A2A3...An
p1p因此,我们的三自由度robot逆运动关节角度表达
1arctan(PX/PY)
2arccosPC(1C3)PYS3/18(1C3)C1Z1
(2-28)3arccos(PY/C)2(PZ)2162/162
2.4 微分运动
微分运动即robot的微小运动,可以用它来推导不同部件之间的速度关系。
图2-6(a)具有两自由度平面结构(b)速度图
如图所示的两个自由度的简单机构,1表示第一个连杆相对于参考坐标系的旋转角度,下:
2表示第二个连杆相对于第一个连杆的旋转角度。B点的速度可以计算如VBVAVB/Asinilcosjl()l1(2-29)11111212sin(12)il2(12)cos(12)j将速度方程写成矩阵形式得到如下结果:
西南交通大学本科毕业设计(论文)第17页
VBX VBYl1sin1l2sin(12)l1cos1l2cos(12)l2sin(12)l2cos(12) (2-30)
方程左边表示B点速度的x,y分量。B点的位置我们可以用下述方程表示:
XBl1cos1l2cos(12)(2-31)YBl1sin1l2sin(12)对方程中的1和2微分,写成矩阵形式如下:
l2sin(12)l2cos(12)d1 (2-32)
d2dXBdYBl1sin1l2sin(12)l1cos1l2cos(12)我们看到,(2-29)和(2-31)式在形式上很相像,只是前者表示的是速度关系,后者表示的是微分运动的关系。因此在robot运动中,我们可以将关节的微分运动与速度联系起来。
西南交通大学本科毕业设计(论文)第18页
第三章 基于ADAMS的robot的虚拟样机分析
3.1 ADAMS概述
美国MSC.Software公司在2003年3月收购了全球最大机构的仿真软件、咨询服务、系统集成供应商MDI/ADAMS。MSC.Software公司的ADAMS软件是虚拟样机领域内广泛使用的软件,可以使工程师、设计人员能够在物理样机构造前,建立机械系统的“模拟样机”,预估出机器的工作性能。ADAMS软件具有如下特点:(1)分析类型包括运动学、静力学分析以及线性和非线性动力学分析(2)具有二维和三维建模能力
(3)具有50余种联结副、力和发生器组成的库和强大的函数库(4)具有组装、分析和动态显示模型的功能,包含刚体和柔体分析(5)具有与CAD、UG、Pro/E、Matlab、ANSYS等软件的专用接口(6)具有开放式结构,允许用户集成自己的子程序
基于ADAMS的虚拟样机技术是在制造物理样机前,利用计算机技术建立该产品的数学模型,通过基于实体的可视化仿真分析,模拟该系统在实际工作环境中的运动学和动力学特性,并反复修改设计,从而得到最优方案。
A 创建模型
创建机械系统模型时,首先要创建构成模型的各个零部件。零部件创建完后,需要使用运动关节约束库创建零部件之间的约束副,确定部件之间的连接情况以及仿真过程中构件之间的位置关系。最后,施加运动及各种载荷使样机按照设计要求进行仿真。
B 测试验证模型并细化
模型创建过程中和完成后,都可以对模型进行运动仿真测试。通过对模型的性能测试,验证设计方案的正确性,然后,在模型中增加更复杂的因素,进一步细化模型。为便于不同方案的比较,通过设计变量不同取值的迭代仿真,求出设计变量的最优值。
C 优化设计
采用设计和优化分析的研究手段,确定各个设计变量相对于解算结果的灵敏度并最终确定目标函数的最优值。
【8】3.2 ADAMS中robot模型的建立
本文机械手模型参考了PUMArobot的结构,建模过程中依照模块化的思想先绘制各个部件,然后通过布尔运算和参数的调整,完成建模。
【15】 西南交通大学本科毕业设计(论文)第19页
3.2.1 设置建模环境
打开ADAMS/View,选择创建新模型,将机械手模型命名为model_2jixieshou,其他采用系统默认值,进入建模界面。
在建模界面中,首先要设定工作栅格,点击菜单Settings中的Working Gird.如图3-1所示,根据建模需要,栅格范围设置为1000×1000(mm),大小为50×50(mm)。
图3-1 工作栅格设置
设置完工作栅格就可以开始建模。
3.2.2robot实体建模
ADAMS/View中集成了很多图形模板,包括点,线,面,体各方面。我们构建的是robot的三维立体模型,其主要部件都是刚体。ADAMS中的刚体模板包括圆柱,圆锥,长方体,球体,拉伸体,平板等。我们选择圆柱体(圆盘)作为robot的底座,圆柱体作为robot的腰部,拉伸体作为robot的手臂。在建模过程中,作者一直根据模块化的原则,在建立每一个部件的过程中都同时通过布尔运算等对模块进行优化,很好的美化了模型,并且是模型更加合理。这种工作方法为最后的总装提供和很大的便利和好处,节省了很多时间,提高了工作效率,值得在其他工作中借鉴。由于建模过程主要是ADAMS软件的操作过程,如果对ADAMS比较熟悉这个过程就很简单。本文不再对建模过程做详细介绍。建立好的机械手实体模型如下图3-2 西南交通大学本科毕业设计(论文)第20页 所示:
图3-2 机械手实体模型
3.2.3 robot模型的设置
robot实体模型建好以后,应对其属性进行修改。我们设计用的robot材料为铝材,初始位移为各个点的初始位置,初始速度设置为零。选定材料后,物体的密度就自动确定了,同时系统会自动计算构件的质量。然后对关节添加相应的约束和驱动力。如果我们要模拟某些特殊的工作过程,我们还应该在相应的位置处添加力和力矩。如我们模拟提升物体的操作过程,那么我们就在小臂(PART6)的端部PART6_MARKER_6处添加一个大小为10N方向向下的力。完成这个设置后robot的模型如下图3-3所示:
西南交通大学本科毕业设计(论文)第21页
图3-3 robot最终模型
至此,我们已经完成了三自由度robot的建模过程,通过软件自检功能,可以判定模型正确与否,建模完成以后就可以进行运动学仿真分析。
3.3 轨迹规划仿真分析
完成建模过程后,我们就可以运用软件的仿真功能对模型的运动学,静力学,动力学进行分析,本文对所建立的模型进行了运动学的理论分析,然后又结合轨迹规划进行了仿真分析。轨迹规划一般分为两种:一种是在关节空间进行规划,将关节变量表示成时间的函数,并规划它的一阶和二阶时间导数;另一种是在直角空间(笛卡尔空间)进行规划,将末端位姿、速度、加速度表示为时间的函数,而相应的关节位移、速度和加速度由末端信息导出。
【12】
本文分别给出了对模型进行关节空间和直角空间轨迹规划方法的理论分析,并在ADAMS/View的仿真和后处理模块中利用ADAMS内嵌的step函数对关节空间内三次多项式和五次多项式轨迹规划进行了分析比较。
3.3.1 轨迹规划方法的理论分析
西南交通大学本科毕业设计(论文)第22页
(1)关节空间内三次多项式轨迹规划
假设robot的初始位姿是已知的,通过逆运动学方程可以求得期望位姿对应的关节角。若考虑其中某一关节在运动开始时刻运动到新的角度f,使用多项式函数可以保证初始和末端的边界条件与已知条件相
ti的角度i,希望该关节在tf时刻匹配,这些条件信息可以求解下面的三次多项式方程。
23(t)c0ctctct(3-1)123这里的初始条件和末端条件是:
(ti)i(tf)f(ti)0(tf)0(3-2)
对4-1式求导,得:
(t)c2ct3ct2 (3-3)123将4-2式分别代入4-1和4-3式得:
(ti)c0i23(tf)c0ctctct1f2f3f(t)c0i1(t)cctct20f12f3f(3-4)
联立求解这四个方程就可以得到任意时刻的关节位置,控制器则据此来驱动关节。每个关节分别规划,同步运行。如果要求robot依次通过多个点,则每一段末端求解出的速度和位置都可用作下一段的初始条件,每一段的轨迹都可采用上述的三次多项式来规划。
针对本文设计的三自由度robot,在其初始位置基础下,我们要求robot手臂在6S后分别运动1=180°,2=60°,
3=30°。
西南交通大学本科毕业设计(论文)第23页
表4.1 三次多项式规划关节角度
t
0 1 2 3 4 5 6
1
0.0000 13.3333 46.6667 90.0000 133.3333 166.6667 180.0000
2
0.0000 4.4444 15.5556 30.0000 44.4444 55.5556 60.0000
3
0.0000 2.2222 7.7778 15.0000 22.2222 27.7778 30.0000 将上述边界条件代入4-4式,解得第一个关节轨迹参数为c0=0,c1=0,c2=15,532=-5/3轨迹方程为:(t)15tt;同样可得出第二个关节轨迹参数c0=0,1c33532=0,=5,=-5/9轨迹方程为:第三个关节参数c0=0,c1=0,(t)5tt;2c1c2c395253=5/2,=-5/18轨迹方程为:(t)32t18t c2c3我们将运动过程分为5段,则每秒钟robot运动的关节角度如表4-1所示。(2)关节空间内五次多项式轨迹规划
在三次多项式规划中,我们采用的边界条件是起点和终点的位置与速度,如果同时指定起点和终点的加速度,这样边界条件就增加到6个,可以用同样的方法进行五次多项式的规划:
2345(t)c0ctctctctct(3-5)12345(t)c2ct3ct24ct35ct4(3-6)12345(t)2c26c3t12c4t220c5t3(3-7)
(3)关节空间内抛物线过渡的线性运动轨迹规划
在关节空间轨迹规划的另一种方法就是让关节以恒定的速度在起点和终点之间运动,轨迹方程相当于一次多项式,速度为常数,加速度为零。这样意味着在起点和终点的加速度必须为无穷大,为避免这一情况,线性运动在起点和终点可以用抛物线来过渡。如图4-6,抛物线与直线过渡段在时间和处是对称的,由此得到:
西南交通大学本科毕业设计(论文)第24页
12(t)c0ctct122(t)cct(3-8)12(t)c2
图4-6 抛物线过渡的线性段规划方法
此时抛物线运动段的加速度为一常数,在A点和B点速度连续,将边界条件代入得:
(t0)ic0(t0)0c1(t)c2从而得出抛物线的方程为:
c0ic10
c2(t)i(t)c2t(t)c212c2t2(3-9)
将零初速度,线性段常值速度以及零末端速度代入上式,得到:
12c2tb2ctA2bAi
BA(tftb)tbAtf2tbBA 西南交通大学本科毕业设计(论文)第25页
fB(Ai)0f从而可求出过渡时间:
(3-10)
iftftb(3-11)
显然,不能大于总时间的一半,否则整个过程中只有加减速而没有直线运动。终点的抛物线段与起点是对称的,只是加速度为负而已。
我们依然用设计的三自由度robot来进行规划。在其初始位置基础上,我们要求robot手臂在6S后分别运动
1=180°,2=60°,3=30°中间匀速运动的速度分别为v140/s,v212/s,v36/s,那么过渡时间分别为:
0180406060126030661.5(s),tb21.0(s),tb31.0(s)
40126匀加速,匀速,匀减速运动方程分别如下: tb11802t2380tiA380第一个关节角1: 33040(t1.5)40 AB 0180180(6t)22380 Bf (6t)38031212t2第二个关节角2:iA12t
12 西南交通大学本科毕业设计(论文)第26页
612(t1) AB 120126012(6t)2 Bf 12(6t)12126t2第三个关节角3:iA6t
636(t1) AB 601306(6t)22 Bf 6(6t)6则在0s到6s关节的角度分别如表4-2所示:
表4-2 抛物线过渡规划关节角度 t 0 1 2 3 4 5 6
1
0 40/3 50 90 130 500/3 180
2
0 6 18 30 42 54 60
3
0 3 9 15 21 27 30(4)直角空间轨迹规划
西南交通大学本科毕业设计(论文)第27页
直角坐标空间轨迹与robot相对于直角坐标系的运动有关,robot末端执行器的位姿就是沿循直角坐标空间的轨迹。实际上所有的关节空间轨迹规划的方法都可用于直角坐标空间的轨迹规划。其差别在于:对于关节空间的轨迹规划,规划函数生成的值就是关节值,而直角坐标空间轨迹规划函数生成的值是robot末端执行器的位姿,必须通过反复求解逆运动学方程来计算关节角。
其过程可以综合如下: 将时间增加一个增量ttt;
利用所选择的轨迹函数计算末端执行器的位姿; 利用robot逆运动学方程计算位姿对应的关节量; 将关节信息传递给控制器; 重复以上循环过程。
3.3.2 轨迹规划仿真分析
(1)三次多项式轨迹规划仿真分析
我们在ADAMS里进行三次多项式轨迹仿真时,用的是STEP函数。[13] STEP函数利用的是三次多项式逼近海赛阶跃函数。STEP阶跃函数有连续的一阶导,但在起点处的二阶导不连续,在速度图像上表现为速度连续但加速度不连续。
我们设定robot三个部分在6S时间内分别转动180°,60°,30°,为了分析其运动特性,我们分别选取robot小臂PART6末端的PART6_MARKER_6点的运动参数进行分析。
robot小臂末端的PART6_MARKER_6在X,Y,Z三个方向上的位移曲线如下:
图4-7 PART6_MARKER_6在X,Y,Z三个方向上的位移图
西南交通大学本科毕业设计(论文)第28页
从上图中我们看到,在三次多项式规划条件下,X,Y,Z三个方向上的点都呈现出起伏变化,与匀速驱动条件下情况不同。PART6_MARKER_6点从(248.2051,70.0962,-40.0)运动到(-303.1089,475.0,40.0)处。
PART6_MARKER_6速度和加速度曲线如图4-8所示,我们可以看到,速度由0mm/s增大到297.6708mm/s,然后又逐渐下降到0mm/s,而加速度最大值达到了2s253.6641mm/,并且在0.012s和5.988/s处存在突变。
图4-8 PART6_MARKER_6速度和加速度图像
PART6_MARKER_6角速度和角加速度曲线如图4-9所示,PART6_MARKER_6角速度和角加速度变化与速度变化类似,最大角速度为50.3512d/s,角加速度最大为33.4069d/s,在0.012s和5.988/s处存在突变。2
图4-9 PART6_MARKER_6角速度和角加速度图像
西南交通大学本科毕业设计(论文)第29页(2)五次多项式轨迹规划仿真分析
我们运用ADAMS内嵌的step5函数对robot关节进行五次多项式轨迹规划,step5函数是通过五次多项式逼近海塞阶跃函数。同样选取我们分别选取robot小臂PART6末端PART6_MARKER_6点的运动参数进行分析。
PART6_MARKER_6在X,Y,Z三个方向上的位移曲线如图4-16所示:
图4-16 PART6_MARKER_6在X,Y,Z三个方向上的位移图像
从上图中我们可以看出,三次多项式和五次多项式轨迹规划相比,robot手臂末端的始末位置不变,都是从(248.2051,70.0962,-40.0)运动到(-303.1089,475.0,40.0),中间点的位移也没太大变化。但是其速度和加速度等运动参数变化却比较大。五次多项式轨迹规划条件下PART6_MARKER_6的速度和加速度曲线如图4-17所示:
西南交通大学本科毕业设计(论文)第30页
图4-17 PART6_MARKER_6的速度和加速度图像
PART6_MARKER_6的角速度和角加速度曲线如图4-18所示:
图4-18 PART6_MARKER_6的角速度和角加速度图像
从上面的图像中我们可以看到,PART6_MARKER_6的速度先增后减,加速度变化也一样。速度从开始时刻的0mm/s增大到中间时刻的370.1791mm/s再减小到终点时刻的0mm/s,加速度变化较三次多项式规划时平缓,不存在突变点。在0s时最小,为0mm/s,中间时刻达到最大值396.2381mm/s,然后逐渐下降到终点时的0mm/s。角速度和角加速度的变化情况如下:最大角速度为62.8912d/s,最大角加速度为32.826d/s,角加速度不存在明显突变。(3)轨迹规划比较分析
2222 西南交通大学本科毕业设计(论文)第31页
从上面的两种轨迹仿真结果中可以看出,三次多项式轨迹规划和五次多项式轨迹规划最大的区别就在前者的加速度和角加速度在中间点存在跳变,而后者的加速度和角加速度的变化则趋于平缓。我们对两种情况下PART6_MARKER_6点的运动参数变化情况进行比较,如下表所示:
表4-3 PART3_MARKER_12点的运动参数比较 比较项目 最大速度mm/s 最大加速度mm/s
加速度突变 最大角速度d/s 最大角加速度d/s 角加速度突变
22三次多项式 297.6708 253.6641 有 50.3512 33.4069 有
五次多项式 370.1791 396.2381 无 62.8912 32.826 无
之所以有这种区别,原因在于三次多项式轨迹规划中,我们的边界条件只有四个,初始位移和速度,终点的位移和速度;而在五次多项式轨迹规划中,我们的初始条件中包含了加速度,分别为初始位移、速度和加速度,终点位移、速度和加速度。因此在一般的三次多项式轨迹规划中,我们应该加入最大速度变化的限制条件,从而保证robot的运动更平稳。
西南交通大学本科毕业设计(论文)第32页
第四章 基于模型的视景仿真系统的设计与实现
随着robot研究的不断深入,robot三维可视化技术作为robot设计和研究中安全可靠、灵活方便的工具,越来越受到重视。robot的三维图形仿真,就是要建立一个精确、逼真的robot模型以及robot工作环境。
三维可视化是数学模拟和科学计算可视化技术相结合的产物,它一般包括两方面内容:一是将传统数字仿真计算的结果转换为图形和图像形式;二是仿真交互界面可视化,即具有可视化交互和动画展示能力,要求能够实时跟踪显示仿真计算结果。可视化技术的出现,使得人们能够在三维图形世界中观察robot,并通过计算机交互式对robot进行示教仿真。
一般来说,robot可视化仿真系统主要由三个模块组成:工业robot的三维模型模块(实现仿真系统的基础)、示教和再现模块(实现示教和再现的功能)、离线编程模块,见图4-1。但是由于时间和知识限制,本文只研究了后两个模块的实现,对离线编程并没有采取通常的做法,根据老师的建议想将Matlab软件和VC++结合起来,用在Matlab里建立的控制模型来控制OpenGL里机械手的运动,本章按照这个思路实现了利用Matlab里建立的控制模型导出的数据来控制机械手的运动。
图4-1 通用robot可视化仿真系统模块
本章将通过VC++6.0和OpenGL来完成机械手的三维可视化仿真系统的设计与实现,它提供一个真实的实验平台,在不接触实际robot及其工作环境的情况下,通过图形技术,提供一个和机械手进行交互的虚拟环境。本章主要内容为:
(1)建立程序框架;
西南交通大学本科毕业设计(论文)第33页
(2)建立机械手三维模型;(3)建立仿真场景;
(4)实现基于模型的视景仿真。
4.1 OpenGL概述
OpenGL即开放性图形库(open graphic libary)是美国高级图形和高性能计算机系统公司SGI所开发的三维图形标准库,具有绘制三维图形的各项功能,它是处理专用图形硬件的软件接口,支持可视化的实现,它是三维计算机图形和模型库,独立于窗口系统和操作系统。
从开发人员角度看,OpenGL是一些绘图指令或函数的集合。这些指令允许用户 对二维几何对象或三维几何对象进行说明,允许用户对对象实施操作以便把这些对象着色到帧存上。OpenGL可以方便地实现三维图形的交互操作。
对于OpenGL的实现者而言,OpenGL是影响硬件操作的指令集合。如果硬件仅仅包括一个可以寻址的帧存,那么OpenGL就不得不在CPU上实现对象的描绘,OPenGL可以保存数量较大的状态信息,这些状态信息可以用来指示OpenGL如何往帧存中画物体。有一些状态,用户可以直接使用,通过调用就可得到状态值;而另一些状态只有作用在所画物体上,才能使其产生的影响可见。
4.1.1 OpenGL工作方式
OpenGL在Windows环境下的工作过程如图4-2所示。OpenGL的库函数被封装在OPengl犯.dll动态链接库中,从客户应用程序发布的对openGL函数的调用首先被Opengl32处理,在传给服务器后,被 winsry.dll进一步进行处理,然后传给
【18】DDx(nivieeDriverInterface),最后传递给视屏驱动程序。
西南交通大学本科毕业设计(论文)第34页
图4-2 OpenGL在Windows环境下的工作过程
4.1.2 OpenGL绘制过程
OpenGL具有较强的图形绘制能力,包括绘制物体、启动光照、管理位图、纹理映射、动画、图形增强及交互技术等功能。综合以上功能,作为图形硬件的软件接口,OpenGL主要是将三维的物体投影到一个二维平面上,之后处理得到像素,进行显示。OpenGL首先将物体转化为可以描述物体几何性质的顶点(Vertex)与描述图像的像素(Pixel),在执行一系列操作后,最终将这些数据转化成像素数据。也就是说,OpenGL是基于点的。有一组顶点定义的图元(Pirmitive)执行完绘制操作后,后继图元才能作用。简单的图形生成过程如图4-3所示。
西南交通大学本科毕业设计(论文)第35页
图4-3 OpenGL中简单图形的绘制过程
对图元的定义:图元由一组顶点定义,这一组顶点可以是一个或是多个顶点。每个顶点信息可以是二维的也可以是三维的。顶点信息可以由位置坐标、颜色值、法向量、纹理坐标组成。法线、纹理、颜色值会在处理每个顶点的过程中被使用。OpenGL将点、线段、多边形等通过在函数glBegin()和glEnd()之间一系列顶点的数据绘制出图形。
对图元的操作:OpenGL用交换矩阵、光照、反走样、像素操作等方法控制图元的绘制。图元的操作处理过程结束后,只留下图元可见部分,准备进行光栅化(投影)处理。像素处理比较特殊:对像素、位图、影像直接进行像素操作,然后进行光栅化,后者是有些数据被存储在纹理中供顶点使用。
光栅化过程:将图元转化为二维图像,完成每个图像点的颜色与深度的计算,生成结果为基片,即各图元的二维结果。
基片操作:处理过程包括基片是否遮挡、测试、融合等,最后得到像素,存入显示帧缓冲中,完成整个绘制过程。
4.2 robot三维可视化框架建立
4.2.1 利用MFC建立单文档应用程序框架
VC++6.0能够创建多种类型的MFC应用程序,不同的应用程序具有不同的应用程序框架,VC++6.0系统的设计者创建了程序框架生成工具Appwizard,用它来建 西南交通大学本科毕业设计(论文)第36页 立开发各种MFC应用程序所需要的程序框架,通过APpwizard就可移动生成包含基本程序框架的应用程序包,这样就可以在此基础上进行程序设计。在参考许多数字
【16】处理、图像处理软件的基础上,决定采用单文档的应用程序框架。
创建工程:启动VC++6.0进入VC++的集成开发环境,新建一个工程,选择 MFC Appwizard选项,在应用程序类型中选择 singledocument(单文档)类型。 设置编译环境:设置编译环境主要包括设置包含文件和设置库文件路径。 加入OpenGL库:选择菜单ProjectSetting,将弹出 ProjectSettings对话框,在该对话框选择Link标签页,如图4-4所示。在该对话框中的Object/Library Module文本框中加入opengl32.lib、glu32.lib、glaux.lib三个函数库文件。在头文件中加入 gl/glu.h(OpenGL核心函数的头文件)和 gl/glut.h(使用函数的头文件),这样就可以调用openGL软件包了。
图4-4 加入OpenGL库函数
这样,我们就很容易的建立了一个在Windows环境下进行OpenGL编程开发的框架,按快捷键F7进行编译,按快捷键F5执行就会弹出一个窗口,包含一个主菜单、一个工具条和一个状态条等部件。如下图4-5所示:
西南交通大学本科毕业设计(论文)第37页
图4-5 程序框架
4.2.2 设置OpenGL绘图环境
1)创建RC 在windows环境下建立OpenGL绘制窗口是通过建立设备描述表(DC)和绘制描述表(RC)来实现的,而RC和DC是连接在一块的。因此,为了建立RC,先要建立DC。用ChoosePixelFormat()选择系统中与pfd描述的像素格式最为匹配的返回;本文现在消息响应函数OnCreate里调用InitializeOpenGL(m_pDC)函数,然后又通过后者调用SetupPixelFormat()函数来设置DC像素格式完成绘图环境的设置工作;
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if(CView::OnCreate(lpCreateStruct)==-1)
...return 0;} return-1;m_pDC = new CClientDC(this);InitializeOpenGL(m_pDC);//调用函数
西南交通大学本科毕业设计(论文)第38页
BOOL CMyView::InitializeOpenGL(CDC* pDC){ m_pDC = pDC;SetupPixelFormat();//设置像素格式
m_hRC = ::wglCreateContext(m_pDC->GetSafeHdc());::wglMakeCurrent(m_pDC->GetSafeHdc(), m_hRC);//选择像素格式
return TRUE;} 2)设置坐标变化方式
每次窗口创建或改变大小的时候,都要重新设置视口大小,因此我们在OnsizeO中进行视口设置。而投影变换和视点一模型变换的初始设置也可以放在里面进行。
void CMyView::OnSize(UINT nType, int cx, int cy){ CView::OnSize(nType, cx, cy);if(cy==0)
{cy=1;}
// 防止被零除
glViewport(0,0,cx,cy);// 重置当前视口
glLoadIdentity();视投影矩阵 glMatrixMode(GL_PROJECTION);// 选择投影矩阵
// 重置投影矩阵
gluPerspective(45.0f,(float)cx/(float)cy,0.1f,2000.0f);//设置透 glMatrixMode(GL_MODELVIEW);// 选择模型观察矩阵
glLoadIdentity();// 重置观察模型矩阵 } 3)绘图显示
完成上面的设置以后我们就可以利用OpenGL进行绘图了。本文为了程序的简约,先在OnDraw()里调用RenderScene()函数,然后在RenderScene()里调用所有绘图显示函数。代码如下:
void CMyView::OnDraw(CDC* pDC){ CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);RenderScene();//调用绘图函数 }
西南交通大学本科毕业设计(论文)第39页 4)程序结束,释放资源。
调用消息响应函数OnDestroy(),在函数里完成相关资源的释放。void CMyView::OnDestroy(){ CView::OnDestroy();::wglMakeCurrent(0,0);::wglDeleteContext(m_hRC);if(m_hPalette)DeleteObject(m_hPalette);if(m_pDC){
}...} 最后按照参考书上的方法设置了全屏显示按钮,可以实现全屏显示,同时可以
【16】进行屏幕工具栏的显示缩放。delete m_pDC;编译运行结果如图4-6所示:
图4-6 设置完成的robot三维场景框架
西南交通大学本科毕业设计(论文)第40页
4.3 机械手三维模型的建立
OpenGL中模型的建立一般有两种思路,一种通过一个是用3dsMax绘制出模型并将其转换成特定格式的文件,然后导入到程序中;另一个是直接用OpenGL的函数绘制出所需要的模型。导入的模型比较美观漂亮,但是实现起来技术难度比较大,而OpenGL的函数绘制出的模型则比较粗糙,但是灵活性好,实现起来也比较容易。
4.3.1 导入机械手模型
利用openGL建立复杂物体的三维模型是一件比较麻烦和枯燥的事情,因为OPenGL并没有提供三维模型的高级命令,它也是通过基本的几何图元一点、线及多边形来建立三维立体模型的。而利用3dsMax建立复杂物体的模型则显得轻松的多。可是,用3dsMax制作的动画没有交互性,无法实时控制,而这正是OpenGL的优势所在。把这些模型转换成OpenGL程序,再对其进行控制是一种比较理想的方法。所以,如果可以把OpenGL与3dsMax结合起来实现三维仿真则可以事半功倍。但是由于时间和知识的限制,无法完成对3D模型的读取工作,所以查找了一些读取3D模型文件的代码,利用这些代码将机械手模型转换成了OpenGL程序,将模型导入进了OpenGL里。为了节约时间作者没有在3dsMax里建立机械手的模型,而是在比较熟悉的Auto CAD里建立了机械手的模型,然后通过3dsMax软件模型文件导出成接口程序可识别的*.ASE格式的文件,再通过接口程序导入进OpenGL里。导入前的在3dsMax里的模型如图4-7所示:
图4-7 3dsMax里的机械手模型
西南交通大学本科毕业设计(论文)第41页
导入后的机械手模型经过坐标变换、缩放、改变颜色并加入光照照亮后如下图4-8所示:
图4-8 导入的机械手模型
4.3.2 在OpenGL中建立机械手的模型
虽然实现了模型的导入,但是只实现了整体导入,未能实现分块导入机械手的模型,所以在OpenGL只实现了整体模型的控制,很显然满足不了机械手运动的要求,所以导入的模型只能作为仿真场景的一部分做静态显示。为了继续进行后续工作,作者直接在OpenGL中通过基本的几何图元一点、线及多边形建立了机械手的三维立体模型。机械手模型主要由底座、腰部、关节、手臂这几个部分组成,由于底座、腰部和关节都是圆柱型的,所以作者先利用glu库函数(gluCylinder和gluDisk)【17】画出一个共用的圆柱,然后通过不同的缩放(glScalef)、转移(glTranslatef)、旋转(glRotatef)变换绘制出了底座,腰部和关节的模型。这里取绘制关节的函数作为例子介绍绘制过程,代码如下:
void CMyView::joint(){ glPushMatrix();//模型入栈
GLUquadricObj *obj1;obj1=gluNewQuadric();//创建一个描述当前绘图模式、定位、光照模式、西南交通大学本科毕业设计(论文)第42页 纹理模式和回调函数的不透明的状态变量
glTranslatef(0.0,0.0,-5.0);//向Z轴负方向即屏幕里移动5个像素的距离
glPushMatrix();gluCylinder(obj1,10.0,10.0,10.0,360.0,2);//绘制一个顶面半径、底面半径和高度都为10的圆柱面
glPopMatrix();glPushMatrix();gluDisk(obj1,0.0,10.0,360,1);// 绘制一个半径为10的圆片堵住上述圆柱面的底面
glPopMatrix();glPushMatrix();glTranslatef(0.0,0.0,10);//向Z轴正方向即屏幕外移动10个距离 gluDisk(obj1,0.0,10.0,360,1);//绘制一个半径为10的圆片堵住上述圆柱面的顶面
glPopMatrix();glPopMatrix();//模型出栈 } 绘制手臂也很简单,手臂其实在这里同样是通过对一个立方体进行不同的然后通过不同的缩放(glScalef)、转移(glTranslatef)、旋转(glRotatef)变换来完成绘制。OpenGL里也有对应画立方体的库函数,但是由于不太清楚怎么对用库函数绘制的模型进行纹理贴图,所以选用了一种比较熟悉和简单的方式来绘制,就是通过6个面来组合成一个立方体。对每个面都可以进行不同的纹理贴图。在后面的仿真场景建立过程中同样利用这个四方体也完成了实验室房间、木质方桌、大理石长桌、凳子和储物箱的绘制。绘制立方体的代码如下:
void CMyView::shoubi(){ glPushMatrix();glColor4f(1.0f,1.0f,1.0f,1.0f);//定义面的颜色为白色
glBegin(GL_QUADS);//开始绘制
// 前面
glTexCoord2f(0.0f, 0.0f);glVertex3f(-100.0f, 0.0f,-100.0f);// 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f);glVertex3f(100.0f, 0.0f,-100.0f);西南交通大学本科毕业设计(论文)第43页 // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f);glVertex3f(100.0f, 100.0f,-100.0f);// 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f);glVertex3f(-100.0f, 100.0f,-100.0f);// 纹理和四边形的左上
glEnd();glBegin(GL_QUADS);// 后面
glTexCoord2f(1.0f, 0.0f);glVertex3f(-100.0f, 0.0f, 100.0f);// 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f);glVertex3f(-100.0f, 100.0f, 100.0f);// 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f);glVertex3f(100.0f, 100.0f, 100.0f);// 纹理和四边形的左上
glTexCoord2f(0.0f, 0.0f);glVertex3f(100.0f, 0.0f,100.0f);// 纹理和四边形的左下
} 绘制完机械手的各个部件以后就可以通过缩放(glScalef)、转移(glTranslatef)、旋转(glRotatef)变换来完成整个机械手模型的绘制。代码如下:
void CMyView::manipulator(){ glPushMatrix();glTranslatef(0.0,-80.0,-20.0);//分别沿Y和X轴负方向移动80和20 //glRotatef(0.0,1.0,0.0,0.0);glRotatef(-hand[i].rot1,0.0,1.0,0.0);//绕Y轴旋转-hand[i].rot1(第一个关节角1第i时刻的值)
glPushMatrix();glTranslatef(0.0,-15.0,0.0);glRotatef(-90,1.0,0.0,0.0);//沿X轴逆时针旋转90°
glPushMatrix();glEnd();glPopMatrix();...