本頁面包含 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 日:社群交流:
- 每週舉行會議,以便建立專案範圍,並瞭解作家和導師的期望。
- 深入瞭解 RoboComp 架構。
9 月 2 日至 11 月 2 日:為 robocomp-robolab 存放區中的每個元件撰寫說明文件,並透過會議讓導師和撰寫者進行逐步改良 (預計完成大部分未註明的說明文件)
11 月 2 日至 11 月 26 日:撰寫一般文件,以便說明如何利用不同的元件來解決機器人任務。
11 月 27 日至 11 月 29 日:專案結案報告。
在 2019 年 GSoD 後:我想與 RoboComp 保持互動,進一步改善及維護我的作品。
最後的附註
請務必撰寫一般範例,說明如何在 RoboComp 環境中整合不同元件,讓使用者瞭解 RoboComp 功能的整體概況。我們會與導師進一步討論這個範例文件,根據 RoboComp 目前的實作方式,決定適合的機器人任務。