Mengapa saya perlu filter Kalman?


61

Saya merancang kendaraan udara tak berawak, yang akan mencakup beberapa jenis sensor:

  • Accelerometer 3-sumbu
  • Giroskop 3 sumbu
  • Magnetometer 3 sumbu
  • sensor cakrawala
  • GPS
  • ultrasound menghadap ke bawah.

Seorang teman saya mengatakan kepada saya bahwa saya perlu memasukkan semua data sensor ini melalui filter Kalman, tetapi saya tidak mengerti mengapa. Mengapa saya tidak bisa langsung memasukkan ini ke pengontrol mikro saya. Bagaimana filter Kalman membantu saya tentang data sensor saya?

Jawaban:


52

Anda jangan menghubungkan semua sensor ini langsung ke mikrokontroler. Filter Kalman bukan filter elektronik seperti filter LRC yang berada di antara sensor dan mikrokontroler. Filter Kalman adalah filter matematika yang diimplementasikan sebagai perangkat lunak rutin di dalam mikrokontroler.

Sensor yang Anda daftarkan memberikan mikrokontroler 14 atau 15 angka mentah setiap kali semuanya diperbarui.

Ketika saya menerbangkan pesawat kecil, apa yang saya benar-benar ingin tahu adalah posisi dan orientasinya dan seberapa jauh itu di atas tanah - 7 angka.

Saya butuh sesuatu yang memberi saya 7 angka itu.

Idealnya saya ingin perkiraan baru dari 7 angka itu setiap kali melalui loop kontrol saya. Pembaruan sekali per detik yang saya dapatkan dari GPS murah saya tidak cukup cepat. (Orang-orang di frekuensi berapa loop pembaruan keluaran-akal-kalkulasi-keluaran-quadcopter saya harus tetap stabil? Memberitahu saya bahkan 50 kali per detik tidak akan cukup cepat).

Entah bagaimana saya harus mengurangi 14 atau 15 angka mentah yang saya miliki, beberapa di antaranya hanya sesekali diperbarui, menjadi (perkiraan) 7 angka yang benar-benar saya inginkan.

Seperti yang ditunjukkan Josh, ada banyak cara ad-hoc untuk mengubah angka-angka mentah menjadi data yang dapat digunakan. Setiap rutin yang mengubah 15 angka menjadi 7 angka dapat digambarkan sebagai "filter".

Anda tidak harus menggunakan filter optimal. Tetapi Anda akan menggunakan beberapa jenis filter - yaitu, sesuatu yang mengubah dari 15 angka data mentah yang Anda miliki menjadi (perkiraan) 7 angka yang benar-benar Anda inginkan.

The Kalman Filter adalah, dalam beberapa kondisi, "optimal" filter, cara terbaik untuk mengkonversi data mentah menjadi 7 angka yang saya benar-benar ingin.

Mungkin perlu sedikit usaha pada Anda untuk menggunakan filter Kalman yang telah ditulis dan didebet orang lain, daripada menulis beberapa filter lain dari awal, men-debug-nya, dan terus menambahkan barang ke sana sampai dapat digunakan - filter yang akan mau tidak mau berubah menjadi sub-optimal.


28

Jawaban singkat dan sinis adalah "cobalah tanpa satu." Jawaban yang lebih baik adalah sebuah contoh: Ketika accellerometers Anda mengatakan Anda 10 derajat dari vertikal, tetapi gyro Anda mengatakan Anda belum berputar menjauh dari vertikal, dan magnetometer Anda melaporkan offset 30 derajat dari utara tetapi gyro Anda mengatakan 32 derajat .. apa judul dan kemiringan saat ini?

Anda mungkin akan menemukan sejuta cara ad-hoc yang tampaknya berhasil dalam satu contoh, tetapi gagal pada yang lain. Filter Kalman (Extended Kalman Filter (EKF) untuk tugas ini!) Akan memberi Anda cara yang ketat untuk menjawab pertanyaan-pertanyaan ini. Kualitas jawaban masih diteliti - meskipun track record EKF adalah sangat baik - tapi setidaknya semua orang akan setuju apa jawaban yang .


1
Persis jawaban yang saya cari. "Apa yang akan terjadi jika saya tidak menggunakan Filter Kalman". Terima kasih!
Manav Kataria

22

Data sensor berisik. Jika Anda tidak menyaringnya, maka kendaraan Anda setidaknya akan bertindak tidak menentu jika itu bahkan cukup stabil untuk terbang. Penyaringan, melalui filter Kalman atau lainnya, dapat mengurangi kebisingan ketika dilakukan dengan benar, meningkatkan stabilitas pada gilirannya.

Sebuah Filter Kalman adalah filter sangat kuat. Dibutuhkan model sistem dan model derau untuk sistem dan sensor Anda. Ini kemudian memperkirakan keadaan kendaraan berdasarkan estimasi keadaan yang disediakan dan kontrol yang diterapkan setiap saat. Keadaan perkiraan ini akan lebih akurat daripada yang dilaporkan oleh sensor.


8

Anda bisa menggunakan filter partikel juga. Untuk pengantar dasar untuk Filter Partikel, Anda dapat melihat video Profesor Thrun dalam Memprogram Mobil Robot.

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

Filter partikel lebih kuat dan memiliki probabilitas kesalahan penutupan loop yang jauh lebih rendah, yang biasanya terjadi saat menerapkan EKF.

Video tersebut menggambarkan fungsi filter partikel.


Umumnya, jawaban yang berisi tidak lebih dari tautan tidak disukai. Jika Anda dapat menulis satu atau dua paragraf di intisari video, itu akan menyenangkan ..
Manishearth

berbicara sendiri. Saya melihat sedikit keuntungan dengan menyatakan kembali informasi di tautan lain. Tautan tersebut mungkin berisi informasi yang tidak saya sadari dan seseorang tidak perlu mengetik ulang untuk membuat saya menyadarinya. Saya dapat mengklik dan membaca dengan sangat mudah, terima kasih.
Spiked3

8

Filter Kalman adalah algoritma yang biasanya digunakan dalam UAV untuk menggabungkan pengukuran sensor bersama-sama untuk memberikan perkiraan posisi dan / atau orientasi UAV yang "optimal". Misalnya, Filter Kalman dapat menggabungkan pengukuran accelerometer, gyro, dan magnetometer dengan perkiraan kecepatan untuk memperkirakan yaw, pitch, dan roll UAV.

Untuk informasi lebih lanjut tentang sensor dan algoritme yang digunakan dalam estimasi keadaan UAV, cobalah artikel yang berdiri sendiri. Fundamentals of Small Unmanned Aircraft Flight .

Artikel ini juga menautkan ke kode Matlab yang menyertai penerapan algoritma estimasi negara bagian UAV Kalman Filter yang dijelaskan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.