基于Unity3D的低耦模块化机器人开发工具论文_李承远 于令仪

南京工程学院 江苏 南京 210000

摘要:软件开发中的迭代效率[1]在很大程度上影响着最终产品的优劣。迭代效率低下在软件领域容易造成开发资源的浪费并拖累研发进程。然而硬件开发是很难进行高效迭代的,特别在小规模团队中,硬件开发过程中的高效迭代更是无法开展。要改变一个低耦合对象化软件系统的某个模块的工作方式可能只需要改变几行代码,但如果要改变一个机器人某个部位的结构可能要完成拆卸、重组甚至替换开发部件等一系列繁杂等工作。

为了简化硬件迭代工作,把现实中等组装拆卸在模拟软件中得以实现,并直接在终端设备完成运行仿真测试,可以开发了一款物理引擎驱动的以交互设计为导向的仿真软件系统。本文软件原型系统采用Unity引擎制作,以保证其能够在完成模块化及物理仿真任务的前提下适应多种主流计算平台,同时系统实时三维动画类型的交互方式,不仅能直观明确地模拟出硬件构造,而且能模拟加载控制程序后的机器人运动实效。

关键词:模块化;物理引擎;设计迭代;Unity3D

一、研究背景

目前,国内已有商业机器人公司针对个人和小型团队开发人员开发了很多有模块化思路的设计工具,但大多数并没有实现模块化。目前一些机器人开发套件内含了仿真结构模拟软件(如下文提到的RobotMaster),但此类软件仅适用于特定品牌套件,不适合进行独立二次开发。

Besiege是一款基于Unity引擎开发的游戏产品,玩家需要通过构建自己的机械原型来完成关卡中的任务。但是由于其娱乐软件道本质,其物理特性是根据娱乐体验需要所定制的故不能作为仿真参考。加拿大的Robot Master是一款专业的工业级离线编程软件,它能够为设计阶段的机器人产品进行模拟仿真,但需要使用者拥有较高的专业能力且投入大量精力在仿真系统的搭建中,并不适合初学者和小型机器人开发团队,且不具备良好的模块化特征。而类似索尼KOOV可编程教育机器人的模块化工具则大多针对低龄消费者。

二、如何对迭代过程优化

为了让初学者能直观感受设计过程,软件原型使用三维画面作为界面的主要组成部分,主要用于机器人显示及物理仿真,对模块的选择操作均在这个画面中进行。对于具体模块的调节和程序逻辑导入界面则放置在隐藏交互面板中如图(1)。

在构建机器人机械结构的过程中完全使用可复用模块进行搭建,并且可以调节质量,摩擦力等参数。模块化要求高度概括并适当集成开发中所使用的硬件。

为了在离线调试中生成并存储可供硬件系统转换使用的程序和数据,可以使用用命令模式[2](在C#中集成为event系统)编辑仿真程序的主要逻辑,将模块所需要执行的命令集成在命令库中,为每个命令编写其自身对应的单片机串口指令。这样在编辑仿真环境逻辑的同时单片机指令集合就能接收命令并作出相应的改变实现虚拟与现实的同步。

为了适应相对专业的开发人员,本文所述工具应在简化开发流程的基础上保留开发的拓展性, Unity支持对其资源的热更新,所有模块可以以一个预制物体表示,若需要更新模块的机械模型资源只需在编辑器中重新编辑并导入即可。现有的大部分机器人控制系统已经实现了可以兼容同型硬件上位操作,但必须连接机器人硬件后才能开始测定机器人的物理特性。本文软件原型里自带了一套对虚拟机器人进行上位的系统,通过在各种平台发布,开发者可以随时随地对机器人的工作状态进行实时物理仿真同时可以更改其机械结构。

在没有虚拟场景调试的机器人测试工作中,机械结构设计以及其他方面的失误会造成一定程度的硬件损坏。在大体量开发项目中硬件的损耗往往成为最大的计划外开销。通过离线设计和离线调试,一方面可以降低硬件的使用频率以留存其使用寿命,另一方面也可以规避一些会造成测试事故的硬件修改,从而避免一些零部件的损毁。

三、硬件迭代时间成本估测

在人工效率固定的前提下:总调试时间约等于总动作数和总关节数(所有可动机械结构)的乘积。为迭代次数。总装配时间约等于总关节数和机械复杂程度的乘积。

在计算总操作时间前需要引入一个迭代因数。迭代因数为开发过程中增加的完全设计更改量(以初次开发时间为单位),初始值为1整体重新设计迭代一次迭代因数加1,这里取迭代因数为一个大于1的随机小数。计入迭代后总时间为每次迭代后的总调试时间与总装配时间之和与迭代因数的乘积。

在开发过程中的大小主要由设计需要决定,而和软件工具无关所以开发时间差异主要受和迭代因数影响。

根据理论数据和测试结果对迭代因子和开发时间进行预测,在没有高效迭代机制的环境下随着迭代次数的增加,开发时间会随着机械复杂度和迭代次数成倍增长。

结语

易操作的自定义软件的出现能够大大提高初级开发者的开发热情,随着这种技术潮流的不断深入,将会有越来越多的人能够独立制作机器人。进而庞大的用户基数也会促使相关软件可能继续向集成化大众化的方向发展并提高行业的开发效率,让开发者把更多的精力投入到真实的设计中。

参考文献:

[1] Tracy Fullerton, Game Design Workshop [M]北京 中国公信出版集团,电子工业出版社 2016.4.

[2] Robert Nystrom.Game Programming Patterns [M].北京 人民邮电出版社 2016.9.

作者简介:李承远 1995年1月 男 江苏 本科 南京工程学院 电气工程及其自动化 独立游戏开发者。指导教师:杨雪

基金项目:南京工程学院大学生科技创新基金(TZ20160030)

论文作者:李承远 于令仪

论文发表刊物:《科技中国》2017年2期

论文发表时间:2017/5/2

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于Unity3D的低耦模块化机器人开发工具论文_李承远 于令仪
下载Doc文档

猜你喜欢