毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc

上传人:yyf 文档编号:3949217 上传时间:2019-10-11 格式:DOC 页数:64 大小:739.50KB
返回 下载 相关 举报
毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc_第1页
第1页 / 共64页
毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc_第2页
第2页 / 共64页
毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc_第3页
第3页 / 共64页
毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc_第4页
第4页 / 共64页
毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-激光导航运载机器人运行环境和引导环境的中文动态画面输入软件.doc(64页珍藏版)》请在三一文库上搜索。

1、激光导航运载机器人运行环境和引导环境的中文动态画面输入软件作者:学号: 专业:计算机科学与技术指导老师: 目录摘要3第一章绪论61.1什么是AGV系统61.1.1 AGV系统的组成61.1.2 AGV系统的工作原理61.1.3 导航71.1.4 激光导航小车系统的组成81.2 课题的来源与意义91.3 国内外研究的现状10本章小结11第二章系统主体分析122.1 系统的目标122.1.1系统的要求122.1.2 系统的技术指标122.2 设计思想132.2.1可行性研究132.2.2需求分析132.2.2.1系统的数据要求142.2.2.2系统的功能描述142.2.2.3系统的数据流图15本章

2、小结15第三章系统设计163.1 实现方案163.1.1软件开发遵循的基本原则163.1.2 过程式软件设计的基本原理173.1.3 采用面向对象的设计方法173.2 结构设计193.2.1 系统的数据结构193.2.2 系统的软件结构(层次图)20本章小结21第四章系统的实施224.1 系统的实现224.1.1类模块224.1.2模块454.1.3窗口474.2系统实现总结56第五章总结56致谢58附录59附录一59附录二59英文资料及其译文59摘要AGV 系统是集光,机,电,计算机与一体的高新技术,是柔性化,智能化程度极高的输送系统,可广泛应用于生产线、仓库、商场、机场等物资运输场所。自从

3、AGV 问世以来,各种各样的制导方式相继被用在AGV上,这些制导方式可归纳为固定线路和非固定线路两类。目前在工业上实用的制导方式主要有下面几种:固定路线(磁性、光学、电磁感应)。非固定路线激光扫描。随着生产力和工业自动化水平的日益提高,物流系统中所蕴藏的巨大潜力将越来越引起人们的重视,开发物流潜力,提高生产的总体效益已经成为现代化生产的重要标志之一。AGV系统可划分为两个组成部分,上位机模块确定运载小车的行为,并提供监控服务;下位机模块实施对运载小车的物理控制。本系统是基于Windows平台,运行于上位机的软件系统,采用VISUAL BASIC 6.0编写,实现了对运载小车运行环境、行走轨迹的

4、实时创建、修改和管理。使AGV系统变得更科学、合理、方便,提高了企业的管理效率。同时为了使系统的使用者能够方便得使用软件,系统的用户界面简单、明了、美观大方、容易操作使用。通过对软件系统从无到有,逐渐建立起来的过程的介绍,读者还可以体会到采用软件工程思想的必要性以及用类的思想创建软件的优越性。ABSTRACTThe AGV system is a new technology which collected optics, machine, electricity, computer, and is a flexible, has extremely high intelligent degr

5、ee conveyer system. It can be apply to the goods and materials transport fields extensively, such as production line, warehouse, market and airport etc.Since the AGV system comes out, various guidance ways are used on it in succession. These guidance ways can be summed up for two kinds, the regular

6、circuit and non-regular circuit. At present, two kinds of guidance way under practical used in the industry are: Regular route (magnetic, optics, electromagnetic induction); Non-regular route-Laser scanning. Improve day by day with productivity and industrial automation level, material flow system c

7、ontained enormous potentiality catch peoples eye. Developing the material flow potentiality, the overall benefit of improving production has already become one of the important sign of modern production. AGV system can be divided into two components, goes to the location machine module -Confirm that

8、 carries the behavior of the car, and offer service of controlling; Go to the location machine module -Control physics which carries the car. This system is base of Windows platform, run on the ?, developed by VISUAL 6.0 BASIC. Realize to carry car running environment, walk the establishing, fix and

9、 manages in real time of orbit. Make The AGV system become more science, rational, convenient and also improve the efficiencies of management of enterprises. At the same time, in order to make the user who uses this system can use software so conveniently, the systematic user interface is simple, cl

