本頁面包含 Google 技術文件季度接受的技術寫作專案詳細資料。
專案摘要
- 開放原始碼組織:
- Webot
- 技術撰稿人:
- Soft illusion Channel
- 專案名稱:
- Webots 的教學影片系列 (與 ROS2 整合)
- 專案長度:
- 標準長度 (3 個月)
Project description
收穫:
這系列影片教學課程旨在協助新使用者開始使用 Webots,並提供明確的逐步解決方案,幫助使用者完成特定模擬。
目標:
在本系列課程結束後,觀眾將能建立基本 ROS2 節點並與 Webots 互動,並且有信心在行動機器人中進行進階專案。這一系列影片也會針對機器人領域中幾個重要的概念,提供良好的理論說明。
系列影片詳細資料:
在 Visual Studio Code 中安裝及設定 ROS 2 存放區。 這包括 ROS2 的指令列安裝方式,以及其運作方式的基本知識。其次,還會說明如何在 VS Code 中設定 ROS 工作區,以及 VS Code 中基本分頁的功能。
ROS2 和 Webots 的基本範例。我們將使用一些 Webots ROS2 範例,讓觀眾瞭解如果將 ROS2 與 Webots 搭配使用進行模擬,可以發揮哪些驚人的效果。這也包含 ROS2 和 Webots 之間通訊的基本理論。
使用 ROS2 服務與 Webots 互動。ROS 服務的基本概念,說明 ROS 與 ROS2 服務之間的差異。其次,我們會逐步示範如何呼叫服務,並啟用感應器主題來讀取資料,以及啟用致動器來偵測動作。
使用 ROS2 Publisher 控制自訂機器人。瞭解如何使用 ROS2 發布端將訊息發布至 Webots。我們可以實作控制機器人動作的範例,方法是將鍵盤輸出內容發布至主題,然後由 ROS 服務用於 Webots 中的動作。
使用 ROS2 訂閱端取得機器人的回饋。在本影片中,我們將訂閱距離感應器的感應器讀數,並在機器人即將發生碰撞時停止機器人。基本上,這會是無法避免的節點,而是發布互動式訊息。
使用 ROS2 的主機(發布端) 從機(訂閱端) 機器人。在這部影片中,我們將用鍵盤控制某台機器人,讓另一個機器人遠離手動機器人。類似於 Thief and Cops 的劇情 :) [這是 3、4、5 部影片的續集]。這樣一來,觀眾就能測試通訊功能,如果 ROS 有問題,模擬會顯示錯誤。
設定 Rviz (顯示不同感應器輸出)。在這部影片中,我們會新增其他幾個感應器,並在 Rviz 上發布這些感應器的資料。在影片結束時,觀眾將能夠設定 Rviz (即新增 Lidar、相機等感應器以便進行視覺化)、儲存設定,並在下次產生儲存的設定。
影片偵錯 (Rostopic 回音、Rostopic 資訊、RQT_graph)。這部影片將針對幾個主題,故意顯示錯誤的功能,協助您瞭解除錯技巧。我們會依照程序查看 RQT 圖表,並瞭解哪些主題導致問題。使用 rostopic echo 檢查主題是否正在發布,並在最後檢查 rostopic 資訊,以便找出問題。解決問題並恢復正常功能。
偵錯影片(rqt_console、rqt_gui) 在這部影片中,我們會在節點中使用 Ros 訊息(資訊、偵錯、錯誤等),並探索 rqt_console 的用法。這部影片也會擴充使用 rqt_gui 來發布虛擬訊息,以取得所需功能。這是修正某些錯誤的替代方法。
進階主題影片:在不明環境中整合 SLAM 程式庫 (SLAM 工具箱或 LaMa) [第 1 部分] 這部影片將從 SLAM 問題的基本理論開始介紹。接著,我們將使用上述教學的基礎架構概念,瞭解專案的關鍵。最後,我們會透過終端機產生必要的節點,並在 Rviz 中查看對應輸出內容。
改良主題影片:在未知環境 (SLAM 工具箱或 LaMa) 中整合 SLAM 程式庫 [第 2 部分] [第 2 部分] 在這部影片中,我將教導觀眾如何製作發布檔案來一起啟動所有節點,並檢查 rqt_graph 以正確瞭解 ROS 架構的概念。最後,我們會使用地圖伺服器,儲存由套件產生的地圖。
進階主題影片:關於 OpenCV 的整合 (AR 標記偵測、Ar_track_alvar 套件) [第 1 部分] 這部影片會先介紹 AR 標記,以及在使用電腦視覺進行定位時,AR 標記的重要性。接著,我們將說明 AR 追蹤 Alvar 套件的運作方式。這有助於提供專案的整體觀點。最後,我們會建立服務,讓 Webots 的影片影格串流可傳送至 ROS 主題。
進階主題影片:關於 OpenCV 的整合 (AR 標記偵測、Ar_track_alvar 套件) [第 2 部分] 這部影片是第 12 部影片的延續,套件會使用上述圖像串流,並發布機器人和 AR 標記之間的轉換主題,可在 Rviz 上查看。最後,當我們移動機器人時,會看到不同的標記的位置,Rviz 和 rostopic 的訊息位置也會有所改變。
結語:
這個 GSOD 專案是一個自給自足的套件,可讓您對 ROS2 與 Webots 的整合方式有基本瞭解。這個套件也將包含 ROS2 中概念的實際實作方式,例如主題、服務、節點、啟動檔案、發布者、訂閱者、各種偵錯工具,以及 VS Code 的使用方式。這也包含 SLAM 和 OpenCV 等進階主題專案。這將讓觀眾瞭解使用 ROS2 和 Webots 進行端對端工作的典範。