設計理想的機器人,係統架構有哪些特殊技巧?
發布時間:2016-12-20 責任編輯:susan
【導讀】機器人編程涉及控製係統的設計與實現,包括環境感知、交互、移動及行為的控製。係統架構也可稱其為如何實施解決方案的一個策略性設計(例如基於組件的工程標準、安全)和解決方案做什麼的功能性設計(如算法、設計模式、底層實現)。
一個理想的機器人編程過程包括(假定硬件已經一切就緒):
1.係統架構設計
2.具體功能的算法實現
3.編碼與集成
一、機器人係統架構
“架jia構gou可ke定ding義yi為wei組zu件jian的de結jie構gou及ji它ta們men之zhi間jian的de關guan係xi,以yi及ji規gui範fan其qi設she計ji和he後hou續xu進jin化hua的de原yuan則ze和he指zhi南nan。簡jian言yan之zhi,架jia構gou是shi構gou造zao與yu集ji成cheng軟ruan件jian密mi集ji型xing係xi統tong的de深shen層ceng次ci設she計ji。”
係統架構也可稱其為如何實施解決方案的一個策略性設計(例如基於組件的工程標準、安全)和解決方案做什麼的功能性設計(如算法、設計模式、底層實現)。

圖1.機器人功能分解
另外,軟件工程的基本要求包括模塊化、代碼可複用、功gong能neng可ke共gong享xiang。使shi用yong通tong用yong的de框kuang架jia,有you利li於yu分fen解jie開kai發fa任ren務wu及ji代dai碼ma移yi植zhi。機ji器qi人ren軟ruan件jian同tong樣yang遵zun從cong軟ruan件jian工gong程cheng的de一yi般ban規gui律lv。說shuo白bai了le,架jia構gou就jiu是shi你ni如ru何he把ba機ji器qi人ren的de功gong能neng打da散san,再zai如ru何he把ba代dai碼ma組zu織zhi起qi來lai。一yi個ge清qing晰xi的de與yu項xiang目mu相xiang匹pi配pei的de架jia構gou直zhi接jie決jue定ding了le你ni的de開kai發fa效xiao率lv甚shen至zhi最zui終zhong功gong能neng的de成cheng敗bai。
從人類第一台可編程的機器人開發伊始,架構問題就與之相伴而生。早在1996年,Garlan和Shaw在《軟件架構:一門新興學科的展望》就總結了移動機器人的基本設計需求, 如:(1) 慎思規劃和反應式行為;(2)容許不確定性;(3)考慮危險;(4)靈活性強。針對這些要求,他們評估了四種用於移動機器人的架構,包括控製回路(control loop)、分層(layers)、隱式調用(implicit invocation)、黑板(blackboard)。經過了幾十年的實踐,一些架構被逐漸淘汰,一些架構逐漸被完善起來。
注意:現在很多機器人開發者一上手就是ROS,雖然ROS是一種比較不錯的係統架構,它的基於node的de思si想xiang在zai當dang時shi是shi非fei常chang先xian進jin的de,在zai今jin天tian已yi成cheng為wei主zhu流liu。但dan我wo們men也ye要yao清qing楚chu,它ta隻zhi是shi其qi中zhong一yi種zhong架jia構gou,尤you其qi是shi在zai小xiao型xing嵌qian入ru式shi設she備bei上shang定ding製zhi機ji器qi人ren係xi統tong時shi,其qi他ta的de架jia構gou可ke能neng會hui更geng有you效xiao率lv。另ling外waiMaster中央控製模式,也是單機時代的產物,在多機的情形就不是很適用。
1.S-P-A結構

圖2.機器人的“see-think-act”工作模式

圖3.“傳感——計劃——行動”(SPA)結構
機器人天然的工作模式是“see-think-act”,所以自然而然的就形成了“傳感——計劃——行動”(SPA)結構:從(cong)感(gan)知(zhi)進(jin)行(xing)映(ying)射(she),經(jing)由(you)一(yi)個(ge)內(nei)在(zai)的(de)世(shi)界(jie)模(mo)型(xing)構(gou)造(zao),再(zai)由(you)此(ci)模(mo)型(xing)規(gui)劃(hua)一(yi)係(xi)列(lie)的(de)行(xing)動(dong),最(zui)終(zhong)在(zai)真(zhen)實(shi)的(de)環(huan)境(jing)中(zhong)執(zhi)行(xing)這(zhe)些(xie)規(gui)劃(hua)。與(yu)之(zhi)對(dui)應(ying)的(de)軟(ruan)件(jian)結(jie)構(gou)稱(cheng)為(wei)經(jing)典(dian)模(mo)型(xing),也(ye)稱(cheng)為(wei)層(ceng)次(ci)模(mo)型(xing)、功能模型、工程模型或三層模型,這是一種由上至下執行的可預測的軟件結構。
SPA機器人係統典型的結構是中建立有三個抽象層,分別稱為行駛層(Pilot)(最低層)、導航層(Navigator)(中間層)、規劃層(Planner)(最高層)。傳感器獲取的載體數據由下兩層預處理後再到達最高“智能”層作出行駛決策,實際的行駛(如導航和低層的行駛功能)交由下麵各層執行,最低層再次成為與小車的接口,將駕駛指令發送給機器人的執行器。
缺點:zhezhongfangfaqiangtiaoshijiemoxingdegouzaobingyicimoxingguihuaxingdong,ergouzaofuhaomoxingxuyaodaliangdejisuanshijian,zheduijiqirendexingnenghuiyouxianzhudeyingxiang。lingwai,guihuamoxingyuzhenshihuanjingdepianchajiangdaozhijiqirendedongzuowufadadaoyuqidexiaoguo。
2.基於行為的結構

