(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf_第1页
(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf_第2页
(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf_第3页
(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf_第4页
(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(机械电子工程专业论文)机器人大脑图形化开发平台的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

捅矍 机器人大脑的图形化开发平台系统提供通过图形化编程方式对机器人的工作行为进 行控制。这是通过软件开发环境和与机器人硬件通信连接模块的综合应用的平台。软件 开发环境是一种类图形化的编程的应用软件。在平台软件中对机器人需要执行工作或动 作内容封装为一个个用来表示的执行函数图元、工作流程图元、数据流、控制流以及其 连线图元组成。 全文主要分为四大部分,主要内容如下: 首先图形化开发平台的结构和方案设计。重点说明n e t 与g d i + 方案构建图形化平 台的过程。给出详细实现代码和操作流程图。并对其优劣做出判断说明。 其次重点讲述图形化平台流程图图形化编程的支撑技术e c l i p s eg m f 图形建模框架 的结构和要点。对如何通过e c l i p s eg m f 技术建立图形框架做了进一步阐述。对建模语 言u m l 建模方法和建立领域模型的图元以及图元关系给出了基本模型。 再次分析结构化程序语言用流程图图形表示方法的可行性。以及重点实现如何将流 程图中的节点和连线用图元表示。实现用u m l 统一建模语言将流程图中的节点和连线 的图元以及图元之间的关系建立成g m f 可识别的领域模型,用以此模型表达出结构化 程序语言。并且针对机器人工作的特点优化模型并将机器人工作流程转换为x m l 格式 的流程图描述文件。并给出基本代码。 最后针对图形化开发平台的上位机流程图图形化编程软件和下位机机器人工作执行 模块之间需要大量数据高速传输的特点。选用u s b 2 0 串行总线作为上下位机之问的通 信总线。选用了u s b 总线控制器。并完成了其固件程序的开发。 机器人大脑的图形化开发系统,根据机器人工作流程、模块工作的特点,使用了图 形化的编程方法。使机器人的使用者能够像搭积木一样“搭建”出所见即所得的应用程 序。使得没有编程基础的人员也可以使用机器人,可以按照机器人工作所关注的内容模 块使其工作起来。 关键词:图形化编程,机器人大脑,图形建模框架,图元 a b s t r a c t r o b o tb r a i nd e v e l o p m e n tp l a t f o r mg r a p h i c a lp r o v i d et h ew a yt oc o n t r o lr o b o tw o r k i n g w i t hg r a p h i cp r o g r a mm o d e t h i si sac o m p r e h e n s i v ea p p l i c a t i o np l a t f o r mw i t hs o f t w a r e d e v e l o p m e n te n v i r o n m e n ta n d r o b o th a r d w a r ec o m m u n i c a t i o nm o d u l e t h es o f t w a r e d e v e l o p m e n te n v i r o n m e n ti sg r a p h i c a lp r o g r a m m i n ga p p l i c a t i o ns o f t w a r e i nt h ep l a t f o r m s o f t w a r e ,r o b o t sw o r ko ra c t i o nc o n t e n tp a c k a g i n gf o rg r a p h i cu n i t g r a p h i cu n i tc o n s i s t so f f u n c t i o n ,w o r k f l o w ,d a t af l o w ,c o n t r o lf l o wa n da t t a c h m e n tl i n k s t h ep a p e rc o n s i s t sw i t hf o u rp a r t s ,m a i nc o n t e n t sa sf o l l o w s : t h ef i r s tp a r t :g r a p h i c a lp l a t f o r ms t r u c t u r ea n dp l a nt oe x p l o r e t h i sp a r ti sf o c u s e so n t h e n e ta n dg d i + s c h e m e w i t hp r o c e s so fc o n s t r u c t i n gg r a p h i c a lp l a t f o r m g i v e nt h ed e t a i l e d c o d ea n do p e r m i o nf l o w f i n a l l y , m a k et h ej u d g e m e n tw i t ht h i ss c h e m eq u a l i t y t h e p a r tt w o :f o c u s e so ns u p p o r t i n gt e c h n o l o g i e sf o rg r a p h i cp l a t f o r ma n de c l i p s eg m f g r a p h i c sm o d e l i n gf r a m e w o r ks t r u c t u r e a n dk e yp o i n t s h o wt ou s et h ee c l i p s eg m f t e c h n o l o g ym a d eg r a p h i c sf r a m e g i v et h eb a s i cm o d e lw i t ht h eu m lm o d e l i n gm e t h o do f m o d e l i n gl a n g u a g ea n dt h er e l a t i o n sb e t w e e n t h ef i g t u r ea n dm o d e l t h ep a r tt h r e e :a n a l y s i sw i t hf l o w c h a r tg r a p h i c sn o m t i o ni ns t r u c t u r e dp r o g r a m m i n g l a n g u a g e a n dh o wt oe x p r e s st h ef l o w c h a r ta n dr e a l i z a t i o n w i t hp i c t u r ei c o n s u s eu m l l a n g u a g et ob u i l tt h er e l a t i o n so f n o d ea n dw o r kf l o wi n t og m fd o m a i nm o d e l u s i n gt h i s m o d e le x p r e s ss t r u c t u r e dp r o g r a m m i n gl a n g u a g e a n da c c o r d i n gt ot h ec h a r a c t e r i s t i c so ft h e r o b o tw o r k i n go p t i m i z a t i o nt h i sm o d e l ,c h a n g et h er o b o tw o r kf l o wt ox m lf o r m a t d e s c r i b i n gd o c u m e n t s i nt h ee n do ft h i sp a r tg i v et h em o d e lc o d e i nt h ep a r tf o u r :b e c a u s eo fd a t a - h u n g r ya n dh i g h s p e e dt r a n s m i s s i o nc h a r a c t e r i s t i cw i t h t h eg r a p h i c a lp l a t f o r i l li np ca n dr o b o tw o r ke x e c u t e dm c u ic h o o s eu s b 2 0s e r i a lb u sa sa c o m m u n i c a t i o nb u s i nt h i sp a r t ,ic h o o s et h eu s bb u sc o n t r o l l e rc h i pa n dc o m p l e t e di t s f i r m w a r ep r o g r a m i nt h ee n do fp a r tf o u r , g i v et h ec h i p sf i r m w a r ec o d e r o b o tb r a i ng r a p h i c a ld e v e l o p m e n ts y s t e m , a c c o r d i n gt ot h er o b o tw o r k i n gs t e p sa n d w o r k i n gc h a r a c t e r i s t i c su s eag r a p h i c a lp r o g r a m m i n gm e t h o d i tm a k e sp e o p l ei nc o m p u t e r a p p l i c a t i o np r o g r a m m i n gf r o mc o m p l e xa n dt e d i o u s n e s s e s p e c i a l l yi ns p e c i f i ce n g i n e e r i n g f i e l d ,g r a p h i cp r o g r a m m i n gl a n g u a g ec a nm a k ea p p l i c a t i o np r o g r a ma sb u i d i n gb l o c k s t h e p e r s o n n e lw i t h o u tp r o g r a m m i n gc a n a l s ou s er o b o t s k e yw o r d s :g r a o h i c sp r o g r a m m i n g ;r o b o tb r a i n ;g m f ;g r a p h i cu n i t u 长安大学硕士学位论文 第一章绪论 1 1 课题研究背景及目的 随着计算机及其应用技术的诞生,人们对计算机应用特别是计算机高级语言发展的 充满了渴望。首先计算机发明的初衷其目的就是为人类服务,用来帮助人们实现他们所 需要解决和关注的事情。然而由于计算机编程语言复杂枯涩,把大部分人拒之在计算机 应用的f - j 夕l - 。这样的情况使得人们不得不花费相当大的精力以及时间用于学习与他们所 要解决和关注的事情毫不相关的计算机语言的语法、命令以及编译器编辑器等等这样的 东西。 然而图形化编程语言的出现给人们看到了一丝曙光。图形化编程语言使得人们从复 杂繁琐的编程工作中解放出来,特别是工程领域的工程师以及科学家们,这样可以使他 们能够专心于自己专业的领域,使用计算机解决所关注的问题。可以说通过图形化编程 环境,就可使编程者像搭积木一样“搭建 出所见即所得的应用程序界面【l 】o 对于程序 的执行内容则变成由一个个用来表示的函数的图标和图标之间的控制流连线,数据流的 连线组成。这样的编程方法不仅使得编程者不再需要记忆计算机编程语言中繁杂的语法 和函数,而使得编写程序的过程如写工作流程图一般与工程师科学家们的思维习惯相一 致,从而也能使计算机编程的过程由枯涩变得生动形象起来i i 3 】。 本课题机器人大脑的图形化开发系统操作平台,这个开发平台的核心是提供通过图 形化编程方式对机器人的工作行为进行控制的编程环境。即机器人图形化编程的i d e 环 境。 本课题将重点在p c 机上实现图形化编程这个概念,实现友好的人机交互界面,实 现虚拟仪器的效果。具体的即在上位机一般是p c 机一端建立起一个图形化开发平台, 对机器人的工作、行为动作进行逻辑编程。实现出像搭积木一样通过对机器人常用工作 函数、行为动作函数( 例如通常用功能函数有,机器人运动方向、机器人导航、物体识 别、机械手臂控制等) 的流程顺序的设置来控制机器人。并对机器人的行为动作进行监 控和测试。可以这样说一个机器人自动控制项目的8 0 工作量都集中在软件系统集成方 面,主要包括软件开发和软件定制。所以有了机器人图形化开发平台就可以像搭积木一 样,通过搭建图标构建程序1 ,- 6 1 。所以可以形象的将这样的机器人图形化开发平台称之 为机器人大脑。通过这样的图形化开发平台可以提高开发速度和减少软件工程师的工作 量,同时也可以减少项目开支。 第一章绪论 从这个角度讲机器人大脑图形化开发系统操作平台实际上是通过图形化方式的人机 交互手段的自动化测试软件的一种。同样需要说明的是机器人大脑图形化开发系统属于 机器人开发平台范畴。 在机器人应用领域,特别是工业和商用领域出现了一些机器人开发的应用平台。这 样平台有些是专注于专业机器人领域过于专业化,并且使用成本过于高昂,软件许可费 用较高。有些是拥有专门的编程语言环境,针对专业的机器人有不同的开发语言,需要 使用者二次学习,门槛较高。而本系统就是针对这样的情况而开发的,解决的这样的两 个问题。它是一个低成本的并且是使用流程图编程方式,使用简单的机器人开发编程环 拉 嘎。 1 2 图形化开发平台的国内外研究状况 概括的说图形化开发平台主要涉及到人机界面学中的图形化人机交互过程和自动化 测试领域中虚拟仪器中图形化编程语言这两个方面的内容。 人机交互技术即指h u m a n c o m p e e ri n t e r a c t i o nt e c h n i q u e s 。是人机界面学的一个主 要分支,它是用户与计算机系统相互之间的通信。实现人和计算机之间通信的软硬件系 统。通常讲的是通过计算机输入设备和输出设备,用有效的方式实现人和计算机交互沟 通的技术【7 ,引。这项技术主要包括计算机通过输出或显示设备给使用者提供大量有用信 息及相关的提示请示等,使用者通过输入设备给计算机输入有关信息等。人机交互技术 是计算机用户界面设计中的重要内容之一特别是计算机软件。它与人机工程学、心理学、 认知学等多个学科领域都有广泛的联系。而自动化测试领域中虚拟仪器在各种不同的工 程和行业中的测量控制应用中有着广泛的应用,尤其对于工业机器人自动化应用方面更 是如此。这主要是归功于虚拟仪器的直观的图形编程语言。其中虚拟仪器的图形化的数 据流和程序框图流程图能很好的自然地表述出数据流和控制流,同时也能通过图形化的 用户晃面直观的显示展示数据5 埘。 同样的随着计算机技术的发展,软件开发经历着从控制台方式的面向过程语言开发 环境到面向对象的可视化编程i d e 开发环境再到图形化编程环境的不断进步与发展。 一般来说计算机程序开发平台方式大致可以分为两种大的类别即:第一种是采用通用语 言开发环境。而另一种则是采用专用的开发环境。如果采用的是通用语言开发环境( 例 如v c 、c + + b u i l d e r 集成开发环境等等) 进行程序开发是需要开发人员具有一定的软件 编程能力【1 7 9 1 。而对于一些面向某个行业的专用软件的开发过程中,为了使程序开发人 2 长安大学硕士学位论文 员从繁琐复杂的文本式编程语言中解放出来而专注软件功效,并且缩短软件的开发周 期,降低软件的开发费用,各种专用开发平台应运而生,其中以图形化的编程方式为主 要代表。图形化的编程方式和图形化的开发平台使开发人员不必要编写文本式的代码, 而开发人员只需选择所需的图标( 图元,即对既定领域中通用的函数模块的提取) 并进 行连线和参数设置,就可以实现专业程序集的开发,这样作的结果是可以大大地提高开 发的效率。目前市场上常见的专业化图形化编程环境有:美国安捷伦公司的v e e 以及美 国国家仪器公司( n i ) 的l a b v i e w 等等 1 , 1 0 , 1 1 】。 目前在国内外计算机技术发展中特别是对于图形化的软件开发出现了很多种技术, 但是其中最主要的两种应用是基于组件技术和基于特征提取技术。 ( 1 ) 基于组件技术 在早期计算机软件开发中一个应用程序系统基本上就是一个单独的应用程序。这中 的应用程序一般:功能越复杂,程序就越庞大,从而系统开发的难度就越大,并且对于 应用程序的功能更新而言,应用程序很难更改。所以这种结构的应用程序系统已经不能 满足软件发展的需要。从软件系统结构来考虑,最好的方法就是把一个巨大的应用程序 分成多个模块,并且使每个模块在功能上保持一定的独立性,同时通过模块之间接口完 成任务协同工作。这样的模块需要内部保持功能的内聚性,而各个模块之间保持功能的 低耦合。这样的模块称为组件。般这些组件可以分别单独开发,单独编译测试。而组 件得有机组合就能较容易的实现系统的功能,从而开发出完备的应用程序。这种方式好 处是当外界的软硬件条件发生变化时,或者用户的需求改变时,只需对受到影响的那部 分组件进行修改,然后重新组合编译得到新的符合要求的应用程序【2 ,3 ,9 捌。 ( 2 ) 基于特征提取技术 特征提取技术的产生于上世纪八十年代初,并于上世纪八十年代中后期发展起来。 最初的特征定义仅仅包含了一些几何意义,即对象的形状特征,但是随着特征提取技术 的发展不断包含了更多的更广泛的含义和信息。但是由于特征这个概念是源于设计、分 析和制造等不同阶段的生产过程,因此人们对特征的认识也不尽相同,所以至一般无统 的特征定义。目前较为通用的定义是:特征就是任何已被接受的某一个对象的几何、 功能元素和属性,通过它们可以很好地理解该对象的功能、行为和操作。更为严格的定 义也被使用:特征就是一个包含着对象含义或一定意义的几何原型。特征在这里已经不 是普通的要素,而是一种封装一定属性( a t t r i b u t e ) 和功能( 缸l c t i o n ) 的要素。需要注意的是 第一章绪论 特征是一定信息的集合,特征可以具有按一定拓扑关系组成的特定形状,也可以反映特 定的某一专业工程语义,适宜在设计、分析和制造中使用【4 ,1 2 ,3 9 】。 对于机器人大脑图形化系统即机器人系统仿真图形化建模来说,各种操作需要用大 量的信息来表征,用来表征每个操作的信息的集合构成了特征集。只有在操作的图形符 号中建立元件的特征信息,并在对机器人运动的处理中处理提取这些特征,才一能对系 统进行详细的描述,生成系统模型描述文件,进而通过转换生成仿真所需的数学模型和 逻辑关系。 1 3 图形化编程平台以及机器人开发的平台国外成熟产品 1 3 1 图形化编程语言l a b v l e w l a b v i e w ( l a b o r a t o r yv i r t u a li n s t r u m e n te n g i n e e r i n gw o r k b e n c h ) 是一种用图标代替 文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序 决定程序执行顺序,而l a b v i e w 则采用数据流编程方式,程序框图中节点之间的数据 流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流 缶- 1 , l o , i i , 1 3 】。如图 1 1 所示。 图1 1 图形化的专用开发环境示例 值得称赞的是l a b v i e w 有着强大的功能。例如在美国l a w r e n c el i v e r m o r e 国家实验 室,一个花费2 0 0 0 万美金的极为复杂的飞秒激光切割系统就是基于l a b v i e w 开发的。 而在国内,北京的正负电子对撞机二期工程北京谱仪慢控制系统中,大约有3 0 种物理 量共7 0 0 0 多点的现场数据点需要实时采集控制和分析记录等【1 , 1 0 , 1 1 , 1 3 1 1 3 2 机器人开发平台e v o i u ti o nr o b o ti c s se r s p e v o l u t i o nr o b o t i c s 是一个集了机器人软硬件设计的开发平台,简称e r s p 。软件整 体非常成熟。它集成了视觉识别系统( v i r p ) 和视觉导航绘图系统( v s l a m ) 。它所 4 长安大学硕士学位论文 用的视觉系统是基于d a v i dl o w e 开发的算法。平台提供了可视化图形化的编程环境工 具,通过搭建图标即搭建流程图来构建程序。如图1 2 所示。 霞荔蠢嚣l g i ;缀- 高攀目离一。一粥一 爵鞴黼霹鬻鬻蒸霆 - 膨囊蕤缓一 图 溺豳一 图1 2e r s p 可视化编程界面 整个开发平台是通过运行时的“任务”程序来激活或者停止“行为 组件。不过这 个系统不支持仿真。整个开发平台是可以在w i n d o w s 或l i n u x 下运行。 1 3 3 机器人开发平台m i c r o s o f tr o b o ti c ss t u di 0 微软最有专门的团队做机器人软件平台的开发,其产品名称叫做m i c r o s o f tr o b o t i c s s t u d i o ( 简称m s r s ) 。这个开发平台能够在w i n d o w s 和w i n d o w sc e 操作系统下运行。 其中分布运行的开发环境承担了大部分的信息传递和线程管理任务。它的行为协作基于 “服务优先级”的概念。同样的这个开发平台提供了完备的仿真和图形化开发环境。如图 1 2 和图1 3 所示 j 一n , m , 0 矿 _ m 晰 , ,* t : 一u t 薯童冒百_ “一v d _ - -m c 一一“- 黑 崮自一, _ o ” c=j p 一 二娑? 璺斟静 o ,- n i “,:一f = := :z 一 :,b 一1 叫e e :,i :;三竺:。一盗一 h o 一 一 一 r o b o 乞s k 图1 2m s r s 可视化编程界面 第一章绪论 图1 3m s r s 仿真环境 1 3 4 其他机器人开发系统平台 可以见到的机器人开发系统平台还有i r o b o ta w a r e ,o p e n j a u s ,c l a r a t y 等等。下 面是一些相关的信息: ( 1 ) i r o b o t a w a r e 是一个由i r o b o t 公司出品的专门的机器人系统开发的软件平台。 他们的平台专用于美国军方的军用机器人。 ( 2 ) o p e r d a u s 是一个开源系统。v e c n a 公司似乎在改进o p e n j a u s 系统并将之用于 他们的b e a r 机器人。 ( 3 ) c l a r a t y 是一个由美国宇航局开发并开源发布的项目。不过它不是完全免费 的,这个软件提供了一些有趣的算法,比如视觉导航、姿态控制等。 综合比较这些机器人开发平台,本系统完成了一个低成本的,使用流程图编程方式 这种简单入门的通用的机器人工作逻辑编程环境。 1 4 论文主要研究内容和章节安排 1 。4 1 论文的主要研究内容 本论文所作的研究工作主要包括以下几个方面: ( 1 )机器人大脑图形化平台系统的结构分析和实现方案分析。 ( 2 ) 通过技术比较选择e c l i p s eg m f 图形建模框架作为图形化编程的技术支撑,详 细分析g m f 图形建模框架的结构和特点。 ( 3 ) 根据机器人工作流程的特点建立适用于图形化编程的领域模型,对适用u m l 方法建立领域模型进行详细分析。 6 长安大学硕士学位论文 ( 4 )对机器人大脑的图形化开发平台的图元进行设计。使用u m l 统一建模语言搭 建出机器人大脑图形化开发系统的模型并进行优化和程序编码。 ( 5 )对机器人大脑的图像化开发平台的上下位机之间高速传输通信模块做出设计, 并选用u s b 2 0 总线作为高速通信总线。 1 4 2 论文的章节安排 第一章绪论部分。主要阐述了本课题的研究背景和研究目的,综述了国内外图形化 编程语言和图形化平台技术的发展现状和研究成果。对论文的主要研究内容和论文的章 节进行了安排。 第二章是系统结构和方案设计部分。主要是对机器人行为控制的整个系统做出了结 构分析。着重说明了图形化编程系统的架构和上下位机以及总线传输模块的层次关系。 并且对图形化编程方案之一n e t + g d i 做出了分析。 第三章是图形化平台方案e c l i p s eg m f 图形建模框架技术综述。对使用e c l i p s eg m f 图形建模框架开发步骤的详细分析。以及通过u m l 建立领域模型的模型方法步骤。 第四章是对图形化编程方式流程图表示法进行分析。并且给出工作流程图的u m l 建模的基本领域模型。 第五章是机器人大脑图形化开发平台的图元设计和代码实现部分。 第六章是机器人大脑图形化开发平台上下位机之间高速传输总线u s b 2 0 模块的实 现和代码。 最后部分是对论文的研究内容进行总结,并对今后的研究方向进行展望。 7 第二章机械人大脑图形化开发平台总体结构和方案设计 第二章机器人大脑图形化开发平台总体结构和方案设计 2 1 机器人大脑图形化系统总体结构 本课题主要设计一种可以提供机器人工作流程设置的可操作的集成化的图形开发 环境。通过这个集成开发环境可以提供对机器人工作流程控制的需求。通过在p c 端的 图形开发环境对机器人的工作流程设定编程,将工作的逻辑关系编译提取出来,以指定 的数据存储格式( 这里设定为x m l 格式) 下载到下位机控制器中。通过下位机将上位 机p c 端设定好的工作流程工作顺序分发指派给各个运动工作模块同时将采集的数据和 反馈数据传送回p c 端上位机以供分析和监控。同时为了获得较高的通信速率,在上下 位机之间的通信需要一种高速传输总线。这里选择的是有即插即用和有高速传输数据功 能的u s b 2 0 串行数据总线。 所以在设计中将整个系统分为以下部分。 ( 1 ) p c 端图形化编程操作平台上位机模块 ( 2 )使用m u c 的机器人执行模块控制器下位机模块 ( 3 )高速数据传输总线控制平台u s b 高速传输控制模块 其中p c 端为上位机,将设计出一个友好的人机交互系统,将是一个图形化的监控 平台。作为人机交互界面,通过图形化操作向机器人发出命令和实时监控机器人的状态。 图2 1 系统基本结构 本课题的重点是机器人大脑的图形化开发环境的设计以及如何通过高速总线传输 数据。所有本课题将着重p c 端图形化操作软件的设计。控制器与u s b 数据总线的通 l 1 看o 8 长安大学硕士学位论文 2 2 图形化开发系统结构分析 机器人大脑的图形化开发环境借鉴组件技术和特征提取技术作为软件设计的主要 思想,将机器人工作的特征提取出来并采用组件化的设计方式,以图形图元的方式描述 机器人的流程,最终由图形化开发系统将图形图元的设置和链接关系转化为x m l 格式 的流程描述文件保存。图形化开发系统软件的结构如图2 2 所示。 图2 2 图形化开发系统软件结构图 ( 1 ) 图元编辑层:主要是图形化开发系统软件提供给用户的一个图形编辑环境,这 个图形编辑环境是用户和软件交互窗口。其中包含有用图元选择组件和图元编辑组件。 ( 2 ) 属性和数据处理层:图形化开发系统通过属性和数据处理层将机器人的任务实 例化,将机器人的工作内容数据和属性与用户设计的机器人工作流程绑定。 ( 3 ) 流程图描述文件:图形化开发系统通过分析用户对机器人工作设定的逻辑关系 生成x m l 格式的描述文件。用于描述机器人的工作流程。 2 3 图形化开发系统方案设计 在最初的图形化开发系统的设计方案中,选择的是基于n e tf r a n m e w o r k 2 0 和g d i + 进行图形化平台设计。之所以一开始就选择g d i + 作为开发方案,主要是因为g d i + 被称为下一代图形设备接口。g d i + 是一个库,它提供了一种接口,通过此接口允许编程 人员编写与图形设备交互的w i n d o w s 图形应用程序。简单的说,g d i + 是一个位于图形 设备和应用程序之间的组件,它可以将数据转换成与图形设备兼容的形式。此方案就是 通过g d i + 的矢量图形绘制出机器人工作流程的图形化操作过程并获得工作流程中的逻 辑关系。这里充分用到了g d i + 中的二维矢量图形。在n e tf r a m e w o r k 2 0 库中,通过 g d i + 的二维矢量程序设计主要分为两大类:常规设计以及高级设计。其中,常规的二 维矢量图形设计功能是在s y s t e m d r a w i n g 命名空间中定义的,而高级设计功能则是在 s y s t e m d r a w i n g d r a w i n 9 2 d 这个命名空间中进行定义的。 设计方案模块关系框图如下: 9 第二章机械人大脑图形化开发平台总体结构和方案设计 图2 3 前期设计方案图 在控制方实现不同图元对应机器人不同操作,图元连接顺序实现对机器人操作的图 形化编程。在监控时到达自动化监测软件的作用,实时监控机器人的参数信息。 2 3 1 图元主要思路 使用自定义控件,作为显示和操作的图元。( 不直接在画布上绘图,因为控件类比 较函数而言更好管理,并且可以向下派生出不同元件图元) 从 s y s t e m w i n d o w s ,f r o m s u s e r c o n t r o l 派生这里在绘图过程中主要是重写c o n t r 0 1 o n p a i n t 方 法。在其中实现控件的图形绘制。 2 3 2 建立主框架类 所有的绘图应用程序无论是在什么操作系统上运行的都基本由三个公共组件组成。 即一个画布,一个画笔( 这里是图元库) 和一个过程。画布是绘制对象的地方。比如说 在w i n d o w s 应用程序中,w i n d o w sf o r m 就是一个画布。画笔( 图元) 就是在画布上所 绘制的对象。过程则描述了在画布上绘制对象的方式方法。 这里f r m m a i n 是主框架类,也是整个绘图的容器。所有的现实部分的实现,均在其 上完成。f r r n m a i n 类中包括了对画布的设定和对图元库的描述。 1 0 长安大学硕士学位论文 图2 4 画布和图元库 如图2 4 所示右侧是画布所在区域,左侧是图元库,控制信息在工具栏中。 2 3 3 图元的设计 图元的设计即建立图形库s h a p e s 。这里设计d r a w i n g c 砒r l v a s c s 自定义控件。这个控 件是图元的基本容器。所有设计的属性均围绕这个类进行。这个类可以添加不同的图 元,使得其有不同的性质。d r a w i n g c a n v a s 类中主要是沟通主窗口和图形管理类。 p u b t cp a r t i a lc l a s sd r a w i n g g a n u a s :u s e r c o n t r o l p u b l i cs h a p e h a n a g e rs h a p e h 。a 。9 p 墼! = ;,图形管理类 p u b l i co r a _ - i n g c a n u a s ( ) i i 构造函数 【 in i t i a l i z e c o m p o n e n t ( ) ; s h a p e h a n a g e r - n e ws h a p e h a n a g e r ( t h i s ) ; t h i s s e t s t y l e ( c o n t r 0 1 s t 9 1 e s o o u b l e b u f f e ri c o n t r 0 1 s t y l e s u s e r p a i n ti c o n t r 0 1 s t y l e s a 1 1 p a i n t i n g ln w m p a i n t , t r u e ) ; t h i s u p d a t e s t ,1 e s ( ) ; 其中添加图形管理类s h a p e m a n a g e r c s 其包含一个图形列表s h a p e s 。此列表中存放 由控件库选出的图形。本类是对图元( s h a p e ) 的基本操作包含鼠标操作。图元的编 辑、移动、改变大小。其主要是对列表中的s h a p e c s 操作。 第二章机械人大脑图形化开发平台总体结构和方案设计 n a m e s p a c es h a p e s p u b l i cc l a s ss h a p e h a n a g e r :id i s p o s a b l e p 曲n c l i s t ( s h a p e 。s s h o r t i n t c u r l n d e x - 1 p ;盱玺菥茵芫翡篝辈蔚鞍嚣翟;,图形列表。成员是铀a p e 类 - 当前图元的序号的初始值 s h o r ti n t p r e u i n d e xz 一1 ;,图形管理类,其管理酌是自定义控件,d r a w i n g c a n u a s 的对彖 p u b l i cs h a p e n a n a g e r ( d r a w i n g c a n u a sp a r e n t ) p a r e n t h o u s e d o w n tn e wh o o s e e u e n t h a n d l e r ( p a r e n t n o u s e d e m ) : p a r e n t n o u s e u p + - n e wn o u s e e v e n t h a n d l e r ( p a r e n t h o u s e o p ) : p a r e n t h o u s e m o u e + tn e wh o u s e e u e n t h a n d l e r ( p a r e n t _ n o u s e n o u e ) : r e f c o n t r o l = p a r e n t ; i n t c u r i n d e x = - 1 ; ,所选择图元的状态 p r i u a t et o o l s e t o o lc u r t o o l t o o l s e t 0 0 1 s e l e c t i o n : ,这个是一个枚举类型表示对图元的操作。有s e l e c t e d i t r o u t e3 种状态 p u b l i ct o o l s e t o o lc u r r e n t t o o l g e t r e t u r nc u r t o o l ; s e t i n u a l i d a t i o n l i s t c l e a r ( ) ;l i s t 清零 s w i t c h ( u a l u e ) c a s e s h a p e s 【i n t c u r i n d e x l e d t t i n g o n = f a l s e ; i n u a l i d a t i o n l i s t a d d ( i n t c u rin d e x ) ; r e f c o n t r 0 1 c u r s o r - c u r s o r s d e f a u l t ; b r e a k ; c a s et o o l s e t 0 0 1 e d i t :i 图元进入编辑状态 i f ( i n t c u r i n d e x ? 一1 ) s h a p e s 【i n t c u r i n d e x e d i t i n g o nit r u e : i n u a l i d a t i o n l i s t a d d ( i n t c u rin d e x ) ; b r e a k ; c a s et o o l s e t 0 0 1 r o u t e :图元进入可连线状态 i f ( i n t c u r i n d e x ? t 一1 ) s h a p e s i n t c u r i n d e x 】r o u t e o n = t r u e ; i n u a l i d a t i o n l i s t n d d i n t c u r i n d e x ) ; b r e a k ; c u r t o o l - a l u e ;此返回值控制主界面申的对图元的编辑状态或者是选择状态 f i n a l i z e s h a p e ( ) ; d o i n u a l i d a t i o n ) ; s h a p e 类一所有图元的基类( 此类可以根据要求进行派生得到不同的图元) p u b l i ca b s t r a c tc l a s ss h a p e : c o m p a r a b l e ,l r e s t o r e h o n s e r t a l l z a b l e p u b l i ch a n d l er e s i z e h a n d l e s tn e wh a n d l e ( ) ;,腋用h a n d l e 类获得 p u b l i cl f c a n u a s 8 p o i n t l f c a n u a s 8 p o i n t = n e wl f c a n u a s 8 p o i n t ( ) ;, 此类关键是调用了h a n d l e 类。获得图元四个角和四条边的八个点坐标。并存储在 1 2 , 长安大学硕士学位论文 l f c a n v a s 8 p o i n t 类中向上传递移动主界面调用。 h a l l d l e 类此类事专门处理图元八个边界点。包括获取坐标值,改变鼠标提示状态, 连接点颜色。 p u b l i cc l a s sh a n d l e :i d i s p o s a b l e p u b l i ce f l u me h a n d l e ( u p p e r l e f t u p p e r m i d d l e 。u p p e r r i g h t ,h i d d l e r i g h t , l o w e r r i g h t 。l o w e r m i d d z e l o w e r l e f t ,h i d d l e l e f t s t a n d a r d ) b i t m a pb m p h a n d l e ; p u b l i cb i t m a pb _ p h a n d l e c h a n 9 e ; s h o r th a n d l e u i d t h , h a n d l e h e i g h t : b 0 0 1i s s t a n d a r d c u r s o r o s i z ed e m e n s i o n ; p u b l i ce h a n d l es e l e c t e d h a n d l e ; p o i n t 】h a n d l e p o s - n e wp o i n t ( 口,b ) ,n e wp o i n t ( 口,口 。o e wp o i n t ( 口。日) ,n e wp o i n t ( 0 ,0 ) ,f l e wp o i n t ( 口,口) ,n e wp o i n t ( 口,口) ,n e wp o i n t ( b 。0 ) ,n e wp o i n t ( 口,b ) : ,图元的八个点坐标存储在此数组中 2 3 4 画线类和节点类 此两类是在选中图元八个边界点中某两个确定起始点和结束点而进行的画图所使用 的类。其中线类结构如下: c l a s sl i n e 【 p r i u a t p r i u a t p r i u a t i i ! 线 p u b l i c ei n tl i n e i d ; en o d ee n d ; eh o d eb e g i n ; 端点的i d n tl i n e i d g e t 【r e t u r nl i n e l d ; s e t 【l i n e i d ;u a l u e : i ! i 线的起始点坐标 i n t e r n a ln o d eb e g i n ( g e t ( r e t u r nb e g i n ; s e t 【b e g i ntu a l u e ; i i i 线的终点坐标 i n t e r n a ln o d ee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论