Bagaimana saya bisa memanipulasi data sonar waktu-nyata dari Arducopter saya di Arduino?

8

Saya memiliki APM 3DR Quad dengan kit telemetri radio 3DR. Saya ingin mengirim data sonar waktu-nyata ke laptop saya (menjalankan Windows 7) untuk memanipulasinya dalam Sketsa Arduino tambahan.

Sensor sonar terhubung ke saluran Analog In di Arduino saya. Data itu diproses untuk perhitungan ketinggian, dan saya ingin mengirim data ketinggian ini ke semacam stasiun bumi di komputer saya melalui penggunaan kit telemetri (2 Radio 3DR: 1 di quadcopter dan 1 di komputer saya).

Saya tidak begitu yakin bagaimana melakukan tugas ini. Apakah ada cara saya dapat memodifikasi kode sumber (GCS.h atau GCS_Mavlink.pde) bersama dengan stasiun darat Mission Planner Mav 1.0 untuk melakukan ini? Atau apakah saya perlu menulis modul python untuk mencapai ini?

pengguna1702
sumber
Hai David, selamat datang di robotika . Kami umumnya baik dan bermanfaat di sini, jadi saya memangkas baris "terima kasih" dari pertanyaan Anda - dimengerti :). Satu pertanyaan yang saya miliki adalah apakah Anda mengatakan sonar ketika Anda bermaksud "telemetri radio".
Ian
Tidak, saya memiliki sensor sonar yang terhubung ke saluran Analog In di Arduino saya. Data itu diproses untuk perhitungan ketinggian, dan saya ingin mengirim ketinggian ini ke semacam stasiun bumi di komputer saya melalui penggunaan kit telemetri (2 Radio 3DR: 1 di quadcopter dan 1 di komputer saya)
user1702
Hai pengguna1702, komentar dimaksudkan untuk membantu membuat pertanyaan dan jawaban lebih baik, jadi lebih baik menambahkan informasi yang diminta dalam komentar dengan mengedit pertanyaan Anda, dengan cara itu komentar dapat dirapikan (dihapus) dan tidak akan lagi mengalihkan perhatian orang dari pertanyaan.
Mark Booth
Apakah Anda ingin memproses data sonar di laptop Anda, atau mengirimkannya melalui laptop ke Arduino lain?
John Wiseman
John, saya ingin memproses data di laptop saya. Saya telah mencoba untuk membuat mavproxy bekerja, tetapi saya mengalami beberapa masalah. Mudah-mudahan, saya dapat mengintegrasikan modul python untuk membantu ini.
user1702

Jawaban:

2

Menyiapkan perangkat lunak untuk mengekstrak data sensor khusus baru melalui MAVLink tampaknya lebih sulit dari yang seharusnya.

Langkah pertama adalah membuat quadcopter mengirimkan data.

  • Pertama, Anda perlu mendefinisikan jenis pesan MAVLink baru menggunakan XML di mavlink / message_definitions. Anda bisa membuat integer baru yang tidak digunakan untuk message_id.
  • Kedua, Anda menghasilkan fungsi paket / pembongkaran pesan menggunakan generator MAVLink.
  • Maka Anda perlu menambahkan kode ke ArduCopter / GCS_Mavlink.pde di data_stream_send untuk membuat dan mengirim pesan Anda. Anda perlu sedikit berhati-hati di sini, karena dinamika penerbangan mulai menurun jika sensor Anda membaca hentikan loop utama selama lebih dari beberapa milidetik, terutama untuk quad kecil atau dalam ruangan terbang (itulah yang dimaksud dengan bisnis "gcs_out_of_time" ). Saya akan menambahkan sensor baru ke pemicu STREAM_EXTRA3.
  • Buat kembali dan unggah firmware penerbangan baru.

Separuh proyek lainnya ada di PC, di mana Anda perlu memodifikasi perangkat lunak stasiun bumi untuk membaca paket MAVLink Anda dari aliran telemetri. Saya tidak tahu di mana Anda akan mulai melakukan hal ini kepada Mission Planner, yang sepertinya merupakan perangkat lunak yang sangat canggih. Tapi untungnya itu membuang telemetri radio mentah ke "tlog" , jadi Anda mungkin dapat membangun program yang sepenuhnya terpisah yang mencari paket MAVLink baru Anda dari tlog. (Anda tentu tidak ingin Sketsa Arduino untuk ini, karena Sketsa berjalan pada Arduino, bukan PC.)

Jika ini terdengar menakutkan bagi Anda, Anda tidak sendirian! Untuk quad indoor kami, kami akhirnya membangun protokol komunikasi radio dan "stasiun darat" kami sendiri, karena kami tidak dapat menggunakan GPS atau titik arah atau fitur MAVLink lainnya, dan berurusan dengan kompleksitas MAVLink tidak sebanding dengan kami.

Orion Lawlor
sumber