圖4.基於行為的結構
由於SPA係統過於死板,出現了另一種實現方法:基ji於yu行xing為wei的de方fang法fa。基ji於yu行xing為wei方fang法fa前qian身shen是shi反fan應ying式shi係xi統tong,反fan應ying式shi係xi統tong並bing不bu采cai用yong符fu號hao表biao示shi,卻que能neng夠gou生sheng成cheng合he理li的de複fu合he行xing為wei。基ji於yu行xing為wei機ji器qi人ren方fang案an進jin一yi步bu擴kuo展zhan了le簡jian單dan反fan應ying式shi係xi統tong的de概gai念nian,使shi得de簡jian單dan的de並bing發fa行xing為wei可ke以yi結jie合he起qi來lai工gong作zuo。
小曆史:Joe Jones和Daniel Roth於2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基於行為係統的iRobot掃地機器人的大獲成功(通過基於行為的係統可有效實現遍曆、避免在某處卡死等多個目標的達成),標誌著當年基於行為係統結構的統治地位。短短十年間,SLAM的迅速興起,基於地圖的規劃和導航再次興起,很多人似乎忘記了或壓根就沒聽說過Behavior-Based Robotics的存在。

圖5.《基於行為的機器人編程》
基於行為的軟件模型是一種由下至上的設計,因而其結果不易預測,每一個機器人功能性(functionality)被封裝成一個小的獨立的模塊,稱為一個“行為”,而(er)不(bu)是(shi)編(bian)寫(xie)一(yi)整(zheng)個(ge)大(da)段(duan)的(de)代(dai)碼(ma)。因(yin)為(wei)所(suo)有(you)的(de)行(xing)為(wei)並(bing)行(xing)執(zhi)行(xing),所(suo)以(yi)不(bu)需(xu)要(yao)設(she)置(zhi)優(you)先(xian)級(ji)。此(ci)種(zhong)設(she)計(ji)的(de)目(mu)的(de)之(zhi)一(yi)是(shi)為(wei)了(le)易(yi)於(yu)擴(kuo)展(zhan),例(li)如(ru)便(bian)於(yu)增(zeng)加(jia)一(yi)個(ge)新(xin)的(de)傳(chuan)感(gan)器(qi)或(huo)向(xiang)機(ji)器(qi)人(ren)程(cheng)序(xu)裏(li)增(zeng)加(jia)一(yi)個(ge)新(xin)的(de)行(xing)為(wei)特(te)征(zheng)。所(suo)有(you)的(de)行(xing)為(wei)可(ke)以(yi)讀(du)取(qu)載(zai)體(ti)所(suo)有(you)傳(chuan)感(gan)器(qi)的(de)數(shu)據(ju),但(dan)當(dang)歸(gui)集(ji)眾(zhong)多(duo)的(de)行(xing)為(wei)向(xiang)執(zhi)行(xing)器(qi)產(chan)生(sheng)單(dan)一(yi)的(de)輸(shu)出(chu)信(xin)號(hao)時(shi),則(ze)會(hui)出(chu)現(xian)問(wen)題(ti)。
最初的行為之間使用固定的優先級,而在現代的應用中則采用更加靈活的選擇方案。
“基於行為機器人學”主要特點包括(參見《嵌入式機器人學》):
1)感應與動作的緊密耦合
在zai某mou種zhong程cheng度du上shang,所suo有you行xing為wei機ji器qi人ren的de動dong作zuo是shi對dui刺ci激ji的de反fan應ying而er不bu是shi依yi賴lai於yu有you意yi識shi的de規gui則ze。回hui避bi使shi用yong思si考kao規gui劃hua,取qu而er代dai之zhi的de是shi一yi些xie計ji算suan簡jian化hua的de模mo塊kuai來lai實shi現xian從cong輸shu入ru到dao執zhi行xing的de映ying射she,此ci舉ju有you利li於yu快kuai速su響xiang應ying。基ji於yu這zhe個ge觀guan察chaBrooks言簡意概的表達出來其中的原理——“規劃不過是一種回避計算下一步要做什麼的方法”。
2)避開知識的符號表示
對環境的處理上不需要構造一個內部模型以用於執行規劃任務,而是采用真實世界“它自己最好的模型”。機器人直接從觀測中獲取到未來的行為,而非試圖去生成一個能夠內部操作的世界的抽象表示並以此作為規劃未來行動的基礎。
3)分解成具有因果意義的單元
行為按照狀態——動作成對出現,設計為對特定的狀態做出確定的動作響應。
4)並發關聯行為的時變等級調整
為適應所要達成任務目的,在運行期間采用一個控製方案來改變行為的激活等級。
5)行為選擇
在基於行為係統中運行著一定數目作為並行進程的行為,每一個行為可以讀取所有的傳感器(讀動作),但隻有一個行為可獲得機器人執行器或行駛機構的控製權(寫動作)。因此需要一個全局控製器在恰當的時機來協助行為選擇(或是行為激活、或是行為輸出融合)以達到預期的目的。這將係統的設計工作,就從描述係統本身轉移到定義一個正常工作的係統的輸出上。
說多了,感覺要跑題了。如果你有興趣,並想了解更多關於編程機器人來處理未知的東西,推薦Ronald Arkin的《Behavior-Based Robotics》和Thomas Braun的《嵌入式機器人學:基於嵌入式係統的移動機器人設計和應用》。慎思式的機器人編程方法,從中級到高級的探討,推薦Christopher A. Rouff等人的《Agent Technology from a Formal Perspective》。
一張圖小結一下:

