嵌入式控制系統設計/RoboCup/附錄
RoboCup 團隊 Wiki 決定將設計過程劃分為以下子系統
- 定位系統:定位機器人自身的位置、球的位置、團隊機器人的位置、對手機器人的位置、足球場的邊界、隊友球門和對手球門。
- 足球技巧系統:移動(“奔跑”)、攔截、帶球、射門、傳球。
- 電池續航系統:為足球機器人提供在整場比賽中具有競爭力的能量。
- 通訊系統:互相交流以完成助攻、傳球等。
- 策略系統:“當其他人進攻時,我留守防守”……
每個子系統都成為一群人(主要是專家)的責任。例如,“策略系統”被授予“策略團隊”,這是一群軟體工程師。可以看出,一些子系統會重疊不同的團隊:良好的傳球需要良好的技巧,但也需要良好的溝通和定位……很明顯,不同團隊之間良好的合作是必須的。圖 1 給出了不同子系統及其協作的圖形概述。
可能會出現以下情況:“足球機器人 Wiki 1” 擁有球權,並且位於隊友球門附近。該機器人的策略系統認為,考慮到機器人的位置以及到對手球門的距離很遠,最好將球傳給另一臺團隊足球機器人。該機器人的定位系統搜尋可以傳球的隊友,但注意到所有隊友都位於本方半場比較靠後的位置。因此,“足球機器人 Wiki 1” 的策略系統命令通訊系統向離對手球門最近的團隊機器人傳送一條訊息,告訴它應該深入進攻。從這一刻起,“足球機器人 Wiki 1” 會等待答覆。“足球機器人 Wiki 2” 透過其通訊系統接收這條訊息,並將訊息傳達給它的策略系統。策略系統命令足球技巧系統深入進攻。在離球門足夠近可以得分,並且也能被“足球機器人 Wiki 1” 觸及的位置(定位系統和策略系統協作的結果), “足球機器人 Wiki 2” 向 “足球機器人 Wiki 1” 傳送一條訊息,表示它已準備好接收傳球。 “足球機器人 Wiki 1” 的通訊系統接收這條訊息,並將訊息傳遞給它的策略系統,策略系統命令足球技巧系統傳球。與此同時,“足球機器人 Wiki 2” 必須向所有其他團隊機器人(除了“足球機器人 Wiki 1”)傳送一條訊息,表明它正在接球。這樣做是為了防止所有機器人爭搶球權,導致隊友球門無人防守。電池續航系統是一個重疊系統,確保所有其他系統在整場比賽中都有足夠的能量正常工作。請記住,這只是一個帶有傳球輸出的非常複雜的迴圈……有關這種決策背後的策略的更多資訊,請參閱下一章。
為了保證上述不同團隊之間的合作,指定了一名整合經理。整合經理是一個通才,具有廣泛的技術知識,能夠“看到全域性”並從不同的元件中構建一個統一的系統。每個團隊也需要一名公關經理來推廣團隊,併為參加不同的比賽進行必要的安排。圖 2 給出了 RoboCup 團隊 Wiki 不同團隊的概述,以及相應的成員數量 (#)。
儘管 RoboCup 團隊 Wiki 已經得出了一個相當完整的需求列表,如前一章所示,但仍然有一些設計標準 需要考慮。RoboCup 團隊 Wiki 的不同團隊制定了以下設計標準
- 專注的功能:RoboCup 團隊 Wiki 專案針對自主踢足球進行了最佳化。
- 能耗:足球機器人使用電池供電,需要整場比賽的電池續航時間,因此低能耗非常重要。
- 衝擊和振動:足球機器人必須能夠承受動態載荷(被另一個足球機器人或球撞擊)。
- EMC:每個團隊都擁有一個無線通訊網路,將一個特定團隊的所有足球機器人連線起來。每個團隊都使用相同的乙太網進行無線通訊,這會導致 EMC 問題。
- 空間限制:足球機器人的尺寸受比賽規則的限制。
- 安全性:足球機器人在發生故障後應該是可預測的,而不是不可控的(有觀眾!),方法是實現一定程度的冗餘和/或故障模式。
- 通訊:RoboCup 團隊 Wiki 必須互相通訊才能作為一個團隊運作(而不是 6 個獨立的個體)。
- 冗餘的可靠性:如前所述,迫切需要冗餘(硬體和軟體)。
- 魯棒性:每個足球機器人都會暴露在衝擊和振動中。
- 規則:RoboCup 團隊 Wiki 受規則的限制。
- 使用者介面:RoboCup 團隊 Wiki 使用一個在團隊計算機上實現的系統來記錄和儲存足球機器人的通訊和後續操作(有關此類系統的更多資訊,請參閱第 6 章“比賽”:CoPS Stuttgart 團隊的 MDP2Logger 系統)。最好是該系統具有良好清晰的使用者介面。
- 維護:足球機器人應該以一種在比賽期間可以進行維護(維修)的方式構建。
- 成本:由於團隊成員是義務勞動,所以存在很多隱性成本。足球機器人的元件、差旅費用、宣傳材料等並不免費,並且不應該超過預算。
- 可生產性:為了允許在比賽期間進行突然的更改和維修,最好是易於生產。
- 使用壽命:為了控制成本,足球機器人(及其元件)的使用壽命很重要。最好在每個新的設計年份重複使用儘可能多的元件,以防止每年都從頭開始,降低成本。隨後,元件必須能夠生存足夠長的時間,因此使用壽命也是需要牢記的設計標準。
- 智慧:足球機器人應該具備自主行動所需的形式智慧。
| RoboCup 機器人團隊 | 人員搬運車 | 自動售貨機 | |
|---|---|---|---|
| 安全性 | 低 | 非常高 | 低 |
| 維護 | 非常低 | 非常高 | 低 |
| 設計中的靈活性/可調節性 | 高 | 低 | 低 |
| 自主功能/智慧 | 高 | 低 | 低 |
最後提到的四個設計標準對 RoboCup 團隊 Wiki 來說相對不太重要,但對於人員搬運車公司來說,它們非常重要。為了說明設計約束的明顯差異,表 1 展示了設計標準以及不同嵌入式控制系統(或系統群)相應的重視程度。
在這個階段,製造人員搬運車的公司試圖將他們的設計標準轉化為可以新增到產品需求中的需求。像使用壽命、能耗、成本等模糊的需求將以數字形式表達。此步驟不適用於 RoboCup 團隊 Wiki,因為像效能這樣的標準是根據規則“在給定的時間內儘可能地提高足球機器人團隊的效能”來設計。
在設計過程的這個階段之前,足球機器人可以看作是一個“黑盒子”。到目前為止,唯一重要的是“足球機器人應該能夠做什麼”。設計師已經指定了足球機器人應該如何響應某些輸入。例如,足球機器人應該在接收到來自其視覺化系統的訊號(輸入)後執行足球技巧(輸出)。但是,這些輸入是如何變成提到的輸出的,一直沒有答案……直到現在。
RoboCup 團隊 Wiki 的每個機器人都是硬體元件和軟體程式的結合。硬體和軟體之間的界限通常非常模糊,因此設計師需要決定哪些功能將由軟體實現,哪些功能將由硬體實現。例如,控制器既可以由軟體實現,也可以由硬體元件實現。通常,底層功能由硬體實現,而高層功能則由軟體實現。RoboCup 團隊 Wiki 做了如下分類:
底層功能:硬體 (HW)
- 足球技能:移動、踢球、傳球、控球和處理球
- 定位:感測器
- 電池續航
高層功能:軟體 (SW)
- 定位:處理
- 策略
- 通訊
如前所述,每個足球機器人應該能夠(基於顏色區分)識別以下位置:
- 自身
- 隊友足球機器人
- 對手足球機器人
- 球場邊界
- 隊友球門
- 對手球門
- 足球
定位系統,如前所述,是硬體和軟體的結合。硬體元件是感測器,用於實際“觀察”(類似於人類眼睛)。為了處理這些感測器的訊號,需要 CPU 處理能力(類似於人類大腦)。
硬體
用於定位系統的感測器可以是不同型別的:
始終需要一個能夠區分顏色的視覺系統:一個全向視覺攝像頭。大多數團隊使用一個相當簡單的單視角視覺攝像頭,併為其配備了一個全向鏡,該鏡子也能生成環境的 3D(彩色)影像。該影像作為影像處理軟體的輸入(見下一章)。
視覺系統可以由上述系統中的一個(或多個)輔助。例如,一個只配備了里程計系統的機器人無法確定其起始位置,這是必需的,因為里程計系統是相對工作的。當起始位置由另一個系統獲取時,里程計系統將能夠在任何時候確定機器人的位置、隊友球門、對手球門和球場邊界。然而,該系統無法識別(足球或其他球員的)位置。該系統可以作為備用系統或輔助視覺攝像頭(感測器融合)發揮作用。可以新增電子羅盤來確定球場的方位。雷射能夠識別其他物體並估計到該物體的距離。可以構建一個小型的 GPS 網路,讓足球機器人利用它來定位自己,雷達或聲納可以用來定位其他物體。為了估計到物體的距離,可以使用紅外距離測量系統。
RoboCup 團隊 Wiki 決定為其足球機器人配備一個全向視覺系統,該系統由一個攝像頭和一個全向鏡、一個電子羅盤和一個里程計系統組成。
軟體
上述每個硬體元件都需要軟體來處理其資料。RoboCup 團隊 Wiki 使用影像處理軟體來輔助全向視覺系統。影像處理軟體應該持續計算機器人的位置、速度和方向。它還應該確定隊友球門、球場邊界、對手球門以及其他足球機器人和足球的位置、速度和方向。為了找到這些物體並追蹤它們以獲取它們的速度和方向,機器人應該能夠區分和識別這些物體各自的顏色。為了確保足球機器人識別所需的物體,還可以新增形狀識別功能。
RoboCup 團隊 Wiki 選擇使用顏色識別和形狀識別來找到上述物體。球場邊界透過“白線檢測”獲取,如圖 ... 所示。為了定位自身位置,使用了基於到球場邊線距離的蒙特卡羅定位方法。還集成了自動顏色校準演算法。
由於各種原因,足球機器人可能會突然丟失某個物體的 位置。例如,當足球移動速度過快時,或者當一個識別的足球機器人消失在另一個足球機器人身後時。使用位置預測演算法來預測丟失物體的 位置,該演算法基於最後記錄的位置的資訊。視覺系統還負責確定機器人應該採取哪條路徑到達想要的位置。這條路徑通常不是機器人當前位置和目標位置之間的直線,因為其他機器人可能會阻擋路徑。計算到達目標位置的最佳路徑的軟體嵌入在“策略系統”中,如本文後面所述。
足球技能系統可以細分為以下不同的系統:
- 平臺
- 運動裝置
- 踢球/傳球裝置
- 控球裝置
平臺
首先,需要一個平臺來構建最後提到的三個裝置。機器人的平臺(也稱為框架或底盤)必須堅固,但也要輕便。畢竟,更輕的機器人速度更快,更靈活。RoboCup 團隊 Wiki 使用 CAD 軟體程式來開發平臺。付出了很多努力來確保平臺的設計能夠方便快捷地安裝所有其他元件。最好將多個模組放置在機器人相對較低的位置,這將降低重心。較低的重心可以防止足球機器人輕易翻倒。
運動裝置
上述平臺將配備多個輪子以產生運動。團隊使用三個或四個全向輪,由相同數量的直流電機(和伺服放大器)驅動。可以在每個輪子上安裝減震器,以確保機器人能夠平穩移動。可以達到 2 m/s 的最高速度(MSL 的 TKU 團隊)。
運動控制系統
策略系統計算機器人必須遵循的路徑,以到達目的地而不會撞到其他物體。這個開環控制系統不可靠,因為輪子的摩擦力(不同)、打滑……在移動過程中。由於所有這些原因,有必要使用帶反饋的控制器,為不同的直流電機提供正確的控制訊號,以便沿著所需的路徑正確移動。
踢球裝置
每個足球機器人必須配備一個踢球裝置才能執行以下操作:
- 直線平射(射門)
- 地面傳球
- 吊球傳球/射門
特別是最後兩個動作應該在踢球力度上可調節,從而調節球的力量/速度。例如,地面傳球或吊球傳球的踢球力度取決於到其他機器人的距離。可調節射門的另一個優點是根據機器人到球門的距離改變射門力量。
有多種可能的踢球裝置配置:
- 機電式電磁閥:透過流過線圈的電流產生的磁場移動金屬柱塞(鐵芯)。柱塞連線到一個“金屬腿”上,用於傳球/踢球。電磁閥由電容器(350 V,4.7 mF - TechUnited)供電,該電容器使用主電池充電。電容器對線圈放電的時間可以調節,這使得調節電磁閥的最終速度和隨後球的射出速度成為可能。為了能夠執行地面傳球/射門以及吊球傳球/射門,團隊創造了巧妙的結構。例如,金屬腿可以由內腿和外腿組成。內腿產生直線平傳球/射門。同時啟動內腿和外腿(具有彎曲的腳狀形狀)會產生吊球傳球/射門。執行不同傳球/射門的另一種可能性是使用不同的活塞。這種配置能夠透過規劃哪個活塞何時啟動來執行幾種型別的射門。甚至可以使用這種裝置執行對角線地面傳球,方法是啟動一個側活塞和中央活塞。透過同時啟動兩個側活塞可以執行直線傳球/射門。為了執行吊球傳球/射門,仍然需要像第一個系統中所示的那樣進行調整。
機電式電磁閥踢球裝置的優點是響應速度快、易於控制以及踢球力度可調節(不同的電流產生不同的射門力度)。電流過大、重量過大是主要缺點。
- 氣動踢球裝置:壓縮空氣儲存在儲氣罐中,可以透過電磁閥控制。
- 流體肌肉踢球裝置。
- 彈簧踢球裝置:彈簧被壓縮,隨後被鎖定,並在需要時釋放。
控球裝置
控球裝置應執行以下任務:
- 防止球在盤球、轉身和減速過程中掉落。
- 使球相對於機器人的位置可調(特殊踢球)。
- 使機器人在擁有球的情況下能夠倒退行駛。
在所有移動過程中,球應該保持滾動。
為了完成上述任務,可以(並且已經)發明出不同的結構。例如,TechUnited 設計的機制由兩個槓桿組成,每個槓桿末端都連線著一個輪子。直流電機用於驅動這些輪子,而轉速計用於測量這些輪子的速度。槓桿可以在機器人的固定點周圍旋轉,同時兩個電位計測量槓桿的角度。透過將槓桿末端的輪子向內旋轉,球被拉入機器人的槓桿中。當足球機器人四處移動時,輪子的旋轉會使球繼續滾動。還可以預先定義從球到機器人前部的首選距離,這對應於兩個槓桿的某些首選角度。如果槓桿向前或向後彎曲,則會引入位置誤差。這些位置誤差透過調整輪子的速度來控制為零,從而保證球相對於機器人的首選位置。
每個機器人配備一個電池(組),為機載所有模組提供足夠的電力。例如,TechUnited 團隊使用兩塊 Makita 24V,3.3Ah 電池。TKU 團隊用於 MSL 的電源由 1.3V 的可充電電池提供,在串並聯連線後產生 12V。隨著機器人越來越快、越來越強大,對高能效電池的需求也越來越大。出於顯而易見的原因,電池越輕越小越好。
為了使足球機器人能夠作為一個團隊協同工作,需要一個可靠、快速的通訊網路來共享資訊。在分散式多代理系統中,通訊是系統最重要的組成部分之一。通訊網路的可能設計方案很多。
- 伺服器 - 客戶端:每個客戶端(足球機器人)將所有收集的資料(機器人自身的位置、球的位置、球門的位置、隊友的位置、對手的位置……)傳輸到中央伺服器。伺服器(使用策略系統實現)將這些資料結合起來,並將相應的命令傳送回不同的客戶端。請注意,單個足球機器人沒有配備完整的策略系統(它們只有路徑最佳化功能),只需要遵循命令。
- 客戶端 - 客戶端(P2P):每個客戶端將所有收集的資料傳輸到其他所有機器人(例如透過無線區域網)。隨後,在每個客戶端上實現的策略系統為每個客戶端計算出相應的動作。可以使用簡單的先進先出原則,每個機器人按接收順序處理從其他團隊機器人接收到的訊息。為了提高通訊網路的速度和可靠性,可以使用基於事件的通訊架構。這樣,接收方可以在收集到訊息時立即獲得訊息,而不會有任何延遲(即時能力)。
足球機器人不同模組之間的通訊可以透過乙太網、USB 和 FireWire (IEEE1394) 完成。
機器人世界盃團隊的策略系統主要基於角色模式(進攻者、防守者、運球機器人、傳球機器人……)。一開始所有機器人都是平等的,在比賽過程中,機器人根據規定的條件獨立選擇自己的角色。這個選擇由策略系統控制。例如,擁有球權並且靠近對方球門是成為“進攻者”的條件。檢查所有角色模式的條件,並選擇在給定情況下最適合的角色。角色的改變始終以不會出現突然變化的方式進行(角色永遠不會從進攻者變為防守者)。通常情況下,進攻者是支配者,決定哪個機器人必須協作以及如何協作。隨後,進攻者/支配者指揮所有其他機器人為隊友的球門防守。
策略系統還負責確定到達目的地的最佳路徑(避開障礙物)。例如,機器人世界盃 MSL 的 TKU 團隊使用模糊控制器來分析最佳的避障方式。