10、ear elegant in appearance and easy to operate and use. Through the introduction of the course of the software system establishing, Reader can also realize the necessity of using software engineering and the advantage of using class to establish software system.l 关键词n AGV 系统n 制导方式n 激光扫描n 上位机n 下位机第一章绪

11、论1.1什么是AGV系统AGV是自动导引小车(Automated Guided Vehicle)的英文缩写。根据美国物流协会定义,AGV是指装备有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输小车。 AGV是现代物流系统中的关键设备之一,它以电池为动力,非接触导引,根据实际需要可配备不同的移载机构,完成相应的操作任务。1.1.1 AGV系统的组成在大体上,AGV系统可划分为两个主要的组成部分:上位机模块和下位机模块。上位机模块主要由图形监控系统、控制系统、无线通信系统和信号采集系统构成,确定运载小车的行为,并提供监控服务;下位机模块主要由运载小车、导航系

12、统和自动充电系统构成,实施对运载小车的物理控制。下面的图中展示了各个系统之间的关系:图形监控系统控制系统无线通信系统信号采集系统运载小车导航系统自动充电系统上位机下位机1.1.2 AGV系统的工作原理AGV在其运行区域内,规定有通信区和非通信区。在通信区域内,AGV通过其车载通信装置与系统控制计算机通信,报告其位置及状态,并接受高度和工作指令。在非通信区域内,AGV按照小车控制器中的预定程序独立行驶,不与系统控制计算机发生联系。其工作过程为:当接收到货物搬运指令后,小车控制器就根据所存储的运行地图和AGV 当前位置及行驶方向进行计算、分析,选择最佳的行驶路线,通过驱动放大器自动控制AGV的行驶

13、和转向,到达装载货物目标点准确停位后,移载机构动作,完成装货过程。然后AGV起动,驶向目标卸货点,准确停位后,移载机构动作,完成卸货过程,并向控制计算机报告其位置和状态。随之AGV起动,驶向待命区域。接到新的指令后再作下一次搬运。AGV行驶过程中,车上的导航系统不断地从导航设施中获得数据,由定位计算机算出AGV 当前在全局坐标系中的X、Y坐标,和当前行驶方向与该坐标系X轴的夹角,实现准确定位和定向。1.1.3 导航自从AGV问世以来,各种各样的制导方式相继被用在AGV上,这些制导方式可归纳为固定线路和非固定线路两类。目前在工业上实用的制导方式主要有下面几种:固定路线(磁性、光学、电磁感应)。非

14、固定路线激光扫描。激光扫描技术是瑞典NDC公司于90年代初研制成功的一项技术。由于它的先进性,突出的灵活性和适应性,完备的功能保障和技术支持,已被世界许多AGV生产厂家所接受。激光导航的原理利用激光的不发散性对运载机器人所处的位置进行精确定位来指导机器人行走。激光头是安装在运载机器人顶部的一台设备,每隔数十毫秒旋转一周,发出的激光束是经过调制的,具有很强的抗干扰的能力。在收到经特制的反射板反射光时,经过解调,即可得到有效的信号。激光头的下部有一个角度数据的编码器,计算机可以及时读入当时收到反射信号时激光器的旋转角度。在运载机器人的工作场所预先安置了具有一定间隔的反射板,其坐标预先输入了计算机。

15、激光头坐标点和车体倾斜角的计算见下图:在激光器扫描一周后,可以得到一系列反射板的反射角,如选取其中三个反射角(如上图),则有可供计算的三点坐标和二个夹角,经过计算机计算,即可算得激光旋转中心的坐标。同时,根据以上数据,亦可算出车体激光旋转头的零度角相对于X轴的夹角,即为倾斜角。1.1.4 激光导航小车系统的组成激光导航小车(LGV:Laser Automatic Guided Vehicle)是采用激光作为导航系统的AGV系统。激光导航小车由下面几个部分组成:处于核心位置的主控制器;伺服驱动器、手动控制器、驱动转向系统;底盘系统、车体系统、装载系统、电源系统、安全防撞系统;激光扫描器、无线电通

