Kesin Hesaplama için bir ivmeölçer seçme


11

Daha önce hiç bir ivmeölçer kullanmadım, ancak I2C, SPI ve analog çıkışlarla geldiklerinin farkındayım. Bir I2c veya SPI, aygıt kullanmayı seçersem iletişim süresi nedeniyle hatalar biriktirir miyim?

Bir analog sinyalin hızlı örneklemesinin, am I2C kullanmaktan daha doğru bir kesinti pozisyonu elde etmesi olası mı?

Bu doğru mu olacak

  1. Bir odada hareket eden bir robot
  2. Bir dış mekan arazisinde hareket eden ve eğimi kayacak ve yuvarlayacak bir robot.

Ayrıca, Gs duygum yok. Yumruğumda andro-sensor çalıştığında elimi hızla hareket ettirmeye çalıştım ve okumaların 20m / s 2'de doygun olduğunu gördüm . Başka bir şişman hareket eden bot tarafından vurulursa veya hızlı yürüyen bir insan tarafından çarpılırsa robotumdan ne G bekleyebilirim?

Yanıtlar:


5

Sensörün örnekleme frekansını artırmak, doğruluğunu veya hassasiyetini artırmaz. Bu, sensörün genellikle değiştiremeyeceğiniz bir özelliğidir. Yalnız ivmeleri entegre ederek konumunu tahmin çalışırsanız, kesinlikle olacak her sensör gürültülü olduğundan, zamanla hatayı birikir. Konum veya hızı belirlemek için ivmeölçerleri kullanmak istiyorsanız, bunları gerçekten konumu (daha düşük hassasiyetle bile) veya hızı ölçen başka bir sensörle birleştirmelisiniz. Ardından, nerede olduğunuzu ve ne kadar hızlı hareket ettiğinizi makul bir şekilde tahmin etmek için bu farklı sensör sinyallerini bir Kalman filtresiyle birleştirebilirsiniz .

G kuvvetleri göz önüne alındığında, 1 G'nin en azından iç mekan robotları için küçük hobi robotları bağlamında bana çok görünen 9.81 m / s ^ 2 olduğunu düşünün. Dış mekan, motorunuzun ne kadar güçlü olduğuna bağlı olarak farklı bir hikaye olabilir. 20m / s ^ 2 değerinde bir doygunluk yeterli olmalıdır.


4

Kontrol döngüsü hızınız açısından düşünün. Tipik bir hızlı kontrol döngü hızı 1kHz'dir. Bazı robotlar daha yüksek bir hız kullanır, bazıları daha yavaştır. Genellikle kontrol döngüsü hızınız olması gerekenden daha yüksektir.

Böylece her kontrol çerçevesi 1000us sürer. Bu kontrol çerçevesi içinde şunları yapmanız gerekir:

  • Sensörlerinizi örnekleyin
  • Kontrol hesaplamalarını yapma
  • Yeni çıkışları motorlara gönderin

Tüm bunları zaman dilimi içinde rahatça yapabildiğiniz sürece, sorun yaşamazsınız. Peki ivmeölçeri okumak ne kadar sürer? 400kbps I2C kullanan 3 eksenli bir cihazsa, verileri okumak yaklaşık 160us sürebilir. Bu, hesaplama yapmak ve motorları güncellemek için 840us bırakır. 8 bitlik bir PIC bile bunu başarabilir.


G kuvvetleri hakkında. Bir etki sırasında şaşırtıcı derecede yüksek olabilirler. Örneğin, bir sabit diski kırmanın ne kadar süreceğini düşünüyorsunuz? Muhtemelen o kadar da değil. Son zamanlarda 75G maksimum hızlanma için derecelendirildiğini söylediğim bir sabit disk. Öyleyse iki robotun çarpışarak en az birkaç G üretmesini bekleyin. Doğru tahmin etmek imkansız çünkü robotların mekanik tasarımına büyük ölçüde bağlı. İkisi de snooker topları gibi tamamen sağlamsa, çok yüksek ivmeler bekleyebilirsiniz. Eğer onlara bir tür esnek kabukları varsa, bu hızlanmayı büyük ölçüde azaltacaktır. Ancak soru şu ki, bir etki sırasında ivme gerçek değerini gerçekten bilmeniz gerekiyor mu?


1

Sorunuzdan, ivmeölçerlerden konumunuzu almaya çalıştığınızı düşünüyorum. Ne tür hatalara bir göz atındaha önce bekliyorsanız ve sonra tekrar düşünün. Konum tahmininde, büyük ölçüde yönelimdeki belirsizlik nedeniyle çok büyük hatalar vardır. Gemiler, uçaklar, roketler vb. Uygulamalarda çok pahalı yüksek hassasiyetli navigasyon sınıfı IMU'lar kullanılır. Sorunuzun kaybolduğu gecikme o kadar da sorun değil. Daha alakalı olan, diğer sensörleriniz arasındaki senkronizasyondur (örn. Gyros). İvmeölçerler genellikle konum tahmini için kullanılmaz (yardımcı olduğu bazı durumlar vardır, ancak sadece kısa süreler için), daha çok yön tahmininde jiroskop sapmasını telafi etmek için kullanılır. Bunları doğrudan yönünüzü tahmin etmek için de kullanabilirsiniz, ancak o zaman tahmininiz dinamik hızlanmalarla bozulur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.