Sistem saya adalah sebagai berikut. Saya menggunakan kamera perangkat seluler untuk melacak objek. Dari pelacakan ini, saya mendapatkan empat poin 3D yang saya proyeksikan di layar, untuk mendapatkan empat poin 2D. 8 nilai ini agak berisik, karena deteksi, jadi saya ingin menyaringnya untuk membuat gerakan lebih halus dan lebih realistis. Sebagai pengukuran kedua, saya menggunakan output giroskop perangkat, yang memberikan tiga sudut Euler (yaitu sikap perangkat). Itu lebih tepat dan pada frekuensi yang lebih besar (hingga 100 Hz) daripada posisi 2D (sekitar 20 Hz).
Upaya pertama saya adalah dengan filter low-pass sederhana, tetapi lag itu penting, jadi saya sekarang mencoba menggunakan filter Kalman, berharap itu akan dapat menghaluskan posisi dengan sedikit penundaan. Seperti yang terlihat dalam pertanyaan sebelumnya , satu titik kunci dalam filter Kalman adalah hubungan antara pengukuran dan variabel status internal. Di sini pengukurannya adalah 8 titik koordinat titik 2D dan 3 sudut Euler saya, tetapi saya tidak yakin tentang apa yang harus saya gunakan sebagai variabel keadaan internal dan bagaimana saya harus menghubungkan sudut Euler ke titik 2D. Karenanya pertanyaan utama, apakah filter Kalman bahkan cocok untuk masalah ini? Dan jika ya, bagaimana?
sumber
From this tracking, I get four 3D points that I project on a mobile device screen, to get four 2D points. These 8 values are kinda noisy
dan kemudian Anda berkataWhat's available to me is the device's gyroscope output, which provides three Euler angles (i.e. the device attitude).
. Yang mana itu? Empat poin 2D, atau tiga sudut Euler? Atau apakah kereta pemrosesan menuju sudut Euler -> titik 3D -> titik 2D?Jawaban:
Penyaringan Low Pass
Akan lebih baik untuk mengetahui apa yang Anda maksud dengan "filter low pass sederhana".
Misalnya, jika pengukuran Anda tepat waktu adalahk
dan perkiraan filter low pass Anda adalah:
maka Anda akan memiliki penundaan grup yang cukup besar di filter sekitar (untuk alpha mendekati 1).1 / ( 1 - α )
Memodelkan Sinyal: Pendekatan Sederhana
Untuk menggunakan filter Kalman (atau pendekatan serupa lainnya), Anda perlu memiliki model untuk bagaimana pengukuran Anda diperoleh dan diperbarui.
Biasanya ini terlihat seperti:
mana ϵ k adalah noise proses (mengemudi), A adalah matriks transisi keadaan, dan B adalah matriks input Anda.
Dan kemudian yang diukur adalah: p k = C p T R U E k + D ν k di mana ν k adalah keluaran (pengukuran) kebisingan, C adalah matriks keluaran, dan Dhalk
Di sini, "keadaan" model dipilih sebagai posisi sebenarnya, dan hal-hal yang Anda ukur adalah output.
Anda kemudian dapat menerapkan persamaan filter Kalman untuk mendapatkan estimasi keadaan dari posisi sebenarnya.halT R UEk^
Namun, pendekatan ini sederhana karena tidak menggunakan pengetahuan tentang bagaimana poin mungkin bergerak (juga tidak menggunakan 4 poin Anda dan pengetahuan apa pun yang Anda miliki tentang bagaimana mereka bergerak bersama).
Memodelkan Sinyal: Memulai Pendekatan yang Lebih Baik
Halaman ini menunjukkan cara mengatur masalah yang melibatkan posisi dan sudut euler. Ini melakukan sesuatu yang berbeda dari yang Anda butuhkan, tetapi negara bagiannya adalah:
dan pengukuran (output) adalah
Ini hanya "persamaan gerak" klasik. Lihat persamaan (3) di sini.
sumber
Filter low pass Anda mungkin seperti;
LPF dapat dideformasi menjadi berikut:
sumber