RoboComp プロジェクト

このページでは、Google Season of Docs に承認された技術文書作成プロジェクトの詳細について説明します。

プロジェクトの概要

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

プロジェクトの説明

目的

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

説明

前述のように、このプロジェクトには次の 2 つの主な目標があります。

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

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

そのため、オープンソースへの貢献には、デバイスの説明、依存関係の解決、使用方法を含む詳細なドキュメントが必要です。私の作業の例である hokuyoComp コンポーネントのドキュメントは、次のリンクにあります。

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

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

  • 説明
  • コンパイルおよびインストール
  • 構成パラメータ
  • コンポーネントの開始(使用方法)
  • 既知の問題

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

マイルストーン

このセクションでは、プロジェクトの目標を達成するための最初のタイムラインを計画します。作成するコンポーネントのドキュメントは、カテゴリ(カメラ コンポーネント、レーザー コンポーネントなど)に基づいて選択されます。コンポーネントのドキュメントの作成にかかる時間の現在の見積もりは、hokuyoComp ドキュメントの例の作成にかかる時間に基づいています。時刻表は次のとおりです。

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

    1. 週次ミーティングを設定してプロジェクトの範囲と ライターとメンターからの期待を設定します
    2. RoboComp フレームワークの詳細を理解する。
  • 9 月 2 日~ 11 月 2 日: robocomp-robolab リポジトリ内の各コンポーネントのドキュメントを作成し、メンターとライターが会議を通じて反復的に改良します(ドキュメント化されていないドキュメントのほとんどが完成する予定です)

  • 11 月 2 日~ 11 月 26 日: さまざまなコンポーネントを使用してロボット タスクを解決する例として、一般的なドキュメントを作成します。

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

  • GSoD 2019 後: RoboComp とつながり続け、作品をさらに改善し、維持していきたいです。

最終情報

ユーザーが RoboComp 機能の全体像を理解できるように、RoboComp 環境にさまざまなコンポーネントを統合する方法の一般的な例を記述することが重要です。このサンプルのドキュメントは、RoboComp の現在の実装に応じて適切なロボット タスクを決定するために、メンターとさらに議論します。