RoboComp 專案

本頁針對 Google 系列文件接受的技術撰寫專案提供詳細資料。

專案摘要

開放原始碼機構:
RoboComp
技術文件撰寫者:
Le 泰安
專案名稱:
RoboComp 的基本元件
專案長度:
標準長度 (3 個月)

Project description

動機

RoboComp 為研究和實際應用最著名的機器人架構之一。robocomp 存放區包含多種元件 (存放在名為 robocomp-robolab 的小型存放區中),適用於動作控制、本地化和對應、導覽、辨識等不同機器人應用程式。然而,元件存放區缺少詳細的說明文件,無法編譯或使用每個元件,因此導致新開發人員的可用性有限。本提案旨在記錄 RoboComp 的重要元件,並撰寫使用範例文件,說明如何結合不同元件來解決特定機器人工作,藉此解決這個問題。我們會在下一節中詳細討論說明文件程序,接著才會進行里程碑章節,說明完成專案所需的時間。最後,會提到一些說明文件程序的注意事項。

說明

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

  • 有關 RoboComp 中每個元件的文件詳細資料說明、編譯和安裝、設定、使用方式和已知問題
  • 撰寫範例指南,當中運用 RoboComp 環境中的不同元件解決特定機器人工作,例如本地化。

robocomp-robolab 存放區中大部分的基本元件目前都沒有詳細的編譯方式,以及如何使用不同的參數設定。新開發人員若想在專案中使用元件或參與架構,這會為新開發人員帶來巨大的障礙。原因在於,許多元件是外部驅動程式或程式庫的包裝函式,其中含有許多依附元件,導致編譯和安裝工作變得困難。此外,許多元件包裝了複雜的裝置驅動程式 (例如一般 hokuyoComp),以便在 RoboComp 中提供訊息介面,因此需要裝置特定知識才能調整參數。

因此,對開放原始碼貢獻而言,機構需要提供詳細文件,其中包含裝置說明、依附元件解析和使用方式。您可在此連結找到我的 Work hokuyoComp 元件文件範例:

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

如要使用由上而下的方式撰寫具體和詳細資料元件文件,至少要有能體驗該文件的內容,因為說明文件的最終目的,就是將工作知識轉移給繼承的開發人員。每個元件文件的建議結構如下所示:

  • 說明
  • 編譯和安裝
  • 設定參數
  • 啟動元件 (使用情形)
  • 已知問題

在這個範例中,有一個先收集北京感應器規格的相關資訊,接著詳細閱讀元件程式碼來瞭解元件功能的圖片,以便撰寫元件說明。接下來,瞭解 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 日 - 26 日:撰寫一般文件做為使用不同元件解決機器人工作的範例。

  • 11 月 27 日 - 29 日:專案報告結束。

  • 2019 年 GSoD 之後:我想與 RoboComp 保持聯絡,進一步改善和維持我的作品。

最後附註

請務必撰寫一個通用範例,說明如何在 RoboComp 環境中整合不同元件,讓使用者瞭解 RoboComp 功能的概況。這份範例文件將與導師進一步討論,決定哪些機器人工作適合根據 RoboComp 的實作方式執行。