跳至內容

Cyberbotics 機器人課程/認知基準

來自 Wikibooks,開放世界開放書籍

認知基準主題已在 享受機器人比賽 一節中介紹過。本章首先簡要介紹了該主題。然後,它詳細介紹了一個認知基準:老鼠人生。為了避免與老鼠人生官方網站重複,我們只提供關於比賽的簡要說明以及一些快速開始該基準的線索。最後部分專門介紹其他活躍的認知基準。

一般來說,基準是一種量化特定屬性的方法。例如,在計算機領域,如果要建立一個按效能排序的 CPU 列表,則需要對每個 CPU 進行 CPU 基準測試。一個典型的 CPU 基準測試包括解決一個長時間的計算。CPU 完成此計算的速度越快,效率就越高。一旦量化了每個 CPU 的效能,就可以根據該指標對其進行排名。

類似地,認知基準是一種量化智力(不僅僅是人工智慧)的方法。例如,鏡子測試[1] 衡量自我意識。在動物沒有注意到的情況下,在其身上標記一個無味記號。然後,將動物放在鏡子前。動物可以分為三類:動物對記號不感興趣,動物對反射中的記號感興趣,或者動物對自己的記號感興趣。如果動物屬於最後一類,它就是自我意識(反之不一定正確)。根據此標準可以對動物進行排名。

在機器人學中,認知基準用於比較多個機器人控制器的人工智慧質量。這種比較是在可衡量標準上進行的,例如解決問題的時間或遊戲回合中的勝利。基準規則必須明確無誤。為了提高參與者的積極性,認知基準通常以比賽的形式進行。由於這種競爭精神,在比賽結束時,參與者通常能夠為給定問題找到非常好的解決方案。

象棋比賽就是一個認知基準的例子。該遊戲的規則有限且明確無誤。如果一名棋手贏得了比賽,他將獲得三分,如果輸了,他將得不到任何分數,如果兩位棋手打成平手,他們每人將獲得一分。在一個每個棋手都與其他所有棋手相遇的錦標賽中,分數準確地描述了每個參與者的象棋水平。此外,這種認知基準是一個混合基準,即完全不同的實體(例如,人類和計算機程式)可以參與。

在機器人研究中,認知基準主要用於比較研究成果。實際上,研究人員在科學出版物中提倡的一些技術缺乏與其他相關研究成果的比較。由於這種型別的活動,可以觀察到一種技術與另一種技術的優缺點。一般來說,認知基準刺激了研究。

關於基準的生命週期,EURON 網站稱:“一個基準只有在目標社群接受並廣泛用於出版物、會議和報告中作為衡量和比較結果的方式時,才能被認為是成功的。今天最成功的基準可能是那些用於機器人比賽的基準。”[2]

最後,當人們知道 RoboCup[3] 的長期目標(“到 2050 年,開發一支完全自主的人形機器人隊伍,能夠在足球比賽中戰勝人類世界冠軍隊伍。”)時,人們仍然可以期待機器人領域的許多驚喜。

老鼠人生基準

[編輯 | 編輯原始碼]

本節介紹老鼠人生比賽。本節只簡要介紹了這項比賽。另一方面,你將在這裡找到關於機器人程式設計的線索,以便在比賽中快速入門。

老鼠人生是一個認知基準。在未知迷宮中,兩隻 e-puck 機器人爭奪資源。他們必須在飼料器中找到能量才能生存。當一個飼料器被使用後,它會暫時不可用。比賽既可以在模擬中進行,也可以在現實中進行。真實的迷宮由樂高©積木構成。該圖描繪了第 6 個迷宮中比賽的模擬。

老鼠人生比賽的 Webots 模擬

比賽的目的是實現一個 e-puck 控制器,讓你的 e-puck 比對手生存更長時間。如果你完成了之前的練習,你將擁有參加這場比賽所需的所有背景知識。除了程式語言是 Java 而不是 C。但由於 Webots API 非常相似,並且 Java 比 C 更易於使用,因此過渡會很輕鬆。

世界檔案可在 Webots(即使是在免費版本中)中找到,位於

