
Daftar Konten
Bahasa pemrograman untuk development mavlink
Implementasi sub protokol mavlink pada drone
Protokol heartbeat, Protokol Mission, Protokol Parameter, Protokol Command, Protokol Camera, Protokol Gimbal, Protokol Arming, Protokol image transmission, Protokol FTP, Protokol Path Creator & Protokol Landing
Definisi Protokol Mavlink
Mavlink kependekan dari Micro Air Vehicle Link
Merupakan protokol pengiriman pesan yang sangat ringan untuk berkomunikasi dengan drone (dan antara komponen drone onboard).
MAVLink mengikuti pola hybrid publish-subscribe and point-to-point design pattern : Aliran data dikirim / dipublikasikan sebagai topik sementara sub-protokol konfigurasi seperti protokol misi atau protokol parameter bersifat point-to-point dengan pengiriman ulang.
Pesan didefinisikan dalam file XML. Setiap file XML mendefinisikan set pesan yang didukung oleh sistem MAVLink tertentu, juga disebut sebagai “dialek”.
Set pesan referensi yang diterapkan oleh sebagian besar stasiun kontrol tanah dan pilot otomatis didefinisikan dalam common.xml (sebagian besar dialek dibangun di atas definisi ini).
Struktur Transmisi Data Mavlink
Paket MAVLink pada dasarnya adalah aliran byte yang disandikan dan dikirim melalui beberapa jenis transduktor (melalui serial USB, frekuensi RC, WiFi, GPRS, dll.).
Dengan penyandian, kami bermaksud menempatkan paket ke dalam struktur data dengan cara yang cerdas menambahkan checksum, nomor urut, dan mengirimkannya melalui saluran byte demi byte.
Bahasa Pemrograman yang dapat digunakan dalam development MAVlink
Protokol MAVLink sangat mudah dan fleksibel untuk di kembangkan mendukung bahasa pemrgraman C, C++, Python (2.7+, 3.3+), C#, Java, JavaScript, TypeScript/JavaScript, Lua, Swift, Clojure, Haskell dan bahasa Go
Implementasi Sub-Protokol Mavlink dalam drone/UAV
Protokol Heartbeat
Dalam UAV ( Unmaned Aerial Vehicle) digunakan protokol mavlink heartbeat
Protokol heartbeat digunakan untuk mengiklankan keberadaan suatu sistem pada jaringan MAVLink, bersama dengan sistem dan id komponennya, jenis vehicle, flight stack, jenis komponen, dan mode penerbangan.
Heartbeat memungkinkan komponen lain untuk:
- Menemukan sistem yang terhubung ke jaringan dan menyimpulkan ketika mereka terputus.
- Suatu sistem dianggap terhubung ke jaringan jika pesan HEARTBEAT diterima secara teratur, dan terputus jika sejumlah pesan yang diharapkan tidak diterima.
- Menangani pesan lain dari sistem dengan tepat, berdasarkan pada jenis sistem dan properti lainnya (mis. tata letak antarmuka GCS berdasarkan jenis kendaraan).
- Mengarahkan pesan ke sistem pada interface yang berbeda.
Protokol Mission
Sub-protokol misi memungkinkan GCS atau API pengembang untuk mengelola misi (rencana penerbangan), geofence, dan informasi titik aman pada drone / komponen.
Protokol mencakup:
- Operasi untuk mengunggah, mengunduh dan menghapus misi, mengatur / mendapatkan nomor item misi saat ini, dan mendapatkan pemberitahuan ketika item misi saat ini telah berubah.
- Jenis pesan untuk bertukar item misi.
- Perintah MAVLink yang umum untuk sebagian besar autopilot / GCS.
- Mengikuti pola klien / server, di mana operasi (dan sebagian besar perintah) dimulai oleh GCS / API pengembang (klien) dan diakui oleh autopilot (server).
Protokol Parameter
Protokol ini digunakan untuk bertukar pengaturan konfigurasi antara komponen MAVLink.
Setiap parameter direpresentasikan sebagai pasangan kunci / nilai.
Kuncinya biasanya nama parameter yang dapat dibaca manusia (maksimum 16 karakter) dan nilai – yang dapat menjadi salah satu dari sejumlah jenis.
Pasangan kunci / nilai memiliki sejumlah properti penting:
- Nama yang bisa dibaca manusia kecil tapi bermanfaat (bisa menyandikan nama parameter dari mana pengguna dapat menyimpulkan tujuan dari parameter).
- Autopilots tidak dikenal yang mengimplementasikan protokol dapat didukung “out of the box”.
- GCS tidak harus mengetahui terlebih dahulu parameter apa yang ada pada sistem jarak jauh (meskipun dalam praktiknya GCS dapat memberikan pengalaman pengguna yang lebih baik dengan metadata parameter tambahan seperti nilai maksimum dan minimum, nilai default, dll.).
- Menambahkan parameter hanya memerlukan perubahan pada sistem dengan parameter. GCS yang memuat parameter, dan pustaka komunikasi MAVLink, seharusnya tidak memerlukan perubahan apa pun.
Protokol Command
Protokol command MAVLink memungkinkan pengiriman perintah MAVLink yang terjamin.
Perintah adalah nilai MAV_CMD yang menentukan nilai hingga 7 parameter. Parameter ini dan id perintah dikodekan dalam COMMAND_INT atau COMMAND_LONG untuk pengiriman.
Protokol menyediakan pengiriman yang andal dengan menerima matching acknowledgement (COMMAND_ACK) dari perintah untuk menunjukkan kedatangan perintah, dan hasilnya.
Jika tidak diterima, perintah harus dikirim ulang secara otomatis
Protokol Camera
Protokol kamera digunakan untuk mengonfigurasi muatan kamera dan meminta statusnya.
Mendukung pengambilan foto, dan pengambilan dan streaming video.
Termasuk pesan untuk permintaan dan mengkonfigurasi penyimpanan kamera onboard.
Komponen kamera mengikuti Heartbeat / Connection Protocol dan mengirimkan aliran heartbeat yang konstan (nominal pada 1Hz).
Setiap kamera harus menggunakan ID komponen kamera yang telah ditentukan sebelumnya yang berbeda: MAV_COMP_ID_CAMERA hingga MAV_COMP_ID_CAMERA6.
Protokol Gimbal Configuration
Set pesan konfigurasi gimbal menggunakan sejumlah perintah dan beberapa pesan tujuan khusus untuk mengonfigurasi payload mount.
Secara default gimbal harus berkomunikasi dengan ID komponen MAV_COMP_ID_GIMBAL.
Dua perintah utama untuk menggunakan mavlink gimbals adalah MAV_CMD_DO_MOUNT_CONFIGURE dan MAV_CMD_DO_MOUNT_CONTROL.
Arm Authorization
Ketika diaktifkan dengan mengatur parameter pada tumpukan penerbangan, drone hanya akan mempersenjatai motor jika diizinkan oleh entitas eksternal.
Entitas eksternal ini bertanggung jawab untuk meminta informasi apa pun yang diperlukan dari drone dan dari sumber lain (misalnya: cuaca) dan apakah (atau tidak) akan mengesahkan prosedur mempersenjatai.
Ini diperlukan untuk mematuhi NASA UTM, tetapi mungkin juga bermanfaat bagi perusahaan swasta.
Protokol Image Transmission
Protokol transmisi gambar menggunakan MAVLink sebagai saluran komunikasi untuk mengangkut segala jenis gambar (gambar mentah, data Kinect, dll.)
Dari satu simpul MAVLink ke yang lain. pada dasarnya mengambil gambar kamera langsung, membaginya menjadi potongan-potongan kecil dan mengirimkannya melalui MAVLink.
Topik ini menjelaskan cara kerja fungsi streaming gambar dan mencakup protokol komunikasi dan detail implementasi (untuk UAV dan QGroundControl).
File Transfer Protocol (FTP)
Protokol FTP memungkinkan protokol transfer file mirip FTP melalui MAVLink. Ini mendukung operasi FTP umum seperti: membaca, memotong, menulis, menghapus dan membuat file, daftar dan menghapus direktori.
Protokol mengikuti pola client-server, di mana semua perintah dikirim oleh GCS (klien), dan Drone (server) merespons baik dengan ACK yang berisi informasi yang diminta, atau NAK yang mengandung kesalahan.
GCS menetapkan batas waktu setelah sebagian besar perintah, dan dapat mengirim ulang perintah jika dipicu. Drone harus mengirim kembali responsnya jika permintaan dengan nomor urut yang sama diterima.
Semua pesan (perintah, ACK, NAK) dipertukarkan di dalam pesan FILE_TRANSFER_PROTOCOL. Definisi jenis pesan ini minimal, dengan bidang untuk menentukan jaringan target, sistem dan komponen, dan untuk muatan variabel-panjang “sewenang-wenang”.
Protokol Path Planning (Trajectory Interface)
Protokol perencanaan jalur (Trajectory Interface) adalah protokol tujuan umum untuk suatu sistem untuk meminta perencanaan jalur dinamis dari sistem lain (mis. Untuk autopilot untuk meminta jalur dari komputer pendamping).
Protokol ini terutama ditujukan untuk kasus-kasus di mana kendala pada jalur ke tujuan tidak diketahui atau dapat berubah secara dinamis, tetapi juga dapat digunakan untuk kegiatan manajemen jalur lainnya.
Contohnya termasuk: penghindaran rintangan saat mengikuti misi yang direncanakan, menentukan jalur untuk kawanan pembentuk diri sendiri / penyembuhan, menurunkan manajemen geofence ke komputer pendamping, dll.
Protokol Landing Target
landing target services/message mengkomunikasikan posisi satu atau lebih target dari sistem penentuan posisi MAVLink ke autopilot.
Sistem multicopter atau VTOL dapat menggunakan pesan untuk mendarat dengan akurasi posisi jauh lebih besar daripada yang disediakan oleh GPS konvensional (GPS menyediakan posisi dalam beberapa meter sementara sistem target pendaratan mungkin cukup memberikan pendaratan presisi tingkat sentimeter).
Sistem penentuan posisi biasanya terdiri dari komputer pendamping onboard dengan sistem penglihatan yang dapat mendeteksi suar cahaya atau gambar target.
Beacon radio dan berbagai jenis penanda dan tag visual juga didukung
📒 Artikel Bermanfaat Lainya
- Fungsi dan kegunaan drone
- Sejarah fotogrametri
- Kelebihan dan kekurangan GPS Geodetik
- Starter development ardupilot dengan MAVLink