16、信装置;主控操作面板。这些系统设施之间的关系如下图所示:由于激光导航小车系统与其它的AGV系统仅在导航方式上有所不同,因此其上位机部分并没有发生太大的变化,仍然由图形监控系统、控制系统、无线通信系统和信号采集系统构成。激光导航与其他引导方式的技术优势对照表:项 目LGV激光导航AGV (电磁、磁、光)引导沿引导线的测定位精度精度高,1CM。是连续的绝对地址。精度低。靠磁钢和其它传感器定位补充,间断不连续。对引导线的偏差距离测试精度高,1CM。精度低,35CM。易受环境干扰。车体倾斜角测试精度高,2度。车体纠偏角测试精度高,1度。估算精度很低,10度。行进路线设置简单方便。预贴反射板后,软件可设

17、置行进路线,并可随时更改。复杂,工程大,不易更改。电磁:地下预埋。磁:地面预贴,易吸引其它铁磁物体。光:地面预贴,易受色污染。岔道设置简单方便。软件设置,并可随时更改。复杂,工程大。电磁:分频引导磁:没有好的解决方法光:分色引导,增加滤色镜,系统复杂程序启动时的自适应可以实行开机自适应初始化。不能进行。必须手动输入初始位置。探测设备单一探头系统,维修方便多探头、多方式系统,维修复杂。抗干扰抗干扰能力强。可采用激光调制解调技术。抗干扰能力弱。走行运动精度高,1CM。较低,3CM。1.2 课题的来源与意义课题“运行环境和引导环境的中文动态画面输入软件”来源于上海富洋科技发展有限公司。上海富洋科技发

18、展有限公司原隶属于上海太平洋化工集团溶剂厂技协。上海太平洋化工集团溶剂厂是国家大型企业、国家二级企业,经过企业改革,重组后富洋科技公司属民营企业,是经上海市科学技术委员会批准,专门从事物流输送的科工贸一体化专业公司。公司虽小但起点高,依托与上海电气自动化研究所、上海交大、上海大学、北京科大等高校、研究所的技术合作,开发成功有轨无人电动车新闻纸全自动输送系统、彩色集中全自动供墨系统、运载机器人(AGV)暨物流自动控制系统等产品,已推广使用。其中插腿式运载机器人达到九十年代国际先进水平。该公司为上海新民晚报报业集团、杭州日报报业集团、北京日报报业集团,开发的有轨无人电动车新闻纸自动输送系统已正常使

19、用多年;广州羊城晚报报业集团、青岛日报报业集团无轨运载机器人新闻纸自动输送系统也投入生产线并正常运行。目前,公司正致力于对LGV系统的研究和开发,整个项目由以下11个部分组成:a) 国产(高抗干扰型)旋转激光头的研制和生产b) 激光导航的基本工作方法和测试各反射板的测试原理。c) 激光发生接收器的电路光路和机械结构。d) 坐标、引导角、偏移量的快速计算数学模型。e) 激光导航运载机器人车运行状态控制的软件方法f) 激光导航运载机器人过引导线岔道的软件控制方法。g) 程序启动时或记忆丢失时的运载机器人坐标的智能模糊判断h) 非对称性场景设置研究i) 激光导航与原电磁引导运载机器人及系统的接入和改

20、造问题j) 运行环境和引导环境的中文动态画面输入软件k) 激光导航运载机器人在工业上的实际应用问题。可以看到,“运行环境和引导环境的中文动态画面输入软件”是整个LGV系统中一个很重要的组成部分。软件系统工作于上位机模块,作为图形控制系统,并拥有部分图形监控功能。采用Windows流行的图形操控方法达到LGV系统的路径初始化设置,轨迹路径的实时修改、发送、保存,用图形化的方式展示整个工作环境等目标。使得LGV系统的操作人员能够方便快捷准确无误地生成、更改、查询、删除自动导航小车的行为状态。1.3 国内外研究的现状激光导引技术是瑞典NDC公司于90年代初研制成功的一项技术。由于其先进的指标和性能,

