Project RoboComp

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

Ringkasan proyek

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

Project description

Motivasi

RoboComp adalah salah satu kerangka kerja robotika yang terkenal untuk penelitian dan penerapan praktis. Repo robocomp mencakup berbagai komponen (dikelola dalam repo yang lebih kecil bernama robocomp-robolab) untuk berbagai aplikasi robot seperti kontrol motor, pelokalan dan pemetaan, navigasi, pengenalan, dll. Namun, repo komponen tidak memiliki dokumentasi detail untuk mengompilasi atau menggunakan setiap komponen, sehingga kegunaannya terbatas untuk developer baru. Proposal ini bertujuan untuk menyelesaikan masalah ini dengan mendokumentasikan komponen penting dari RoboComp serta menyusun contoh dokumen penggunaan untuk menggabungkan berbagai komponen guna menyelesaikan tugas robotika tertentu. Detail proses dokumentasi akan dibahas di bagian selanjutnya dan kemudian diikuti oleh bagian {i>milestone<i} (tonggak capaian) untuk merencanakan jangka waktu penyelesaian proyek. Terakhir, disebutkan beberapa catatan tentang proses dokumentasi.

Deskripsi

Seperti yang disebutkan, proyek ini memiliki dua tujuan utama:

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

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

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

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

Untuk menulis dokumentasi komponen konkret dan mendetail menggunakan pendekatan top-down, seseorang setidaknya harus dapat merasakan konten yang ditulis dalam dokumen tersebut, karena tujuan akhir dokumentasi adalah untuk mentransfer pengetahuan kerja kepada developer yang diwariskan. Struktur yang diusulkan untuk setiap dokumen komponen disajikan sebagai berikut:

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

Dalam contoh, seseorang pertama-tama mengumpulkan informasi tentang spesifikasi sensor Hokuyo, membaca kode komponen untuk memahami gambaran fungsionalitas komponen untuk menulis deskripsi komponen. Selanjutnya, pemahaman tentang lingkungan RoboComp dan pengetahuan parameter khusus perangkat serta dependensi library akan membantu mendokumentasikan proses kompilasi, penginstalan, dan konfigurasi komponen. Sebagai contoh, mengkompilasi hokuyoComp memerlukan paket deb liburg0-dev lama dari Ubuntu 14.04, tetapi paket deb dihapus dari Ubuntu PPA di versi yang lebih baru, oleh karena itu kami harus melakukan solusi kompilasi seperti yang dinyatakan dalam dokumen. Dalam proses ini, kami juga dapat mencatat masalah yang diketahui untuk mempercepat proses debug untuk developer baru. Terakhir, penggunaan komponen untuk berbagai skenario penggunaan didokumentasikan untuk memudahkan integrasi komponen ke lanskap RoboComp untuk berbagai tugas robotika.

Pencapaian

Bagian ini merencanakan kerangka waktu awal untuk menyelesaikan tujuan proyek yang disebutkan. Kami akan memilih dokumen komponen untuk ditulis berdasarkan kategori (yaitu komponen kamera, komponen laser). Perkiraan waktu saat ini untuk menyelesaikan dokumen komponen didasarkan pada waktu penyelesaian contoh dokumen hokuyoComp. Tabel waktunya adalah sebagai berikut:

  • 1 Agu - 1 Sep: Ikatan komunitas:

    1. Menyiapkan rapat mingguan untuk menetapkan cakupan proyek serta ekspektasi dari penulis dan mentor.
    2. Mendapatkan pemahaman mendalam tentang framework RoboComp.
  • 2 Sep - 2 Nov: Menulis dokumen untuk setiap komponen dalam repo robocomp-robolab dengan perbaikan berulang antara mentor dan penulis melalui pertemuan (diharapkan untuk menyelesaikan sebagian besar dokumen yang tidak terdokumentasi)

  • 2-26 Nov: Menulis dokumen umum sebagai contoh untuk memanfaatkan berbagai komponen untuk menyelesaikan tugas robotika.

  • 27 – 29 Nov: Akhir laporan proyek.

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

Catatan akhir

Penting untuk menulis contoh umum tentang cara mengintegrasikan berbagai komponen di lingkungan RoboComp agar pengguna dapat memahami gambaran besar fungsi RoboComp. Contoh dokumen ini akan didiskusikan lebih jauh dengan mentor untuk memutuskan tugas robotika apa yang cocok tergantung pada implementasi RoboComp saat ini.