<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 電源管理 > 正文

從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?

發(fā)布時(shí)間:2016-12-21 來(lái)源:Top Liu 責任編輯:wenwei

【導讀】機器人編程涉及控制系統的設計與實(shí)現,包括環(huán)境感知、交互、移動(dòng)及行為的控制。一個(gè)理想的機器人編程過(guò)程包括(假定硬件已經(jīng)一切就緒):由于筆者主要從事系統設計方面的工作。因此本文主要就這方面給出一些總結和建議。另外,由于所研究的算法過(guò)(wu)于(fa)先(ying)進(jìn)(yong),通常會(huì )在專(zhuān)業(yè)的學(xué)術(shù)期刊上發(fā)表,在此也不做過(guò)多討論。
 
1.系統架構設計
 
2.具體功能的算法實(shí)現

3.編碼與集成
 
由于筆者所從事工作性質(zhì),主要集中在:1.系統設計和2.算法的研究上,3.coding的機會(huì )并不是很多。第二個(gè)原因是:如果1、2工作完成后,3的工作其實(shí)和機器人本身并不大,計算機專(zhuān)業(yè)恐怕會(huì )做的更好。因此本文主要就1給出一些總結和建議。另外,由于所研究的算法過(guò)(wu)于(fa)先(ying)進(jìn)(yong),通常會(huì )在專(zhuān)業(yè)的學(xué)術(shù)期刊上發(fā)表,在此也不做過(guò)多討論。

一、機器人系統架構
 
“架構可定義為組件的結構及它們之間的關(guān)系,以及規范其設計和后續進(jìn)化的原則和指南。簡(jiǎn)言之,架構是構造與集成軟件密集型系統的深層次設計。”
 
系統架構也可稱(chēng)其為如何實(shí)施解決方案的一個(gè)策略性設計(例如基于組件的工程標準、安全)和解決方案做什么的功能性設計(如算法、設計模式、底層實(shí)現)。
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖1 機器人功能分解
 
另外,軟件工程的基本要求包括模塊化、代碼可復用、功能可共享。使用通用的框架,有利于分解開(kāi)發(fā)任務(wù)及代碼移植。機器人軟件同樣遵從軟件工程的一般規律。說(shuō)白了,架構就是你如何把機器人的功能打散,再如何把代碼組織起來(lái)。一個(gè)清晰的與項目相匹配的架構直接決定了你的開(kāi)發(fā)效率甚至最終功能的成敗。
 
從人類(lèi)第一臺可編程的機器人開(kāi)發(fā)伊始,架構問(wèn)題就與之相伴而生。早在1996年,Garlan 和 Shaw在《軟件架構:一門(mén)新興學(xué)科的展望》就總結了移動(dòng)機器人的基本設計需求, 如:(1) 慎思規劃和反應式行為;(2)容許不確定性;(3)考慮危險;(4)靈活性強。針對這些要求,他們評估了四種用于移動(dòng)機器人的架構,包括控制回路(control loop)、分層(layers)、隱式調用(implicit invocation)、黑板(blackboard)。經(jīng)過(guò)了幾十年的實(shí)踐,一些架構被逐漸淘汰,一些架構逐漸被完善起來(lái)。
 
注意:現在很多機器人開(kāi)發(fā)者一上手就是ROS,雖然ROS是一種比較不錯的系統架構,它的基于node的思想在當時(shí)是非常先進(jìn)的,在今天已成為主流。但我們也要清楚,它只是其中一種架構,尤其是在小型嵌入式設備上定制機器人系統時(shí),其他的架構可能會(huì )更有效率。另外Master中央控制模式,也是單機時(shí)代的產(chǎn)物,在多機的情形就不是很適用。
1.S-P-A結構
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖2 機器人的“see-think-act”工作模式
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖3 “傳感——計劃——行動(dòng)”(SPA)結構
 
機器人天然的工作模式是“see-think-act”,所以自然而然的就形成了“傳感——計劃——行動(dòng)”(SPA)結構:從感知進(jìn)行映射,經(jīng)由一個(gè)內在的世界模型構造,再由此模型規劃一系列的行動(dòng),最終在真實(shí)的環(huán)境中執行這些規劃。與之對應的軟件結構稱(chēng)為經(jīng)典模型,也稱(chēng)為層次模型、功能模型、工程模型或三層模型,這是一種由上至下執行的可預測的軟件結構,
 
SPA機器人系統典型的結構是中建立有三個(gè)抽象層,分別稱(chēng)為行駛層(Pilot)(最低層)、導航層(Navigator)(中間層)、規劃層(Planner)(最高層)。傳感器獲取的載體數據由下兩層預處理后再到達最高“智能”層作出行駛決策,實(shí)際的行駛(如導航和低層的行駛功能)交由下面各層執行,最低層再次成為與小車(chē)的接口,將駕駛指令發(fā)送給機器人的執行器。
 