webots_root/projects/contests/ratslife/worlds/ratslife.wbt

其中webots_root對應於 Webots 安裝的目錄。

在老鼠人生官方網站上,你可以找到精確的比賽規則、關於參與的資訊、目前的排名、關於真實迷宮建立的資訊等等。在這一步,我建議你在繼續本課程之前參考老鼠人生官方網站:ratslife.org

從現在開始,我們希望你瞭解老鼠人生的規則和特定詞彙。

主要興趣領域和線索

[編輯 | 編輯原始碼]

老鼠人生比賽的主要機器人挑戰是視覺系統、未知環境中的導航和遊戲策略。每個主題的最佳解決方案仍然是一個懸而未決的問題,即沒有明確的解決方案。在比賽結束時,某個解決方案可能在某些主題上優於其他解決方案。實際上現在還沒有這種情況。本節為每個主題提供了一個起點,即一些標準技術(或其參考)以及快速開始比賽的主題難度。顯然,這些線索並非詳盡無遺,它們不應限制你的創造力和研究。

視覺系統 - 模式識別

[編輯 | 編輯原始碼]

在老鼠人生比賽中,使用了兩種 e-puck 感測器:紅外感測器和攝像頭。第一個感測器很簡單。紅外感測器返回的資訊非常直觀,其使用或多或少侷限於區分牆壁。然而,攝像頭返回的資訊要難處理得多。此外,攝像頭必須區分並估計多種模式的位置和方向,例如點亮的光源、熄滅的光源、另一個 e-puck,尤其是地標。

模式識別是一個巨大的主題,其中存在許多技術。本文件的目標不是提供現有解決方案的完整列表,而是提供一種有效開始比賽的方法。因此,一個簡單的解決方案是使用斑點檢測[4] 演算法。如果斑點選擇在適當的畫素集上進行校準,問題將變得更容易。

第一張圖描繪了檢測點亮飼料器的一種可能的流程。第一步是獲取通道值(透過簡單的RGB到HSV色彩空間[5]轉換)。然後,應用斑點檢測演算法來獲取對應於光源的斑點。最後,移除一些極端的斑點(尺寸過小、位置過高等等)。得到的斑點的x軸位置可以直接傳送給電機。為了提高當前流程的魯棒性,可以新增另一個斑點檢測,該檢測會在光點周圍搜尋紅色光暈。

點亮飼料器的影像處理流程示例

第二張圖描繪了檢測地標的一種可能的流程。這個問題比上一個更棘手。以下是一個可能的解決方案。首先,可以計算影像的色調通道。使用這個色彩空間,可以很容易地區分四種地標顏色。然後,在這個資訊上執行斑點檢測。斑點的尺寸提供了關於地標距離的線索。似乎是地標的斑點會被拉直(例如,使用單應性變換[6]),並進行歸一化(例如,在4x3矩陣上)。現在,可以很容易地將結果與資料庫進行比較,以獲取地標的編號。

地標影像處理流程示例

一般來說,計算機視覺流程由以下部分組成

  • 影像採集:這部分透過使用camera_get_image()函式來完成。它返回模擬或真實攝像機的畫素值。
  • 預處理:預處理部分的目的是提高影像質量。例如,可以對影像應用高斯模糊來去除噪聲。在前面的示例中,預處理對應於從RGB到HSV色彩空間的轉換。
  • 特徵提取:這部分最難選擇。在前面的示例中,使用了斑點檢測。但也可以使用完全不同的方法,例如邊緣檢測(要開始學習這個主題,請參考Canny邊緣檢測器[7]霍夫變換[8])。更復雜的技術可能與紋理、形狀或運動有關。
  • 檢測/分割:檢測部分的目的是去除不可用的資訊。例如,去除所有過小的斑點或選擇感興趣區域。
  • 高階處理:在這個步驟中,資訊幾乎可以使用了。但是,例如,地標斑點必須經過處理才能知道它屬於哪個類別。這部分通常是機器學習[9]問題。這也是計算機科學中的一個巨大領域。如果我必須只推薦兩種完全不同的方法,那將是生物啟發的反向傳播演算法,該演算法使用人工神經網路進行分類,以及統計啟發的支援向量機(SVM)[10]

