Bagaimana cara memodelkan noise yang tidak dapat diprediksi di Kalman Filter?

9

Latar Belakang:

Saya menerapkan Filter Kalman sederhana yang memperkirakan arah arah robot. Robot ini dilengkapi dengan kompas dan giroskop.

Pemahaman saya:

Saya berpikir tentang mewakili keadaan saya sebagai vektor 2D , di mana x adalah arah arah saat ini dan ˙ x adalah tingkat rotasi yang dilaporkan oleh giroskop.(x,x˙)xx˙

Pertanyaan:

  1. Jika pemahaman saya benar, tidak akan ada istilah kontrol, di filter saya. Apakah itu benar Bagaimana jika saya menganggap negara sebagai vektor 1D ( x ) ? Lalu apakah ˙ x saya menjadi istilah kontrol u ? Akankah kedua metode ini menghasilkan hasil yang berbeda?u(x)x˙u
  2. Seperti yang kita ketahui, sumber kebisingan utama berasal dari kompas ketika kompas berada dalam medan magnet yang terdistorsi. Di sini, saya kira kebisingan Gaussian kurang signifikan. Tetapi distorsi magnetik sama sekali tidak dapat diprediksi. Bagaimana kami memodelkannya di Filter Kalman?
  3. Dalam Kalman Filter, apakah asumsi bahwa "semua suara putih" perlu? Katakanlah, jika distribusi noise saya sebenarnya adalah distribusi Laplacian, apakah saya masih dapat menggunakan Filter Kalman? Atau saya harus beralih ke filter lain, seperti Extended Kalman Filter?
Sibbs Gambling
sumber

Jawaban:

6
  1. Saya akan memodelkan ini sebagai sistem satu negara (x), dengan gyro sebagai input kontrol. Kebisingan gyro menjadi noise input negara, kebisingan kompas menjadi noise pengukuran. Jadi model sistem Anda menjadi ˙y = x di mana y adalah perkiraan penyaring arah, yang Anda membandingkan dengan arah kompas untuk mendapatkan pembaruan Kalman Anda.
    θ˙^=ωgyrHai+w
    y^=x^
    y^
  2. Distorsi magnetik akan menjadi sulit, karena jika Anda duduk di satu tempat itu akan muncul sebagai istilah offset konstan - filter Kalman tidak akan menangani hal ini dengan baik. Saya cukup yakin Anda perlu memetakan distorsi, mendapatkan referensi arah absolut kedua, atau hanya menerima distorsi.
  3. Anda membingungkan konten spektral dengan distribusi probabilitas. Jika kebisingan putih, maka masing-masing sampel benar-benar independen dari sampel lain. Jika kebisingannya Laplacian, setiap sampel mematuhi distribusi Laplace. Filter Kalman tidak suka noise berwarna (tetapi Anda bisa mengatasinya dengan menambahkan status). Filter Kalman hanya keseluruhan filter optimal ketika kebisingan dari distribusi Gaussian dan fungsi biaya adalah jumlah-kuadrat. Untuk fungsi noise dan biaya lainnya, filter optimal mungkin nonlinier. Tetapi untuk fungsi zero-mean, white noise dan jumlah-biaya-kotak, filter Kalman adalah filter linier terbaik yang dapat ditemukan.

(Perhatikan bahwa model sistem yang saya berikan berakhir dengan filter Kalman yang cukup sepele - Anda mungkin lebih baik, jika Anda tidak dapat menemukan beberapa cara lain untuk memperkirakan kompas offset, menggunakan filter gratis untuk menggabungkan dua input sensor ini. semua perhitungan Kalman hanya akan berakhir dengan batuk filter gratis, dan kemungkinan besar Anda akan memiliki perkiraan yang cukup untuk konstanta Anda sehingga Anda juga bisa menebak titik crossover di filter gratis dan selesai dengan itu).

(Catat juga, bahwa jika Anda memiliki beberapa referensi posisi absolut , dan beberapa cara memperkirakan kecepatan, dan kendaraan yang selalu mengarah ke arah yang Anda arahkan, bahwa Anda dapat menggunakan filter Kalman yang diperluas dengan sangat menguntungkan untuk memperbaiki distorsi kompas dengan menggunakan arahnya bergerak untuk mengoreksi arah kompas).

Estimasi Keadaan Optimal oleh Dan Simon, Wiley 2006, adalah - menurut pendapat saya - perlakuan yang sangat kaya dan jelas tentang subjek penyaringan Kalman dan saudara-saudaranya yang lebih canggih (H-infinity, extended Kalman, Kalman tanpa wewangian, dan bahkan sedikit pada Baysian dan penyaringan partikel). Itu tidak akan memberi tahu Anda bagaimana menerapkannya pada masalah navigasi seperti ini, tetapi di mana akan menyenangkan dalam hidup jika semua masalah diselesaikan ?. Jika Anda tidak dapat mengikuti matematika di buku Simon, maka Anda mungkin harus bertanya pada diri sendiri apakah Anda akan dapat menerapkan filter Kalman dengan segala cara yang cerdas.

TimWescott
sumber
+1 Untuk filter pelengkap untuk aplikasi ini tampaknya lebih cocok. Juga buku Dan Simon sangat bagus. Artikel ini adalah pengantar yang bagus untuk filter Kalman (oleh penulis yang sama) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz
@ddevaz Ya, saya sebenarnya SEKARANG menerapkan filter pelengkap. Tapi masalahnya adalah tidak menghasilkan hasil yang sangat baik. Jadi saya berpikir untuk beralih ke filter "lebih canggih" lainnya ...
Sibbs Gambling
Saya melihat. Saya telah mengedit jawaban saya untuk memasukkan beberapa bahan referensi tentang implementasi filter Kalman dengan gyros, accelerometer, dan magnetometer.
ddevaz
3
  1. Tidak akan ada istilah input kontrol. Anda harus menggunakan (x, xdot) sebagai vektor keadaan untuk merumuskan filter Kalman dengan benar.

  2. Sumber kebisingan utama adalah kompas dan giroskop . Kebisingan dan penyimpangan giroskop sangat signifikan. Ini cukup menantang untuk mengatasi distorsi magnetik secara umum tetapi ada teknik kompensasi .

  3. Asumsi nol berarti kebisingan distribusi normal multivariat diperlukan namun kebisingan putih hanya kasus khusus ini. Untuk filter Kalman yang diperluas, asumsi ini masih perlu benar. Anda dapat melihat jenis filter lain (filter partikel , filter Kalman tanpa wewangian ).

Desain / Implementasi Kertas Kalman Filter:

Menerapkan Algoritma Fusion Sensor untuk Deteksi Orientasi 3D dengan Sensor Inertial / Magnetic

ddevaz
sumber
Jadi saya tidak bisa meninggalkan KF untuk menangani distorsi magnetik yang tidak dapat diprediksi, kan? Saya harus membuang nilai terdistorsi terlebih dahulu dan kemudian meninggalkan KF untuk berurusan dengan kebisingan sensor. Baik?
Sibbs Gambling
Iya. Filter Kalman tidak akan dapat secara akurat mengkompensasi distorsi magnetik karena perubahannya bisa drastis. Saya akan mencoba dan menerapkan kompensasi magnetik terlebih dahulu kemudian menerapkan filter Kalman.
ddevaz