Project Ignition Robotics

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

Ringkasan proyek

Organisasi open source:
Robotika Pengapian
Penulis teknis:
Le Thailand
Nama proyek:
Tutorial Ignition Physics dan dokumentasi API
Durasi proyek:
Durasi standar (3 bulan)

Project description

Motivasi

Library Ignition Physics memungkinkan penggunaan mesin fisika yang fleksibel untuk melakukan porting ke backend simulasi Ignition Gazebo. Banyak mesin fisika eksternal dapat diadaptasikan dengan library sebagai plugin yang terdiri dari serangkaian fitur yang berbeda sesuai dengan kemampuan dan konteks aplikasinya, untuk mendukung simulasi gazebo. Namun, tahap library saat ini tidak menyediakan:

  • tutorial komprehensif tentang cara membuat plugin fisika kustom yang menggunakan mesin fisika kustom untuk mengaktifkan simulasi
  • dokumentasi API yang koheren

Proposal ini bertujuan memecahkan masalah tersebut untuk pemeliharaan proyek yang lebih baik dan memandu kontributor dan pengguna baru dengan cara yang lebih berprinsip. Rincian proses dokumentasi akan dibahas di bagian selanjutnya dan kemudian diikuti oleh bagian {i>milestone<i} (tonggak capaian) untuk merencanakan jangka waktu untuk menyelesaikan proyek. Terakhir, disebutkan beberapa catatan tentang dokumentasi saat ini.

Deskripsi

Proyek ini memiliki dua tujuan utama:

  • Buat tutorial mendetail tentang cara membuat antarmuka plugin fisika kustom dengan API library saat ini.
  • Meningkatkan kualitas dokumentasi API library saat ini untuk tujuan pemeliharaan dan kolaborasi.

Saat ini, DART adalah satu-satunya mesin fisika pendukung library ini. Oleh karena itu, tutorial akan berkisar pada Dart. Tutorial awal ini akan dipertimbangkan:

  1. Pengantar: menjelaskan arsitektur tingkat tinggi dari library Ignition Physics, mesin fisika yang didukung, dan tujuannya.
  2. Penginstalan: memandu pengguna untuk menginstal mesin fisika yang diperlukan secara opsional, bergantung pada konteks aplikasi. Tutorial ini juga menunjukkan contoh konfigurasi bagi setiap plugin mesin fisika untuk mengadaptasi simulasi tertentu.
  3. Penggunaan plugin Dart: menjelaskan contoh penggunaan mesin fisika Dart pada simulasi Gazebo. Tutorial ini terdiri dari urutan eksekusi dan konfigurasi untuk memulai library ini sebagai backend untuk simulasi Gazebo pada lingkungan contoh tertentu.
  4. Buat plugin kustom: memandu pengguna atau developer baru untuk membuat plugin kustom berdasarkan mesin fisika kustom melalui beberapa bentuk file konfigurasi (mungkin template class), dan mengembangkan antarmuka antara API Phys Engine dan API library ini. Beberapa pemeriksaan kesehatan dapat disebutkan di akhir tutorial.
  5. Menggunakan beberapa plugin secara bersamaan (perlu diskusi): menjelaskan cara menggunakan beberapa plugin secara bersamaan saat runtime untuk contoh simulasi.

Perencanaan lebih lanjut tentang struktur, deskripsi, dan konten tutorial akan dibahas selama periode ikatan komunitas. Penulis tutorial ini memang harus memastikan validitas langkah-langkah tutorial sebelum menggabungkan ke repo.

Untuk dokumentasi API, Anda dapat beradaptasi dengan gaya dokumentasi Google C++ untuk library ini. Misalnya, semua kelas harus memiliki deskripsi tingkat kelas. Selain itu, semua fungsi publik harus didokumentasikan dengan deskripsi, semua argumen, serta nilai yang ditampilkan dan pengecualian yang mungkin. Sangat bermanfaat bahwa class yang paling penting (misalnya dartsim::RetrieveWorld, Feature, dll.) akan didokumentasikan terlebih dahulu sebagai pendekatan top-down yang lebih mudah. Gaya dokumentasi lebih lanjut, identifikasi kelas yang penting akan dibahas dalam periode ikatan komunitas.

Pencapaian

Bagian ini merencanakan kerangka waktu awal untuk menyelesaikan tujuan proyek yang disebutkan. Perencanaan waktu adalah sebagai berikut:

  • 17 Agu - 13 Sep: Ikatan komunitas:

    1. Membuat pertemuan untuk menetapkan cakupan proyek dan perencanaan tutorial serta ekspektasi dari penulis dan mentor.
    2. Pahami gambaran besar kode sumber Ignition Physics.
  • 14 Sep – 31 Okt: Buat draf tutorial yang disebutkan dengan perbaikan berulang antara mentor dan penulis melalui pertemuan.

  • 1 – 30 Nov: Menulis dokumentasi API untuk class yang paling penting dan mengompilasi dokumentasi menggunakan Doxygen.

  • 1 Des – 5 Des: Menulis laporan proyek.

  • Setelah GSoD 2020: Saya ingin tetap terhubung dengan Ignition Robotics untuk lebih meningkatkan dan memelihara hasil karya saya.

Catatan akhir

README.md harus direvisi di halaman depan Ignition Physics, karena penginstalan biner menggunakan apt-get tidak berfungsi di Ubuntu 18.04. Bagian penginstalan sumber juga memerlukan revisi karena format yang salah.