您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 基于Unity的低耦合机器人设计
第2卷第3期南京工程学院学报(自然科学版)Vol2,No.32017年3月JournalofNanjingInstituteOfTechnology(NaturalScienceEdition)3,2017——收稿日期:2017-3-0;修回日期2017-3-0基金项目:南京工程学院大学生科技创新基金项目(TZ20160030)作者简介:李承远,本科学生,独立游戏开发者E-mail:1083253725@qq.com文章编号:基于Unity3D的低耦模块化机器人设计李承远,于令仪南京工程学院,江苏,南京市,210000摘要:为了有效的提高机器人制作的效率并降低机器人制作的门槛,需要为小规模机器人开发团队一款具备模块化搭建结构并支持实时物理测试的机器人设计软件。作者选择Unity3D引擎制作机器人设计软件的目的是保证软件能够在完成模块化及物理仿真任务的前提下适应多种主流计算平台。这样做可以提高部分机器人制作中的迭代效率,并构建一个模块化机器人开发系统,有效增强小团队的机器人研发能力。关键词:模块化;物理引擎;设计迭代;Unity3D中图分类号:DesignofLow-couplingModularRobotBasedonUnity3DLICheng-yuan,YULing-yiNanjingInstituteOfTechnology,Nanjing210000,ChinaAbstract:Inordertoeffectivelyimprovetheefficiencyofrobotproductionandreducethethresholdofrobotproduction,weneedtodevelopasmall-scalerobotteamwithamodularstructureandsupportreal-timephysicaltestingrobotdesignsoftware.TheauthorchoosestheUnity3Denginetodesigntherobotdesignsoftwaretoensurethatthesoftwarecanbeadaptedtoavarietyofmainstreamcomputingplatformsunderthepremiseofcompletingmodularandphysicalsimulationtasks.Thiscanimprovetheiterativeefficiencyofsomeoftherobotproduction,andbuildamodularrobotdevelopmentsystem,effectivelyenhancethesmallteamofrobotR&Dcapabilities.Keywords:modularity;physicalengine;designiteration;Unity3D以现有硬件为基础的机器人开发过程中,机器人结构制作将变成一个设计指向性的工作。大部分产品化硬件已经一定程度上实现了模块化。不论是软件交互设计还是硬件模块化[7],目的都是降低耦合度,使得个部分开发工作相对独立,以便快速更新,加快迭代速度。LCY软件开发中的迭代效率很大程度上将影响最终产品的好坏甚至产品是否能最终被开发完成。一个好的创新型软件离不开迭代。迭代效率低下在软件领域容易造成开发资源的浪费并拖累研发进程[1]。而硬件开发是很难进行高效迭代的(特别是对于小规模团队)。改变一个机器人某个部位的结构可能需要进行拆除和重组甚至替换零件,而改变一个低耦合对象化软件系统的某个模块的工作方式可能只需要改变几行代码。如果硬件迭代比软件迭代更为简单呢?把现实中的组装拆卸测试变成点点鼠标,敲敲键盘,直接在终端设备的屏幕上进行测试(当然这不代表这样的产品不需要硬件实际测试)。什么样的工具可以让现实中的一切变成对着电脑敲敲打打?作者给出的答案是,一款物理引擎驱动的以交互设计为导向的仿真软件,某种程度上它更像一款有专业硬件交互功能的娱乐软件。1.国内研究背景1.1有产品化的机器人制作套件很多国内商业机器人公司针为个人和小型团队开发人员开发了很多有模块化思路的设计工具,但南京工程学院学报(自然科学版)2017年3月——大多数并没有实现模块化。在作者接触的一系列产品中,有些自带仿真结构模拟,但是生产企业所提供的产品所附加的配件很容易看到该企业设计人员个人的设计思路。对于面向开发者的产品应该保证产品可以完美的帮助开发者执行自己的设计思路,而不是让开发者的想法受制于工具。国内离线机器人开发软件刚刚起步,例如RobotArt。而这款软件只能进行离线编程,没有很强的实际应用,一般作为机器人的初步认识工具使用。1.2分散的开发技术力量高校机器人研究团体和小规模的商业机器人开发是国内的主要开发工具市场。部分团队选择独立研发机器人制作相关工具甚至机器人硬件,其余主要是通过购买开发套件或者使用现有的开发模块进行二次开发。独立研发制作的工具往往具有针对性的技术优势,但也由于这种针对性,此类工具被其他团队使用前需要进行技术引导。而商业开发工具还没有找到合适的迭代途径,寻找测试团队需要支付包括测试硬件在内的成本,过长的迭代周期让很多产品仓促上市或者在测试期止步不前。1.3Unity在非娱乐软件领域发展有限国内有大量的团队在使用Unity引擎进行娱乐产品的研发,特别是需要三维渲染或跨平台发布的游戏产品。Unity有良好的串口支持机制,很适合作为硬件仿真软件的输出平台,甚至进行实时交互。国内有一些关于Unity仿真的尝试[4],但还没有针对机器人模块化设计的软件研究。2.国外研究背景2.1模块化的物理娱乐产品Besiege是一款基于Unity引擎开发的游戏产品,玩家需要通过构建自己的机械原型来完成关卡中的任务。通过使用游戏所提供的结构模块玩家甚至可以建立一个机器人模型并自定义其控制方式,所建立的原型确定后可直接带入其物理系统中。很多国内外爱好者在其中制作了丰富的可控制机械模型,但也正因为这是一款娱乐软件,其物理特性是根据娱乐体验需要所定制的故不能作为仿真参考。2.2专业性的离线编程软件加拿大的RobotMaster是一款专业的工业级离线编程软件,它能够为设计阶段的机器人产品进行模拟仿真,但需要使用者拥有较高的专业能力且投入大量精力在仿真系统的搭建中。虽然在其衍生产品中有模块化的迹象,但均像上文提及的那样包含了很多开发人员对使用者需求的主观猜测,也不具备良好的模块化特征。2.3模块化教育机器人像索尼KOOV可编程教育机器人一样针对低龄消费者的机器人开发产品在今年不断出现,此类产品满足了对于降低开发门槛的模块化需求。但此类产品往往不具备二次开发应有的功能性。3.低耦合模块化设计系统要解决的问题3.1面向零基础的交互设计南京工程学院学报(自然科学版)2017年3月——完善的交互设计能够让使用者在付出最少的学习成本的前提下完全使用产品针对该用户设计的功能。简要方案:使用三维画面作为界面的主要组成部分,主要用于机器人显示及物理仿真,对模块的选择操作均在这个画面中进行。对于具体模块的调节和程序逻辑导入界面则放置在隐藏交互面板中。3.2模块化搭建虚拟机械结构在构建机器人机械结构的过程中完全使用可复用模块进行搭建,并且可以调节质量,摩擦力等参数。简要方案:模块化要求高度概括并适当集成开发中所使用的硬件。在没有效能测试的项目中,导线,电源等均设为理想状态,保有其功能但不予以模拟。对于有轴机械结构将预留对其转矩或固定转速等参数设定,其余结构为默认的标准模型。未确定物理外观的模块将以“逻辑点”来表示,即一个可选中的逻辑点包含质量,旋转数据,连接子物体等参数,但没有实际物理形态,其实际物理形态可使用预设模型或由使用者自行导入模型。3.3离线仿真测试(低耦合编程)支持与单片机系统的数据转换,能够在离线调试中生成并存储可供硬件系统转换使用的程序和数据。简要方案:用命令模式[2](在C#中集成为event系统)编辑仿真程序的主要逻辑,将模块所需要执行的命令集成在命令库中,为每个命令编写其自身对应的单片机串口指令。这样在编辑仿真环境逻辑的同时单片机指令集合就能接收命令并作出相应的改变。3.4支持新模块拓展为了适应相对专业的开发人员,本文所述工具应在简化开发流程的基础上保留开发的拓展性,可以由外部资源导入模块模型并可进行模块逻辑的二次编程。简要方案:Unity支持对其资源的热更新,所有模块可以以一个简单的Perfab表示,若需要更新模块的机械模型资源只需在编辑器中重新编辑并导入即可。若仅仅改变模块运作逻辑而使用原机械模型结构则可使用自带的一些基础形状素材对模块的物理外形进行编辑。图(1)为本文软件原型进行六足机器人开发的画面。4.对于开发工作的改善4.1预先分析基本结构合理性在各种终端上进行模块化搭建开发初期的构思能够更加快速的对设计原型进行初步分析。虽然可以通过建模软件也能够描述出其机械结构,但是没办法对力学参数进行分析,而且没有可调节性,无法实现动态模拟。4.2简化测试而现有的机器人控制系统已经实现了对任意数量的舵机或其他元件进行控制,但是现有的机器人(1)六足机器人动作调节南京工程学院学报(自然科学版)2017年3月——控制只能进行上位操作控制既定的机器人,所以必须连接机器人硬件后才能开始测定机器人的物理特性。本文软件原型里自带了一套对虚拟机器人进行上位的系统,通过在各种平台发布,开发者可以随时随地对机器人的工作状态进行仿真甚至更改其机械结构。4.3降低硬件损耗另外在没有虚拟场景调试的机器人测试工作中,机械结构设计以及其他方面的失误会造成一定程度的硬件损坏。在大体量开发项目中硬件的损耗往往成为最大的计划外开销。通过离线设计和离线调试,一方面可以降低硬件的使用频率以留存其使用寿命,另一方面也可以规避一些会造成测试事故的硬件修改,从而避免一些零部件的损毁。5.理论验证及实际开发测试5.1理论验证在人工效率固定的前提下:总调试时间约等于总动作数和总关节数(所有可动机械结构)的乘积。为迭代次数。总装配时间约等于总关节数和机械复杂程度的乘积在计算总操作时间前需要引入一个迭代因数。迭代因数为开发过程中增加的完全设计更改单位(以初次开发时间为单位),初始值为1整体重新设计迭代一次迭代因数加1,这里取迭代因数为一个大于1的随机小数。计入迭代后总时间为每次迭代后的总调试时间与总装配时间之和与迭代因数的乘积。在开发过程中的大小主要由设计需要决定,而和软件工具无关所以开发时间差异主要受和迭代因数影响。5.2基本开发功能对比测试图(2),图(3)分别为南京工程学院创新学院机器人舞蹈团队分别使用经典上位机和本文软件原型开发过程中的时间分配图(单位:小时)和人员分配图(单位:人)。测试人员均为来自同一团队的新手开发者,由原版上位机开发者以及本文软件原型开发人员交换进行技术引导。测试中要求使用相同规格硬件制作能够完成前进后退及左右转向的人型机器人。此次测试时为了对如下规律进行形象描述。本规律来自于该团队长期机器0102030405060708090100经典上位机本文软件原型逻辑编辑结构设计动作编辑硬件装卸(2)开发时间对比南京工程学院学报(自然科学版)2017年3月——人开发的经验积累,对以轴关节和轮为基本元素的机器人开发有一定参考意义,无法对有硬件特殊要求或人工智能等软件创新型开发提供参考。测试结果:动作编辑和结构设计消耗的时间占比重较大,本文软件原型可能在一定程度上降低了多余的硬件装配,本文软件原型在开发过程中能够让更多的人参与设计制作。以上测试结果与理论结果所反映的结果基本一致。5.3理论开发情况预测根据理论数据和测试结果对迭代因子和开发时间进行预测如图(4)。根据这种估算,在没有高效迭代机制的环境下随着迭代次数的增加,开发时间会快速增长,以至于制作大体量并经过良好迭代的新型机器人变得越加困难。由于制作结构不统一的机器人基本无法控制变量,所以对于创新结构的机器人只能进行一些理论推想:该机器人团队的同学们使用的是基
本文标题:基于Unity的低耦合机器人设计
链接地址:https://www.777doc.com/doc-4925288 .html