設(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ī)器人編程過(guò)程包括(假定硬件已經(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ù)用、功能可共享。使用通用的框架,有利于分解開(kāi)發(fā)任務(wù)及代碼移植。機(jī)器人軟件同樣遵從軟件工程的一般規(guī)律。說(shuō)白了,架構(gòu)就是你如何把機(jī)器人的功能打散,再如何把代碼組織起來(lái)。一個(gè)清晰的與項(xiàng)目相匹配的架構(gòu)直接決定了你的開(kāi)發(fā)效率甚至最終功能的成敗。
從人類第一臺(tái)可編程的機(jī)器人開(kāi)發(fā)伊始,架構(gòu)問(wèn)題就與之相伴而生。早在1996年,Garlan和Shaw在《軟件架構(gòu):一門(mén)新興學(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)過(guò)了幾十年的實(shí)踐,一些架構(gòu)被逐漸淘汰,一些架構(gòu)逐漸被完善起來(lái)。
注意:現(xiàn)在很多機(jī)器人開(kāi)發(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í)行,最低層再次成為與小車(chē)的接口,將駕駛指令發(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)作無(wú)法達(dá)到預(yù)期的效果。
2.基于行為的結(jié)構(gòu)
圖4.基于行為的結(jié)構(gòu)
由于SPA系統(tǒng)過(guò)于死板,出現(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é)合起來(lái)工作。
小歷史:Joe Jones和Daniel Roth于2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基于行為系統(tǒng)的iRobot掃地機(jī)器人的大獲成功(通過(guò)基于行為的系統(tǒng)可有效實(shí)現(xiàn)遍歷、避免在某處卡死等多個(gè)目標(biāo)的達(dá)成),標(biāo)志著當(dāng)年基于行為系統(tǒng)結(jié)構(gòu)的統(tǒng)治地位。短短十年間,SLAM的迅速興起,基于地圖的規(guī)劃和導(dǎo)航再次興起,很多人似乎忘記了或壓根就沒(méi)聽(tīng)說(shuō)過(guò)Behavior-Based Robotics的存在。
圖5.《基于行為的機(jī)器人編程》
基于行為的軟件模型是一種由下至上的設(shè)計(jì),因而其結(jié)果不易預(yù)測(cè),每一個(gè)機(jī)器人功能性(functionality)被封裝成一個(gè)小的獨(dú)立的模塊,稱為一個(gè)“行為”,而不是編寫(xiě)一整個(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)問(wèn)題。
最初的行為之間使用固定的優(yōu)先級(jí),而在現(xiàn)代的應(yīng)用中則采用更加靈活的選擇方案。
“基于行為機(jī)器人學(xué)”主要特點(diǎn)包括(參見(jiàn)《嵌入式機(jī)器人學(xué)》):
1)感應(yīng)與動(dòng)作的緊密耦合
在某種程度上,所有行為機(jī)器人的動(dòng)作是對(duì)刺激的反應(yīng)而不是依賴于有意識(shí)的規(guī)則。回避使用思考規(guī)劃,取而代之的是一些計(jì)算簡(jiǎn)化的模塊來(lái)實(shí)現(xiàn)從輸入到執(zhí)行的映射,此舉有利于快速響應(yīng)。基于這個(gè)觀察Brooks言簡(jiǎn)意概的表達(dá)出來(lái)其中的原理——“規(guī)劃不過(guò)是一種回避計(jì)算下一步要做什么的方法”。
2)避開(kāi)知識(shí)的符號(hào)表示
對(duì)環(huán)境的處理上不需要構(gòu)造一個(gè)內(nèi)部模型以用于執(zhí)行規(guī)劃任務(wù),而是采用真實(shí)世界“它自己最好的模型”。機(jī)器人直接從觀測(cè)中獲取到未來(lái)的行為,而非試圖去生成一個(gè)能夠內(nèi)部操作的世界的抽象表示并以此作為規(guī)劃未來(lái)行動(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è)控制方案來(lái)改變行為的激活等級(jí)。
5)行為選擇
在基于行為系統(tǒng)中運(yùn)行著一定數(shù)目作為并行進(jìn)程的行為,每一個(gè)行為可以讀取所有的傳感器(讀動(dòng)作),但只有一個(gè)行為可獲得機(jī)器人執(zhí)行器或行駛機(jī)構(gòu)的控制權(quán)(寫(xiě)動(dòng)作)。因此需要一個(gè)全局控制器在恰當(dāng)?shù)臅r(shí)機(jī)來(lái)協(xié)助行為選擇(或是行為激活、或是行為輸出融合)以達(dá)到預(yù)期的目的。這將系統(tǒng)的設(shè)計(jì)工作,就從描述系統(tǒng)本身轉(zhuǎn)移到定義一個(gè)正常工作的系統(tǒng)的輸出上。
說(shuō)多了,感覺(jué)要跑題了。如果你有興趣,并想了解更多關(guān)于編程機(jī)器人來(lái)處理未知的東西,推薦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)物
沒(méi)有萬(wàn)靈的結(jié)構(gòu),混合系統(tǒng)結(jié)合了SPA和反應(yīng)體系的原理,將多種混合系統(tǒng)應(yīng)用于在傳感器和電機(jī)輸出間進(jìn)行協(xié)調(diào)來(lái)完成任務(wù)。混合結(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)就開(kāi)始發(fā)揮作用。會(huì)根據(jù)情況,在“行為庫(kù)”recovery_behaviors中調(diào)用某一預(yù)先設(shè)定的“行為”來(lái)擺脫困境。
圖7.recovery_behaviors
默認(rèn)的行為是:首先,清除機(jī)器人地圖指定區(qū)域以外的障礙。接下來(lái),如果可能的話,機(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 “行為庫(kù)”以備調(diào)用。
三、安全自主機(jī)器人應(yīng)用框架
現(xiàn)在還有一種基于場(chǎng)景和態(tài)勢(shì)的設(shè)計(jì)框架SARAA,我覺(jué)得很有趣。安全自主機(jī)器人應(yīng)用架構(gòu)(SARAA,Safe Autonomous Robot Application Architecture, SARAA)是一種強(qiáng)調(diào)安全性的自主機(jī)器人的開(kāi)發(fā)方法。
圖8.SARAA
SARAA機(jī)器人總結(jié)
在《機(jī)器人編程實(shí)戰(zhàn)》(2017年出版)書(shū)中,詳細(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ì)前提/后置條件的判斷以提高安全性。
感興趣可訪問(wèn)Ctest實(shí)驗(yàn)室,SARAA已經(jīng)用于在開(kāi)源機(jī)器人平臺(tái)內(nèi)工作,例如Arduino、Linux和ROS。如果對(duì)編程SARAA機(jī)器人的場(chǎng)景和態(tài)勢(shì)很好理解與恰當(dāng)定義,則SARAA機(jī)器人的設(shè)計(jì)有助于提升機(jī)器人的安全性。
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書(shū):滿足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
單向可控硅
刀開(kāi)關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車(chē)
電動(dòng)工具
電動(dòng)汽車(chē)
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