第12章-體系結(jié)構(gòu)案例研究課件.ppt_第1頁(yè)
第12章-體系結(jié)構(gòu)案例研究課件.ppt_第2頁(yè)
第12章-體系結(jié)構(gòu)案例研究課件.ppt_第3頁(yè)
第12章-體系結(jié)構(gòu)案例研究課件.ppt_第4頁(yè)
第12章-體系結(jié)構(gòu)案例研究課件.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余95頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、案例研究,謝兄 信息科學(xué)技術(shù)學(xué)院 ,Parnas1972年的論文中提出下述問(wèn)題,上下文關(guān)鍵字,KWIC(Key Word in Context)檢索系統(tǒng)接受有序的行集合;每一行是單詞的有序集合;每一個(gè)單詞又是字母的有序集合。通過(guò)重復(fù)地刪除行中第一個(gè)單詞并把它插入到行尾,每一行可以被“循環(huán)地移動(dòng)”。KWIC檢索系統(tǒng)以字母表的順序輸出一個(gè)所有行循環(huán)移動(dòng)的列表。,Parnas描述了兩種解決方案:,上下文關(guān)鍵字,基于功能分解,可以共享訪問(wèn)數(shù)據(jù)表示; 基于隱藏設(shè)計(jì)決策的分解。,Parnas認(rèn)為的變更包括:,上下文關(guān)鍵字,處理算法的變更:比如,輸入設(shè)備可以每讀入一行就執(zhí)行一次行移動(dòng),也可以讀完所有行再執(zhí)行

2、行移動(dòng),或者在需要以字母表的順序排列行集合時(shí)才執(zhí)行行移動(dòng); 數(shù)據(jù)表示的變更:比如,行、單詞和字母可以用各種各樣的方式儲(chǔ)存。類(lèi)似的,移動(dòng)循環(huán)情況也可以被顯示地或者隱式地儲(chǔ)存(使用索引和偏移量)。,Garlan、Karser、Notkin考慮:,上下文關(guān)鍵字,系統(tǒng)功能的擴(kuò)充:比如,修改系統(tǒng)使其能夠排除以某些干擾單詞(如a、an等)開(kāi)頭的循環(huán)移動(dòng),把系統(tǒng)變成交互式的,允許用戶(hù)從初始列表中(或者從循環(huán)移動(dòng)的列表中)刪除某些行; 性能:空間和時(shí)間。 重用:作為可重用的實(shí)體,構(gòu)件重用的程度。,解決方案1:使用共享數(shù)據(jù)的主程序/子程序,上下文關(guān)鍵字,根據(jù)四個(gè)基本功能將問(wèn)題分解為:輸入、移動(dòng)、按字母表排序、輸

3、出。所有計(jì)算構(gòu)件作為子程序協(xié)同工作,并且由一個(gè)主程序順序地調(diào)用這些子程序。構(gòu)件通過(guò)共享存儲(chǔ)區(qū)(“核心存儲(chǔ)區(qū)”)交換數(shù)據(jù)。因?yàn)閰f(xié)同工作的子程序能夠保證共享數(shù)據(jù)的順序訪問(wèn),因此使計(jì)算構(gòu)件和共享數(shù)據(jù)之間基于一個(gè)不受約束的讀寫(xiě)協(xié)議的通信成為可能。,解決方案1:使用共享數(shù)據(jù)的主程序/子程序,上下文關(guān)鍵字,KWIC:共享數(shù)據(jù)解決方案,解決方案1:使用共享數(shù)據(jù)的主程序/子程序,上下文關(guān)鍵字,這種方案具有很高的數(shù)據(jù)訪問(wèn)效率,因?yàn)橛?jì)算共享同一個(gè)存儲(chǔ)區(qū)。 不同的計(jì)算功能被劃分到不同的模塊中。,解決方案1:使用共享數(shù)據(jù)的主程序/子程序,上下文關(guān)鍵字,在處理變更的能力上有許多嚴(yán)重的缺陷。 數(shù)據(jù)存儲(chǔ)格式的變化會(huì)影響到所

4、有模塊。 整體處理算法的變更和系統(tǒng)功能擴(kuò)充的問(wèn)題也很難調(diào)和。 這種分解方案不支持重用,解決方案2:抽象數(shù)據(jù)類(lèi)型,上下文關(guān)鍵字,將系統(tǒng)分解成五個(gè)模塊。 在這種情況下數(shù)據(jù)不再直接地被計(jì)算構(gòu)件共享。 每個(gè)模塊提供一個(gè)接口,該接口允許其他構(gòu)件通過(guò)調(diào)用接口中的過(guò)程來(lái)訪問(wèn)數(shù)據(jù)。,解決方案2:抽象數(shù)據(jù)類(lèi)型,上下文關(guān)鍵字,每個(gè)構(gòu)件提供了一個(gè)過(guò)程集合,這些過(guò)程決定了系統(tǒng)中其他構(gòu)件訪問(wèn)該構(gòu)件的形式 (p36頁(yè)圖3。2),解決方案2:抽象數(shù)據(jù)類(lèi)型,上下文關(guān)鍵字,將系統(tǒng)在邏輯上分成幾個(gè)處理模塊,在設(shè)計(jì)變更時(shí),比第一種具有一些優(yōu)勢(shì)。 在一個(gè)獨(dú)立的模塊中算法和數(shù)據(jù)表示的改變不會(huì)影響其他模塊。 模塊幾乎不需要考慮與其交互的

5、其他模塊的情況,為重用提供了更好的支持。,解決方案2:抽象數(shù)據(jù)類(lèi)型,上下文關(guān)鍵字,不能很好地適合于功能擴(kuò)展的情況 向系統(tǒng)中加入一個(gè)新的功能時(shí),實(shí)現(xiàn)者要么平衡其簡(jiǎn)明性和完整性而修改現(xiàn)存模塊,要么添加新的模塊而導(dǎo)致性能下降。,解決方案3:隱式調(diào)用,上下文關(guān)鍵字,采用基于共享數(shù)據(jù)的構(gòu)件集成的方式。(p37頁(yè)圖3.3),解決方案3:隱式調(diào)用,上下文關(guān)鍵字,與第一種方案相比: 數(shù)據(jù)訪問(wèn)接口更加抽象,可以抽象地訪問(wèn)數(shù)據(jù)(比如作為表或集合),而不需要知道數(shù)據(jù)的存儲(chǔ)格式。 當(dāng)數(shù)據(jù)被修改時(shí),計(jì)算被隱式地調(diào)用,因而交互是基于“動(dòng)態(tài)數(shù)據(jù)”模型的。例如,向行存儲(chǔ)區(qū)添加一個(gè)新行的動(dòng)作會(huì)激發(fā)一個(gè)事件,這個(gè)事件被發(fā)送到移動(dòng)

6、模塊。移動(dòng)模塊然后進(jìn)行循環(huán)移動(dòng)(在一個(gè)獨(dú)立的、抽象的共享數(shù)據(jù)存儲(chǔ)區(qū)),這又會(huì)引起字母表排序程序被隱式地調(diào)用,字母表排序程序再對(duì)行進(jìn)行排序。,解決方案3:隱式調(diào)用,上下文關(guān)鍵字,這種解決方案很容易支持系統(tǒng)功能的擴(kuò)展:通過(guò)注冊(cè),添加的模塊很容易和系統(tǒng)整合,當(dāng)發(fā)生數(shù)據(jù)交換事件時(shí),這些添加的模塊就會(huì)被調(diào)用。 因?yàn)閿?shù)據(jù)被抽象地訪問(wèn),所以這種解決方案也將計(jì)算和數(shù)據(jù)表示分開(kāi)。 由于被隱式調(diào)用的模塊僅僅依賴(lài)于某些外部的觸發(fā)事件,所以這種方案也支持重用。,解決方案3:隱式調(diào)用,上下文關(guān)鍵字,難以控制隱式調(diào)用模塊的處理順序 由于隱式調(diào)用是數(shù)據(jù)驅(qū)動(dòng)的,這種分解策略實(shí)現(xiàn)起來(lái)會(huì)比之前的方案占用更大的空間。,解決方案4:

7、管道過(guò)濾器,上下文關(guān)鍵字,采用管道的方式。 有四個(gè)過(guò)濾器:輸入、移動(dòng)、按字母表排序、輸出。 每個(gè)過(guò)濾器處理完數(shù)據(jù)并把它發(fā)送到下一個(gè)過(guò)濾器。 控制是分布式的:只要有數(shù)據(jù)通過(guò),過(guò)濾器就會(huì)進(jìn)行處理。 過(guò)濾器間的數(shù)據(jù)共享嚴(yán)格地局限于管道中傳輸?shù)臄?shù)據(jù)。,解決方案4:管道過(guò)濾器,上下文關(guān)鍵字,(p38頁(yè)圖3.4),解決方案4:管道過(guò)濾器,上下文關(guān)鍵字,它能夠維持處理的自然流動(dòng)。 它支持重用,因?yàn)槊總€(gè)過(guò)濾器可以獨(dú)立處理(只要上游過(guò)濾器產(chǎn)生的數(shù)據(jù)格式是過(guò)濾器所期望的格式)。通過(guò)在處理序列中的合適位置插入過(guò)濾器,新的功能很容易加入到系統(tǒng)中。 既然每個(gè)過(guò)濾器和其它過(guò)濾器在邏輯上是獨(dú)立的,那么每個(gè)過(guò)濾器也很容易替換

8、或修改。,解決方案4:管道過(guò)濾器,上下文關(guān)鍵字,不可能通過(guò)修改使其支持交互,如,刪除一行可能需要一些持久性共享存儲(chǔ)區(qū),但這樣就違反了這種方案的基本原則。 空間使用的效率非常低,因?yàn)槊總€(gè)過(guò)濾器必須復(fù)制所有的數(shù)據(jù)到它的輸出端口。,各種方案的比較,上下文關(guān)鍵字,P39頁(yè)圖,Tektronix公司的一個(gè)軟件體系結(jié)構(gòu)的工業(yè)發(fā)展,儀器軟件,這項(xiàng)工程歷時(shí)三年,是由Tektronix公司的幾個(gè)產(chǎn)品部門(mén)和計(jì)算機(jī)研究實(shí)驗(yàn)室合作展開(kāi)的。 目的是為示波器開(kāi)發(fā)一種可重用的系統(tǒng)體系結(jié)構(gòu)。示波器是一個(gè)儀器系統(tǒng),能對(duì)電信號(hào)取樣,并在屏幕上顯示電信號(hào)的圖像(即蹤跡)。 示波器通常對(duì)信號(hào)進(jìn)行測(cè)量,并將它們顯示在屏幕上。,Tekt

