(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf_第1页
(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf_第2页
(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf_第3页
(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf_第4页
(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(机械电子工程专业论文)模块化分布式开放机器人系统的研究.pdf.pdf 免费下载

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

文档简介

模块化分布式开放机器人系统的研究 摘要 机器人技术经历4 0 年的发展,对机器人应用的研究越来越集中在非 制造业领域。和传统的工业机器人比较起来,未来机器人需要完成更加 复杂多变的任务,工作环境也有极大的不确定性。机器人的开放化、丰莫 块化是机器人技术发展的趋势,将极大地促进机器人的发展:一方面, ) 弋,一 在工业制造领域,使用统一的硬件和软件接口,机器人的各个部件可以 独立在不同的厂商设计制造,用户能在市场上找到各种各样适合自己应 用的机器人组件进行自由的组装;另一方面,在机器人研究领域,研究 人员可以将研究重点集中在人工智能和特殊功能部件的研究上,可以从 市场上获得成熟的硬件和软件,并在此架构基础上进行开发,从而加快 机器人的研究过程,加速机器人更新换代,以满足市场对机器人功能上 的不断增芑箩需求眇一7 本论耍葑分布式开放机器人系统的研究 k 7 仁是基于这样的趋矿名出 了一种基于d c o m 技术的分布式开放机器人架构o a r ( o p e n a r c h i t e c t u r e f o rr o b o t ) 。通过o a r 系统,可以把不同功能的机器人组件结合在起。 o a r 系统不涉及具体机器人的控制算法,不能直接对机器人实现伺服控 制,路径规划等,但是o a r 系统提供一套通用的a p i 函数来实现机器人 组件之间的沟通和交流,传递相应的数据和指令。 f 全文分为六章,主要内容如下: 1 介绍了模块化分布式开放机器人的概念和国内外的研究现况,论 述了实现模块化分布式开放机器人的设计思想和关键技术,讲述了本 论文的研究背景以及研究内容。 2 提出了基于分布式模块化思想的o a r 系统架构和机器人组件的概 念,深入分析了o a r 系统的体系结构和组件标准,利用层次结构的 方式定义组件命名规则,o a r 系统命名规则中的每个层次都继承了 上一层次的属性和方法,并可以拥有自身特定的属性和方法,体现了 o a r 系统的灵活性和可扩展性。 3 结合软件工程中域工程的思想上,提出了基于域特征的o a r 系统 的域建模方法。这种方法利用眦,在分析o a r 的静态域特征的基 础上,建立了o a r 系统的静态域模型定义类以及对象,形成功 能模块标准和接口标准;在分析动态行为域特征的基础上,构筑o a r 系统的动态域模型定义对象的行为以及相互的交互关系,从而完 整地表达了o a r 系统的模型。 4 简要比较主流组件技术特点,选择m i c m s o f t 公司的c o m ec o m 技术实现o a r 系统。 最后对本文的研究与开发工作进行总结,并展望未来,提出了进一 步的设想。、) 产p 关键词:机器人;窿受亟三三旦匣篁! 塑翌堑 亘至二受。, i i s t u d yo n t h em o d u l a r i z ed i s t r i b u t e d o p e nr o b o t i cs y s t e m a b s t r a c t t h es t u d yo nr o b o ta p p l i c a t i o nc o n c e n t r a t e so nt h en o n m a n u f a c t u r i n gf i e l dm o r ea n dm o r e c o m p a r e dw i t ht r a d i t i o n a ii n d u s t r i a lr o b o t ,t h er o b o tn e e d s t of i n i s hc o m p l i c a t e da n dm o r e c h a n g e a b l et a s ki nf u t u r e t h eo p e n i n g ,m o d u l a r i z a t i o no f t h er o b o ta r et h et e c h n o l o g i c a l d e v e l o p m e n tt r e n do f t h er o b o t ,b ep r o m o t i n gt h ed e v e l o p m e n to fr o b o tg r e a t l y :o no n e h a n d ,i nt h ef i e l do fi n d u s t r i a lm a n u f a c t u r i n g ,u s et h eu n i f i e dh a r d w a r ea n ds o f t w a r e i n t e r f a c e ,e a c hp a r to ft h er o b o tm a yd e s i g na n dm a k ei nd i l y e r e n tm a n u f a c t u r e r s i n d e p e n d e n t l y u s e r sc a r lf i n dv a r i o u sa n ds u i t a b l ef o rt h er o b o tm o d u l eu s e db yo n e s e l f a n dc a r r yo nt h ee q u i p m e n to ff r e e d o mo nt h em a r k e t o nt h eo t h e rh a n d ,i nt h er e s e a r c h f i e l do ft h er o b o t ,r e s e a r c h e r sc a l lf o c u so nt h es t u d yo fa r t i f i c i a li n t e l l i g e n c ea n ds p e c i a l f u n c t i o np a r t ,a n dd e v e l o pr o b o to nt h eb a s eo fd e v e l o p e dh a r d w a r ea n d3 0 f h a r e ,t h u s a c c e l e r a t et h er e s e a r c ho f t h er o b o tt om e e tt h ed e m a n df o rc o n s t a n tg r o w t ho nt h ef u n c t i o n o f t h er o b o to f t h em a r k e t t h es t u d y0 nd i s t r i b u t e do p e l lr o b o ts y s t e mo ft h i st h e s i si sj u s tb e c a u s eo fs u c hat r e i l d t h et h e s i sh a sp r o p o s e dt h a tak i n do fd i s t r i b u t e do p e nr o b o tb a s e do nd c o m t e c h n o l o g y b u i l d su po a r ( 0 p e na r c h i t e c t u r ef o rr o b o t ) t h r o u g ho a r s y s t e m ,y o u c a l lc o m b i n et l e r o b o tm o d u l eo fd i t i e r e n tf u n c t i o n st o g e t h e r o a r s y s t e md o e s n ti n v o l v ec o n c r e t ec o n t r o l a l g o r i t h mo fr o b o t ,c a n tc o n t r o lr o b o ts e r v oa n dr o u t ep l a nd i r e c t l y , b u t0 a rs y s t e mo f f e r a p if u n c t i o nt or e a l i z er o b o te o m m u n i c a t i o na n dt r a n s m i td a t aa n do r d e r t h ef u l lt e x ti sd i v i d e di n t os i x c h a p t e r s ,a n d m a i nc o n t e n ti sa sf o l l o w s 1 i n t r o d u c et h ec o n c e p to ft h em o d u l a r i z ed i s t r i b u t e do p e nr o b o ta n dd o m e s t i ca n d i n t e r n a t i o n a lr e s e a r c ha tp r e s e n t e x p o u n d e dt h ef a c tt h a tr e a l i z e sd e s i g np h i l o s o p h yo ft h e m o d u l ed i s t r i b u t e do p e nr o b o ta n d k e yt e c h n o l o g ya n dt h er e s e a r c hb a c k g r o u n do f at h e s i s a n dr e s e a r c hc o n t e n t s 2 p u tf o r w a r dt h ec o n c e p to fo a r s y s t e ma r c h i t e c t u r ea n dr o b o tm o d u l eb a s e do n d i s t r i b u t ea n dm o d u l a r i z et h o u g h t a n a l y z ei n d e p t h0 a rs y s t e ms t r u c t u r ea n dm o d u l e s t a n d a r do f s y s t e m ,w a yt ou t i l i z eh i e r a r c h i c a ls t r u c t u r ed e f i n em o d u l en a l t l er u l e s e a c h l e v e li n h e r i ta t t r i b u t ea n dm e t h o do fl a s tl e v e l ,w h i l ei t a n dc a nh a v es p e c i f i ci no n e s e l f a t t r i b u t ea n dt h em e t h o d ,w h i c hr e f l e c t0 a r f l e x i b i l i t yo f t l l es y s t e m s 3 c o m b i n e dt h et h o u g h to fd o m a i n d o m a i nm o d e l i n gm e t h o do fo a r s y s t e m e n g i n e e r i n gi ns o f t w a r ee n g i n e e r i n g ,p r o p o s e b a s e do nd o m a i nc h a r a c t e r i s t i c t l l i sm e t h o d 1 i i u t i l i z e su m l ,o nt h eb a s i so fa n a l y z i n gt h es t a t i cd o m a i nc h a r a c t e r i s t i co fo a r ,h a v e s e t u p t h es t a t i cd o m a i nm o d e lo fo a r s y s t e m - - d e f i n i t i o no f c l a s sa n d o b j e c t ,w h i c hf o r m t h e m o d u l es t a n d a r do ft h ef i m c t i o na n di n t e r f a c es t a n d a r d ;o nt h eb a s i s o fa n a l y z i n gt h e d y n a m i cb e h a v e s t h u se x p r e s s e d t h em o d e lo fo a r s y s t e mi n t a c t l y 4 c o m p a r em a j o r m o d u l e t e c h n o l o g yc h a r a c t e r i s t i c ,c h o o s e m i c r o s o f t c o m d c o mt e c h n o l o g yt od e v e l o p0 a rs y s t e m t h er e s e a r c ha n d d e v e l o p m e n t t ot h i st e x ta r es u m m a r i z e df i n a l l y , a n dl o o kf o r w a r dt o t h ef u t u r e ,a n dp u tf o r w a r dt h ef u r t h e ri m a g i n a t i o n k e yw o r d s : r o b o t ,m o d u l a r i z e ,d i s t r i b u t e ,d o m a i nm o d e l ,u m l ,d c o m i v 上海交通大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作 所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已 经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中 以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期 犬易 0 月0 0 日 上海交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并 向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授 权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以 采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在一年解密后适用本授权书。 本学位论文属于 不保密囤。 ( 请在以上方框内打“”) 指导教师签名: 日期。册弓年a 月如e t 日期:力年2 月伽日 主塑塞望盔兰堡主兰垡堡兰 一篁二! ! ! 堕 1 1前言 第一章绪论 机器人技术作为2 0 世纪人类最伟大的发明之一,自6 0 年代初问世以来,经历4 0 年 的发展已取得长足的进步。传统机器人主要应用领域是制造业,这类机器人被称为工 业机器人,在经历了诞生成长成熟期后,工业机器人已成为制造业中不可少 的核心装各,预计到2 0 0 3 年,世界实际装备工业机器人数量将由1 9 9 9 年的7 4 3 万 台增加到8 9 2 万台,其中日本有3 7 万台,世界其他地区通用工业机器人的实际装备 数量将由3 4 万台增加到5 0 8 万台 ”。工业机器入主要完成点焊、弧焊、喷漆、切割、 电子装配及物流系统的搬运、包装、码垛等工作,工业机器人需要完成的任务和工作 环境有较大的确定性。因此,工业机器人的通常的设计过程是f 2 】:首先根据任务性质 和工作环境确定机器人基本技术参数,其中主要是额定负载、工作范围、运动速度、 分辨率、位姿准确度和重复性、轨迹准确度和重复性以及最小定位时间;然后根据对 机器人基本技术参数的要求来选择机械结构类型的坐标形式及其自由度;接着确定工 业机器人手臂的配置形式;最后是机器人控制方式的选择和控制系统设计。 机器人经过几十年的发展,已经进入了一个新的阶段。1 9 9 9 年5 月,s o n y 公 司a i b o 机器狗的问世,在世界上引起了很大的反响;2 0 0 0 年1 1 月,h o n d a 公司 推出a s i m o 机器人,更加引起人们对新代机器人的关注,a s i m o 机器人当选为 美国时代周刊2 0 0 0 年十大风云人物。机器人已经逐渐进入人们的日常生活和工 作,对机器人应用的研究越来越集中在非制造业领域。早在1 9 9 6 年,c a n n y j o h nf , a g a ha n ,i n 和h o w a r dm o r a f f 就提出了“p e m o n a lr o b o t ”的概念【3 j 1 9 9 8 年,在 法国图卢兹的u 沮s c n r s 研究中心举行了以“p e m o n a lr o b o t ”为内容的研讨会, 认为未来机器人将在远程监控、辅助医疗、教育、旅游等领域得到大量应用,机器人 也会出现在家庭里,成为人类生活的伴侣。和传统的工业机器人比较起来,未来机器 人需要完成更加复杂多变的任务,工作环境也有极大的不确定性,上面所提到的针对 工业环境的机器人设计方法已经满足不了这种需要。 ! 塑窒望查堂堡主兰堡笙塞j 墅二j ! ! 堕 1 2模块化分布式机器人系统研究的实际意义 1 2 1机器人的传统设计方法 典型的机器人设计步骤如图1 1 所示【4 1 。 在基本结构设计中,要对照目标作业考虑运动学问题, 并研究自由度的构成。在这个阶段中,不仅只考虑作业是否 方便,还要考虑逆运动学问题的求解是否容易,关节问的耦 合程度等多方面的内容,从而可从相当多的选择中决定基本 结构,另外充分利用熟练设计者的经验或专家系统进行设计 也是很有效的。在内部结构的设计中,要考虑静力学和动力 学的问题,然后决定具体的驱动器和机械元件等。这是,若 把各关节的驱动器安装在靠近基座的地方,则和减轻关节和 手臂的重量,但必须要传动装置,通常刚性较低,关节的结 构比较复杂。 在初步设计中,先根据刚性要求决定手臂的长短和粗 细,并计算质量。进而根据所要求的运动求关节的驱动力, 并决定电动机的容量。此外,因为加在传动机构上的转矩和 力已经知道,所以传动机构的重量和大小也能决定。 在详细设计中,要选定具体的电动机和机械元件。减速 器要根据传动转矩、控制精度和机械阻抗匹配来决定容量和 减速比。最后,在确定了所有元件的基础上对机器人的刚性 进行校验 4 】。 l 蓑衾z 瓣 圆圆 薹f 圆 | ;| 1 高 釜岁 塞f 豳 引章 【豳- t l i s i e n s e f v e r l 图4 5 :组件连接到服务器之后的注册序列图 f i g4 5 :s e q u e n c e v i e wf o rr e g i s t e ro a r s y s t e m 组件连接到o a r 系统上之后,需要在o a r 系统服务器上注册相关组件的数据和 功能。只有机器人的部件通过注册流程后,才成为具有硬件结构和软件功能描述的组 件。 天 圭塑奎望奎兰堡主堂丝笙壅 兰堕兰塑型坚旦型型壅盟茎! ! ! 塑 组件与服务器通讯的序列图 巨回巨巨 u e ,s e s s i o n r e a d y 0 s e s s j o n o k o 、 l,1 m ,o d u l e c o m m a n d ( ) ,r e c i e v e m e s s a g e 、 m e s s a g e o k 、 , s e n d m e s s a g e “p d 8 协m 俐。0 8 l a )、 , i 既8 p m o d u l e d a t a ? m o d u l e d a :a o k ( ) m e s s a g e o k 图4 6 :组件与服务器之间数据交换序列图 f i g4 6 :s e q u e n c ev i e w f o rs e n d & r e c e i v e m e s s a g eo a rs y s t e m 组件和o a r 系统的通讯是最重要的功能之一。在实际的机器人组件和o a r 系统 通讯的过程中,将把组件自身特定的功能( 方法) 和“消息”( m e s s a g e ) 联系起来, o a r 系统机器人组件类图( 4 4 2 5 节) 一节中具体描述了这些组件功能函数。 4 9 天 圭塑奎望茎兰堡主兰垡丝茎j 型里生至堕塑堡旦型蔓墅型竺壁型塑 配置任务的序列图 囤囤晕匡习 旦 囤人 s e t t a s l , ( ) m t a s “l q u e r y m o d u l e d a t a ( ) m o c i u t e d a t a o k 0 7 、 c e u t e t a s k 0 c r e a t n a s k o k ( ) s e s s i o n r e a a y ( 】 s e = s l o n o k 0 m o d u l e c o m m a n d ( ) r e c t e v e m e s s a g e m e s s a g e o k 0 7 ,s e n d m e s s a g e ( ) c o m m a m l o k o m e s s a g e o k 、 u p d a t e m o d u l e d a t a 0 d i s 口 u l e d a t a ( ) t i = k o k ( ) i l e n d t a i k ( ) u 7 图4 7 :任务管理者配置任务序列图 f i g4 7 :s e q u e n c ev i e w f o rm a n a g et a s ko a r s y s t e m 机器人任务管理者可以利用o a r 系统的管理用户界面对机器人系统实现任务的 配置,o a r t a s k m g 对象生成相应的o a r t a s k 任务对象的实例,由o a r t a s k 任务 对象的实例通过o a r s e s s i o n 对象和机器人组件通讯,控制各个与该任务相关的组 件的动作和数据传输,直到该任务完成,o a r t a s k 任务对象的实例也就被取消。 天 上海交通大学硕士学位论文 第四章开放机器人o a r 系统的关键问题 o a r 系统机器人组件类图 下面按照机器人组成的四个部分分别列出了有关的继承类图。类图中的类都是抽 象类,因为o a r 系统并不涉及机器人系统的具体算法控制,也不可能事先了解连接 到o a r 系统上的机器人部件类型,因此声明下列不能有实例对象的类。当具体的机 器人组件连接到系统中后,就可以利用这些抽象类派生具体类,同时实现功能描述中 的具体算法控制。通过这种方式,是o a r 系统具有良好的开放性和可扩展性。 图4 8 :末端执行器继承类图 f i g4 8 :c l a s sv i e w f o re n de f f e c t e ro a r s y s t e m b u s i n e s sp a c k a g e :a r m s e s = i o n - o r i g i n p o i n t :p o i n t - e n d e f f e c t e n o o i n t :p o i n t + e n d e f f e c t e r m o v e 0 + a x i s r o t a t e o + s 色t o r i g i n p o i 州) + g e t o 内i n p o i n t 0 + s e t e n d e f f e c t e n o o i n t ( 、 + g e t e n d e f i e c t e r p o i n t ( ) 伞 i c y l i n d r i c a l s s i o n p o l a r s s s i o nc a f f h ) s 语n s e s s i o n i a l c u m 。d s 辑i o n f f l i 图4 9 :机械手臂继承类图 f i g4 9 :c l a s sv i e wf o r a r mo a r s y s t e m 圭塑奎望盔兰堕主堂垡堡苎 苎塑兰2 垡壁堕羔旦竺望型型塑叁! ! ! 塑 图4 1 0 :移动机构继承类图 f i g 4 1 0 :c l a s sv i e wf o rm o b i l em e c h a n i s mo a r s y s t e m i b u s i n e s sp a c k a g e :e x s e n s o r s e u l o n j + d a t a t r a n s f e r o 伞 5 v l s l o n s e n s o t 曲s s l o n ii c o “乜嘴眦o r s 惦毫i o n l f o 忆s n o 噶e t l o n l 阳n g 铀m o r 8 m l o n ih e a r l n g s e n s o r s e s s l o n i i c o n l a c i s i a t 嘴:b o o l l - f o r c e :l o n g i - r a n g e :l o n gl f - d b :l o n gj i + m e a s u r e r a n g e 0 l + g e _ l c o n t a c t s t e t u s ol + g e t f o r c e 0p g 毗r m g e oi + g e l d b o l l + d i s u n g u i s h v o i c e 0 j l + n j t “t s i k t r n g 、s h r s h a p e 、0 m ihn l n 图4 1 1 :外传感器继承类图 f i g4 11 :c l a s sv i e wf o re x t e r n a ls e n s o ro a rs y s t e m 圭塑奎望盔兰堡主兰垡堕苎j 墼墅生至堕塑堡生旦型蔓型壅堕茎壁! 塑 4 。6o a r 系统的c o m 结构 图4 6 :o a r 系统的c o m 结构 f i g4 6 :c o m s t r u c t u r eo f o a r s y s t e m o a r 系统通过c o m d c o m 技术实现了分布式机器人系统所要求模块化、分布 性和可扩展性。o a r 系统体现了面向对象组件技术的继承性、多态性和封装性。 在o a r 系统中,接口是o a r 对象与机器人组件之间的绑定约定,组件中所有的 实现细节对于机器人组件是不可见的,完全封装起来,封装提供了一种将代码和数据 绑定到一起的方法。通过封装,o a r 系统组件的用户仅仅需要知道怎样和o a r 系统 组件进行交互,而不需要知道o a r 系统对象如何工作。 在c + + 中,接口被抽象基类的形式来实现,只含有纯虚拟方法的类称为抽象基 类。纯虚拟方法是仅有函数的申明没有函数的实现代码,当继承时派生类必须实现这 些函数功能。图4 6 中o a r t a s k 、e n d e 舵c t e r s e s s i o n 、a r m s e s s i o n 、 m o b m e c h a n i s m s e s s i o n 和e x s e n s o r s e s s i o n 接口都是抽象基类,因为o a r 系统并不涉 及机器人系统的具体算法控制,也不可能事先了解连接到o a r 系统上的机器人部件 类型。当具体的机器人组件连接到系统中后,就可以利用这些抽象类派生具体类,同 上海交通大学硕士学位论文第四章开放机器人o a r 系统的关键问题 时实现功能描述中的具体算法控制。 圭塑奎望查兰堡圭堂堡丝奎 茎至兰兰垒蔓型型! ! ! i l 第五章o a r 系统的实现 5 1 建立o a r 系统服务器 o a r 系统服务器的开发环境是m i c r o s o f t 公司的v i s u a lc + + 6 0 ,m i c r o s o f t 公司 创建了活动模板库( a c t i v et e m p l a t el i a b r a r y ,a t l ) ,其设计旨在让人们用c + + 方 便灵活地开发c o m 对象。a t l 本身相当小巧灵活,这是它最大的优点。用它可以创 建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时d l l s 支持。 o a r 系统就是利用a t l 进行开发。 5 1 1o a r 系统服务器类型 o a r 系统的服务器的类型是可执行服务。服务可以在没有任何客户端程序交互 的情况下运行。实际上,o a r 系统服务器必须可以在没有客户端程序交互的情况下 运行,因为o a r 系统首先要求服务器启动,客户端才能连接到o a r 系统上去。可 以将服务设置为自动启动,当o a r 系统服务器启动后,等待用户注册。 5 1 20 r 系统服务器安全性设置 o a r 是在w i n d o w s 2 0 0 0 系统下的分布式的计算机系统,w i n d o w s 2 0 0 0 系统有 比较严格的安全性要求,为了保证作为客户端的机器人组件能够正常连接到o a r 系 统,需要在服务器程序中对系统的安全性进行相应的设置。下面是设置系统安全性的 代码: e x t e r n c b o o lw l n a p ii n l t a p p l i c a t i o n 0 h r e s u l t h r e s u l t = c o i n j t j a i i z e l n u l l ) ; i f ( f a i l e d ( h r e s u l t ) ) r e t u r nf a l s e ; c o l n i t i a t l z e s e c u r i t y ( n u l l ,- 1 ,n u l l ,n u l l ,r p c _ ca u t h nl e v e l n o n e , r p c c i m p l e v e li m p e r s o n a t e ,n u l l ,e o a cn o n e ,n u l l ) ; r e t u r nt r u e ; ) c o l n i t i a l i z e ( ) 函数是c o m 的a p i 函数,完成c o m 的初始化工作。 圭塑窭望盔兰堡主兰竺堡苎 茎至童q 垒垦墨竺塑壅型 c o i n i t i a l i z e s e c u r i t y ( ) 实现对系统安全性的设置,这是个比较复杂的函数,我们所 关心的有关系统安全性由认证级别参数r p c c a u t h n l e v e l n o n e 确定。该函 数的认证级别参数可以选择以下值: r p cc _ a u t h n l e v e l d e f a u l t r p cc _ a u t h n l e v e l _ n o n e r p cca u t h n _ l e v e l _ c o n n e c t r p cca u t h n l e v e lc a l l r p cca u t h n _ l e v e l _ p k t r p c c u t h n _ l e v e l p k t i n t e o r i t y r p cu u t h n l e v e l p k t p r i v a c y r p c c a u t h n l e v e l _ n o n e 表示不进行认证,客户端可以自由的连接到服 务器上。 5 1 3 o a r 系统类继承的实现 o a r 系统组件是按照继承关系的层次结构实现的,利用从多接口派生c o m 对象 实现了层次结构。例如o a r s e s s i o n 是a r m s e s s i o n 的父类,a r m s e s s i o n 是 a r t i c u l a t e d s e s s i o n 的父类,下面是o a r s e s s i o n 、a r m s e s s i e n 和a r t i c u l a t e d s e s s i o n 的接口i d l 代码: 【 o b j e c l u u i d ( 4 8 f 9 7 6 b c 一3 a 2 b - 4 3 6 b - b 3 8 6 0 c f c l 0 2 a 7 e e a ) , h e l p s t r i n g ( ”i o a r s e s s i o ni n t e r f a c e ) p o i n t e r _ d e f a u l t ( u n i q u e ) 1 i n t e r f a c ei o a r s e s s i o n :i u n k n o w n h e l p s t d n g ( ”m e f h o db u i t d s e s s i o n ,) jh r e s u l t b u i t d s e s s i o n 0 ; f h e l p s t r i n g ( ”m e t h o dm o d u l e n a m e 。t ) 】h r e s u l 丁m o d u l e n a m e 0 ; 【h e l p s t r i n g ( ”m e t h o ds e s s i o n r e a d y ) 】h r e s u l ts e s s i o n r e a d y 0 ; 【h e l p s t r i n g ( ”m e l h o dr e g i s t e r m o d u l e 加h r e s u l tr e g i s t e r m o d u l e 0 ; h e l p s t r i n g ( ”m e t h o dr e g i s t e r f u n c t i o n ”) 】h r e s u l tr e g i s t e r f u n c t i o n 0 ; h e l p s t r i n g ( ”m e t h o ds e n d m e s s a g e ”) jh r e s u l t s e n d m e s s a g e 0 ; h e l p s t d n g ( ”m e t h o dm o d u l e c o m m a n d 。) 1h r e s u l t m o d u i e c o m m a n d ( ) ; 1 : 【 o b j e c t , u u i d ( 0 d 7 f 8 f 6 9 5 6 6 3 4 6 c e - a 7 c f 一7 6 6 a 4 d 6 9 8 5 1 8 ) , h e l p s t r i n g ( ”i a r m s e s s i o ni n t e r f a c e “) , p o i n t e r _ d e f a u l t ( u n i q u 酌 】 i n t e r f a c ei a r m s e s s i o n :i u n k n o w n t h e l p s t r i n g ( ”m e t h o de n d e f f e c t e r m o v e ”) 】h r e s u l t e n d e f f e c t e r m o v e 0 ; h e l p s t r i n g ( “m e t h o da x i s r o t a t e ”) 】h r e s u l t a x i s r o t a t e 0 ; p r o p g e t h e l p s t r i n g ( ”p r o p e r t ye n d e f f e c t e r p o i n t ”) jh r e s u l t e n d e f f e c t e r p o i n t ( o u t tr e t v a l l o n g 。p v a l ) ; p r o p p u t h e l p s t r i n g ( ”p r o p e r t ye n d e f f e c t e r p o i n t ) 】h r e s u l te n d e f f e c t e r p o i n t ( i n l o n g n e w v a l ) ; p r o p g e t h e l p s t r i n g ( ”p r o p e r t yo r i g i n p o i n t ”) 】h r e s u l to r i g i n p o i n t ( o u t ,r e t v a l l o n g p v a l ) ; p m p p u t 。h e l p s t r i n g ( ”p r o p e r t yo r i g i n p o i n t ”) 】h r e s u l to r i g i n p o i n t ( i n 】l o n gn e w v a l ) ; ) : ( o b j e c t , u u i d ( c f l 4 e 3 f 6 3 6 1 5 - 4 9 f f b 5 a 2 - 8 0 8 4 e 8 5 8 2 f e 8 ) , h e l p s t d n g ( ”i a r t i c u l a t e d s e s s i o ni n t e r f a c e ”) , p o i n t e r _ d e f a u l t ( u n i q u e ) 】 i n t e r f a c ei a r 【j c u l a t e d s e s s i o n :i u n k n o w n t ) : c o m 对象c a r t j c u l a t e d s e s s i o n 由以上三个接口派生,拥有i o a r s e s s i o n 、 i a r m s e s s i o n 和l a r t i c u l a t e d s e s s i o n 三个接口的方法和属性: c l a s sa t l 一n o y r a b l ec a r t i c u l a t e d s e s s i o n : p u b l i cc c o m o b j e c t r o o t e x , p u b l i cc c o m c o c l a s s , p u b l i ci c o n n e c t i o n p o i n t c o n t a i n e r l m p l p u b l i cl a r t i c u l a t e d s e s s i o n , p u b l i ci a r m s e s s i o n , p u b l i ci o a r s e s s i o n ( ) 主塑奎望查兰堡主兰堡堡壅一一苎至兰坠里墨竺塑! ! ! l 5 1 4o a r 系统组件功能函数多态性的实现 因为o a r 系统并不涉及机器人系统的具体算法控制,也不可能事先了解连接到 o a r 系统上的机器人部件类型,因此声明不能有实例对象的抽象类。当具体的机器 人组件连接到系统中后,就可以利用这些抽象类派生具体类,同时实现功能描述中的 具体算法控制。在这个过程中,需要利用a t l 的连接点的方法。因为一般是由客户 端调用服务器端程序,当服务器要调用客户端程序时,是通过激发事件通知客户程序 的,此时,原来的服务器相当于客户端,而原来的客户端程序相当于服务器。在a t l 中,定义了一组标准接口,这组接口称为连接点( c o n n e t i o np o i n t ) ,实现了服务器 通过事件通知客户端,调用客户程序的方法。 对应于接口i a r t i c u l a t e d s e s s i o n 有一个连接点接口一i a r t i c u l a t e d s e s s i o n e v e n t s , 在这个连接点接口添加方法m o v e e n d e f f e c t e r ( i n 】p o i n te n d e f f e c t e r p o i n t ) , l a m c u l a t e d s e s s i o n e v e n t s 接口的i d l 代码如下: 【 u u i d ( d 0 3 8 2 1 2

温馨提示

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

评论

0/150

提交评论