Penghitungan mati dengan accelerometer & gyro. Bisa jadi?


11

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?


2
Hal ini dapat dilakukan hingga keakuratan yang diizinkan oleh sensor. Kesalahan posisi akan terakumulasi dari waktu ke waktu. Apakah akurasi cukup untuk proyek Anda tergantung.
Wouter van Ooijen

1
Matematika canggih adalah apa yang akan membuat proyek menjadi mungkin. Anda harus menggunakan angka empat, filter Kalman, dan skema ZUPT atau ZARU. Dari sana, ya, Anda dapat melacaknya secara akurat selama beberapa detik. Saya berbicara dari pengalaman langsung.
Samuel

Saya memiliki kutipan indah dari Lord Kelvin yang tergantung di dinding kantor saya selama beberapa dekade: "Kuarter datang dari Hamilton ... dan telah menjadi kejahatan yang tidak tercampur bagi mereka yang telah menyentuh mereka dengan cara apa pun. Vektor adalah kelangsungan hidup yang tidak berguna ... dan tidak pernah sedikit pun berguna bagi makhluk apa pun. "
Scott Seidman

@ScottSeidman Quaternions tidak terlalu buruk jika Anda memikirkan mereka dalam hal rotasi di sekitar vektor satuan. Maka Anda hanya perlu sedikit trigonometri untuk mengkonversi ke / dari bentuk angka empat.
JAB

@ JAB, jelas mereka (atau pendekatan lain) diperlukan karena rotasi tidak bolak-balik, menempatkan beberapa nuansa yang agak menarik pada matematika.
Scott Seidman

Jawaban:


11

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.


Terima kasih atas jawaban yang menerangi itu. Namun itu membuat saya bertanya-tanya beberapa hal: 1) apa yang Anda maksud dengan akselerasi frekuensi rendah? 2) Jika masalah berkurang dari posisi 3D ke perpindahan lateral (abaikan Z), apakah itu lebih mudah? dan 3) Bagaimana dengan pergerakan lambat di air laut, di mana efek gravitasi berkurang? Setiap petunjuk untuk membaca bahan pada perhitungan ini akan dihargai.
achennu

Sebenarnya, sistem navigasi intertial gaya lama akan akurat dalam beberapa mil setelah penerbangan panjang. Mereka pasti sangat akurat. (Mereka hidup dalam kotak yang cukup besar.) Teknologi ini dikembangkan pada 1950-an untuk memandu ICBM.
Tuntable

9

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.


Tentunya kesalahannya adalah kuadrat jarak / waktu? Kesalahan kecepatan akan linier, sehingga perpindahan kuadrat. Yang menarik, dan tidak dibahas, adalah seberapa bagus akselerator murah itu.
Tuntable

@Tuntable Semoga Anda memiliki accelerometer yang tidak terlalu buruk sehingga Anda memiliki offset akselerasi konstan yang signifikan . Jika Anda memiliki satu yang buruk, maka ya, Anda akan berakhir dengan kesalahan kuadrat dengan jarak / waktu.
horta

7

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.


4

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".

dθ(t)dt=r(t)
d2p(t)dt2=r(t)
r(t)t

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.


Masalahnya (atau satu masalah) terletak pada bahwa accelerometer sensitif terhadap lebih dari p (t). Ini juga sensitif terhadap perubahan theta di sekitar sumbu tertentu.
Scott Seidman

Saya setuju. Itulah sebabnya mengapa selalu terbaik untuk menggunakan vektor ketika melakukan analisis sistem multiparameter. Generalisasi dari proses stokastik bernilai vektor dari kasus variabel tunggal sepele dibandingkan dengan sisa masalah.
SomeEE
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.