9、ronix公司的一個(gè)軟件體系結(jié)構(gòu)的工業(yè)發(fā)展,儀器軟件,現(xiàn)代示波器主要依靠數(shù)字技術(shù)并使用非常復(fù)雜的軟件。 現(xiàn)代示波器能夠完成大量的測(cè)量,提供兆字節(jié)的內(nèi)存,支持工作站網(wǎng)絡(luò)和其它儀器的接口,并能提供完善的用戶(hù)界面,包括帶有菜單的觸摸屏、內(nèi)置的幫助工具和彩色顯示。,Tektronix公司面臨的問(wèn)題,儀器軟件,幾乎沒(méi)有在不同示波器上可重用的軟件組織結(jié)構(gòu)。 不同的示波器由不同的產(chǎn)品部門(mén)生產(chǎn),每個(gè)部門(mén)都有自己的開(kāi)發(fā)約定、軟件組織結(jié)構(gòu)、編程語(yǔ)言和開(kāi)發(fā)工具, 甚至在同一個(gè)部門(mén)內(nèi),每一個(gè)新的示波器通常也不得不重新設(shè)計(jì)來(lái)適應(yīng)硬件性能的變化和用戶(hù)界面的新需求。而硬件和界面需求變化速度越來(lái)越快也加劇了這種情況。 開(kāi)發(fā)“

10、特殊的市場(chǎng)”的需要意味著必須為特殊的用戶(hù)量身定做多種用途的儀器,比如病人監(jiān)護(hù)或汽車(chē)診斷。,Tektronix公司面臨的問(wèn)題,儀器軟件,性能問(wèn)題越來(lái)越嚴(yán)重,因?yàn)檐浖趦x器中不能被快速配置。 由于根據(jù)用戶(hù)的任務(wù)需要,示波器需要在不同的模式下配置。 以前的示波器只需要簡(jiǎn)單地載入處理新模式的軟件就能重新配置,軟件的規(guī)模越來(lái)越大,導(dǎo)致了在用戶(hù)的請(qǐng)求和儀器重新配置之間出現(xiàn)延遲。,工程的目標(biāo),儀器軟件,為示波器開(kāi)發(fā)一種解決上述問(wèn)題的體系結(jié)構(gòu)框架,工程的結(jié)果是產(chǎn)生了一個(gè)特定領(lǐng)域的軟件體系結(jié)構(gòu),這種體系結(jié)構(gòu)將是下一代Tektronix示波器的基礎(chǔ)。 這個(gè)框架被擴(kuò)展和修改來(lái)適應(yīng)更廣泛的系統(tǒng)種類(lèi),同時(shí)也是為了適應(yīng)儀

11、器軟件的特殊需要。,面向?qū)ο竽P?儀器軟件,開(kāi)發(fā)一個(gè)可重用體系結(jié)構(gòu)的最初嘗試是開(kāi)發(fā)一種面向?qū)ο蟮能浖P?,這個(gè)模型闡明了在示波器中使用的對(duì)象類(lèi)型:波形、信號(hào)、測(cè)量值、觸發(fā)模型等。,面向?qū)ο竽P?儀器軟件,雖然是一個(gè)有益的實(shí)踐,但是由于沒(méi)有產(chǎn)生出期望的結(jié)果而失敗了。 盡管很多對(duì)象類(lèi)型被確定,但是沒(méi)有一個(gè)整體模型解釋怎樣結(jié)合這些對(duì)象類(lèi)型,這將會(huì)導(dǎo)致功能劃分的混亂。比如,量度是否應(yīng)該與被測(cè)量的或者被外部表示的數(shù)據(jù)類(lèi)型相關(guān)聯(lián)?用戶(hù)界面應(yīng)該和哪些對(duì)象交互?,分層模型,儀器軟件,第二階段嘗試:分層模型,核心層提供信號(hào)處理功能,當(dāng)信號(hào)進(jìn)入示波器時(shí)使用這些功能過(guò)濾信號(hào)。這些功能通常通過(guò)硬件實(shí)現(xiàn)。,分層模型,儀

12、器軟件,第二階段嘗試:分層模型,第二層提供波形采集功能。在這層中信號(hào)被數(shù)字化,并且被內(nèi)部保存用于以后的處理。,分層模型,儀器軟件,第二階段嘗試:分層模型,第三層提供波形處理功能,包括測(cè)量、波形疊加、傅里葉轉(zhuǎn)換等。,分層模型,儀器軟件,第二階段嘗試:分層模型,第四層提供顯示功能,即負(fù)責(zé)將數(shù)字化的波形和測(cè)量值直觀表示出來(lái)。,分層模型,儀器軟件,第二階段嘗試:分層模型,最外層是用戶(hù)界面,這一層負(fù)責(zé)和用戶(hù)進(jìn)行交互,并決定在屏幕上顯示哪些數(shù)據(jù)。,分層模型,儀器軟件,分層模型將示波器的功能分成一些明確定義的組,所以它具有顯而易見(jiàn)的吸引力。 對(duì)于應(yīng)用領(lǐng)域,這種模型是錯(cuò)誤的,主要的問(wèn)題是層次間強(qiáng)加的抽象邊界和

