設計理想的機器人,係統架構有哪些特殊技巧?
發布時間: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.機器人功能分解
另外,軟件工程的基本要求包括模塊化、代碼可複用、gongnengkegongxiang。shiyongtongyongdekuangjia,youliyufenjiekaifarenwujidaimayizhi。jiqirenruanjiantongyangzuncongruanjiangongchengdeyibanguilv。shuobaile,jiagoujiushiniruhebajiqirendegongnengdasan,zairuhebadaimazuzhiqilai。yigeqingxideyuxiangmuxiangpipeidejiagouzhijiejuedinglenidekaifaxiaolvshenzhizuizhonggongnengdechengbai。
從人類第一台可編程的機器人開發伊始,架構問題就與之相伴而生。早在1996年,Garlan和Shaw在《軟件架構:一門新興學科的展望》就總結了移動機器人的基本設計需求, 如:(1) 慎思規劃和反應式行為;(2)容許不確定性;(3)考慮危險;(4)靈活性強。針對這些要求,他們評估了四種用於移動機器人的架構,包括控製回路(control loop)、分層(layers)、隱式調用(implicit invocation)、黑板(blackboard)。經過了幾十年的實踐,一些架構被逐漸淘汰,一些架構逐漸被完善起來。
注意:現在很多機器人開發者一上手就是ROS,雖然ROS是一種比較不錯的係統架構,它的基於nodedesixiangzaidangshishifeichangxianjinde,zaijintianyichengweizhuliu。danwomenyeyaoqingchu,tazhishiqizhongyizhongjiagou,youqishizaixiaoxingqianrushishebeishangdingzhijiqirenxitongshi,qitadejiagoukenenghuigengyouxiaolv。lingwaiMaster中央控製模式,也是單機時代的產物,在多機的情形就不是很適用。
1.S-P-A結構

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

圖3.“傳感——計劃——行動”(SPA)結構
機器人天然的工作模式是“see-think-act”,所以自然而然的就形成了“傳感——計劃——行動”(SPA)結構:congganzhijinxingyingshe,jingyouyigeneizaideshijiemoxinggouzao,zaiyoucimoxingguihuayixiliedexingdong,zuizhongzaizhenshidehuanjingzhongzhixingzhexieguihua。yuzhiduiyingderuanjianjiegouchengweijingdianmoxing,yechengweicengcimoxing、功能模型、工程模型或三層模型,這是一種由上至下執行的可預測的軟件結構。
SPA機器人係統典型的結構是中建立有三個抽象層,分別稱為行駛層(Pilot)(最低層)、導航層(Navigator)(中間層)、規劃層(Planner)(最高層)。傳感器獲取的載體數據由下兩層預處理後再到達最高“智能”層作出行駛決策,實際的行駛(如導航和低層的行駛功能)交由下麵各層執行,最低層再次成為與小車的接口,將駕駛指令發送給機器人的執行器。
缺點:zhezhongfangfaqiangtiaoshijiemoxingdegouzaobingyicimoxingguihuaxingdong,ergouzaofuhaomoxingxuyaodaliangdejisuanshijian,zheduijiqirendexingnenghuiyouxianzhudeyingxiang。lingwai,guihuamoxingyuzhenshihuanjingdepianchajiangdaozhijiqirendedongzuowufadadaoyuqidexiaoguo。
2.基於行為的結構

圖4.基於行為的結構
由於SPA係統過於死板,出現了另一種實現方法:jiyuxingweidefangfa。jiyuxingweifangfaqianshenshifanyingshixitong,fanyingshixitongbingbucaiyongfuhaobiaoshi,quenenggoushengchenghelidefuhexingwei。jiyuxingweijiqirenfanganjinyibukuozhanlejiandanfanyingshixitongdegainian,shidejiandandebingfaxingweikeyijieheqilaigongzuo。
小曆史:Joe Jones和Daniel Roth於2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基於行為係統的iRobot掃地機器人的大獲成功(通過基於行為的係統可有效實現遍曆、避免在某處卡死等多個目標的達成),標誌著當年基於行為係統結構的統治地位。短短十年間,SLAM的迅速興起,基於地圖的規劃和導航再次興起,很多人似乎忘記了或壓根就沒聽說過Behavior-Based Robotics的存在。

圖5.《基於行為的機器人編程》
基於行為的軟件模型是一種由下至上的設計,因而其結果不易預測,每一個機器人功能性(functionality)被封裝成一個小的獨立的模塊,稱為一個“行為”,erbushibianxieyizhenggedaduandedaima。yinweisuoyoudexingweibingxingzhixing,suoyibuxuyaoshezhiyouxianji。cizhongshejidemudezhiyishiweileyiyukuozhan,lirubianyuzengjiayigexindechuanganqihuoxiangjiqirenchengxulizengjiayigexindexingweitezheng。suoyoudexingweikeyiduquzaitisuoyouchuanganqideshuju,dandangguijizhongduodexingweixiangzhixingqichanshengdanyideshuchuxinhaoshi,zehuichuxianwenti。
最初的行為之間使用固定的優先級,而在現代的應用中則采用更加靈活的選擇方案。
“基於行為機器人學”主要特點包括(參見《嵌入式機器人學》):
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)察(cha)Brooks言簡意概的表達出來其中的原理——“規劃不過是一種回避計算下一步要做什麼的方法”。
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。
如ru果guo世shi界jie是shi完wan美mei的de,那na按an照zhao規gui劃hua的de地di圖tu行xing進jin到dao目mu的de地di就jiu完wan事shi了le。然ran而er基ji於yu行xing為wei方fang法fa就jiu是shi為wei了le處chu理li各ge種zhong意yi外wai而er生sheng的de。當dang機ji器qi人ren遇yu到dao障zhang礙ai物wu或huo是shi被bei卡ka住zhu的de時shi候hou,內nei嵌qian的de基ji於yu行xing為wei的de係xi統tong就jiu開kai始shi發fa揮hui作zuo用yong。會hui根gen據ju情qing況kuang,在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可編程電源,賦能高端裝備製造
技術文章更多>>
- 三星上演罕見對峙:工會集會討薪,股東隔街抗議
- 摩爾線程實現DeepSeek-V4“Day-0”支持,國產GPU適配再提速
- 築牢安全防線:智能駕駛邁向規模化應用的關鍵挑戰與破局之道
- GPT-Image 2:99%文字準確率,AI生圖告別“鬼畫符”
- 機器人馬拉鬆的勝負手:藏在主板角落裏的“時鍾戰爭”
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
NFC
NFC芯片
NOR
ntc熱敏電阻
OGS
OLED
OLED麵板
OmniVision
Omron
OnSemi
PI
PLC
Premier Farnell
Recom
RF
RF/微波IC
RFID
rfid
RF連接器
RF模塊
RS
Rubycon
SATA連接器
SD連接器
SII
SIM卡連接器
SMT設備
SMU
SOC
SPANSION

