
Hari ini kami menggabungkan program kontrol drone otonom dengan program deteksi bola untuk meledakkan balon dengan drone otonom.
Pada artikel sebelumnya, kami menguji peluncuran drone virtual dan real otonom, serta pengembangan node ROS yang mendefinisikan dan mentransfer koordinat bola di ruang angkasa . Sekarang kita akan membuat kembali program kontrol drone sehingga secara otomatis mencoba untuk menghancurkan bola.
Program terbang menuju bola
Program terbang ke bola didasarkan pada siklus kontrol kecepatan yang sama seperti pada program kontrol manual .
Perbedaannya adalah bahwa alih-alih tombol kontrol dari keyboard, vektor kecepatan drone dikendalikan oleh informasi tentang posisi bola yang diperoleh dari topik /baloon_detector/twist
.
Kecepatan setvel_forward
dan vektor setvel_forward
diatur sehingga drone terbang langsung ke bola.
Jika drone tidak melihat bola selama lebih dari 0,2 detik, kami percaya bahwa kami meledakkannya dan menempatkan drone ke mode pendaratan.
Teks lengkap program diberikan di bawah ini: (crash_baloon.py) Rekomendasi debugging
Untuk debugging, kami sarankan memilih ruang terbuka, melampirkan bola ke pangkalan, memastikan bahwa tidak ada benda merah di dekatnya, sehingga tidak ada positif palsu dari program panduan.
Pengoperasian program panduan, sebelum penerbangan, harus diperiksa menggunakan browser, di 192.168.11.1:8080:

Jika semuanya dikonfigurasi dengan benar, program harus dengan percaya diri membedakan bola dan tidak menyebabkan kesalahan positif.

Pada awal program bimbingan, dipahami bahwa drone harus melihat bola setelah lepas landas. Jika tidak, drone akan berpikir bahwa bola telah meledak, dan akan beralih ke mode pendaratan.
Di masa depan, Anda dapat memodifikasi program - membuat pendekatan ke bola, misalnya, menggunakan mode AUTO.MISSION. Dan setelah mencapai titik GPS yang diinginkan, beralih ke mode pencarian visual.
Pemilihan koefisien untuk kecepatan dalam siklus utama program dilakukan secara eksperimental untuk drone tertentu.
Di kompetisi, upaya untuk meledakkan bola tampak seperti ini:
Saya akan berterima kasih atas komentar dan pertanyaan dari mereka yang mencoba mengulang percobaan kami.
Kode sumber untuk program diunggah ke Github .