13、各功能間交互的需要是相互沖突的。 比如,這種模型提出所有用戶(hù)與示波器交互必須通過(guò)顯示層。但是,在實(shí)踐中,真正的示波器用戶(hù)需要直接和各層打交道,比如在信號(hào)處理層中設(shè)置衰減,在采集層中選擇采集模式和參數(shù),或者在波形處理層中制作導(dǎo)出波形。,管道過(guò)濾器模型,儀器軟件,第三種嘗試產(chǎn)生的模型中,示波器功能被看成是數(shù)據(jù)的增量轉(zhuǎn)換器。信號(hào)轉(zhuǎn)換器用來(lái)檢測(cè)外部信號(hào)。采集轉(zhuǎn)換器用來(lái)從這些信號(hào)中導(dǎo)出數(shù)字化波形。顯示轉(zhuǎn)換器再將這些波形轉(zhuǎn)換成可顯示的數(shù)據(jù)。,管道過(guò)濾器模型,儀器軟件,沒(méi)有在功能劃分中將各個(gè)功能孤立起來(lái)。比如,信號(hào)數(shù)據(jù)可以直接流入顯示過(guò)濾器,而不會(huì)被其他過(guò)濾器干擾。 從工程師角度看,模型將信號(hào)處理作為數(shù)據(jù)流

14、問(wèn)題是比較合適的; 模型也允許在系統(tǒng)設(shè)計(jì)中硬件和軟件構(gòu)件的靈活混合和替換。,沒(méi)有清晰的說(shuō)明用戶(hù)怎樣與其交互,改進(jìn)后的管道過(guò)濾器模型,儀器軟件,解決了用戶(hù)輸入問(wèn)題,即為每個(gè)過(guò)濾器添加一個(gè)控制界面,這個(gè)界面允許外部實(shí)體為過(guò)濾器設(shè)置操作參數(shù)。比如,采集過(guò)濾器具有某些參數(shù)用來(lái)確定采樣頻率和波幅。這些輸入可作為示波器的配置參數(shù)。 可以將這些過(guò)濾器想象成一個(gè)具有“控制面板”的界面,通過(guò)它我們可以控制在輸入/輸出界面上將要執(zhí)行哪些功能。 形式上,過(guò)濾器可以被模擬成函數(shù),它的配置參數(shù)決定了過(guò)濾器將執(zhí)行什么數(shù)據(jù)轉(zhuǎn)換。,改進(jìn)后的管道過(guò)濾器模型,儀器軟件,改進(jìn)后的管道過(guò)濾器模型,儀器軟件,控制界面的引入解決了很大一

15、部分用戶(hù)界面的問(wèn)題。 它提供了一系列設(shè)置,這些設(shè)置決定了示波器的哪些方面可以被用戶(hù)動(dòng)態(tài)地修改;它同時(shí)也解釋了用戶(hù)如何通過(guò)不斷地調(diào)整軟件來(lái)改變示波器的功能; 控制界面將示波器的信號(hào)處理功能和實(shí)際的用戶(hù)界面分離:信號(hào)處理軟件不需要考慮用戶(hù)實(shí)際設(shè)置參數(shù)的方式。反之,實(shí)際的用戶(hù)界面僅僅通過(guò)控制參數(shù)來(lái)控制信號(hào)處理功能。設(shè)計(jì)者可以在不影響用戶(hù)界面實(shí)現(xiàn)的情況下,更改信號(hào)處理軟件和硬件的實(shí)現(xiàn)。,改進(jìn)后的管道過(guò)濾器模型,儀器軟件,仍然存在問(wèn)題 管道過(guò)濾器計(jì)算模式的性能非常差,特別是波形數(shù)據(jù)占用了很大的內(nèi)存容量,過(guò)濾器每次處理波形時(shí)都復(fù)制波形數(shù)據(jù)是不切實(shí)際的; 不同的過(guò)濾器以完全不同的速度運(yùn)行,專(zhuān)用化模型,儀器軟

16、件,將模型進(jìn)一步專(zhuān)用化,引進(jìn)多種“顏色”的管道,而不只是使用一種管道。 一種管道允許某些過(guò)濾器在處理數(shù)據(jù)時(shí)不必復(fù)制數(shù)據(jù)。 另一種管道允許慢速過(guò)濾器在數(shù)據(jù)沒(méi)有處理完時(shí)忽略新來(lái)的數(shù)據(jù)。 這些附加的管道增加了風(fēng)格詞匯表并且可以根據(jù)產(chǎn)品的性能定制管道/過(guò)濾器的計(jì)算模式。,總結(jié),儀器軟件,強(qiáng)調(diào)了這樣的事實(shí):不同的體系結(jié)構(gòu)風(fēng)格對(duì)于問(wèn)題的解決有不同的效果。 揭示了為工業(yè)軟件設(shè)計(jì)體系結(jié)構(gòu)時(shí),必須將“純”的體系結(jié)構(gòu)風(fēng)格改造成專(zhuān)用的風(fēng)格來(lái)滿(mǎn)足特定領(lǐng)域的需要。 為滿(mǎn)足一類(lèi)產(chǎn)品族的需要而對(duì)一般風(fēng)格進(jìn)行改造非常重要。,背景,移動(dòng)機(jī)器人,移動(dòng)機(jī)器人系統(tǒng)是用來(lái)操縱有人駕駛或部分地有人駕駛的交通工具,比如汽車(chē)、潛水艇、航空器

17、。 這類(lèi)系統(tǒng)在諸如空間探索、有害垃圾處理、深水探索等領(lǐng)域中得到了新的應(yīng)用。,目標(biāo),移動(dòng)機(jī)器人,構(gòu)建一個(gè)系統(tǒng)來(lái)操縱移動(dòng)機(jī)器人是一個(gè)具有挑戰(zhàn)性的難題。 系統(tǒng)必須處理外部傳感器和傳動(dòng)裝置,能夠?qū)崟r(shí)響應(yīng),并且響應(yīng)速度要和工作環(huán)境中的系統(tǒng)行為相匹配。特別地,移動(dòng)機(jī)器人的軟件功能主要有: 采集從傳感器發(fā)送來(lái)的輸入信號(hào) 操縱車(chē)輪和其他可移動(dòng)零件的運(yùn)動(dòng) 規(guī)劃未來(lái)的移動(dòng)路線。,難點(diǎn),移動(dòng)機(jī)器人,障礙物可能會(huì)阻擋機(jī)器人的移動(dòng)路線 傳感器的輸入信號(hào)可能非常弱 機(jī)器人的電力使用完 機(jī)械的局限性會(huì)限制移動(dòng)的精確性 機(jī)器人可能會(huì)處理有毒材料 不可預(yù)知的時(shí)間要求它具有快速響應(yīng),設(shè)計(jì)考慮因素,移動(dòng)機(jī)器人,需求1:這種體系結(jié)構(gòu)

18、必須能夠協(xié)調(diào)有準(zhǔn)備的行為和反應(yīng)行為。即機(jī)器人必須能夠協(xié)調(diào)控制為完成指定的目標(biāo)(如收集巖石標(biāo)本)而采取的行動(dòng)和由環(huán)境(如避開(kāi)障礙物)引起的反應(yīng)行為。 需求2:這種體系結(jié)構(gòu)必須能夠處理不確定性。機(jī)器人的操作環(huán)境是不能完全預(yù)測(cè)的。這種體系結(jié)構(gòu)必須提供一個(gè)框架,在這個(gè)框架下,機(jī)器人能夠應(yīng)對(duì)不完整的或不可靠的信息(比如,矛盾的傳感器讀數(shù))。,設(shè)計(jì)考慮因素,移動(dòng)機(jī)器人,需求3:這種體系結(jié)構(gòu)必須能夠應(yīng)對(duì)機(jī)器人操作和環(huán)境中固有的危險(xiǎn)。通過(guò)考慮容錯(cuò)度、安全性和性能,這個(gè)體系結(jié)構(gòu)必須能夠幫助保持機(jī)器人、操作及其環(huán)境的完整性。諸如電力供應(yīng)下降,有毒氣體,門(mén)被意外地打開(kāi)等問(wèn)題,不應(yīng)該導(dǎo)致災(zāi)難。 需求4:這種體系結(jié)構(gòu)必

19、須給予設(shè)計(jì)者靈活性。移動(dòng)機(jī)器人的應(yīng)用開(kāi)發(fā)經(jīng)常需要實(shí)驗(yàn)和重新配置。另外,任務(wù)的改變需要定期的修改。,設(shè)計(jì)考慮因素,移動(dòng)機(jī)器人,在一個(gè)給定的環(huán)境中,對(duì)上述需求滿(mǎn)足的程度取決于機(jī)器人設(shè)計(jì)任務(wù)的復(fù)雜性和環(huán)境的可預(yù)知性。如,當(dāng)機(jī)器人用于太空任務(wù)時(shí),容錯(cuò)度非常重要,當(dāng)機(jī)器人用于便于維修的環(huán)境時(shí),就不那么重要了。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,大多數(shù)工業(yè)機(jī)器人的任務(wù)是預(yù)先確定的,不需要處理不可預(yù)知的事件,因此不需要考慮環(huán)境的問(wèn)題(環(huán)境也可以保證不干擾機(jī)器人)。 開(kāi)環(huán)范例很自然地應(yīng)用于這種情況:機(jī)器人發(fā)起一個(gè)或一串動(dòng)作,并且不需要為檢查結(jié)果而操心。 將這個(gè)范例進(jìn)行改良,加入反饋,這樣就形成了一個(gè)閉環(huán)體系結(jié)

20、構(gòu),可應(yīng)用到移動(dòng)機(jī)器人??刂破鲉?dòng)機(jī)器人動(dòng)作并且監(jiān)測(cè)它們的結(jié)果,根據(jù)監(jiān)測(cè)的信息調(diào)整下一步的安排。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,針對(duì)移動(dòng)機(jī)器人的閉環(huán)解決方案,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,需求1: 這種閉環(huán)范例的一個(gè)優(yōu)勢(shì)是它的結(jié)構(gòu)簡(jiǎn)單:機(jī)器人和外界的基本交互非常清晰。 然而,在不可預(yù)知的環(huán)境中這種簡(jiǎn)單性也是它的缺陷。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,需求1: 一個(gè)專(zhuān)家曾經(jīng)注意到反饋環(huán)總是假定環(huán)境的變化是連續(xù)的,并需要連續(xù)的反應(yīng)(比如,通過(guò)開(kāi)關(guān)閥門(mén)逐漸地控制壓力)。機(jī)器人需要經(jīng)常面對(duì)完全不同的、不連續(xù)的事件,這就需要它們?cè)诓煌男袨槟J街修D(zhuǎn)換(比如,在控制操縱器的運(yùn)動(dòng)和調(diào)整底座位置之間

21、做出選擇來(lái)避免失去平衡)。這種模型并沒(méi)有說(shuō)明怎樣處理這種模式變化。 對(duì)于復(fù)雜性任務(wù),控制環(huán)路并沒(méi)有給出將軟件分解成幾個(gè)協(xié)作構(gòu)件的方法。如果感應(yīng)、規(guī)劃和動(dòng)作這些步驟被重新定義,其他范例必須提供控制環(huán)路模型所缺少的細(xì)節(jié)。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,需求2: 對(duì)于不確定性,控制環(huán)路偏愛(ài)使用下述方法來(lái)解決:通過(guò)迭代來(lái)降低未知性。試探和錯(cuò)誤處理程序通過(guò)動(dòng)作和響應(yīng)來(lái)消除每次循環(huán)中的可能性。但是如果需要更細(xì)致的處理,這個(gè)體系結(jié)構(gòu)既沒(méi)有提供一個(gè)使用基本循環(huán)來(lái)集成這些操作的框架,也沒(méi)有提供委托獨(dú)立實(shí)體進(jìn)行操作的框架。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,需求3: 這種閉環(huán)范例提供對(duì)容錯(cuò)度和安全性的支持。因

22、為它的結(jié)構(gòu)簡(jiǎn)單,使得復(fù)制操作更加容易,并能減少系統(tǒng)中錯(cuò)誤發(fā)生的機(jī)率。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,需求4: 一個(gè)機(jī)器人體系結(jié)構(gòu)的主要構(gòu)件(監(jiān)控器、傳感器、發(fā)動(dòng)機(jī))是彼此分開(kāi)的,并能夠被獨(dú)立地替換。微小的修改必須在模塊中進(jìn)行,并且改動(dòng)不會(huì)在體系結(jié)構(gòu)的細(xì)節(jié)層次上反映出來(lái)。,解決方案1:控制環(huán)路,移動(dòng)機(jī)器人,總結(jié): 閉環(huán)范例更適合簡(jiǎn)單的機(jī)器人系統(tǒng),這種系統(tǒng)只處理很少的外部事件,并且它的任務(wù)不需要復(fù)雜的分解。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,Albert Elfes 對(duì)于理想的分層體系結(jié)構(gòu)的定義 這種定義影響了Dolphin聲納和導(dǎo)航系統(tǒng)的設(shè)計(jì),并在Terregator 和 Neptune

23、移動(dòng)機(jī)器人上實(shí)現(xiàn),解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,最底層,駐留機(jī)器人控制程序(發(fā)動(dòng)機(jī)、關(guān)節(jié)等),解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,處理外界的輸入。執(zhí)行傳感器解釋分析,即分析來(lái)自一個(gè)傳感器的數(shù)據(jù)。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,處理外界的輸入。執(zhí)行傳感器集成分析,對(duì)不同傳感器輸入的組合分析,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,涉及維持機(jī)器人的外界模型,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,負(fù)責(zé)管理機(jī)器人導(dǎo)航,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,負(fù)責(zé)調(diào)度和安排機(jī)器人的行動(dòng),解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,負(fù)責(zé)調(diào)度和安排機(jī)器人的行動(dòng),處理問(wèn)題和重新安排,解決方案2:分層體

24、系結(jié)構(gòu),移動(dòng)機(jī)器人,提供用戶(hù)界面和全局監(jiān)控功能,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求1: 通過(guò)定義更多的執(zhí)行委托任務(wù)的構(gòu)件,Elfes的模型避開(kāi)了一些控制環(huán)路方案面臨的問(wèn)題。因?yàn)檫@個(gè)模型專(zhuān)用于自動(dòng)控制的機(jī)器人,所以它揭示了針對(duì)這種機(jī)器人所必須解決的問(wèn)題(如,傳感器集成)。 另外,它定義了抽象層(如機(jī)器人控制與導(dǎo)航)來(lái)指導(dǎo)設(shè)計(jì)。 很好地組織了用來(lái)協(xié)調(diào)機(jī)器人操作的構(gòu)件。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求1: 不適合現(xiàn)行的數(shù)據(jù)和控制流模式。 分層模型要求請(qǐng)求和服務(wù)必須在相鄰的兩層進(jìn)行。在現(xiàn)實(shí)中,Elfes本人也承認(rèn)信息交互并不是直接的。比如,需要快速響應(yīng)的數(shù)據(jù)應(yīng)該直接從傳感器送到位于

