Saya memiliki accelerometer 3 sumbu dan giroskop 3 sumbu. Saya telah ditugaskan untuk mengembangkan sistem perhitungan mati menggunakan perangkat keras ini.
Pada dasarnya apa yang diperlukan bagi saya untuk mengembangkan beberapa kode untuk melacak posisi di ruang 3d papan secara real time. Jadi jika saya mulai dengan papan di atas meja dan mengangkatnya 1 m ke atas, saya seharusnya bisa melihat gerakan itu di layar. Rotasi perlu diperhitungkan juga, jadi jika saya membalikkan papan setengah jalan melalui gerakan yang sama, itu harus tetap menunjukkan hasil 1m ke atas yang sama. Hal yang sama juga berlaku untuk setiap pergerakan kompleks selama beberapa detik.
Mengabaikan matematika yang diperlukan untuk menghitung dan memutar vektor dll, apakah ini mungkin dengan perangkat yang begitu murah? Sejauh yang saya tahu, saya tidak akan bisa menghilangkan gravitasi dengan presisi 100%, yang berarti sudut saya relatif terhadap tanah akan mati, yang berarti rotasi vektor saya akan mati, yang mengarah ke pengukuran posisi yang salah.
Saya juga mengalami noise dari accelerometer dan gyro bias.
Bisakah ini dilakukan?
Jawaban:
Jawaban dan komentar yang Anda peroleh tentu saja luar biasa, tetapi saya dapat menambahkan sedikit warna.
Betapapun nilainya, sistem sensorineural kami menggunakan banyak alat yang sama, dan tidak selalu mendapatkan jawaban yang benar! Kami memiliki akselerometer 3D (organ otolith) dan "gyro" 3D (velocitomer sudut, kanal setengah lingkaran), namun kami menderita berbagai macam ilusi ketika sistem tidak dapat mendapatkan "jawaban" yang tepat, seperti ilusi elevator, dan ilusi oculogravic. Seringkali kegagalan ini terjadi selama percepatan linear frekuensi rendah, yang sulit dibedakan dari gravitasi. Ada saat ketika pilot akan menyelam ke laut selama lepas landas ketapel pada kapal induk karena persepsi kuat dari pitch yang dihasilkan dari percepatan frekuensi rendah yang terkait dengan peluncuran, sampai protokol pelatihan mengajarkan mereka untuk mengabaikan persepsi tersebut.
Memang, sensor fisiologis memiliki beberapa frekuensi cutoff dan lantai kebisingan yang berbeda dari sensor MEMS, tetapi kami juga memiliki jaring saraf besar yang dilemparkan ke masalah - meskipun sedikit dalam cara tekanan evolusi untuk menyelesaikan masalah dengan benar pada frekuensi rendah ekstrem ini, selama peluncuran ketapel cukup jarang ;-).
Bayangkan masalah "perhitungan mati" yang masuk akal ini yang telah dialami banyak orang, dan saya pikir Anda akan melihat bagaimana ini berlanjut ke dunia MEMS. Anda naik jet, lepas landas di Amerika Utara, mempercepat ke kecepatan jelajah, menyeberangi lautan, melambat dan mendarat di Eropa. Bahkan menghapus ambiguitas terjemahan miring dari masalah, dan dengan asumsi nol rotasi, akan ada sangat sedikit harapan implementasi nyata dari integrasi ganda dari profil percepatan menghasilkan profil posisi di mana saja hampir cukup akurat untuk memberitahu Anda bahwa Anda telah mencapai Eropa . Bahkan jika Anda memiliki paket gyro / accelerometer 6 sumbu yang sangat akurat duduk di pangkuan Anda selama perjalanan, itu akan memiliki masalah juga.
Jadi itu satu ekstrem. Ada banyak bukti yang menunjukkan bahwa untuk perilaku sehari-hari hewan menggunakan asumsi sederhana bahwa akselerasi frekuensi rendah yang terdeteksi kemungkinan disebabkan oleh reorientasi sehubungan dengan gravitasi. Kombinasi gyro dan akselerometer yang memiliki respons frekuensi yang lebih luas daripada telinga bagian dalam kita dapat menyelesaikan masalah dengan lebih baik, tentu saja, tetapi masih akan memiliki masalah secara ekstrem karena lantai kebisingan, ambang batas, dan semacamnya.
Jadi, untuk zaman singkat dengan percepatan non-sepele, perhitungan mati dengan instrumentasi yang tepat bukanlah masalah yang begitu buruk. Untuk jangka panjang, dengan akselerasi kecil, dan akselerasi frekuensi rendah, perhitungan mati adalah masalah besar. Untuk situasi apa pun, Anda perlu mencari tahu di mana pada spektrum itu terletak masalah khusus Anda, dan seberapa akurat kebutuhan perhitungan mati Anda untuk menentukan apakah yang terbaik yang dapat Anda lakukan cukup baik. Kami menyebutnya proses rekayasa.
sumber
Masalah utama dengan perhitungan mati yang saya temukan saat melakukan proyek desain senior yang serupa dengan Anda adalah bahwa accelerometer hanya mengukur akselerasi. Anda harus mengintegrasikan satu kali untuk mendapatkan kecepatan ditambah konstanta C. Kemudian Anda harus mengintegrasikan lagi untuk mendapatkan posisi + Cx + D. Itu berarti bahwa sekali Anda menghitung posisi dari data akselerometer, Anda berakhir dengan offset, tetapi Anda juga harus kesalahan yang tumbuh secara linear seiring waktu. Untuk sensor MEM yang saya gunakan, dalam 1 detik, itu menghitung sendiri setidaknya satu meter dari tempat sebenarnya. Agar hal ini bermanfaat, Anda biasanya harus menemukan cara untuk menghilangkan kesalahan sangat sering sehingga Anda menghindari penumpukan kesalahan. Beberapa proyek dapat melakukan ini, tetapi banyak yang tidak.
Accelerometer memang memberikan vektor gravitasi yang bagus yang tidak naik dalam kesalahan dari waktu ke waktu dan kompas elektronik memberikan orientasi tanpa akumulasi kesalahan, tetapi secara keseluruhan masalah perhitungan mati belum diselesaikan oleh berton-ton uang yang dihabiskan oleh angkatan laut untuk berton-ton sensor di kapal . Mereka lebih baik daripada apa yang dapat Anda lakukan, tetapi yang terakhir saya baca, mereka masih menemukan diri mereka pergi 1 km ketika bepergian 1000 km. Itu sebenarnya cukup baik untuk perhitungan mati, tetapi tanpa peralatan mereka, Anda tidak akan dapat mencapai sesuatu yang dekat dengan itu.
sumber
Anda juga akan memiliki bias dalam akselerometer dan kebisingan di gyro yang harus dihadapi juga.
Dan gravitasi seharusnya tidak menyebabkan kesalahan dalam pengukuran sudut; sebaliknya, vektor gravitasi menyediakan "referensi absolut" yang membantu Anda menghilangkan bias akumulasi sudut "pitch" dan "roll".
Ya, apa yang ingin Anda lakukan adalah mungkin, tetapi kinerja yang buruk dari perangkat MEMS berbiaya rendah berarti bahwa kesalahan akan menumpuk dengan cepat - baik perubahan bias dan "jalan acak" yang dihasilkan oleh kebisingan (baik dalam akselerometer dan laju gyro) akan menyebabkan hasil menyimpang dari kenyataan dalam hitungan detik atau menit.
Untuk memperbaikinya, Anda perlu memasukkan sensor tambahan ke dalam sistem Anda yang tidak mengalami kesalahan semacam ini. Seperti yang saya sebutkan di atas, menggunakan sudut vektor gravitasi adalah salah satu cara untuk memperbaiki beberapa kesalahan gyro, tetapi Anda harus waspada ketika Anda memiliki pengukuran gravitasi yang akurat (sistem tidak dipercepat) sebelum Anda dapat menggunakan Itu.
Cara lain untuk mengoreksi penyimpangan sudut adalah dengan menggabungkan magnetometer untuk mengukur medan magnet Bumi. Magnetometer memiliki kesalahan yang relatif besar, tetapi mereka tidak menderita penyimpangan jangka panjang.
Memperbaiki kesalahan posisi yang dibuat oleh komponen drift dari pembacaan accelerometer memerlukan referensi posisi absolut dari beberapa jenis. GPS umumnya digunakan (jika tersedia), tetapi Anda dapat menggunakan sensor lain juga, seperti barometer (untuk ketinggian), odometer (jika Anda memiliki roda di tanah), sensor jarak ultrasonik atau inframerah, atau bahkan sensor gambar.
Terlepas dari kombinasi sensor apa yang akhirnya Anda gunakan, semua data ini perlu "digabungkan" menjadi model perangkat lunak yang konsisten dari kondisi sistem, yang tidak hanya mencakup posisi dan sikap saat ini, tetapi juga perkiraan bias saat ini. , faktor skala dan tingkat kebisingan sensor itu sendiri. Pendekatan umum adalah dengan menggunakan filter Kalman, yang dapat ditampilkan untuk memberikan perkiraan "optimal" (yaitu, perkiraan terbaik yang tersedia) dari kondisi sistem untuk serangkaian pembacaan sensor.
sumber
Jawaban singkatnya adalah "tidak persis". Jawaban panjangnya adalah Anda dapat membuat pernyataan seperti "Mengingat pembacaan giroskop saya, saya 95% yakin bahwa perangkat telah diputar antara 28 derajat dan 32 derajat sejak pembacaan terakhir saya".
Persamaan diferensial "berisik" ini biasanya menggunakan nama "persamaan diferensial stokastik" di mana derau diasumsikan sebagai derau putih yang dihasilkan melalui jalan acak. Matematika dapat digeneralisasikan ke situasi lain di mana suara tidak berasal dari jalan acak. Dalam kasus tertentu, noise akan memiliki distribusi yang dapat ditentukan secara eksperimental, yang parameternya akan tergantung pada perangkat dan aplikasi spesifik Anda. Karena akumulasi kebisingan, apa pun yang Anda lakukan untuk mendapatkan perkiraan yang baik dalam rentang waktu yang relatif lama Anda akan selalu perlu melakukan kalibrasi secara berkala ke posisi yang diketahui. Contoh referensi tetap adalah pangkalan di rumah, bacaan kompas, dan gravitasi.
Jika Anda memutuskan untuk mengejar jalan ini, Anda harus memutuskan beberapa hal:
Apa itu tingkat kesalahan yang dapat diterima? Apakah Anda ingin menjadi 95% percaya diri itu dalam satu derajat setelah 2 detik atau Anda ingin menjadi 80% percaya diri bahwa itu dengan 5 derajat setelah 2 detik?
Ambil beberapa bacaan dari giroskop / akselerometer Anda. Ini dapat digunakan untuk menghitung distribusi empiris dari kebisingan yang memperkirakan kebisingan nyata. Gunakan ini untuk menyelesaikan persamaan diferensial berisik Anda dan menghitung interval kepercayaan Anda.
Dari penjelasan di atas, harus jelas bagaimana akurasi pembacaan (varian) dari lembar data memengaruhi solusi persamaan diferensial bising Anda. Juga akan jelas bagaimana pengaruhnya terhadap interval kepercayaan Anda.
Pilih perangkat dengan parameter yang dapat diterima sehingga Anda mendapatkan interval kepercayaan yang Anda inginkan di langkah pertama. Anda mungkin menemukan parameter akurasi perangkat yang Anda inginkan / butuhkan tidak cocok dengan apa yang tersedia dan / atau anggaran Anda. Di sisi lain, Anda mungkin akan terkejut dengan hasil yang Anda dapatkan untuk perangkat yang lebih murah.
sumber