當(dāng)前位置:首頁(yè) > 智能硬件 > 機(jī)器人
[導(dǎo)讀]   機(jī)器人編程涉及控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),包括環(huán)境感知、交互、移動(dòng)及行為的控制。一個(gè)理想的機(jī)器人編程過程包括(假定硬件已經(jīng)一切就緒):由于筆者主要從事系統(tǒng)設(shè)計(jì)方面的工作。因此本文主要就這方面給出一

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

  1.系統(tǒng)架構(gòu)設(shè)計(jì)

  2.具體功能的算法實(shí)現(xiàn)

  3.編碼與集成

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

  一、機(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ī)器人的功能打散,再如何把代碼組織起來(lái)。一個(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)逐漸被完善起來(lái)。

  注意:現(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)作無(wú)法達(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é)合起來(lái)工作。

小歷史: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)化的模塊來(lái)實(shí)現(xiàn)從輸入到執(zhí)行的映射,此舉有利于快速響應(yīng)?;谶@個(gè)觀察Brooks言簡(jiǎn)意概的表達(dá)出來(lái)其中的原理——“規(guī)劃不過是一種回避計(jì)算下一步要做什么的方法”。

  2)避開知識(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)(寫動(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)的輸出上。

  說多了,感覺要跑題了。如果你有興趣,并想了解更多關(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)物

 

 

 

 

沒有萬(wàn)靈的結(jié)構(gòu),混合系統(tǒng)結(jié)合了SPA和反應(yīng)體系的原理,將多種混合系統(tǒng)應(yīng)用于在傳感器和電機(jī)輸出間進(jìn)行協(xié)調(diào)來(lái)完成任務(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ù)情況,在“行為庫(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,我覺得很有趣。安全自主機(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ī)器人的安全性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