RoboComp 專案

本頁面包含 Google 技術文件季度接受的技術寫作專案詳細資料。

專案摘要

開放原始碼組織:
RoboComp
技術撰稿人:
Le Thai An
專案名稱:
RoboComp 的基本元件
專案長度:
標準長度 (3 個月)

Project description

動機

RoboComp 是知名的研究和實際應用機器人架構之一。robocomp 存放區包含多種元件 (在名為 robocomp-robolab 的較小存放區中維護),可用於不同的機器人應用程式,例如馬達控制、定位和對應、導航、辨識等。不過,元件存放區缺乏各個元件的編譯或使用方式詳細說明文件,因此新開發人員的實用性有限。這項提案旨在解決這個問題,方法是記錄 RoboComp 的重要元件,並編譯使用範例文件,說明如何結合不同元件來解決特定機器人任務。下節會討論說明文件程序的細節,然後是里程碑部分,以規劃完成專案的時間範圍。最後,我們會說明與說明文件程序相關的注意事項。

說明

如先前所述,這項專案有兩個主要目標:

  • 文件詳細說明、編譯和安裝、設定、用法和已知問題,這些都與 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 日:專案結案報告。

  • 在 2019 年 GSoD 後:我想與 RoboComp 保持互動,進一步改善及維護我的作品。

最後的附註

請務必撰寫一般範例,說明如何在 RoboComp 環境中整合不同元件,讓使用者瞭解 RoboComp 功能的整體概況。我們會與導師進一步討論這個範例文件,根據 RoboComp 目前的實作方式,決定適合的機器人任務。