Sürekli doğrusal ivmeler altında AHRS algoritması


9

Sürekli doğrusal hızlanmalar ve titreşimler (0.4g'den küçük, 10HZ'den düşük frekans) altında eğim, yuvarlanma ve sapma elde etmek için çeşitli algoritmalar denedim. Hiçbiri iyi sonuç vermiyor çünkü okumalar ya sürükleniyor ya da doğrusal ivmelerden çok etkileniyor. Elde etmek istediğim şey, dış ivmenin + -0.4g'den küçük olması, perde ve rulodaki hatanın + -1deg'den küçük olması gerektiğidir.

Bu algoritmaları denedim:

  1. Madgwick'in algoritması . Beta kazancı çok yüksek ayarlandığında yakınsama hızlıdır, ancak açılar doğrusal ivmelere daha duyarlıdır. Onu ayarladım ve doğrusal hızlanmalarda hatayı + -0.5 dereceye düşürdüm. Ancak, titreşim sürekli ise, okumalar kaymaya başlar ve gerçek değerlere yakınsaması sonsuza kadar sürer. Bu mantıklıdır çünkü lineer ivmeler altında jiroskop daha güvenilirdir ve jiroskop entegrasyonu sürüklendikçe hesaplanan açılar sürüklenir.

  2. Mahony'nin algoritması . Madgwick'in aksine, Ki ve Kp için hangi değerleri kullandığım önemli değil. Bununla birlikte, her zaman doğrusal ivmelerden etkilenir. (+6 derece'den büyük hatalar)

  3. Geleneksel Kalman filtresi . Bu devasa R ve Q vektörlerini ayarlamak için çok zaman harcandı. Şimdiye kadar Mahony's ile aynı performansa sahip.

Jilet IMU kullanıyorum . Ben ucuz sensörler ile bu aynı sonucu elde etmek imkansız olduğunu biliyorum bu bir .

UKF gibi birkaç seçenek daha var, ancak bunu anlamak veya uygulamak acı verici.

Herhangi bir öneri bekliyoruz.


Kalman için nasıl entegre oluyorsunuz?
C. Towne Springer

DCM'lerden kaçınmak için Euler entegrasyonunu kullanmak, ancak dönüşler kesinlikle bir eksendir. @ C.TowneSpringer
Timtianyang

Bunun iyi çalışması mı gerekiyor? Bunu en son yaptığımda (ALCM) Euler uygun değildi. Euler, adım boyutunun karesiyle orantılı yerel hata ve adım boyutuyla orantılı brüt hataya sahip birinci dereceden bir yöntemdir. Kalman filtreli 4. sıra Runge-Kutta kullandık. Bence Newton-Feynman veya Euler, Runge-Kutta'yı başlatmak için ilk tahminde bulunacaklar. Bunu iyi bir güncelleme oranında ele almak için işleme sahip misiniz?
C. Towne Springer

Öneri için teşekkürler. Euler entegrasyon yönteminin yerel hatası göz ardı edildi. Filtrelemeyi postayla yapmayı planlıyoruz, bu nedenle hesaplama karmaşıklığı üzerinde büyük bir kısıtlamamız yok. @ C.TowneSpringer
Timtianyang

Yanıtlar:


3

İlk olarak, burada iki önemli noktayı anladığınızdan emin olun:

  1. Yalnızca IMU verilerinden tutum belirleme, doğrusal hızlanma varlığında doğası gereği belirsizdir . Hızlanmaların doğası hakkında ek bilgi olmadan, elde edebileceğiniz doğruluğun her zaman bir üst sınırı olacaktır.

  2. Doğruluk, entegre jiroskop ölçümlerindeki sapma ile sınırlıdır . Mükemmel jiroskop verisi ve entegrasyonu ile ivmeölçer verilerine hiç ihtiyaç duyulmaz. Mükemmelliğe ne kadar yakınlaşırsanız ivmeleri görmezden gelebilirsiniz.

Oryantasyon algoritmasının seçimi burada büyük ölçüde önemsizdir. Hepsi aynı prensipte çalışır: entegre jiroskop verilerini düzeltmek için yerçekimi ivmesinin yönünü kullanarak ikisi arasında değişken miktarda ağırlık. Parametreleri ayarlamayı denediyseniz ve istediğiniz sonuçları elde edemediyseniz, farklı bir algoritma ile daha iyisini yapmanız olası değildir.

Yani, yapabileceğiniz iki şey var.

  1. Cayro entegrasyonunuzun doğruluğunu artırın.
  2. Doğrusal ivmelerin doğasını bir şekilde modelleyin.

İkinci seçeneği tartışmak zordur çünkü çalıştığınız hareketin ayrıntılarına bağlıdır. Belirli bir aralığın dışında ivmeleri atmak veya ağırlıklarını azaltmak gibi basit hileler vardır. Esasen bunlar, doğrusal ivmeleri sadece kısa oluşumlar olarak modellemeye gelir. Sisteminiz sürekli hareket halinde ise pek yardımcı olmazlar.

Bununla birlikte, jiroskop entegrasyonunuzu iyileştirmek için yapabileceğiniz birkaç şey vardır:

  1. Cayro sapmasının mümkün olan en iyi tahminini alın . Kullanmadan hemen önce birkaç saniye boyunca statik jiroskop okumaları alın ve ofset değerlerinizi almak için bunları ortalayın. Bir kerelik bir önceki kalibrasyona güvenmeyin.
  2. Sıcaklık nedeniyle kaymayı en aza indirmeye çalışın. Kalibrasyon / kullanımdan önce IMU'nun sabit çalışma sıcaklığına kadar ısınmasını bekleyin. Çalışma sırasında sabit bir sıcaklıkta tutmaya çalışın.
  3. Kalibrasyon modelinizi geliştirin. Sadece eksen ve dengelemenin yanı sıra çapraz eksen efektleri ve doğrusal olmama özelliklerini de göz önünde bulundurun.
  4. Daha iyi bir entegrasyon yöntemi kullanın. Sorunuzla ilgili yorumlarda zaten bazı fikirler var.
  5. Gyro sürüklenmesini takip edip edemeyeceğinize bakın. Yönlendirme algoritması sapmayı belirli bir yönde tutarlı bir şekilde düzeltmek zorundaysa, bu tespit edilebilir ve sapma değerlerini yavaşça ayarlamak için kullanılabilir.

Kullandığınız sensörlerin mevcut en yüksek dereceye sahip olmadığı konusunda haklısınız. Bununla birlikte, yeterince iyi karakterize edilmiş ve kalibre edilmişse tüketici sensörlerinden çok iyi sonuçlar almak mümkündür.


Tavsiye edilen tüketici sensörleri var mı?
Timtianyang
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.