缺點(diǎn):這種方法強調世界模型的構造并以此模型規劃行動(dòng),而構造符號模型需要大量的計算時(shí)間,這對機器人的性能會(huì )有顯著(zhù)的影響。另外,規劃模型與真實(shí)環(huán)境的偏差將導致機器人的動(dòng)作無(wú)法達到預期的效果。
 
2.基于行為的結構
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖4 基于行為的結構
 
由于SPA系統過(guò)于死板,出現了另一種實(shí)現方法:基于行為的方法?;谛袨榉椒ㄇ吧硎欠磻较到y,反應式系統并不采用符號表示,卻能夠生成合理的復合行為?;谛袨闄C器人方案進(jìn)一步擴展了簡(jiǎn)單反應式系統的概念,使得簡(jiǎn)單的并發(fā)行為可以結合起來(lái)工作。
 
小歷史:Joe Jones和Daniel Roth于2003年出版的《Robot Programming:A Practical Guide to Behavior-Based Robotics》以及使用基于行為系統的iRobot掃地機器人的大獲成功(通過(guò)基于行為的系統可有效實(shí)現遍歷、避免在某處卡死等多個(gè)目標的達成),標志著(zhù)當年基于行為系統結構的統治地位。短短十年間,SLAM的迅速興起,基于地圖的規劃和導航再次興起,很多人似乎忘記了或壓根就沒(méi)聽(tīng)說(shuō)過(guò)Behavior-Based Robotics的存在。
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖5 《基于行為的機器人編程》
 
基于行為的軟件模型是一種由下至上的設計,因而其結果不易預測,每一個(gè)機器人功能性(functionality)被封裝成一個(gè)小的獨立的模塊,稱(chēng)為一個(gè)“行為”,而不是編寫(xiě)一整個(gè)大段的代碼。因為所有的行為并行執行,所以不需要設置優(yōu)先級。此種設計的目的之一是為了易于擴展,例如便于增加一個(gè)新的傳感器或向機器人程序里增加一個(gè)新的行為特征。所有的行為可以讀取載體所有傳感器的數據,但當歸集眾多的行為向執行器產(chǎn)生單一的輸出信號時(shí),則會(huì )出現問(wèn)題。
 
最初的行為之間使用固定的優(yōu)先級,而在現代的應用中則采用更加靈活的選擇方案。
 
“基于行為機器人學(xué)”主要特點(diǎn)包括(參見(jiàn)《嵌入式機器人學(xué)》):
 
1)感應與動(dòng)作的緊密耦合
 
在某種程度上,所有行為機器人的動(dòng)作是對刺激的反應而不是依賴(lài)于有意識的規則?;乇苁褂盟伎家巹?,取而代之的是一些計算簡(jiǎn)化的模塊來(lái)實(shí)現從輸入到執行的映射,此舉有利于快速響應?;谶@個(gè)觀(guān)察Brooks言簡(jiǎn)意概的表達出來(lái)其中的原理——“規劃不過(guò)是一種回避計算下一步要做什么的方法”。
 
2)避開(kāi)知識的符號表示
 
對環(huán)境的處理上不需要構造一個(gè)內部模型以用于執行規劃任務(wù),而是采用真實(shí)世界“它自己最好的模型”。機器人直接從觀(guān)測中獲取到未來(lái)的行為,而非試圖去生成一個(gè)能夠內部操作的世界的抽象表示并以此作為規劃未來(lái)行動(dòng)的基礎。
 
3)分解成具有因果意義的單元
 
行為按照狀態(tài)——動(dòng)作成對出現,設計為對特定的狀態(tài)做出確定的動(dòng)作響應。
 
4)并發(fā)關(guān)聯(lián)行為的時(shí)變等級調整
 
為適應所要達成任務(wù)目的,在運行期間采用一個(gè)控制方案來(lái)改變行為的激活等級。
 
5)行為選擇
 
在基于行為系統中運行著(zhù)一定數目作為并行進(jìn)程的行為,每一個(gè)行為可以讀取所有的傳感器(讀動(dòng)作),但只有一個(gè)行為可獲得機器人執行器或行駛機構的控制權(寫(xiě)動(dòng)作)。因此需要一個(gè)全局控制器在恰當的時(shí)機來(lái)協(xié)助行為選擇(或是行為激活、或是行為輸出融合)以達到預期的目的。這將系統的設計工作,就從描述系統本身轉移到定義一個(gè)正常工作的系統的輸出上。
 