21、突出的灵活性和适应性,完备的功能保障和技术支持,已被世界许多AGV生产厂家所接受。到目前为止,已有上百个AGV系统的近千辆激光导引小车投入商业运行。应用领域涉及汽车、电子、造纸、医药、烟草、冶金等多种行业。思想新颖,技术先进,方法科学,性能优良,功能完善,是奠定其在AGV领域世界领先地位的基本条件。而激光导航运载机器人国外近几年刚研究开发,以瑞典NDC公司的技术为主导地位,其他国家如日本村田机械、大福公司、奥地利、德国等国家在不同领域使用的,其技术主要也是引进瑞典NDC公司。我国目前有个别高校(如哈尔滨工业大学)也在研究,但都没有形成产业化。昆明船舶研究所引进瑞典NDC公司的激光导航技术,应用

22、在AGV上组成系统,目前在烟草加工业推广应用,一台运载机器人要价60多万,一套系统600多万,因其成本售价高,使大多数用户用不起。沈阳新松公司(原属中科院沈阳自动化研究所)也研制成功了AGV , 在汽车装配线推广使用 。根据调查也在进行开发激光导航的技术,至今未见产品面市。有些厂家为了抢占市场,提前打出广告造声势,但现阶段国内市场还没有自主技术开发的激光导航机器人产品。由于激光导航运载机器人目前国内还没有产品,运载机器人物流自动控制系统目前国内只有两家企业刚投入生产。昆明船舶研究所:其激光导航技术是依靠引进瑞典NDC公司的技术,知识产权属于瑞典公司,其运载机器人和配套系统造价很高;沈阳自动化研

23、究所研制的运载机器人是采用电磁感应制导技术。以上两单位都是国家部级支持资助的特大工业生产企业。我们国内目前虽然个别院所也在研究开发激光导航这类项目,但真正形成产业化的还没有。上海富洋科技发展有限公司力争在短期内研制开发出具有自主知识产权的激光导航运载机器人并形成产业化生产,争创国内一流、国际先进。国内现状国外现状1. 引进技术推广2. 研究开发阶段技术成熟,大量使用国内发展趋势国外发展趋势市场需求大有发展前景用户发展迅速,觊觎国内市场本章小结本章首先对AGV系统的概况进行了介绍,并介绍了新兴的采用激光进行导航的AGV系统LGV系统。然后,通过对上海富洋科技发展有限公司LGV项目的介绍,引出了论

24、文课题“运行环境和引导环境的中文动态画面输入软件”的来源。第二章系统主体分析2.1 系统的目标系统的目标就是要对问题予以定义,“要解决的问题是什么?”。如果不知道问题是什么就试图解决问题,显然是盲目的,最终得出的结果很可能是毫无意义的。通过问题的定义,应该得到问题的性质、目标和规模等书面报告。2.1.1系统的要求激光导航运载机器人要求在工作环境中能自动判别自身位置,能根据上位机指令识别运行路径和目的地。首先要把全部工作场景输入计算机:场景尺寸、激光反射板位置和数量、路径线形与数量。以上信息输入计算机形成文件通过无线收发,传输到下位机,以便控制机器人。场景、反射板、路径能根据不同工作状态随时修改

25、,使得操作方便容易。设计机器人行走路径时,能自动寻找标志位置,不同线形平滑连接。人机界面友好,画面美观。2.1.2 系统的技术指标技术指标:通过软件,实现上位机指令发布,下位机能按照上位机指令运行。2.2 设计思想这里包括了可行性研究与需求分析。通过这些工作,来确定这个软件系统是否“行得通”,以及“必须具备哪些功能”。2.2.1可行性研究对于系统的可行性分析首先必须对系统目标进行全面地分析,具体确定工程的规模、目标,并估计系统的成本和效益,得出系统是否要开发的结论,及时中止不值得投资的项目,避免出现不必要的浪费。本系统可行性分析包括三方面:l 技术可行性“运行环境和引导环境的中文动态画面输入软

26、件”,即本系统运行于AGV系统的上位机模块,该模块的硬件平台是基于IBM-PC及其兼容机系列的,拥有良好输入输出端口的计算机系统。其软件平台采用的是Microsoft Windows 2000操作系统。本系统采用目前流行的在Windows下程序开发语言Visual Basic 6.0编写。Visual Basic 由于功能强大、简单易用而有着广泛的用户,尤其是在数据库、多媒体、商用系统的用户界面以及一般应用程序的设计等方面,Visual Basic 更是有其他开发环境所不能替代的优越之处。l 经济可行性本系统由于采用了Visual Basic 进行开发,其图形处理的强大功能使得开发周期大大缩短

