Ignition Robotics プロジェクト

このページには、Google シーズンのドキュメントで受け入れられているテクニカル ライティング プロジェクトの詳細が記載されています。

プロジェクトの概要

オープンソースの組織:
Ignition Robotics
テクニカル ライター:
アンタイレ
プロジェクト名:
Ignition Physics のチュートリアルと API ドキュメント
プロジェクトの期間:
標準の期間(3 か月)

プロジェクトの説明

目的

Ignition Physics ライブラリにより、Ignition Gazebo シミュレーションのバックエンドに移植する物理エンジンを柔軟に使用できます。ガゼボ シミュレーションを強化するために、多くの外部物理エンジンを、その機能とアプリケーション コンテキストに応じて異なる機能セットで構成されるプラグインとしてライブラリに適応させることができます。ただし、ライブラリの現在の段階では、以下は行えません。

  • カスタムの物理エンジンを使用してシミュレーションを強化するカスタム物理プラグインを作成するための包括的なチュートリアル
  • 首尾一貫した API ドキュメント

この提案は、こうした問題を解決して、プロジェクトをより適切に管理し、新しいコントリビューターやユーザーを、より原則に沿った方法で導くことを目的としています。文書化プロセスの詳細は次のセクションで説明し、その後にマイルストーン セクションでプロジェクト完了の期間を計画します。最後に、現在のドキュメントに関する注意事項について説明します。

Description

このプロジェクトの主な目標は次の 2 つです。

  • 現在のライブラリ API とやり取りするカスタム物理プラグインの作成に関する詳細なチュートリアルを作成します。
  • メンテナンスとコラボレーションを目的として、現在のライブラリ API ドキュメントを強化します。

現在、このライブラリでサポートされている物理エンジンは DART のみです。そのため、このチュートリアルでは、Dart を中心に説明します。以下の最初のチュートリアルを検討します。

  1. はじめに: Ignition Physics ライブラリのアーキテクチャの概要、サポートされている物理エンジン、目標について説明します。
  2. インストール: アプリのコンテキストに応じて、必要な物理エンジンを必要に応じてインストールするようユーザーに案内します。このチュートリアルでは、特定のシミュレーションを適応させるための各物理エンジン プラグインの構成例についても説明します。
  3. Kotlin プラグインの使用: Gazebo シミュレーションでの DART の物理エンジンの使用例について説明します。このチュートリアルでは、このライブラリを特定のサンプル環境で Gazebo シミュレーションのバックエンドとして開始するための、一連の実行と構成について説明します。
  4. カスタム プラグインの作成: 新しいユーザーまたはデベロッパーを対象に、なんらかの形式の構成ファイル(場合によってはクラス テンプレート)を使用してカスタム物理エンジンに基づくカスタム プラグインを作成し、物理エンジン API とこのライブラリ API の間のインターフェースを開発します。チュートリアルの最後に、いくつかのサニティ チェックについて説明します。
  5. シミュレーションで複数のプラグインを使用する(議論が必要): シミュレーションの実行時に複数のプラグインを同時に使用する方法について説明します。

チュートリアルの構成、説明、コンテンツについてのさらなる計画は、コミュニティの絆を深めるときに検討します。チュートリアルの作成者は、リポジトリにマージする前に、チュートリアルのステップが有効であることを確認する必要があります。

API ドキュメントについては、このライブラリの Google C++ ドキュメント スタイルに適応させることができます。たとえば、すべてのクラスにはクラスレベルの説明が必要です。さらに、すべてのパブリック関数は、説明、そのすべての引数、可能性のある戻り値と例外とともに文書化する必要があります。簡単なトップダウンのアプローチとして、最も重要なクラス(dartsim::RetrieveWorld、Feature など)を最初に文書化しておくと便利です。さらなるドキュメント スタイルと重要なクラスの特定については、コミュニティのボンディング期間中に議論します。

マイルストーン

このセクションでは、上記のプロジェクト目標を達成するための初期期間について計画します。スケジュールは次のとおりです。

  • 8 月 17 日~ 9 月 13 日: コミュニティの絆:

    1. プロジェクトの範囲とチュートリアルの計画、およびライターとメンターの両方から要求事項を定めるための会議を設定する。
    2. Ignition Physics のソースコードの全体像を把握します。
  • 9 月 14 日~ 10 月 31 日: メンターとライターの間でミーティングを通じて繰り返し改良を加え、前述のチュートリアルの下書きを作成します。

  • 11 月 1 日~ 11 月 30 日: 最も重要なクラスの API ドキュメントを作成し、Doxygen を使用してドキュメントをコンパイルします。

  • 12 月 1 日~ 12 月 5 日: プロジェクト レポートを作成する。

  • GSoD 2020 の開催後: Ignition Robotics とのつながりを維持して、作品の改良とメンテナンスを行いたいと思っています。

最後に

apt-get を使用したバイナリ インストールは Ubuntu 18.04 では機能しないため、Ignition Physics のフロントページにある現在の README.md を修正することが不可欠です。形式が正しくないため、ソース インストール セクションもリビジョンが必要です。