說(shuō)多了,感覺(jué)要跑題了。如果你有興趣,并想了解更多關(guān)于編程機器人來(lái)處理未知的東西,推薦Ronald Arkin的《Behavior-Based Robotics》和Thomas Braun的《嵌入式機器人學(xué):基于嵌入式系統的移動(dòng)機器人設計和應用》。慎思式的機器人編程方法,從中級到高級的探討,推薦Christopher A. Rouff等人的《Agent Technology from a Formal Perspective》。
 
一張圖小結一下:
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
 
二、混合系統:實(shí)踐的產(chǎn)物
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
 
沒(méi)有萬(wàn)靈的結構,混合系統結合了SPA和反應體系的原理,將多種混合系統應用于在傳感器和電機輸出間進(jìn)行協(xié)調來(lái)完成任務(wù)?;旌辖Y構相結合最具吸引力的好處可能是:系統按照有利于完成任務(wù)的標準進(jìn)行設計,而非刻板的遵循某一教條。但再復雜的機構,基本上也都是二者的組合。以ROS的導航包為例:
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖6 ROS導航包
 
導航包整體上是SPA結構,左右兩側是感知S,包括傳感器數據/里程計/地圖等,中間框圖是Global和Local兩級規劃P,最后發(fā)送cmd_vel給行動(dòng)A。
 
如果世界是完美的,那按照規劃的地圖行進(jìn)到目的地就完事了。然而基于行為方法就是為了處理各種意外而生的。當機器人遇到障礙物或是被卡住的時(shí)候,內嵌的基于行為的系統就開(kāi)始發(fā)揮作用。會(huì )根據情況,在“行為庫”recovery_behaviors中調用某一預先設定的“行為”來(lái)擺脫困境。
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖7 recovery_behaviors
 
默認的行為是:首先,清除機器人地圖指定區域以外的障礙。接下來(lái),如果可能的話(huà),機器人將執行一個(gè)原地旋轉清理空間。如果這也失敗了,機器人將更激進(jìn)地清理地圖,清除一切可以原地旋轉的矩形區域以外的障礙。這將是另一個(gè)就地旋轉緊隨其后。如果這些都失敗了,機器人將認為其目標不可行,停止運行并通知用戶(hù)。
 
當然,你還可以針對各種意外設計更為復雜的recovery_behaviors “行為庫”以備調用。

三、安全自主機器人應用框架
 
現在還有一種基于場(chǎng)景和態(tài)勢的設計框架SARAA,我覺(jué)得很有趣。安全自主機器人應用架構(SARAA,Safe Autonomous Robot Application Architecture, SARAA)是一種強調安全性的自主機器人的開(kāi)發(fā)方法。
 
從環(huán)境感知到交互,機器人控制設計有哪些特殊技巧?
圖8 SARAA
 
SARAA機器人總結
 
在《機器人編程實(shí)戰》(2017年出版)書(shū)中,詳細介紹了編程一個(gè)機器人自主執行其任務(wù)、構成了所謂SARAA的7項技術(shù):
 
軟件機器人框架
 
ROLL模型
 
REQUIRE
 
RSVP
 
SPACES
 
STORIES
 
PASS
 
我們稱(chēng)具有這種體系結構的機器人為SARAA機器人。當正確地實(shí)現時(shí),這些編程技術(shù)產(chǎn)生一個(gè)基于知識的機器人控制器。因此,一個(gè)SARAA機器人是一個(gè)可以在預先設定的場(chǎng)景和態(tài)勢中自主行動(dòng)的知識型機器人。其中一個(gè)設計思想是根據場(chǎng)景和態(tài)勢對前提/后置條件的判斷以提高安全性。
 
感興趣可訪(fǎng)問(wèn)Ctest實(shí)驗室,SARAA已經(jīng)用于在開(kāi)源機器人平臺內工作,例如Arduino、Linux和ROS。如果對編程SARAA機器人的場(chǎng)景和態(tài)勢很好理解與恰當定義,則SARAA機器人的設計有助于提升機器人的安全性。
 
【作者簡(jiǎn)介:Top Liu,易科機器人實(shí)驗室系統設計師,機器人技術(shù)傳播者,譯著(zhù)有《機器人編程實(shí)戰》、《嵌入式機器人學(xué)》等?!?/div>
 
(本文來(lái)源:雷鋒網(wǎng))
 
 
 
推薦閱讀:


三六九軸傳感器究竟是什么?讓無(wú)人機、機器人、VR都離不開(kāi)它
用這套完整方案真的可做任何可穿戴設計?
從理論到實(shí)踐談?wù)勲S機噪聲對時(shí)序抖動(dòng)的影響
利用Snubber電路消除開(kāi)關(guān)電源和Class D功放電路中的振鈴
與北斗、GPS相比室內定位背后的微慣導技術(shù)有何不同?

 
 
要采購傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>