25、第七層的問(wèn)題處理代理那里,并且相應(yīng)的命令也應(yīng)該跳過(guò)好幾層以便及時(shí)到達(dá)發(fā)動(dòng)機(jī)。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求1: 不能區(qū)分在體系結(jié)構(gòu)中實(shí)際存在的兩個(gè)抽象層次。 數(shù)據(jù)層,包括原始的傳感器輸入(第一層)、解釋后和集成后的結(jié)果(第二層和第三層)、最終的外界模型(第四層) 控制層,包括發(fā)動(dòng)機(jī)控制(第一層)、導(dǎo)航(第五層)、調(diào)度(第六層)、安排(第七層)、用戶(hù)層控制(第八層),解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求2: 抽象層的存在滿(mǎn)足了處理不確定性的需要:通過(guò)在較高的一層中加入可以用到的知識(shí),使得在最低層中不確定的事物在較高層中會(huì)變得確定。比如,外界模型中的上下文能夠提供某些線索來(lái)消除

26、相矛盾的傳感器數(shù)據(jù)中的歧義。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求3: 抽象機(jī)制滿(mǎn)足了容錯(cuò)度和被動(dòng)的安全性(你堅(jiān)持什么都不做)的要求??梢詮牟煌慕嵌确治鰯?shù)據(jù)和命令。將多個(gè)檢查和平衡操作合并到系統(tǒng)中是可能的。 就像已經(jīng)提到的,性能和主動(dòng)安全性(你必須去做某事而不是避免做某些事)可能需要縮短通信的路徑。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求4: 層次間的依賴(lài)性使得構(gòu)件的替換和添加更加困難。 層次間復(fù)雜的關(guān)系使得解讀每一次變化都會(huì)令人頭疼。,解決方案2:分層體系結(jié)構(gòu),移動(dòng)機(jī)器人,總結(jié): 因?yàn)閷?duì)不同層角色的描述是精確的,因此通過(guò)分層體系結(jié)構(gòu)定義的抽象層提供了一個(gè)合理組織構(gòu)件的框架。 當(dāng)在

27、實(shí)現(xiàn)過(guò)程中牽扯到更深層次的細(xì)節(jié),這種模型通常會(huì)完全失效。機(jī)器人中的通信模式不可能遵循這種體系結(jié)構(gòu)所規(guī)定的層次結(jié)構(gòu)。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,基于隱式調(diào)用的形式,內(nèi)嵌于任務(wù)控制體系結(jié)構(gòu)(Task-Control Architecture, TCA)中的。 這種體系結(jié)構(gòu)已經(jīng)應(yīng)用在眾多的移動(dòng)機(jī)器人上,如漫步者機(jī)器人。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,TCA體系結(jié)構(gòu)是基于任務(wù)層或者任務(wù)樹(shù)。,移動(dòng)機(jī)器人的任務(wù)樹(shù),其中父任務(wù)啟動(dòng)子任務(wù)。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,軟件設(shè)計(jì)者能夠定義任務(wù)對(duì)之間的時(shí)序依賴(lài)性。比如,一個(gè)普通的時(shí)序約束是任務(wù)A必須在任務(wù)B開(kāi)始前完成。 這些特點(diǎn)提供了選擇性并發(fā)

28、的規(guī)格說(shuō)明。 TCA的實(shí)現(xiàn)包括許多用于任務(wù)樹(shù)動(dòng)態(tài)重新配置的操作,這些操作用來(lái)在運(yùn)行期間響應(yīng)機(jī)器人狀態(tài)和環(huán)境狀況的變化。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,TCA使用隱式調(diào)用來(lái)協(xié)調(diào)任務(wù)間的交互。 任務(wù)通過(guò)消息服務(wù)器的廣播消息來(lái)實(shí)現(xiàn)通信,消息服務(wù)器將消息轉(zhuǎn)發(fā)到某個(gè)任務(wù),這個(gè)任務(wù)通過(guò)注冊(cè)來(lái)聲明負(fù)責(zé)這條消息的處理。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,TCA隱式調(diào)用機(jī)制還支持三種功能: 異常(Exception):特定條件會(huì)引起一個(gè)相關(guān)聯(lián)的異常處理程序執(zhí)行。異常會(huì)搶占目前正在執(zhí)行的并且產(chǎn)生異常的任務(wù)在子任務(wù)樹(shù)中的位置。它們會(huì)快速改變機(jī)器人的處理模式,這樣,這種體系結(jié)構(gòu)比反饋環(huán)路或者純粹的分層體系結(jié)構(gòu)中相

