RoboComp プロジェクト

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

プロジェクトの概要

オープンソースの組織:
RoboComp
テクニカル ライター:
Le Thai An
プロジェクト名:
RoboComp の基本コンポーネント
プロジェクトの期間:
標準の期間(3 か月)

プロジェクトの説明

目的

RoboComp は、研究および実用化においてよく知られているロボット工学フレームワークの一つです。robocomp リポジトリには、モーター制御、ローカライズ、マッピング、ナビゲーション、認識など、さまざまなロボット アプリケーションのための幅広いコンポーネントが含まれています(robocomp-robolab という小さなリポジトリで管理されています)。ただし、コンポーネントのリポジトリには、各コンポーネントのコンパイルや使用に関する詳細なドキュメントが不足しているため、新しいデベロッパーにとってのユーザビリティは限定的です。この提案は、RoboComp の重要なコンポーネントを文書化するとともに、さまざまなコンポーネントを組み合わせて特定のロボット工学のタスクを解決するための使用例をまとめたドキュメントを作成することで、この問題を解決することを目指しています。文書化プロセスの詳細は次のセクションで説明し、その後にマイルストーン セクションで、プロジェクト完了の期間を計画します。最後に、文書化プロセスに関する注意事項について説明します。

説明

すでに説明したように、このプロジェクトには次の 2 つの主な目標があります。

  • RoboComp の各コンポーネントに関する詳細な説明、コンパイルとインストール、構成、使用方法、既知の問題のドキュメント
  • RoboComp 環境内のさまざまなコンポーネントを利用して、特定のロボット工学タスク(ローカライズ)を解決するサンプルガイドを作成します。

現在、robocomp-robolab リポジトリの基本コンポーネントのほとんどには、コンパイル方法やさまざまなパラメータ構成での使用方法に関する詳細な手順がありません。これは、プロジェクトでコンポーネントを使用したい、またはフレームワークに貢献したいと考えている新しい開発者にとって、大きな障害となります。これは、多くのコンポーネントが、多くの依存関係を持つ外部ドライバまたはライブラリのラッパーであり、タスクのコンパイルとインストールが困難であるためです。さらに、多くのコンポーネントが複雑なデバイス ドライバ(汎用の hkuyoComp)をラップして RoboComp のメッセージ インターフェースを提供します。そのため、パラメータを調整するにはデバイス固有の知識が必要です。

そのため、オープンソースへの貢献には詳細なドキュメント(デバイスの説明、依存関係の解決、使用方法など)が不可欠です。私の仕事 hkuyoComp コンポーネント ドキュメントの例は、次のリンクにあります。

https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp

トップダウンのアプローチを使用して具体的かつ詳細なコンポーネントのドキュメントを作成するには、少なくともそのドキュメントの内容を体験できる必要があります。ドキュメントの最終的な目的は、継承されたデベロッパーに実用的な知識を伝えることであるためです。各コンポーネント ドキュメントで提案される構造を以下に示します。

  • 説明
  • コンパイルとインストール
  • 設定パラメータ
  • コンポーネントの起動(使用方法)
  • 既知の問題

この例では、まず北陽センサーの仕様に関する情報を収集し、コンポーネント コードを読み取り、コンポーネントの機能を把握し、コンポーネントの説明を記述します。次に、RoboComp 環境、デバイス固有のパラメータ、ライブラリの依存関係に関する知識があれば、コンポーネントのコンパイル、インストール、構成プロセスを文書化できます。たとえば、hkuyoComp をコンパイルするには、Ubuntu 14.04 の古い liburg0-dev deb パッケージが必要ですが、今後 Ubuntu PPA から deb パッケージが削除されているため、ドキュメントに記載されているようにコンパイルの回避策を行う必要があります。このプロセスで既知の問題を記録して、新しい開発者のデバッグ時間を短縮することもできます。最後に、コンポーネントをさまざまなロボット タスク用に RoboComp ランドスケープに簡単に統合できるように、さまざまな使用シナリオでのコンポーネントの使用方法を記載しています。

マイルストーン

このセクションでは、上記のプロジェクト目標を達成するための初期期間について計画します。カテゴリ(カメラ コンポーネント、レーザー コンポーネント)に基づいて、作成するコンポーネント ドキュメントを選択します。現在コンポーネントのドキュメントの作成に要する時間の推定は、hkuyoComp ドキュメントの例を完了する時間を基準にしています。スケジュールは次のとおりです。

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

    1. プロジェクト スコープの設定と、ライターとメンターの両方から期待値を設定するための週次ミーティングを設定する。
    2. RoboComp フレームワークに関する理解を深める
  • 9 月 2 日~ 11 月 2 日: robocomp-robolab リポジトリの各コンポーネント用のドキュメントを作成し、ミーティングを通じてメンターとライターの間で反復的な改良を加えます(ドキュメント化されていないドキュメントのほとんどは完成する見込みです)

  • 11 月 2 日~ 11 月 26 日: さまざまなコンポーネントを利用してロボット工学のタスクを解くための例として、一般的なドキュメントを記述します。

  • 11 月 27 日~ 29 日: プロジェクト レポートの終了。

  • GSoD 2019 の開催後: 作品のさらなる改善と維持のために RoboComp と連絡を取り合いたいと考えています。

最後の注意事項

ユーザーが RoboComp 機能の全体像を理解できるように、RoboComp 環境でさまざまなコンポーネントを統合する方法の一般的な例を記述する必要があります。このサンプル ドキュメントはメンターと詳しく説明し、RoboComp の現在の実装に応じてどのロボット工学タスクが適しているかを判断します。