27、,系统开发时间大约3个月。l 操作可行性系统大量地采用了Windows下的绘图操作概念,使得用户容易上手,软件简单易学,大大提高了软件使用的效率。本课题涉及的知识概括为:l 关于VB的知识,包括VB中种类繁多的控件的使用l 关于无线MODERM方面的书、资料、技术手册。了解原理、开发步骤。l 关于机器人控制方面的书。l 上海富洋科技发展有限公司提供的内部技术资料2.2.2需求分析需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。2.2.2.1系统的数据要求本软件系统所涉及到的事物有:场景(场地)、反射板、路径。由这些信息组合在一起,称为一个轨迹工程。场景是AGV系统工作的区域,场景中

28、将容纳反射板、路径等物体。为了方便AGV系统的处理,一个大的场景(场地)可以由一个个小的场地(子场景)组成。因此,场景的数据可以用下列的信息表示:场景大小;场景中子场景的数量n;子场景1的大小;子场景2的大小;子场景n的大小。反射板是用于反射激光的有机玻璃板,提供了AVG系统的定为参照。其数据定义为:放射板编号;反射板坐标(x,y)。路径是由一段一段的线段连接而组成的。目前线段有两类:直线和1/4圆弧。因此保存路径时要分为五种情况才能正确地保存数据。其数据定义为:路径段编号;险段类型:分别有直线、第一象限圆弧、第二象限圆弧、第三象限圆弧及第四象限圆弧;起始点坐标(x1,y1);终止点坐标(x2

29、,y2);圆心坐标(xo,yo);半径;斜率;截距。(以上数据的精度在以“米”为单位是小数点后1到7位)要保存一个完整的轨迹工程,就需要以上所有数据的支持。2.2.2.2系统的功能描述输入系统:这是数据输入的核心。由于采用的是图形模式的数据输入方法,所以要求系统能将用户在屏幕上绘制的系统转换成一定的数据格式,并保存起来,形成文件;同时输入系统还要能够从文件中读取数据,将保存起来的数据恢复成原来的格式。绘制系统:这是数据图形显示的核心。将输入系统中的数据应图形的方式显示出来,并能够根据用户的要求或者窗口大县的变化及时调整图形,按照一定比例进行缩放;同时绘制系统还要为输入系统提供必要的坐标转换参数

30、。输出系统:这是数据输出的核心。将输入系统的数据显示在一定的窗口中,提供用户统计、查询、打印等功能。2.2.2.3系统的数据流图场地数据路径数据反射板数据保存文件窗口AGV绘制用户操作转换本章小结在这一章中,分析了激光导航运载机器人运行环境和引导环境的中文动态画面输入软件的可行性,并通过数据定义、功能要求、数据流模型确定了软件的需求。第三章系统设计本章将介绍软件系统的总体设计阶段。总体设计的基本目的是解决系统应该如何实现,其过程为:首先寻找实现目标系统的各种不同方案,然后分析员从这些供选择的方案中选取若干合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本效益

31、分析,并且制定实现这个方案的进度计划。总体设计通常由两个阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件的结构。3.1 实现方案本系统采用VB6作为开发平台,因为VB6时面向对象的程序设计语言,因此开发的过程既要符合过程化的设计标准,也要使用到类的概念。3.1.1软件开发遵循的基本原则严格性和形式化原则分隔原则模块部件化原则抽象原则预期变化原则通用性原则软件复用原则递增模式原则3.1.2 过程式软件设计的基本原理本节将讲述过程式软件设计原理。1 模块化模块是数据说明、可执行语句等程序的集合,它是单独命名的而且可以通过名字来访问,例如,过程、函数、子程序、宏等等都可以作为模块。模块

32、化就是把程序划分为若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能满足问题的要求。采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序出错通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以也可提高软件的可修改性。2 抽象人类在认识复杂想象的过程中使用的最强有力的思维工具就是抽象。抽象就是抽出事物的本质特性而暂不考虑它们的细节。当我们考虑对任何问题的模块化解法时,可以提出许多抽象的层次。在抽象的最高层次使用问题环境的语言,以概括的方式叙述问题的解法;在较低抽

