Memilih accelerometer untuk Dedicated Reckoning

11

Saya belum pernah menggunakan accelerometer sebelumnya, tapi saya sadar mereka datang dengan I2C, SPI dan output analog. Jika saya memilih untuk menggunakan I2c atau SPI, perangkat, apakah saya akan mengakumulasi kesalahan karena waktu komunikasi?

Apakah pengambilan sampel cepat dari sinyal analog cenderung memberi saya posisi deduksi yang lebih akurat daripada menggunakan I2C?

Apakah ini akan berlaku untuk

  1. Robot bergerak di sebuah ruangan
  2. Robot bergerak di medan luar dan cenderung tergelincir dan jatuh ke bawah.

Juga, saya tidak punya perasaan Gs. Saya mencoba menggerakkan tangan saya dengan cepat dengan ponsel saya menjalankan andro-sensor di tangan saya dan melihat bahwa pembacaan jenuh pada 20m / s 2 . Apa yang bisa saya harapkan robot saya alami jika dihantam oleh bot bergerak lemak lain atau ditabrak oleh manusia yang berjalan cepat?

Tuan Loh.
sumber

Jawaban:

5

Meningkatkan frekuensi sampling sensor tidak meningkatkan akurasi atau presisi. Itu adalah fitur sensor yang biasanya tidak bisa Anda ubah. Jika Anda mencoba memperkirakan posisi Anda dengan mengintegrasikan percepatan saja, Anda pasti akan mengumpulkan kesalahan seiring waktu, karena setiap sensor berisik. Jika Anda ingin menggunakan accelerometer untuk menentukan posisi atau kecepatan, Anda harus menggabungkannya dengan beberapa sensor lain yang sebenarnya mengukur posisi (bahkan dengan presisi lebih rendah) atau kecepatan. Kemudian, Anda dapat menggabungkan sinyal sensor yang berbeda ini dengan filter Kalman untuk mendapatkan perkiraan yang masuk akal tentang di mana Anda berada dan seberapa cepat Anda bergerak.

Mempertimbangkan kekuatan G, pertimbangkan bahwa 1 G adalah 9,81 m / s ^ 2, yang tampaknya banyak bagi saya, dalam konteks robot hobi kecil, setidaknya untuk robot dalam ruangan. Outdoor bisa menjadi cerita yang berbeda, tergantung pada seberapa kuat mesin Anda. Suatu saturasi pada 20m / s ^ 2 seharusnya cukup.

Daniel Eberts
sumber
4

Pikirkan dalam hal kecepatan loop kontrol Anda. Kecepatan loop kontrol cepat tipikal adalah 1kHz. Beberapa robot menggunakan tingkat yang lebih cepat, beberapa lebih lambat. Biasanya kecepatan loop kontrol Anda lebih tinggi dari yang sebenarnya Anda butuhkan.

Jadi setiap frame kontrol berlangsung untuk 1000us. Dalam kerangka kontrol ini Anda perlu:

  • Cicipi sensor Anda
  • Lakukan perhitungan kontrol
  • Kirim output baru ke motor

Selama Anda bisa melakukan semua ini dengan nyaman dalam kerangka waktu, Anda tidak punya masalah. Jadi berapa lama untuk membaca accelerometer? Jika ini adalah perangkat 3-sumbu, menggunakan 400kbps I2C, maka mungkin diperlukan sekitar 160us untuk membaca data. Itu membuat Anda 840us untuk melakukan perhitungan dan memperbarui motor. Bahkan PIC 8-bit dapat mengaturnya.


Tentang kekuatan G. Selama dampak, mereka bisa sangat tinggi. Misalnya, berapa banyak pukulan yang Anda pikir diperlukan untuk memecah hard drive? Mungkin tidak sebanyak itu. Yah hard drive saya baru-baru ini mengatakan itu dinilai untuk akselerasi maksimum 75G. Jadi, perkirakan dua robot bertabrakan untuk menghasilkan setidaknya beberapa G. Tidak mungkin untuk memperkirakan secara akurat karena sangat tergantung pada desain mekanik robot. Jika keduanya benar-benar solid seperti bola snooker, maka Anda dapat mengharapkan akselerasi yang sangat tinggi. Jika mereka memiliki semacam shell fleksibel untuk mereka, maka ini akan mengurangi akselerasi yang besar. Tetapi, pertanyaannya adalah, apakah Anda benar-benar perlu mengetahui nilai aktual dari akselerasi selama dampak?

Roket
sumber
1

Dari pertanyaan Anda, saya kira Anda mencoba untuk mendapatkan posisi Anda dari accelerometer. Lihat kesalahan macam apaAnda mengharapkan sebelumnya, dan kemudian mungkin mempertimbangkan kembali. Estimasi posisi memiliki kesalahan yang sangat besar, terutama karena ketidakpastian dalam orientasi. Aplikasi di kapal, pesawat, roket dll menggunakan IMU kelas navigasi presisi tinggi yang sangat mahal. Latensi, yang menjadi pertanyaan Anda tidak terlalu menjadi masalah. Yang lebih relevan adalah sinkronisasi antara sensor Anda yang lain (mis. Gyros). Accelerometer biasanya tidak digunakan untuk estimasi posisi (ada beberapa kasus di mana itu membantu, tetapi hanya untuk periode pendek), melainkan untuk mengkompensasi pergeseran gyro dalam estimasi orientasi. Anda juga dapat menggunakannya secara langsung untuk memperkirakan orientasi Anda, tetapi kemudian perkiraan Anda terganggu oleh percepatan dinamis.

Jakob
sumber