Webots 專案

本頁詳細說明 Google 文件季度接受的一項技術撰寫專案詳細資料。

專案摘要

開放原始碼組織:
Webots
技術撰稿人:
柔和幻覺管道
專案名稱:
Webots 系列影片 (與 ROS2 整合)
專案長度:
標準長度 (3 個月)

Project description

學習重點:

在這個教學影片系列中,新使用者可充分運用 Webots 快速上手,並提供明確的逐步解決方案,讓觀眾能完成特定模擬。

目標:

完成本系列課程後,觀眾將能建立基本的 ROS2 節點、與 Webots 互動,並能放心地進行行動機器人的進階專案。這個系列的影片也會針對機器人學領域的幾個重要概念提供良好理論說明。

系列影片詳細資料:

  1. 在 Visual Studio Code 中安裝及設定 ROS 2。這包括以指令方式安裝 ROS2,以及其運作方式的基本概念。其次,也包括在 VS code 設定 ROS 工作區,以及 VS code 中基本分頁的功能。

  2. 基本的 ROS2 和 Webots 範例。以下列舉一些 Webots ROS2 的例子,幫助觀眾瞭解如果將 ROS2 與 Webots 搭配使用,可以帶來哪些奇觀。同時也包含 ROS2 和 Webots 之間的基本溝通理論。

  3. 使用 ROS2 服務與 Webots 互動。 說明 ROS 服務的基本概念,解釋 ROS 和 ROS2 服務之間的差異。其次,展示逐步教學課程來呼叫服務,並啟用感應器主題,以便讀取資料和致動器的動作。

  4. 使用 ROS2 Publisher 控制自訂機器人。瞭解如何使用 ROS2 發布者將訊息發布至 Webots。我們可以實作一個控制機器人動作的範例,將鍵盤輸出內容發布至主題,並供 ROS 服務在 Webots 中使用該功能進行動作。

  5. 透過 ROS2 訂閱者取得機器人的意見回饋。在這部影片中,我們將訂閱距離感應器的感應器讀取資料,並在即將碰撞時讓機器人停止偵測。因此基本上會成為阻礙性節點,而且會發布互動式訊息。

  6. 採用 ROS2 的主要(發布者) Slave(訂閱者) 機器人。這部影片將介紹一名使用鍵盤的機器人,讓另一機器人不再是人工操作。這就像是 Thief 和 Cops :) [這將有 3,4,5 部影片的延續。]這麼做可讓檢視者測試通訊,如果發生問題,模擬作業在 ROS 中會發生瑕疵。

  7. 設定 Rviz (顯示不同的感應器輸出)。 在這部影片中,我們會新增幾個感應器,並將其資料發布至 Rviz。觀看這段影片後,觀眾可以設定 Rviz (也就是加入光學雷達、攝影機等感應器等感應器,以便下次呈現已儲存的設定)。

  8. 影片偵錯 (Rostopic echo、Rostopic 資訊、RQT_graph)。這部影片將針對幾個主題刻意設定不正確的功能,將有助於瞭解偵錯技巧。我們將遵循檢視 RQT 圖表的流程,並瞭解哪些主題因此產生了問題。使用 rostopic echo 檢查主題是否發布,並在最後檢查主題主題資訊,以便解決問題。解決問題並且具有正常功能。

  9. 對 video(rqt_console, rqt_gui) 這部影片中,節點會使用 Ros 訊息(info、偵錯、錯誤等),並探索 rqt_console 的使用方式。這部影片也會擴充為使用 rqt_gui 發布虛擬訊息,以便取得必要的功能。這也可以做為修正部分錯誤的替代方法。

  10. 進階主題影片:在不明環境 (SLAM 工具箱或 LaMa) 中整合 SLAM 程式庫 [第 1 部分] 這部影片會從 SLAM 問題的基本理論開始。之後我們會運用上學的概念基礎架構,瞭解專案的全貌。最後,我們將透過終端機產生必要的節點,並以 Rviz 的格式產生對應輸出內容。

  11. 進階主題影片:在不明環境 (SLAM 工具箱或 LaMa) 中整合 SLAM 程式庫 [第 2 部分] 為延續第 10 部影片,這部影片中會教導我如何製作啟動檔案來同時啟動所有節點,並檢查 rqt_graph 以確實理解 ROS 架構的概念。最後,我們會使用地圖伺服器儲存 套件產生的地圖。

  12. 進階主題影片:整合 OpenCV (AR 標記偵測、Ar_track_alvar 套件) [第 1 部分] 影片一開始會介紹什麼是 AR 標記,以及這些標記對於使用電腦視覺進行本地化的重要性。接著,我們會建構 AR 音軌 Alvar 套件的運作方式。這有助於呈現專案的整體觀點。最後,這項服務會啟用從 Webots 到 ROS 主題的視訊影格串流。

  13. 進階主題影片:整合 OpenCV (AR 標記偵測、Ar_track_alvar 套件) [第 2 部分] 這部影片將延續第 12 部影片,其中將使用上述的圖片串流,而機器人與 AR 標記之間的轉換主題則會在 Rviz 上發布。最後,當我們移動機器人時,便會看到標記在 Rviz 及 rostopic 訊息中的位置發生變化。

結語:

這項 GSOD 專案是獨立的套件,可讓使用者對 ROS2 與 Webots 的整合作業有基本瞭解。這個套件也將納入 ROS2 概念的實際實作內容,例如主題、服務、節點、啟動檔案、發布者、訂閱者、不同的偵錯工具,以及 VS 程式碼的使用方式。這也包含 SLAM 和 OpenCV 等進階主題專案。如此一來,觀眾就能以 ROS2 和 Webots 輕鬆完成工作端對端的典範。