33、象层次采用更过程化的方法;在最低层次用可以直接实现的方式叙述问题的解法。3 信息隐蔽和局部化局部化的概念和信息隐蔽的概念是密切相关的。所谓局部化是指把一些关系密切的软件元素物理地放的彼此靠近。隐蔽则意味着有效的模块化可以通过定义一组独立的模块而实现。如果在测试期间和以后的软件维护期间需要修改软件,那么使用信息隐蔽原理可以带来极大的好处。因为绝大部分的数据和过程对于软件的其他部分而言是不可见的,修改期间的疏忽而引起的错误就很少可能传播到软件的其他部分。4 模块独立模块独立是模块化、抽象、信息隐蔽和局部化的直接结果。为什么模块独立性很重要呢?第一,有效的模块化的软件比较容易开发出来。这是由于能够分

34、割功能而且接口可以简化;第二,独立的模块比较容易测试和维护。模块的独立性可以由两个定性的标准衡量,这两个标准分别称作内聚和耦合。耦合是对一个软件结构内不同模块之间的互连程度的度量;内聚标志着一个模块各个元素彼此结合的紧密程度。一个模块独立性较高的软件,应该是高内聚、低耦合的。3.1.3 采用面向对象的设计方法面向对象的程序设计方法学是建立在过程化、模块化程序设计方法学之上的。在过程化程序设计方法的基础上,面向对象的设计方法又添加了以下概念。1类与对象“类”是对具有相同数据和相同操作的一组相似对象的定义。也就是,类是对具有相同属性或行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该对