二、混合係統:實踐的產物

沒有萬靈的結構,混合係統結合了SPA和反應體係的原理,將多種混合係統應用於在傳感器和電機輸出間進行協調來完成任務。混合結構相結合最具吸引力的好處可能是:係統按照有利於完成任務的標準進行設計,而非刻板的遵循某一教條。但再複雜的機構,基本上也都是二者的組合。以ROS的導航包為例:

圖6.ROS導航包
導航包整體上是SPA結構,左右兩側是感知S,包括傳感器數據/裏程計/地圖等,中間框圖是Global和Local兩級規劃P,最後發送cmd_vel給行動A。
ruguoshijieshiwanmeide,naanzhaoguihuadedituxingjindaomudedijiuwanshile。ranerjiyuxingweifangfajiushiweilechuligezhongyiwaiershengde。dangjiqirenyudaozhangaiwuhuoshibeikazhudeshihou,neiqiandejiyuxingweidexitongjiukaishifahuizuoyong。huigenjuqingkuang,zai“行為庫”recovery_behaviors中調用某一預先設定的“行為”來擺脫困境。

圖7.recovery_behaviors
默認的行為是:首shou先xian,清qing除chu機ji器qi人ren地di圖tu指zhi定ding區qu域yu以yi外wai的de障zhang礙ai。接jie下xia來lai,如ru果guo可ke能neng的de話hua,機ji器qi人ren將jiang執zhi行xing一yi個ge原yuan地di旋xuan轉zhuan清qing理li空kong間jian。如ru果guo這zhe也ye失shi敗bai了le,機ji器qi人ren將jiang更geng激ji進jin地di清qing理li地di圖tu,清qing除chu一yi切qie可ke以yi原yuan地di旋xuan轉zhuan的de矩ju形xing區qu域yu以yi外wai的de障zhang礙ai。這zhe將jiang是shi另ling一yi個ge就jiu地di旋xuan轉zhuan緊jin隨sui其qi後hou。如ru果guo這zhe些xie都dou失shi敗bai了le,機ji器qi人ren將jiang認ren為wei其qi目mu標biao不bu可ke行xing,停ting止zhi運yun行xing並bing通tong知zhi用yong戶hu。
當然,你還可以針對各種意外設計更為複雜的recovery_behaviors “行為庫”以備調用。
三、安全自主機器人應用框架
現在還有一種基於場景和態勢的設計框架SARAA,我覺得很有趣。安全自主機器人應用架構(SARAA,Safe Autonomous Robot Application Architecture, SARAA)是一種強調安全性的自主機器人的開發方法。

圖8.SARAA
SARAA機器人總結
在《機器人編程實戰》(2017年出版)書中,詳細介紹了編程一個機器人自主執行其任務、構成了所謂SARAA的7項技術:
軟件機器人框架
ROLL模型
REQUIRE
RSVP
SPACES
STORIES
PASS
我們稱具有這種體係結構的機器人為SARAA機器人。當正確地實現時,這些編程技術產生一個基於知識的機器人控製器。因此,一個SARAA機器人是一個可以在預先設定的場景和態勢中自主行動的知識型機器人。其中一個設計思想是根據場景和態勢對前提/後置條件的判斷以提高安全性。
感興趣可訪問Ctest實驗室,SARAA已經用於在開源機器人平台內工作,例如Arduino、Linux和ROS。如果對編程SARAA機器人的場景和態勢很好理解與恰當定義,則SARAA機器人的設計有助於提升機器人的安全性。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻



