Ignition Robotics 專案

本頁面包含 Google 技術文件季度接受的技術寫作專案詳細資料。

專案摘要

開放原始碼組織:
Ignition Robotics
技術撰稿人:
An Thai Le
專案名稱:
Ignition Physics 教學課程和 API 說明文件
專案長度:
標準長度 (3 個月)

Project description

動力

Ignition Physics 程式庫可讓您彈性使用轉移至 Ignition Gazebo 模擬器後端的物理引擎。許多外部物理引擎可視為程式庫的其中一個外掛程式,根據其功能和應用程式情境,提供不同的功能組合,以便支援 Gazebo 模擬。不過,程式庫目前的階段不提供以下項目:

  • 全面的教學課程,說明如何建立自訂物理引擎外掛程式,以便使用自訂物理引擎執行模擬
  • 一致的 API 說明文件

這項提案旨在解決這些問題,以便更妥善地維護專案,並以更原則的方式引導新貢獻者和使用者。下節將討論說明文件程序的細節,然後到里程碑部分,規劃完成專案所需的時間。最後,我們還會提到一些與目前說明文件相關的注意事項。

說明

這項專案有兩個主要目標:

  • 建立詳細教學課程,說明如何建立與目前程式庫 API 介面的自訂物理外掛程式。
  • 為了維護和協作,我們會強化目前的程式庫 API 說明文件。

目前,DART 是這個程式庫唯一支援的物理引擎。因此,教學課程將以 DART 為主軸。我們會考慮推出以下初始教學課程:

  1. 簡介:說明 Ignition Physics 程式庫的高階架構、支援的物理引擎和目標。
  2. 安裝:引導使用者視應用程式情境選擇安裝必要的物理引擎。本教學課程也將示範每個物理引擎外掛程式的示例設定,以便調整特定模擬作業。
  3. DART 外掛程式用法:說明 DART 物理引擎在 Gazebo 模擬中的用法範例。本教學課程包含一系列執行作業和設定,可在特定範例環境中啟動此程式庫,做為 Gazebo 模擬的後端。
  4. 建立自訂外掛程式:引導新使用者或開發人員透過某些形式的設定檔 (可能是類別範本),根據自訂物理引擎建立自訂外掛程式,並在物理引擎 API 和這個程式庫 API 之間開發介面。您可以在教學課程結尾處進行一些健全性檢查。
  5. 在模擬中使用多個外掛程式 (需要討論):說明如何在模擬中同時使用多個外掛程式。

我們會在社群連結期進一步討論教學課程的結構、說明和內容。這些教學課程的作者必須先確認教學步驟的有效性,才能合併至程式集。

如果是 API 說明文件,您可以根據此程式庫的 Google C++ 說明文件樣式進行調整。舉例來說,所有類別都必須有類別層級說明。此外,所有公用函式都必須附帶說明、所有引數以及可能回傳的值和例外狀況。建議您先為最重要的類別 (例如 dartsim::RetrieveWorld、Feature 等) 撰寫文件,以便以簡單的由上而下方式進行。在社群連結期間,我們會討論進一步的文件格式和重要類別識別。

Milestones

本節會規劃完成上述專案目標的初步時間表。時間規劃如下:

  • 8 月 17 日 - 9 月 13 日:社群連結:

    1. 安排會議,討論如何建立專案範圍和教學課程規劃,以及作者和導師的期望。
    2. 掌握 Ignition Physics 原始碼的全貌。
  • 9 月 14 日至 10 月 31 日:起草上述教學課程,並透過會議與導師和作者進行逐步精進。

  • 11 月 1 日至 11 月 30 日:為最重要的類別撰寫 API 說明文件,並使用 Doxygen 編譯說明文件。

  • 12 月 1 日至 12 月 5 日:撰寫專案報告。

  • 2020 年 GSoD 結束後:我想與 Ignition Robotics 保持聯繫,進一步改善及維護我的作品。

最終要點

請務必修訂 Ignition Physics 首頁目前的 README.md,因為使用 apt-get 的二進位安裝作業無法在 Ubuntu 18.04 上運作。來源安裝部分的格式不正確,也需要修訂。