35、象的说明。对象则是类的具体化、实例化。类具有三个特性封装性;继承性;多态性。一般来说,面向对象的程序设计语言应该支持以上三个特性。2为什么要使用类概括地说,面向对象的设计方法具有下述要点:(1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。(2) 把所有对象都划分为各种对象类,每个对象都定义了一组数据和一组方法。(3) 按照子类与父类的关系,把若干个对象类组成一个层次结构系统。(4) 对象彼此之间仅能通过消息传递的方式进行联系。对象与传统的书具有本质的区别,它不是被动的等待外界对它实施操作,相反,它是进行处理的主体,必须发消息请求他执行它

36、的操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。也就是说,一切局部与该对象的私有信息,都被封装在对象类的定义中,就好像装在一个不透明的黑盒子中一样,更不能直接使用。因此使用类的面向对象的方法学可以做到:(1) 与人类的习惯的思维相一致面向对象的方法学使用现实世界的概念抽象地思考问题从而解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考。在面向对象的设计方法中,现实世界的模型才是最重要的。面向对象的设计方法的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然的表现求解方法的软件系统。(2) 稳

37、定性好面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本做法是用对象模拟问题领域的实体,以对象间的联系刻画实体间的联系。因为面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要做一些局部修改。(3) 可重用性好对象所固有的封装性和信息隐藏机理,使得对象内部的实现与外界隔离,具有较强的独立性。因此对象类提供了比较理想的模块化机制和比较理想的可重用软件部分。(4) 可维护性好可维护性好体现在:稳定性好;比较容易修改;比较容易理解;易于测试与调试。因此使用面向对象的设计

38、方法可以提高目标系统的可重用性,减少了软件生命周期后续阶段的工作量和可能犯的错误,提高了软件的可维护性。3.2 结构设计在本小结中,我们将根据需求分析中提出的要求定义本系统所用到的数据结构,以及本系统的软件结构。3.2.1 系统的数据结构在需求分析中,我们已经给出了场景(场地)、反射板、路径数据结构的形式化定义,这里将给出使用类VB语言的定义:Private Type 场景 gNo As Integer xo As Single yo As Single Length As Single Width As Single End TypePrivate Type反射板 bNo As Intege

39、r X As Single Y As SingleEnd TypePrivate Type 路径 iNo As Integer eType As Integer x1 As Single y1 As Single x2 As Single y2 As Single xo As Single yo As Single r As Single k As Single b As SingleEnd Type同时,当数据保存到文件中去的时候,场景(场地)、反射板、路径数据采用分为三个文件独立保存的方法。然而,由于只有当一个轨迹工程的场景、反射板、路径数据文件都存在并读入系统后,这个工程才是完整的。显然

40、,要求用户选择要读入的文件是不合时宜的,这不仅增加了用户读入选择的次数而且使得系统的危险性和不可靠性增加。因此,设计一个工程文件来存放一个轨迹工程的场景、反射板、路径数据文件的名称,用打开这个工程文件来读取所有的数据变得非常必要。同时,工程文件中还能够保存一些附加的内容,比如工程的名称,创建人是谁等等。其实,工程文件的身影随处可见。就拿VB开发的源程序项目来讲,其就是由一个工程文件vbp和数个窗口frm,类cls、模块mdl等文件构成,通过打开某个vbp文件,就打开了这个程序项目的所有文件。又如VC开发源程序项目,也是通过工程文件dsw/dsp以及数个程序文件.cpp、.h、.res构成的。参

41、照这些工程文件的格式,我们这里采用Windows INI文件格式。INI文件读写方便,带有一定的结构特性,是非常适合做数据记录的文件形式。这里我们将轨迹工程的数据结构定义如下: sProjName As String 工程名 sUserName As String 建立工程的人员名称 sDetial As String 工程描述 sLCFName As String 保存路径的文件名 sBBFName As String 保存反射板的文件名 sGDFName As String 保存场地的文件名3.2.2 系统的软件结构(层次图)分析软件的结构可以使程序结构清晰,提高模块化程度,是编写有较高模

42、块独立性的程序的基础。同时,在分析软件结构的过程,还可以获得对象的模型及其层次。1软件结构图AGV运行环境和引导环境的输入软件绘制场地直线圆弧反射板添加编辑报表打印工具连接性检查路径探寻(图论)重新编号系统设置删除文件操作创建打开保存导入导出文件帮助实时帮助帮助文件2类的划分由软件的层次结构图,我们可以通过分析分化功能,得出以下类。专用类有关于绘制系统的类,如场地类、直线类、圆弧类、反射板类。这些类要能够保存相应的数据,添加、编辑、删除信息,以及完成读写。保存工程的类,完成工程信息的读写。保存软件系统的设置和状态,并能够将其保存起来。坐标转换,提供窗口坐标和物理坐标的互换。通用类完成文件的读写

43、的类。完成INI文件的读写。能够提供Windows信息的一些类。本章小结通过对软件系统的结构和数据结构的分析,我们基本获得了编写软件的信息,为后面的详细设计和系统地实现打下了良好的基础。第四章系统的实施系统的实施是一个软件系统具体的实现阶段,这里将详细介绍本系统是如何构成的。本软件系统采用基于类的构造方法进行建立,所有的关键算法到处在类模块中,做到系统中类处于核心状态,窗口只能通过调用类的方法控制它的行为到达到所需要的功能。本章将按照“类模块窗口”的从核心代码到外延代码的顺序介绍本软件系统的构成,从中说明为什么要采用模块化设计和面向对象方法进行软件设计的原因。4.1 系统的实现在VB开发系统中

44、,代码可以处于三个部分:窗口,模块,类模块。窗口中的代码主要的实现窗口上的事件响应;模块中的代码主要用来定义声明一些全局的变量和函数;类模块则是定义类的地方了。4.1.1类模块1 VB中的类在VB中类被称作“类模块”。虽然VB也可以使用类,但它的类与C/C+中的类有着很大的不同。首先,VB并没有完全支持类,它仅仅提供了对类“封装性”的支持,无法完成“继承性”,因此在很多媒体中都将VB称作“基于对象”的程序开发语言。其次,VB对类中的成员函数分为三类:方法:即普通的函数;属性:一种特殊的函数,既可作为右值也可以作为左值;事件:由操作系统在特定条件下调用的函数。再次,VB中类的构造函数不可带参数,也不可以重载。因此在使用VB编写类时,要特别注意它的限制和特点。2 本系统使用到21个类,其中9个类为本软件专用,而其余的是通用类模块。专用类CtheApp记录和保存了程序的设置和状态CFY_BaffleBoard保存反射板信息并绘制CFY_Circles保存圆弧信息并绘制CFY_DrawItemDatas保存线段信息并绘制CFY_Grid绘制网格并计算网格信息CFY_Ground保存场地信息并绘制CFY_Li

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1