Saya mencoba untuk melacak bagian tubuh relatif terhadap tubuh seseorang. Saya melihat beberapa pertanyaan tentang menggunakan accelerometer MEMS dan gyro untuk perhitungan mati, dan mereka mengkonfirmasi kecurigaan saya bahwa berbagai faktor sangat membatasi kegunaannya untuk aplikasi semacam ini, tapi saya mencari klarifikasi batas-batas ini:
Apa sebenarnya batasan-batasan ini?
Jawaban lain telah membahas mengapa batasan ini ada. Tentu saja spesifikasi bagian-bagian dalam sistem tersebut dan apa yang dianggap sebagai "kesalahan yang dapat diterima" untuk sistem akan mengubah batas yang tepat, tetapi apakah ada urutan tunggal dalam waktu, atau jarak yang dapat saya perkirakan dapat dihitung? Saya sangat menyadari bahwa jarak yang jauh (beberapa yard atau lebih) kesalahannya menjadi terlalu besar untuk tujuan praktis, tetapi bagaimana dengan beberapa kaki?
Apa yang dapat saya lakukan untuk meningkatkan batasan ini?
Saat ini saya sedang melihat menggunakan accelerometer dan gyro. Sensor apa lagi yang bisa saya tambahkan ke sistem untuk meningkatkan tingkat kesalahan? Saya tahu jarak yang lebih jauh, sebuah GPS dapat digunakan, tetapi saya ragu setiap GPS kelas elektronik konsumen memiliki resolusi yang cukup baik untuk membantu dalam kasus saya.
Selain itu, konsensus umum tampaknya satu-satunya cara untuk meningkatkan batas ini melewati titik sensor yang ditingkatkan adalah untuk memberikan referensi yang tidak mengalami kesalahan. Beberapa sistem mengatasi ini menggunakan kamera dan spidol. Jenis referensi apa yang dapat diberikan oleh perangkat portabel / dapat dipakai?
Saya telah melihat penggunaan gelombang radio untuk mengukur jarak jauh secara akurat, tetapi saya tidak tahu apakah sistem seperti itu bisa akurat dalam skala kecil (dalam hal jarak diukur) menggunakan komponen "off-the-shelf".
Jawaban:
Sumber kesalahan termasuk nol-offset (bias) dan kesalahan skala (yang cenderung bervariasi lambat) dan kebisingan. Harga sensor MEMS bervariasi dari kurang dari $ 10 hingga lebih dari $ 1000, dan besarnya persyaratan kesalahan mencakup rentang yang luas, tergantung pada kualitas sensor.
Masalah besar adalah bahwa integrasi biasanya diperlukan untuk mendapatkan dari nilai sensor (akselerasi, kecepatan sudut) ke nilai yang diinginkan (posisi, sudut). Semua sumber kesalahan diperparah - tumbuh seiring waktu - saat terintegrasi. Nilai data untuk perhitungan mati meluruh dengan waktu, dengan sensor murah memberi Anda paling banyak beberapa menit data yang berguna dan sensor high-end yang baik untuk mungkin beberapa jam.
Seperti yang telah Anda temukan, cara terbaik untuk menghilangkan kesalahan terintegrasi yang berkembang adalah menggabungkan data sensor dengan sumber data independen lainnya yang tidak memiliki jenis kesalahan yang sama. Misalnya, GPS dapat memberi Anda nilai posisi absolut yang tidak melayang dalam jangka panjang, tetapi memiliki komponen "noise" yang relatif besar. Anda dapat menggunakan data ini untuk memperkirakan bias dan skala kesalahan accelerometer Anda, yang memungkinkan Anda untuk memperbaikinya secara real time. Ini juga memungkinkan Anda untuk membatalkan "jalan acak" yang dibuat oleh noise sensor. Filter Kalman adalah salah satu metode umum yang digunakan untuk memodelkan sistem (termasuk istilah kesalahan sensor) dan menggabungkan data bersama-sama untuk menghasilkan perkiraan kondisi sistem yang optimal di setiap titik waktu.
Contoh lain adalah dengan menggunakan "vektor gravitasi", yang diukur dengan akselerometer, untuk membatalkan penyimpangan sudut gyro. Kuncinya di sini adalah mengetahui secara pasti kapan Anda memiliki vektor gravitasi yang valid; yaitu, sistem tidak mempercepat ke segala arah. Berbagai heuristik (misalnya, "tanpa pembaruan") digunakan untuk mencapai hal ini. Magnetometer juga dapat digunakan untuk mengukur kesalahan lang, bahkan jika Anda tidak tahu arah absolut medan magnet - selama Anda dapat menganggapnya konstan.
Optical sensing adalah cara lain untuk mendapatkan kecepatan, sudut, atau perkiraan posisi bebas drift, tetapi pemrosesan gambar yang diperlukan dapat membutuhkan banyak siklus CPU (atau FPGA), dan pengembangan sistem seperti itu cukup rumit.
sumber
Anda bertanya apa lagi yang bisa ditambahkan. Magnetometer 3 sumbu harus bermanfaat. Medan magnet bumi cenderung bergerak secara substansial lebih lambat daripada rata-rata pengguna (untungnya).
Lihatlah MPU6000 / 6050 yang luar biasa
Satu versi menyediakan antarmuka SPI & IIC, yang lainnya hanya IIC.
Ini berisi giroskop 3 sumbu + akselerometer 3 sumbu plus input untuk memungkinkannya mengintegrasikan sinyal dari dan magnetometer 3 sumbu eksternal.
IC berisi 'prosesor gerak digital' yang mengintegrasikan sinyal dari sensor 3 x 3. Saya belum memahami fungsionalitas yang diberikan, tetapi tujuannya adalah untuk memproses 3 sumber sinyal terpisah menjadi sistem analisis gerak yang bermanfaat.
Lembar data di sini
Biaya IC sekitar $ 10/1 dari Digikey dan papan evaluasi sekitar $ 50 + dari produsen. Atau Anda dapat membeli papan lengkap dari Cina - mereka menjual di sini sekitar $ 6 US retail dalam 1's - IC dan PCB dirakit.
Saya masih belum mengetahui bagaimana itu terjadi atau apakah itu nyata atau .... Saya menerima satu kemarin tetapi tidak akan bisa bermain dengannya sebentar. ('Whiles' sangat bervariasi dalam besarnya, dari sangat kecil hingga terkadang melebihi besar, sayangnya). Ada sejumlah artikel di web tentang cara menggunakannya dengan misalnya Arduinos.
Seberapa akurat ?:
Mungkin ada banyak diskusi tentang ini di web.
Jika saya membaca lembar data dengan benar (dan itu bukan tipe perangkat yang saya kenal)
Tabel 6.1 di halaman 12 menunjukkan bahwa Giroskop memiliki pergeseran +/- 20 derajat / detik maks pada 25 C dan lebih banyak lagi - Kisaran suhu 40 hingga + 85C. Dengan asumsi tingkat aktual 20 derajat / detik itu satu putaran penuh dalam 18 detik. Namun, baik magnetometer dan akselerometer menyediakan akses ke vektor referensi eksternal (gravitasi dan medan magnet bumi) dan sinyal dari ini dapat digunakan untuk memperoleh laju drift gyro jangka pendek dan jangka panjang serta memberikan kompensasi. Ini mungkin menjadi bagian dari apa yang "prosesor gerak" mereka lakukan.
Kesalahan akselerometer tampaknya biasanya di bawah +/- 5%.
Saya perkirakan (dan mungkin sangat salah), bahwa menggunakan accelerometer dan magnetometer untuk memotong kesalahan penyimpangan gyro ke dasarnya nol jangka panjang akan memungkinkan Anda untuk menggunakan sinyal gyro untuk navigasi dari detik ke menit. GPS juga menyediakan sinyal kecepatan dan kombinasi posisi + kecepatan dokter dengan unit 9DOF terdengar sangat berguna.
Wooly: Suara di atas terdengar lebih tebal dari yang saya inginkan. Saya berharap untuk mengetahui lebih banyak tentang ini dalam beberapa minggu ke depan. Saya akan tertarik untuk mendengar apa yang Anda temukan dan jika saya mempelajari hal-hal yang bermanfaat akan mencoba dan melaporkan kembali.
.
Tergantung pada aplikasi Anda, Anda mungkin dapat menyetor GPS referensi dan penerima sementara di lokasi yang nyaman. Ini bisa sangat kompak - GPS + baterai + TX. Setelah disimpan itu tahu di mana itu dan dapat mengirimkan koreksi berdasarkan di mana sistem mengatakan itu. Penggunaan konstelasi satelit yang sama adalah 'mungkin ide yang bagus'. Jika pengguna dan GPS referensi berada pada titik yang sama ketika disimpan jauh lebih baik tetapi sistem ini cenderung berfungsi bahkan jika mereka selalu terpisah secara spasial.
Tidak tahu apa kasus Anda membuatnya sulit untuk dikatakan. Tetapi sampel relatif untuk sampel resolusi GPS biasanya jauh lebih unggul dari apa yang dicapai selama beberapa menit atau jam. Saya telah melakukan tes di mana saya melewati rute perkotaan dan merencanakan koordinat GPS dan kemudian mengulangi latihan beberapa jam kemudian. Kedua jalur dalam beberapa kasus terpisah beberapa meter tetapi ketika mengatakan mengemudi dalam garis lurus di sepanjang jalan perkotaan plot adalah garis lurus dengan "kebisingan" di kedua sisi garis lurus mungkin kurang dari satu meter. (Itu beberapa tahun yang lalu - mudah untuk mencobanya sendiri. Saya baru saja merekam data dari keluaran GPS serial RS232 (biasanya 4800 baud) dan dalam hal ini diplotkan di Excel sebagai grafik XY.
Diferensial GPS dapat digunakan di mana penerima stasioner lokal lokasi tetap menyediakan koreksi kesalahan berdasarkan di mana ia tahu itu dan di mana sistem sekarang mengatakan itu. Ada banyak penyedia sistem seperti itu tetapi konsepnya sederhana dan cukup mudah untuk diterapkan jika dengan anggaran yang ketat.
sumber
Sesuatu yang belum tercakup dalam jawaban ini adalah aplikasi spesifik Anda, yang sebenarnya telah ditangani setidaknya selusin kali sebelumnya oleh orang-orang yang sangat pintar. Dua kata kunci di sini adalah kinematika terbalik dan filter Kalman.
Sekarang harus jelas apa sumber kesalahan untuk aplikasi Anda, dan bagaimana cara memperbaikinya. Tetapi ketika berhadapan dengan sensor yang pada dasarnya ditetapkan untuk manusia, Anda dapat mengurangi rentang posisi spasial dan sudut sensor Anda dengan menerapkan kinematika terbalik pada persamaan. Ini pada dasarnya berarti Anda melacak posisi relatif dari sebanyak mungkin persendian pada tubuh dan menerapkan model kinematik tubuh manusia padanya. Misalnya, panjang lengan orang tidak bervariasi dari waktu ke waktu, rentang gerak mereka juga tidak banyak berubah. Tulang tidak bengkok (dalam keadaan normal). Semua ini dapat digunakan untuk membatasi posisi sensor Anda.
Solusi lain adalah menggunakan sebanyak mungkin sensor ortogonal. Orthogonal dalam arti: menggunakan prinsip-prinsip pengukuran yang berbeda secara fundamental. Menggunakan input sensor sebanyak mungkin, Anda dapat menggunakan apa yang disebut filter Kalman untuk bekerja setepat mungkin mengingat data di mana sensor Anda berada. Filter Kalman bukanlah entitas ajaib yang mengeluarkan jawaban terbaik. Mereka adalah model matematika yang perlu disetel dan dimodifikasi untuk aplikasi spesifik Anda, dan itu bisa cukup merepotkan untuk membuatnya bekerja dengan baik. Tapi itu memungkinkan Anda, dalam bentuk bundaran, untuk menggabungkan data sensor yang sangat sulit dikorelasikan. Input untuk jenis filter ini bisa apa saja: sensor posisi, akselerasi dan kecepatan, tetapi juga misalnya sensor cahaya yang dapat menambahkan informasi dengan menanggapi sumber cahaya yang terlihat pada sudut tertentu.
Beberapa 'powergloves' dengan prinsip kerja ini (kinematika + filter kalman) telah ditunjukkan oleh perusahaan dan universitas. Yang paling baru yang saya lihat di TU Eindhoven menggunakan MPU6050s pada substrat fleksibel yang ditenun menjadi sarung tangan serta beberapa sensor pendukung (saya pikir saat ini hanya webcam) semua dimasukkan ke dalam filter Kalman bertenaga Matlab yang besar. Ia bekerja dalam pengulangan 1mm.
sumber
Masalah mendasar
Ini dapat diatasi dengan mempelajari dinamika kesalahan jangka pendek dari sistem navigasi inersia. Ini dibahas secara rinci dalam banyak teks , tetapi inilah versi singkat "persamaan bebas".
Navigasi inersia berfungsi sebagai berikut:
Ketahui posisi awal, kecepatan, dan sikap awal Anda (mis. Pitch pitch dan yaw).
Gunakan sikap baru Anda yang baru saja Anda hitung untuk memutar pembacaan accelerometer secara matematis agar sejajar dengan bumi.
Kurangi gravitasi dari pembacaan accelerometer baru Anda.
Ulangi langkah 2-6 selama yang diinginkan.
Lebih jauh lagi, bias itu akan terakumulasi menjadi sikap, yang akan menyebabkan accelerometer salah level, yang akan menyebabkan akselerasi diratakan ke arah yang salah, yang kemudian akan diintegrasikan ke arah yang salah - tiga tingkatan kesalahan.
Ini berarti bahwa kesalahan gyro menyebabkan kesalahan posisi tumbuh dengan kubus waktu .
Dengan logika accelerometer yang sama menyebabkan kesalahan posisi tumbuh dengan kuadrat waktu .
Karena itu, Anda akan mendapatkan hanya beberapa detik navigasi inersia (murni) yang berguna dari sensor MEMS tingkat ponsel.
Bahkan jika Anda memiliki sensor inersia yang sangat bagus - katakanlah, tingkat pesawat terbang - maka Anda masih terbatas secara mendasar untuk sedikit di bawah sepuluh menit navigasi inersia (murni). Alasannya adalah Langkah 3 - gravitasi berubah seiring ketinggian. Dapatkan tinggi badan Anda salah dan gravitasi Anda akan salah, yang menyebabkan tinggi badan Anda salah, yang menyebabkan gravitasi Anda lebih salah dan seterusnya - pertumbuhan kesalahan eksponensial. Dengan demikian, bahkan sistem navigasi inersia "murni" seperti yang ditemukan di jet militer biasanya akan memiliki sesuatu seperti altimeter barometrik. Sumber .
Solusi
Ada penelitian dan produk komersial yang dapat melakukan ini.
Secara konseptual, ini berfungsi seperti penglihatan stereo - Anda memiliki garis dasar yang diketahui antara kamera, dan sudut yang berbeda untuk setiap penanda seperti yang dilihat dari setiap kamera. Dari ini, posisi 3D dari setiap tanda dapat dihitung (relatif terhadap kamera). Itu bisa bekerja lebih baik dengan lebih banyak kamera.
Menggunakan perangkat keras murah, decawave UWB mungkin berguna (berkisar 10cm atau lebih). Anda harus membuat algoritme sendiri melalui.
Di sebelah tubuh, sistem GPS akan berjuang. Mendapatkan cm-level GPS bergantung pada pelacakan fase terus menerus dari (sangat, sangat lemah) sinyal GPS, yang sangat sulit jika antena berada di sebelah tubuh, dan tubuh bergerak! Untuk sistem L1 saja - terlepas dari mana mereka murah atau mahal - pelacakan harus untuk waktu yang sangat lama (10 menit +) dan dengan demikian tidak praktis untuk masalah ini. Penerima frekuensi ganda mungkin bekerja kadang-kadang , tetapi ini benar - benar tidak murah (ribuan dolar).
sumber