29、對(duì)長(zhǎng)的通信路徑更適合處理自發(fā)的事件(比如,出現(xiàn)危險(xiǎn)的地形)。異常處理程序在它的配置中具有處理任務(wù)樹(shù)的全部操作,比如,中止或重試任務(wù)。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,TCA隱式調(diào)用機(jī)制還支持三種功能: 竊聽(tīng)(Wiretapping):在現(xiàn)有任務(wù)樹(shù)上添加的任務(wù)可以截取消息。例如,一個(gè)安全性檢查構(gòu)件能夠根據(jù)這種特點(diǎn)驗(yàn)證輸出的移動(dòng)命令。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,TCA隱式調(diào)用機(jī)制還支持三種功能: 監(jiān)控器(Monitor):如果數(shù)據(jù)滿(mǎn)足某一標(biāo)準(zhǔn),監(jiān)控器就可以讀取信息,然后去執(zhí)行某些操作。比如,TCA使用手冊(cè)中有這樣一個(gè)例子:如果監(jiān)控器檢測(cè)到電量低于一個(gè)給定值,就會(huì)調(diào)用負(fù)責(zé)充電的動(dòng)作。這個(gè)特

30、點(diǎn)提供了一個(gè)處理容錯(cuò)度問(wèn)題的簡(jiǎn)便方法:防止一個(gè)代理來(lái)監(jiān)控系統(tǒng)。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,需求1: 一方面是任務(wù)樹(shù),另一方面是異常、竊聽(tīng)、監(jiān)控器,這些為動(dòng)作(在任務(wù)樹(shù)中的行為)和響應(yīng)(由外來(lái)事件或環(huán)境引起的行為)提供了清晰的劃分。 因?yàn)榭梢栽谀P椭酗@示地加入并發(fā)代理,所以TCA很容易和之前的范例區(qū)分。在TCA中,可以很明顯地看到多個(gè)動(dòng)作可以在同一時(shí)刻處理,并且這些處理或多或少是相互獨(dú)立的。而其他兩個(gè)模型不能明確地處理并發(fā)。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,需求2: TCA如何解決不確定性是不夠清晰的,如果存在不可估計(jì)的情況,會(huì)創(chuàng)建一個(gè)試驗(yàn)性的任務(wù)樹(shù),如果任務(wù)樹(shù)中基本假設(shè)被證明是錯(cuò)誤的

31、,那么異常處理程序會(huì)不斷地修改它知道正確為止。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,需求3: TCA異常、竊聽(tīng)、監(jiān)控器特點(diǎn)使其考慮了性能、安全性、容錯(cuò)度這些問(wèn)題。 當(dāng)為同一個(gè)信號(hào)注冊(cè)多個(gè)處理者時(shí),通過(guò)冗余來(lái)實(shí)現(xiàn)容錯(cuò),如果一個(gè)處理者不可用,TCA會(huì)通過(guò)將請(qǐng)求發(fā)送給其他處理者來(lái)繼續(xù)提供服務(wù)。因?yàn)槎鄠€(gè)處理者會(huì)并發(fā)地處理針對(duì)同一個(gè)請(qǐng)求的多個(gè)事件,這樣性能也會(huì)提高。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,需求4: 使用隱式調(diào)用使得增量開(kāi)發(fā)和構(gòu)件的替換更為直接。在不影響現(xiàn)有構(gòu)件的情況下,很容易在中心服務(wù)器注冊(cè)新的處理者、異常、竊聽(tīng)器或監(jiān)控器。,解決方案3:隱式調(diào)用,移動(dòng)機(jī)器人,總結(jié): 考慮到性能和開(kāi)發(fā)的難度需求

32、,TCA提供了對(duì)機(jī)器人的任務(wù)協(xié)調(diào)的全面支持。 這種策略的強(qiáng)大功能使其非常適合復(fù)雜的機(jī)器人項(xiàng)目。,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,這個(gè)范例用在了NAVLAB工程中,這個(gè)工程是CODGER系統(tǒng)的一部分。,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,指揮:總監(jiān)控器,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,地圖導(dǎo)航:高層的路線規(guī)劃程序,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,監(jiān)視:為獲取路標(biāo)而監(jiān)控環(huán)境的模塊,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,駕駛:底層的路線規(guī)劃程序和發(fā)動(dòng)機(jī)控制器,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,感知子系統(tǒng):這個(gè)模塊接受來(lái)自多個(gè)傳感器的原始輸入并將它們整合成一致的解釋。,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求1: 構(gòu)件(包括感知子系統(tǒng)中的模塊)通過(guò)黑板系統(tǒng)的共享知識(shí)庫(kù)來(lái)進(jìn)行通信。每個(gè)模塊只對(duì)某種信息感興趣。數(shù)據(jù)庫(kù)可以立即向這些模塊發(fā)送它們需要的信息,或者當(dāng)其他模塊向數(shù)據(jù)庫(kù)插入這些信息后,再向這些模塊發(fā)送它們需要的信息。比如,lookout可以監(jiān)視某種地理特征;當(dāng)感知子系統(tǒng)存儲(chǔ)的圖像與描述相匹配,數(shù)據(jù)庫(kù)會(huì)通知lookout。,解決方案4:黑板體系結(jié)構(gòu),移動(dòng)機(jī)器人,需求1: CODGER體系結(jié)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論