設(shè)計(jì)理想的機(jī)器人,系統(tǒng)架構(gòu)有哪些特殊技巧?
發(fā)布時(shí)間:2016-12-20 責(zé)任編輯:susan
【導(dǎo)讀】機(jī)器人編程涉及控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),包括環(huán)境感知、交互、移動(dòng)及行為的控制。系統(tǒng)架構(gòu)也可稱其為如何實(shí)施解決方案的一個(gè)策略性設(shè)計(jì)(例如基于組件的工程標(biāo)準(zhǔn)、安全)和解決方案做什么的功能性設(shè)計(jì)(如算法、設(shè)計(jì)模式、底層實(shí)現(xiàn))。
一個(gè)理想的機(jī)器人編程過程包括(假定硬件已經(jīng)一切就緒):
1.系統(tǒng)架構(gòu)設(shè)計(jì)
2.具體功能的算法實(shí)現(xiàn)
3.編碼與集成
一、機(jī)器人系統(tǒng)架構(gòu)
“架構(gòu)可定義為組件的結(jié)構(gòu)及它們之間的關(guān)系,以及規(guī)范其設(shè)計(jì)和后續(xù)進(jìn)化的原則和指南。簡(jiǎn)言之,架構(gòu)是構(gòu)造與集成軟件密集型系統(tǒng)的深層次設(shè)計(jì)。”
系統(tǒng)架構(gòu)也可稱其為如何實(shí)施解決方案的一個(gè)策略性設(shè)計(jì)(例如基于組件的工程標(biāo)準(zhǔn)、安全)和解決方案做什么的功能性設(shè)計(jì)(如算法、設(shè)計(jì)模式、底層實(shí)現(xiàn))。
圖1.機(jī)器人功能分解
另外,軟件工程的基本要求包括模塊化、代碼可復(fù)用、功能可共享。使用通用的框架,有利于分解開發(fā)任務(wù)及代碼移植。機(jī)器人軟件同樣遵從軟件工程的一般規(guī)律。說白了,架構(gòu)就是你如何把機(jī)器人的功能打散,再如何把代碼組織起來。一個(gè)清晰的與項(xiàng)目相匹配的架構(gòu)直接決定了你的開發(fā)效率甚至最終功能的成敗。
從人類第一臺(tái)可編程的機(jī)器人開發(fā)伊始,架構(gòu)問題就與之相伴而生。早在1996年,Garlan和Shaw在《軟件架構(gòu):一門新興學(xué)科的展望》就總結(jié)了移動(dòng)機(jī)器人的基本設(shè)計(jì)需求, 如:(1) 慎思規(guī)劃和反應(yīng)式行為;(2)容許不確定性;(3)考慮危險(xiǎn);(4)靈活性強(qiáng)。針對(duì)這些要求,他們?cè)u(píng)估了四種用于移動(dòng)機(jī)器人的架構(gòu),包括控制回路(control loop)、分層(layers)、隱式調(diào)用(implicit invocation)、黑板(blackboard)。經(jīng)過了幾十年的實(shí)踐,一些架構(gòu)被逐漸淘汰,一些架構(gòu)逐漸被完善起來。
注意:現(xiàn)在很多機(jī)器人開發(fā)者一上手就是ROS,雖然ROS是一種比較不錯(cuò)的系統(tǒng)架構(gòu),它的基于node的思想在當(dāng)時(shí)是非常先進(jìn)的,在今天已成為主流。但我們也要清楚,它只是其中一種架構(gòu),尤其是在小型嵌入式設(shè)備上定制機(jī)器人系統(tǒng)時(shí),其他的架構(gòu)可能會(huì)更有效率。另外Master中央控制模式,也是單機(jī)時(shí)代的產(chǎn)物,在多機(jī)的情形就不是很適用。
1.S-P-A結(jié)構(gòu)
圖2.機(jī)器人的“see-think-act”工作模式
圖3.“傳感——計(jì)劃——行動(dòng)”(SPA)結(jié)構(gòu)
機(jī)器人天然的工作模式是“see-think-act”,所以自然而然的就形成了“傳感——計(jì)劃——行動(dòng)”(SPA)結(jié)構(gòu):從感知進(jìn)行映射,經(jīng)由一個(gè)內(nèi)在的世界模型構(gòu)造,再由此模型規(guī)劃一系列的行動(dòng),最終在真實(shí)的環(huán)境中執(zhí)行這些規(guī)劃。與之對(duì)應(yīng)的軟件結(jié)構(gòu)稱為經(jīng)典模型,也稱為層次模型、功能模型、工程模型或三層模型,這是一種由上至下執(zhí)行的可預(yù)測(cè)的軟件結(jié)構(gòu)。
SPA機(jī)器人系統(tǒng)典型的結(jié)構(gòu)是中建立有三個(gè)抽象層,分別稱為行駛層(Pilot)(最低層)、導(dǎo)航層(Navigator)(中間層)、規(guī)劃層(Planner)(最高層)。傳感器獲取的載體數(shù)據(jù)由下兩層預(yù)處理后再到達(dá)最高“智能”層作出行駛決策,實(shí)際的行駛(如導(dǎo)航和低層的行駛功能)交由下面各層執(zhí)行,最低層再次成為與小車的接口,將駕駛指令發(fā)送給機(jī)器人的執(zhí)行器。
缺點(diǎn):這種方法強(qiáng)調(diào)世界模型的構(gòu)造并以此模型規(guī)劃行動(dòng),而構(gòu)造符號(hào)模型需要大量的計(jì)算時(shí)間,這對(duì)機(jī)器人的性能會(huì)有顯著的影響。另外,規(guī)劃模型與真實(shí)環(huán)境的偏差將導(dǎo)致機(jī)器人的動(dòng)作無法達(dá)到預(yù)期的效果。
2.基于行為的結(jié)構(gòu)
圖4.基于行為的結(jié)構(gòu)
由于SPA系統(tǒng)過于死板,出現(xiàn)了另一種實(shí)現(xiàn)方法:基于行為的方法。基于行為方法前身是反應(yīng)式系統(tǒng),反應(yīng)式系統(tǒng)并不采用符號(hào)表示,卻能夠生成合理的復(fù)合行為?;谛袨闄C(jī)器人方案進(jìn)一步擴(kuò)展了簡(jiǎn)單反應(yīng)式系統(tǒng)的概念,使得簡(jiǎn)單的并發(fā)行為可以結(jié)合起來工作。
小歷史:Joe Jones和Daniel Roth于2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基于行為系統(tǒng)的iRobot掃地機(jī)器人的大獲成功(通過基于行為的系統(tǒng)可有效實(shí)現(xiàn)遍歷、避免在某處卡死等多個(gè)目標(biāo)的達(dá)成),標(biāo)志著當(dāng)年基于行為系統(tǒng)結(jié)構(gòu)的統(tǒng)治地位。短短十年間,SLAM的迅速興起,基于地圖的規(guī)劃和導(dǎo)航再次興起,很多人似乎忘記了或壓根就沒聽說過Behavior-Based Robotics的存在。
圖5.《基于行為的機(jī)器人編程》
基于行為的軟件模型是一種由下至上的設(shè)計(jì),因而其結(jié)果不易預(yù)測(cè),每一個(gè)機(jī)器人功能性(functionality)被封裝成一個(gè)小的獨(dú)立的模塊,稱為一個(gè)“行為”,而不是編寫一整個(gè)大段的代碼。因?yàn)樗械男袨椴⑿袌?zhí)行,所以不需要設(shè)置優(yōu)先級(jí)。此種設(shè)計(jì)的目的之一是為了易于擴(kuò)展,例如便于增加一個(gè)新的傳感器或向機(jī)器人程序里增加一個(gè)新的行為特征。所有的行為可以讀取載體所有傳感器的數(shù)據(jù),但當(dāng)歸集眾多的行為向執(zhí)行器產(chǎn)生單一的輸出信號(hào)時(shí),則會(huì)出現(xiàn)問題。
最初的行為之間使用固定的優(yōu)先級(jí),而在現(xiàn)代的應(yīng)用中則采用更加靈活的選擇方案。
“基于行為機(jī)器人學(xué)”主要特點(diǎn)包括(參見《嵌入式機(jī)器人學(xué)》):
1)感應(yīng)與動(dòng)作的緊密耦合
在某種程度上,所有行為機(jī)器人的動(dòng)作是對(duì)刺激的反應(yīng)而不是依賴于有意識(shí)的規(guī)則。回避使用思考規(guī)劃,取而代之的是一些計(jì)算簡(jiǎn)化的模塊來實(shí)現(xiàn)從輸入到執(zhí)行的映射,此舉有利于快速響應(yīng)?;谶@個(gè)觀察Brooks言簡(jiǎn)意概的表達(dá)出來其中的原理——“規(guī)劃不過是一種回避計(jì)算下一步要做什么的方法”。
2)避開知識(shí)的符號(hào)表示
對(duì)環(huán)境的處理上不需要構(gòu)造一個(gè)內(nèi)部模型以用于執(zhí)行規(guī)劃任務(wù),而是采用真實(shí)世界“它自己最好的模型”。機(jī)器人直接從觀測(cè)中獲取到未來的行為,而非試圖去生成一個(gè)能夠內(nèi)部操作的世界的抽象表示并以此作為規(guī)劃未來行動(dòng)的基礎(chǔ)。
3)分解成具有因果意義的單元
行為按照狀態(tài)——動(dòng)作成對(duì)出現(xiàn),設(shè)計(jì)為對(duì)特定的狀態(tài)做出確定的動(dòng)作響應(yīng)。
4)并發(fā)關(guān)聯(lián)行為的時(shí)變等級(jí)調(diào)整
為適應(yīng)所要達(dá)成任務(wù)目的,在運(yùn)行期間采用一個(gè)控制方案來改變行為的激活等級(jí)。
5)行為選擇
在基于行為系統(tǒng)中運(yùn)行著一定數(shù)目作為并行進(jìn)程的行為,每一個(gè)行為可以讀取所有的傳感器(讀動(dòng)作),但只有一個(gè)行為可獲得機(jī)器人執(zhí)行器或行駛機(jī)構(gòu)的控制權(quán)(寫動(dòng)作)。因此需要一個(gè)全局控制器在恰當(dāng)?shù)臅r(shí)機(jī)來協(xié)助行為選擇(或是行為激活、或是行為輸出融合)以達(dá)到預(yù)期的目的。這將系統(tǒng)的設(shè)計(jì)工作,就從描述系統(tǒng)本身轉(zhuǎn)移到定義一個(gè)正常工作的系統(tǒng)的輸出上。
說多了,感覺要跑題了。如果你有興趣,并想了解更多關(guān)于編程機(jī)器人來處理未知的東西,推薦Ronald Arkin的《Behavior-Based Robotics》和Thomas Braun的《嵌入式機(jī)器人學(xué):基于嵌入式系統(tǒng)的移動(dòng)機(jī)器人設(shè)計(jì)和應(yīng)用》。慎思式的機(jī)器人編程方法,從中級(jí)到高級(jí)的探討,推薦Christopher A. Rouff等人的《Agent Technology from a Formal Perspective》。
一張圖小結(jié)一下:
二、混合系統(tǒng):實(shí)踐的產(chǎn)物
沒有萬靈的結(jié)構(gòu),混合系統(tǒng)結(jié)合了SPA和反應(yīng)體系的原理,將多種混合系統(tǒng)應(yīng)用于在傳感器和電機(jī)輸出間進(jìn)行協(xié)調(diào)來完成任務(wù)?;旌辖Y(jié)構(gòu)相結(jié)合最具吸引力的好處可能是:系統(tǒng)按照有利于完成任務(wù)的標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì),而非刻板的遵循某一教條。但再?gòu)?fù)雜的機(jī)構(gòu),基本上也都是二者的組合。以ROS的導(dǎo)航包為例:
圖6.ROS導(dǎo)航包
導(dǎo)航包整體上是SPA結(jié)構(gòu),左右兩側(cè)是感知S,包括傳感器數(shù)據(jù)/里程計(jì)/地圖等,中間框圖是Global和Local兩級(jí)規(guī)劃P,最后發(fā)送cmd_vel給行動(dòng)A。
如果世界是完美的,那按照規(guī)劃的地圖行進(jìn)到目的地就完事了。然而基于行為方法就是為了處理各種意外而生的。當(dāng)機(jī)器人遇到障礙物或是被卡住的時(shí)候,內(nèi)嵌的基于行為的系統(tǒng)就開始發(fā)揮作用。會(huì)根據(jù)情況,在“行為庫”recovery_behaviors中調(diào)用某一預(yù)先設(shè)定的“行為”來擺脫困境。
圖7.recovery_behaviors
默認(rèn)的行為是:首先,清除機(jī)器人地圖指定區(qū)域以外的障礙。接下來,如果可能的話,機(jī)器人將執(zhí)行一個(gè)原地旋轉(zhuǎn)清理空間。如果這也失敗了,機(jī)器人將更激進(jìn)地清理地圖,清除一切可以原地旋轉(zhuǎn)的矩形區(qū)域以外的障礙。這將是另一個(gè)就地旋轉(zhuǎn)緊隨其后。如果這些都失敗了,機(jī)器人將認(rèn)為其目標(biāo)不可行,停止運(yùn)行并通知用戶。
當(dāng)然,你還可以針對(duì)各種意外設(shè)計(jì)更為復(fù)雜的recovery_behaviors “行為庫”以備調(diào)用。
三、安全自主機(jī)器人應(yīng)用框架
現(xiàn)在還有一種基于場(chǎng)景和態(tài)勢(shì)的設(shè)計(jì)框架SARAA,我覺得很有趣。安全自主機(jī)器人應(yīng)用架構(gòu)(SARAA,Safe Autonomous Robot Application Architecture, SARAA)是一種強(qiáng)調(diào)安全性的自主機(jī)器人的開發(fā)方法。
圖8.SARAA
SARAA機(jī)器人總結(jié)
在《機(jī)器人編程實(shí)戰(zhàn)》(2017年出版)書中,詳細(xì)介紹了編程一個(gè)機(jī)器人自主執(zhí)行其任務(wù)、構(gòu)成了所謂SARAA的7項(xiàng)技術(shù):
軟件機(jī)器人框架
ROLL模型
REQUIRE
RSVP
SPACES
STORIES
PASS
我們稱具有這種體系結(jié)構(gòu)的機(jī)器人為SARAA機(jī)器人。當(dāng)正確地實(shí)現(xiàn)時(shí),這些編程技術(shù)產(chǎn)生一個(gè)基于知識(shí)的機(jī)器人控制器。因此,一個(gè)SARAA機(jī)器人是一個(gè)可以在預(yù)先設(shè)定的場(chǎng)景和態(tài)勢(shì)中自主行動(dòng)的知識(shí)型機(jī)器人。其中一個(gè)設(shè)計(jì)思想是根據(jù)場(chǎng)景和態(tài)勢(shì)對(duì)前提/后置條件的判斷以提高安全性。
感興趣可訪問Ctest實(shí)驗(yàn)室,SARAA已經(jīng)用于在開源機(jī)器人平臺(tái)內(nèi)工作,例如Arduino、Linux和ROS。如果對(duì)編程SARAA機(jī)器人的場(chǎng)景和態(tài)勢(shì)很好理解與恰當(dāng)定義,則SARAA機(jī)器人的設(shè)計(jì)有助于提升機(jī)器人的安全性。
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號(hào)和結(jié)構(gòu)
- 英飛凌推出用于汽車應(yīng)用識(shí)別和認(rèn)證的新型指紋傳感器IC
- Vishay推出負(fù)載電壓達(dá)100 V的業(yè)內(nèi)先進(jìn)的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- “扒開”超級(jí)電容的“外衣”,看看超級(jí)電容“超級(jí)”在哪兒
- DigiKey 誠(chéng)邀各位參會(huì)者蒞臨SPS 2024?展會(huì)參觀交流,體驗(yàn)最新自動(dòng)化產(chǎn)品
- 提前圍觀第104屆中國(guó)電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個(gè)新物料
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達(dá)控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢(mèng)想電子
模擬鎖相環(huán)
耐壓測(cè)試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池
紐扣電池
歐勝
耦合技術(shù)
排電阻
排母連接器
排針連接器
片狀電感
偏光片
偏轉(zhuǎn)線圈
頻率測(cè)量?jī)x
頻率器件
頻譜測(cè)試儀
平板電腦