Project RoboComp

Halaman ini berisi detail project penulisan teknis yang diterima untuk Google Season of Docs.

Ringkasan project

Organisasi open source:
RoboComp
Penulis teknis:
Le Thai An
Nama project:
Komponen dasar RoboComp
Durasi project:
Durasi standar (3 bulan)

Project description

Motivasi

RoboComp adalah salah satu framework robotika terkenal untuk riset dan aplikasi praktis. Repositori robocomp mencakup berbagai komponen (dikelola di repositori yang lebih kecil bernama robocomp-robolab) untuk berbagai aplikasi robotik seperti kontrol motor, pelokalan dan pemetaan, navigasi, pengenalan, dll. Namun, repositori komponen tidak memiliki dokumentasi detail untuk mengompilasi atau menggunakan setiap komponen, sehingga kegunaannya terbatas bagi developer baru. Proposal ini bertujuan untuk memecahkan masalah ini dengan mendokumentasikan komponen penting RoboComp serta menyusun contoh dokumen penggunaan untuk menggabungkan berbagai komponen untuk menyelesaikan tugas robotika tertentu. Detail proses dokumentasi akan dibahas di bagian berikutnya, lalu diikuti dengan bagian tonggak pencapaian untuk merencanakan jangka waktu guna menyelesaikan project. Terakhir, disebutkan beberapa catatan tentang proses dokumentasi.

Deskripsi

Seperti yang disebutkan, project ini memiliki dua sasaran utama:

  • Mendokumentasikan deskripsi detail, kompilasi dan penginstalan, konfigurasi, penggunaan, dan masalah umum terkait setiap komponen di RoboComp
  • Tulis contoh panduan yang menggunakan berbagai komponen di lingkungan RoboComp untuk menyelesaikan tugas robotika tertentu, yaitu pelokalan.

Sebagian besar komponen dasar di repo robocomp-robolab saat ini tidak memiliki petunjuk mendetail tentang cara mengompilasi dan cara menggunakan dalam berbagai konfigurasi parameter. Hal ini menimbulkan hambatan besar bagi developer baru yang ingin menggunakan komponen dalam project mereka atau berkontribusi pada framework. Alasannya adalah banyak komponen yang merupakan wrapper driver atau library eksternal yang memiliki banyak dependensi, sehingga mempersulit tugas kompilasi dan penginstalan. Selain itu, banyak komponen menggabungkan driver perangkat yang kompleks (yaitu hokuyoComp generik) untuk menyediakan antarmuka pesan di RoboComp yang memerlukan pengetahuan khusus perangkat untuk menyesuaikan parameter.

Oleh karena itu, kebutuhan akan dokumentasi mendetail, yang mencakup deskripsi perangkat, resolusi dependensi, dan penggunaan, sangat penting untuk kontribusi open source. Contoh dokumen komponen hokuyoComp saya dapat ditemukan di link:

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

Untuk menulis dokumentasi komponen konkret dan detail menggunakan pendekatan {i>top-down<i}, seseorang setidaknya harus dapat merasakan konten yang ditulis dalam dokumen itu, karena tujuan akhir dokumentasi adalah untuk mentransfer pengetahuan kerja kepada pengembang turunan. Struktur yang diusulkan untuk setiap dokumen komponen disajikan sebagai berikut:

  • Deskripsi
  • Kompilasi dan Penginstalan
  • Parameter konfigurasi
  • Memulai komponen (penggunaan)
  • Masalah umum

Dalam contoh ini, pertama-tama Anda mengumpulkan informasi tentang spesifikasi sensor Hokuyo, membaca kode komponen untuk memahami gambaran fungsi komponen guna menulis deskripsi komponen. Selanjutnya, pemahaman tentang lingkungan RoboComp dan pengetahuan tentang parameter khusus perangkat serta dependensi library akan membantu mendokumentasikan proses kompilasi, penginstalan, dan konfigurasi komponen. Misalnya, mengompilasi hokuyoComp membutuhkan paket deb liburg0-dev lama dari Ubuntu 14.04, tetapi paket deb dihapus dari Ubuntu PPA di versi yang lebih baru, jadi kita harus melakukan solusi untuk kompilasi seperti yang dinyatakan dalam dokumen. Dalam proses ini, kita juga dapat merekam masalah yang diketahui untuk mempercepat proses debug bagi pengembang baru. Terakhir, penggunaan komponen untuk berbagai skenario penggunaan didokumentasikan agar mudah mengintegrasikan komponen ke lanskap RoboComp untuk berbagai tugas robotika.

Pencapaian

Bagian ini merencanakan jangka waktu awal untuk menyelesaikan sasaran project yang disebutkan. Kita akan memilih dokumen komponen untuk ditulis berdasarkan kategori (yaitu komponen kamera, komponen laser). Estimasi waktu saat ini untuk menyelesaikan dokumen komponen didasarkan pada waktu penyelesaian contoh dokumen hokuyoComp. Jadwal waktunya adalah sebagai berikut:

  • 1 Agu—1 Sep: Ikatan komunitas:

    1. Menyiapkan rapat mingguan untuk menetapkan cakupan project serta ekspektasi dari penulis dan mentor.
    2. Mendapatkan pemahaman mendalam dalam framework RoboComp.
  • 2 September – 2 November: Menulis dokumen untuk setiap komponen di repo robocomp-robolab dengan peningkatan secara iteratif antara mentor dan penulis melalui rapat (diharapkan dapat menyelesaikan sebagian besar dokumen yang tidak terdokumentasi)

  • 2 Nov – 26 Nov: Menulis dokumen umum sebagai contoh untuk menggunakan berbagai komponen guna menyelesaikan tugas robotika.

  • 27 November – 29 November: Laporan akhir project.

  • Setelah GSoD 2019: Saya ingin tetap terhubung dengan RoboComp untuk lebih meningkatkan dan memelihara pekerjaan saya.

Catatan akhir

Penting untuk menulis contoh umum tentang cara mengintegrasikan berbagai komponen di lingkungan RoboComp agar pengguna dapat memahami gambaran besar fungsi RoboComp. Dokumen contoh ini akan dibahas lebih lanjut dengan mentor untuk memutuskan tugas robotika apa yang cocok bergantung pada implementasi RoboComp saat ini.