Saat ini saya membaca tentang robot penyeimbang diri yang menggunakan IMU (giroskop + akselerometer) untuk memperkirakan sudut kemiringan mereka saat ini.
Sebagian besar dokumen yang saya temukan mengatakan hal yang sama:
- Anda tidak bisa begitu saja mengambil garis singgung dari data accelerometer untuk menemukan arah gravitasi karena mereka dipengaruhi oleh "suara inersia".
- Anda tidak bisa hanya mengintegrasikan output giroskop dari waktu ke waktu karena melayang.
- Ada dua solusi yang diterima secara umum untuk menggabungkan data tersebut:
- Sebuah Filter Kalman memperkirakan kemiringan saat ini bersama dengan giroskop bias saat .
- Sebuah filter yang gratis menerapkan low-pass filter pada data accelerometer (mereka dapat dipercaya dalam jangka panjang), dan high-pass filter pada data giroskop (dapat dipercaya dalam jangka pendek).
Semua sumber yang saya temukan tampaknya menggunakan data mentah dari accelerometer di filter tersebut, mengabaikan fakta bahwa, dalam robot penyeimbang diri, kita dapat memiliki perkiraan yang sangat baik dari "suara inersia" yang disebutkan di atas.
Inilah saya
Mari kita memodelkan robot kita dengan pendulum terbalik dengan tumpuan yang bergerak dan menggunakan gambar yang buruk ini sebagai referensi.
Gaya inersia yang dirasakan oleh akselerometer di C dapat diturunkan dari (jika saya tidak melakukan kesalahan)
Berasumsi bahwa
- Robot kami berputar tanpa tergelincir
- Kita dapat mengukur x (baik dengan menggunakan motor stepper atau motor DC dengan encoders)
Maka kita dapat memiliki estimasi yang baik dari semua variabel tersebut:
- : Perbedaan yang terbatas atas ukuran saat ini dan sebelumnya
- : Pembacaan giroskop saat ini
- : Perkiraan sebelumnya dari plus integrasi dan lebih dari satu
- : Perbedaan terbatas hingga dan
Setelah kita memilikinya, kita dapat meniadakan efek gaya inersia dalam accelerometer, hanya menyisakan ukuran gravitasi yang jauh lebih baik.
Mungkin masih merupakan ide yang baik untuk menggunakan ini sebagai input dari filter Kalman seperti pada 1. di atas.
Mungkin kita bahkan bisa membangun filter Kalman yang bisa memperkirakan semua variabel itu sekaligus? Saya akan mencobanya.
Bagaimana menurut anda? Apakah saya melewatkan sesuatu di sini?
Saya pikir robot penyeimbang bisa menjadi tag yang bagus, tapi saya tidak bisa membuatnya