Ignition Robotics 專案

本頁針對 Google 系列文件接受的技術撰寫專案提供詳細資料。

專案摘要

開放原始碼機構:
Ignition Robotics
技術文件撰寫者:
泰銖
專案名稱:
Ignition 物理學教學課程和 API 說明文件
專案長度:
標準長度 (3 個月)

Project description

動力

Ignition Physics 程式庫可靈活地使用物理引擎,並移植到 Ignition Gazebo 模擬的後端。許多外部物理引擎都能根據程式庫進行調整,因為外掛程式是由根據其功能和應用程式情境組成的不同功能組合,可用於執行凝視模擬。然而,目前的程式庫階段不提供下列項目:

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

本提案旨在解決這些問題,藉此提升專案維護效率,並以更原則的方式引導新貢獻者和使用者。我們會在下一節中詳細討論說明文件程序,隨後會說明里程碑部分,方便你規劃完成專案的時間範圍。最後,我們會提到一些關於目前說明文件的注意事項。

說明

本專案有兩個主要目標:

  • 建立詳細的教學課程,瞭解如何建立與目前程式庫 API 互動的自訂物理外掛程式。
  • 強化目前的程式庫 API 說明文件,以便進行維護和協作。

此程式庫目前只支援 DART 這個程式庫的物理引擎。因此,教學課程將以 DART 為主。進行初始教學課程時會考量到以下幾點:

  1. 簡介:說明 Ignition Physics 程式庫的高階架構、支援的物理引擎和目標。
  2. 安裝:根據應用程式環境,引導使用者選擇安裝必要的物理引擎。本教學課程也會說明每個物理引擎外掛程式適用的設定範例,以調整特定模擬結果。
  3. DoubleClick 外掛程式使用:說明在 Gazebo 模擬上使用 DART 物理引擎的範例。本教學課程包含一系列執行和設定,以啟動這個程式庫,做為特定範例環境的 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 日 – 30 日:針對最重要的類別撰寫 API 說明文件,並使用 Doxygen 編譯說明文件。

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

  • 2020 年 GSoD 之後:我想與 Ignition Robotics 保持交流,進一步改善並維持工作成果。

最終附註

您必須修改 Ignition Physics 正面網頁目前的 README.md,因為使用 apt-get 的二進位檔安裝無法在 Ubuntu 18.04 上運作。由於格式錯誤,來源安裝部分也需要修改。