SCI论文(www.lunwensci.com):
摘要:针对学生在Delta机器人拆装测绘过程中遇到的问题,实现了基于Unity3D的Delta机器人虚拟拆装实验环境。利用SolidWorks实现了Delta机器人三维建模,通过3dsMax实现文件格式转换后导入到Unity3D中,在Unity3D中构建了虚拟仿真环境,利用C#脚本实现了模型的平移、旋转、高亮显示、复位等功能,达到了帮助学生认知Delta机器人结构的目的。
关键词:虚拟现实;Unity3D;Delta
本文引用格式:李玉胜,等.基于Unity3D的Delta机器人虚拟拆装实验[J].教育现代化,2019,6(68):145-146,163.
一 引言
2010年我校机械电子工程专业被教育部评为首批CDIO教学模式改革试点本科专业,按照CDIO理念,将机械电子工程专业实践分为三个模块:机电系统设计与制造模块I(机电系统的认知与测绘)、机电系统设计与制造模块II(机电系统机械结构的设计)、机电系统设计与制造模块III(机电控制系统设计与调试)。这三个模块以Delta机器人为主线,让学生经历机电产品的构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)四个阶段,最终实现Delta机器人产品研发到产品运行的全生命周期。在此过程中,让学生以主动的、实践的、课程之间有机联系的方式学习工程,最终将学生的工程基础知识、个人能力、人际团队能力和工程系统能力以综合培养的方式使学生达到预定培养目标。
在为期两周的机电系统设计与制造模块I(机电系统的认知与测绘)过程中,学生完成Delta机器人机械结构的认知、拆装、测绘等内容,在对结构理解的基础上,采用纯手工绘图、AutoCAD二维绘图、UGNX/SolidWorks三维绘图的方式,多方面,多角度表达产品的结构。目前Delta机器人实物组成构件材料多是铝合金,如图1所示。学生在拆装时采用锤子扳手等工具,很容易破坏配合面,造成产品结构精度丧失,零部件测绘得到的尺寸数据与原始理论值差距很大。学生难以揣测设计者的意图。
借助虚拟现实技术可以使学生身临其境的感知[1],采用这种创新教学手段,可以有效提高学生的教学质量[2],实现作品和参与者之间的沟通[3],为此我们开发了基于Unity与HTC Vive的Delta机器人结构拆装虚拟现实系统,在本系统中可以利用HTC Vive的操作手柄,在沉浸式虚拟现实空间,实现零部件的移动、缩放、抓取等功能。在应用过程中,本系统必须依赖HTC Vive套装,无法随时开展实验,而学生更多的时候是利用计算机做各种操作。因此基于PC机,开发Delta机器人结构虚拆装系统成为必须。
二Delta机器人虚拟仿真平台开发流程
首先用SolidWorks实现Delta机器人的三维建模,在装配结构树中,整理好隶属关系,方便后续的操作。然后导入到3dsMax中。3dsMax可以直接读取SolidWorks的文件,也可以通过*.STL、*.IGES等中性文件格式导入3dsMax中。导入3dsMax后,通过优化功能,减少面的数量。Delta机器人机械结构,零件众多,包含了大量的螺栓等标准件,因此面的总数很多。因此需要在减少面的总数与保持模型质量之间调整好面的阈值。利用3dsMax导出*.fbx格式文件,然后导入在Unity3D项目中[4]。在Unity3D中很容易设置好虚拟场景[5],添加模型材质,编写C#脚本,拖放在对应节点中,最终实现虚拟拆装环境。
三 虚拟拆装系统关键技术实现
系统中能实现如下操作:按键A键向左移动模型,按键D向右移动模型,按键W向上移动模型,按键S向下移动模型,鼠标中间滚轮上下滚动实现缩放模型,鼠标左键按下后实现任意位置拖动模型,鼠标滚轮按下后实现选择物体的旋转。
Unity3D提供了非常强大易用的处理输入信息的Input类,可以处理鼠标、键盘等外设输入的信息。通过编写C#脚本接收输入信息,完成与操作人员的交互。可从Edit-Project Settings-Input查看输入选项。
(一)用键盘实现模型平移
在Unity3D中,系统默认为操作人员创建了名为Horizontal与Vertical的虚拟按键,并将键盘的A键与D键、向左箭头按键与向右箭头按键的消息映射给了Horizontal。将键盘的W键与S键、向上箭头按键与向下箭头按键的消息映射给了Vertical。因此可以利用该输入操作环境中的三维模型,实现模型的水平竖直移动。关键代码如下:
void Update(){transform.Translate(Input.GetAxis(“Horizontal”)
*speed*Time.deltaTime,0,0);
t r a n s f o r m.T r a n s l a t e(0,I n p u t.
GetAxis(“Vertical”)*speed*Time.deltaTime,0);
}
(二)鼠标中键实现模型旋转
按下鼠标中键时实现物体的旋转,旋转是针对特定零件的,因此必须检测鼠标所选中物体,采用OnMouseOver函数,在该函数内检测鼠标中键是否按下,如果按下,则执行旋转操作。
void OnMouseOver(){
float ShuBiaoX=Input.GetAxis(“Mouse X”);float ShuBiaoY=Input.GetAxis(“Mouse Y”);if(Input.GetMouseButton(2)){
this.transform.Rotate(new Vector3(ShuBiaoX
*Time.deltaTime*1000f,ShuBiaoY*Time.deltaTime
*1000f));}
}
(三)鼠标中键滚轮实现缩放
鼠标中键滚轮缩放是针对所有模型整体性的缩放,该函数所在脚本拖放在产品的根节点中,以便对所有模型同时使用该操作。关键代码如下:
void Update(){
if(Input.GetAxis(“Mouse ScrollWheel”)<0){if(Camera.main.fieldOfView<=120){Camera.main.fieldOfView+=4;}
if(Camera.main.orthographicSize<=40){
Camera.main.orthographicSize+=1F;}}
if(Input.GetAxis(“Mouse ScrollWheel”)>0){if(Camera.main.fieldOfView>1){Camera.main.fieldOfView-=4;}
if(Camera.main.orthographicSize>=1){Camera.main.orthographicSize-=1F;}
}
(四)鼠标左键拖动模型
鼠标放在物体上,按下鼠标左键,可以拖动物体。实现物体的移动。物体的拖放需要历经多个逻辑帧的流程,需要把拖放任务分割成多个任务来实施,然后在下一帧继续执行拖放操作,所以需要Unity3D中的协程方法,通过yield可以在任何位置、任意时刻暂停,也可以在指定的时间或事件后继续执行,而不影响上一次执行的就结果,非常方便实用。协程在每次执行时都会新建一个新线程来执行,而不会影响主线程的执行情况。关键代码如下:
IEnumerator OnMouseDown(){
Vector3 PMSP=
Camera.main.WorldToScreenPoint(transform.position);
var offset=transform.position-Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,
Input.mousePosition.y,PMSP.z));while(Input.GetMouseButton(0)){Vector3 CPMSP=new Vector3(Input.mousePosition.x,
Input.mousePosition.y,PMSP.z);
var WeiZhi=Camera.main.ScreenToWorldPoint(CPMSP)
+offset;
transform.position=WeiZhi;
yield return new WaitForFixedUpdate();}
}
四 系统运行效果
系统运行界面如图2所示,学生可以用键盘实现模型的左右平移、上下平移。用鼠标实现,模型的缩放、拖动、旋转等操作。
五结束语
虚拟仿真实验应用范围广,操作简单,效果良好,可随时操作,是真实物理实验的有力补充。通过虚实结合、多种类型虚拟实验的配合,使学生更加深入掌握Delta机器人产品结构,减少了拆装实物的次数,降低了实物制作成本,同时有利于下一步的扩展,对培养学生的创新动手能力有积极的作用。
参考文献
[1]张丹,王峰,郭艳珍,隋文涛.VR开发在教学中的应用[J].教育现代化,2019,6(18):127-129.
[2]梁彬彬,李灵灵.展望VR虚拟现实技术在教育领域的应用前景[J].教育现代化,2019,6(14):179-181.
[3]乔建委,王建军,许文硕,等.VR技术在检测技术实验教学中的运用开发[J].教育现代化,2019,6(18):123-124.
[4]庄严,卢阿丽,杨庆.基于Unity3D的机器人仿真实验系统[J].电子技术与软件工程,2018(03):113-114.
[5]尤炜焜.基于Unity3D的机器人本体拆装的虚拟教学系统设计[J].机械研究与应用,2018,31(04):230-234.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网! 文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/27975.html