基於視覺的導航 - 同時定位與建圖(SLAM)

[edit | edit source]

基於視覺的導航和建圖毫無疑問是“老鼠人生”比賽中最困難的部分。為了具有競爭力,e-puck必須儲存其之前的動作。事實上,如果一個e-puck找到了飼料器之間的最短路徑,它很可能贏得比賽。這需要構建地圖的表示。例如,一個簡單的地圖表示可以是生成一個圖,該圖可以將觀測(地標、飼料器、死衚衕)與動作(向左轉、向前走)聯絡起來。這裡介紹了一種強大的技術來解決這個問題。一旦地圖建立完成,就可以使用一些技術在迷宮中找到最短路徑(參考DijkstraA*演算法)。

同時定位與建圖(SLAM)是一種構建未知環境地圖並透過參考靜止參考點估計機器人當前位置的技術。這些點可以是迷宮牆壁(使用紅外感測器:基於距離感測器的導航),也可以是地標(使用攝像頭:基於視覺的導航)。有關更多資訊,請參考關於SLAM的練習。

遊戲策略

[edit | edit source]

“老鼠人生”是一場基於競爭的比賽。制定有效的策略是贏得比賽的第一步。遊戲策略(以及e-puck的行為)必須解決以下關鍵點

  • 迷宮探索:e-puck如何探索迷宮(隨機地、右手演算法)?它什麼時候可以探索迷宮?
  • 覆蓋範圍:生存需要多少個飼料器?當e-puck有足夠的飼料器來生存時,它的行為將是什麼?
  • 對手策略的反應:如果對手封鎖了一個通道,e-puck應該怎麼做?如果對手跟隨它,它的行為應該是什麼?
  • 能量管理:e-puck從哪個電池電量開始衝向飼料器?破壞飼料器的能量是否有用?
  • 對手干擾:e-puck如何阻擋對手?對手使用哪個飼料器?

其他機器人認知基準

[edit | edit source]

在世界各地,存在著大量的機器人比賽。在大多數比賽中,比賽從物理機器人的設計和建造開始。在這種情況下,很難比較機器人的認知能力,因為它們受到硬體選擇的很大影響。為了能夠對機器人的認知能力進行基準測試,需要標準化的平臺和環境。“老鼠人生”使用e-puck作為標準平臺,使用樂高迷宮作為環境。類似地,RoboCupFIRA組織有一個比賽類別,其中使用的機器人是相同的,環境是精心定義的。

RoboCup - 標準平臺聯盟

[edit | edit source]

RoboCup組織機器人足球比賽。有多個類別。其中一個類別使用標準平臺:一個名為Nao的雙足機器人(見圖)。使用這個平臺的第一個比賽於2008年舉行。兩支由四臺Nao組成的隊伍在足球比賽中競爭。


更多資訊可以在RoboCup的官方網站上找到:http://www.robocup.org

這個比賽的基於Webots的模擬版本可以在RobotStadium 上找到:http://www.robotstadium.org

國際機器人足球協會聯盟(FIRA) - Kheperasot

[edit | edit source]

FIRA還組織機器人足球比賽,包括一個基於Khepera差速輪機器人的標準聯盟。

FIRA的官方網站是:http://www.fira.net


註釋

[edit | edit source]
  1. 更多維基百科資訊:鏡子測試
  2. 來源:http://www.euron.org/activities/benchmarks/index.html
  3. 更多資訊:http://www.robocup.org/
  4. 更多資訊:斑點檢測
  5. 更多資訊:HSV色彩空間
  6. 更多維基百科資訊:單應性變換
  7. 維基百科上的更多資訊:Canny 邊緣檢測器
  8. 維基百科上的更多資訊:霍夫變換
  9. 在練習中的更多資訊:模式識別粒子群最佳化 和維基百科:機器學習
  10. 維基百科上的更多資訊:支援向量機
華夏公益教科書