本頁針對 Google 系列文件接受的技術撰寫專案提供詳細資料。
專案摘要
- 開放原始碼機構:
- Ignition Robotics
- 技術文件撰寫者:
- 泰銖
- 專案名稱:
- Ignition 物理學教學課程和 API 說明文件
- 專案長度:
- 標準長度 (3 個月)
Project description
動力
Ignition Physics 程式庫可靈活地使用物理引擎,並移植到 Ignition Gazebo 模擬的後端。許多外部物理引擎都能根據程式庫進行調整,因為外掛程式是由根據其功能和應用程式情境組成的不同功能組合,可用於執行凝視模擬。然而,目前的程式庫階段不提供下列項目:
- 說明如何建立自訂物理外掛程式,以使用自訂物理引擎執行模擬作業的全方位教學課程
- 一致的 API 說明文件
本提案旨在解決這些問題,藉此提升專案維護效率,並以更原則的方式引導新貢獻者和使用者。我們會在下一節中詳細討論說明文件程序,隨後會說明里程碑部分,方便你規劃完成專案的時間範圍。最後,我們會提到一些關於目前說明文件的注意事項。
說明
本專案有兩個主要目標:
- 建立詳細的教學課程,瞭解如何建立與目前程式庫 API 互動的自訂物理外掛程式。
- 強化目前的程式庫 API 說明文件,以便進行維護和協作。
此程式庫目前只支援 DART 這個程式庫的物理引擎。因此,教學課程將以 DART 為主。進行初始教學課程時會考量到以下幾點:
- 簡介:說明 Ignition Physics 程式庫的高階架構、支援的物理引擎和目標。
- 安裝:根據應用程式環境,引導使用者選擇安裝必要的物理引擎。本教學課程也會說明每個物理引擎外掛程式適用的設定範例,以調整特定模擬結果。
- DoubleClick 外掛程式使用:說明在 Gazebo 模擬上使用 DART 物理引擎的範例。本教學課程包含一系列執行和設定,以啟動這個程式庫,做為特定範例環境的 Gazebo 模擬後端。
- 建立自訂外掛程式:引導新使用者或開發人員透過某些形式的設定檔 (可能是類別範本) 根據自訂物理引擎建立自訂外掛程式,並在物理引擎 API 和這個程式庫 API 之間開發介面。在教學課程結束時,系統會記錄一些例行性檢查。
- 在模擬中使用多個外掛程式 (需要討論):說明如何在執行階段同時使用多個外掛程式進行模擬範例。
我們會在社群凝聚期間討論,針對教學課程架構、說明和內容進行進一步的規劃。確實是這些教學課程的作者在合併到存放區之前,必須確保教學課程步驟的有效性。
在 API 說明文件中,您可以根據這個程式庫的 Google C++ 說明文件樣式進行調整。舉例來說,所有類別都必須包含類別層級說明。此外,所有公用函式都必須記錄,包括說明、所有引數,以及可能的傳回值和例外狀況。我們會將最重要的類別 (例如 dartsim::RetrieveWorld、Feature 等) 列為簡單的由上而下拍攝,這種做法會很有幫助。後續文件風格將會在社群交流期間討論重要的類別識別方式。
Milestones
本節規劃初次完成專案目標的初始時間範圍。時間規劃如下:
8 月 17 日 - 9 月 13 日:社群凝聚力:
- 安排會議來擬定專案範圍、規劃教學內容,並確立作家和導師的期望。
- 掌握 Ignition Physics 原始碼的概況。
9 月 14 日 - 10 月 31 日:透過會議草擬上述教學課程,並在過程中不斷調整講師與寫作家之間的內容。
11 月 1 日 – 30 日:針對最重要的類別撰寫 API 說明文件,並使用 Doxygen 編譯說明文件。
12 月 1 日 - 12 月 5 日:撰寫專案報告。
2020 年 GSoD 之後:我想與 Ignition Robotics 保持交流,進一步改善並維持工作成果。
最終附註
您必須修改 Ignition Physics 正面網頁目前的 README.md,因為使用 apt-get 的二進位檔安裝無法在 Ubuntu 18.04 上運作。由於格式錯誤,來源安裝部分也需要修改。