Menjatuhkan PWM di Ardrone Parrot 2.0

8

Saya mengalami beberapa masalah dengan ARDrone Parrot 2.0 dan berharap ada orang lain yang mengalami hal yang sama.

Saat melayang, drone (tampaknya) secara acak kehilangan ketinggian kemudian pulih. Itu melakukannya sementara tidak diperintahkan input kecepatan dan harus menahan ketinggian.

Kami menggunakan driver dari ardrone_autonomy (cabang dev_unstable) di github . Kami dapat menonton output PWM yang dikirim ke motor dan mereka turun dari perintah hover melakukan nilai kecil sebelum secara eksponensial kembali ke nilai hover ketika penurunan ini terjadi.

Masalahnya bisa berupa komunikasi antara IMU dan pengontrol onboard atau pada implementasi kontrol perangkat lunak kami.

Adakah yang melihat masalah atau saran serupa untuk menguji / memecahkan masalah apa yang terjadi?

Daman
sumber
Apakah Anda menggunakan ARDrone di dalam atau di luar ruangan? Disimpulkan dari pertanyaan sebelumnya, medan apa yang Anda coba arahkan? Beberapa medan dapat menyebabkan masalah dengan melayang. Sudahkah Anda menguji di berbagai lingkungan? Strategi kontrol apa yang Anda gunakan dalam implementasi kontrol perangkat lunak Anda? PID? Apakah Anda memegang ketinggian menggunakan sensor ultrasonik onboard?
Tom Bamber

Jawaban:

1

Saya belum pernah menggunakan ARDrone tetapi memiliki pengalaman dengan penahanan ketinggian pada autopilot lain.

Tanpa informasi lebih lanjut, pencarian google cepat menemukan kemungkinan masalah firmware dengan ARDrone di utas ini .

Jika Anda menggunakan sensor ultrasonik onboard, maka seperti yang saya sebutkan di posting saya tentang Bagaimana saya bisa mendeteksi tepi meja? . Sensor ultrasonik dapat melompat ke nol secara sporadis selama beberapa detik dan ini dapat menyebabkan ARDrone mengubah ketinggian dan kemudian melompat kembali ke nilai sebenarnya.

Tom Bamber
sumber
Tom, Kami menggunakan drone di dalam ruangan saat ini. Kami berada di lab kami yang merupakan lantai karpet dan menggunakan ubin berwarna kontras tinggi untuk sistem penguncian. Kami belum dapat menguji banyak di lingkungan lain karena pengaturan lab kami saat ini di universitas.
Daman
Jadi untuk strategi kontrol, kami menggunakan xbox controller untuk terbang menggunakan ROS node untuk membaca input. File ROS yang kita peroleh adalah dari github ARdrone_autonomy. Perintah sedang dikirim ke kontrol onboard drone yang tampaknya menjadi PID. Kami lebih baik mempersempit masalah kami sejak posting pertama saya. ROS memiliki topik dari data navigasi internal yang memberikan informasi motor. Ini menunjukkan nilai-nilai PWM yang sedang dikirim ke motor serta istilah integral internal untuk pengontrol PID ketinggian. Kami melihat bahwa sedang diatur ulang dari 60 ke 0 ketika quad jatuh
Daman
Untuk mengkonfirmasi sinyal PWM yang dikirim ke motor diatur ulang dari 60 ke nol ketika quad jatuh? Jika demikian, maka orang perlu melacak kembali dan menentukan dari mana kesalahan matematika berasal. Saya pikir masalahnya berasal dari cara data sensor Anda digunakan di ketinggian, Anda tidak bisa menyetel PID Anda dengan kesalahan semacam itu.
Tom Bamber