Bir jiroskop kullanarak iki tekerlekli bir robotu dengelemek için hangi algoritmayı kullanmalıyım?


25

Bir jiroskoptan girdi alarak ve bunu iki bağımsız tekerleği bu kadar dengeli bir robotu dik bir şekilde dik tutmak için kullanmak için kullanabileceğim iyi, popüler ve güvenilir bir algoritma var mı? Bir robotu sürmek için kullanmama ve sabitken dik tutmamı sağlayacak bir algoritma arıyorum. Eğimli ve onu dürten insanlarla başa çıkma yeteneği de bir bonus olurdu, ama şart değil.


Bunun üzerinde de çalışacağım. Ham verilerinizi filtrelemek için bir kalman filtresi kullanmanız gerekir. Ve ayarlamak için bir PID algoritması kullanın.
Huzo

Yanıtlar:


16

En basit denetleyici doğrusal durum geribildirim denetleyicisidir. Kazanmanız gereken temelde 4 farklı durum var. Bunlar eğim açısı, eğim hızı, hız ve konumdur.


LQR (linear quadratic regulator), bu kazanımları tasarlamak için bir sistemdir (sisteminizin doğrusallaştırılmış bir durum-uzay temsilini aldıktan sonra). Durum alanı gösterimi yoksa (muhtemelen kullanmazsınız), hareket denklemlerini alabilir ve parametreleri ölçebilirsiniz. Durum alanı gösterimi yoksa, kazançları yalnızca manuel olarak ayarlamanız gerekir (LQR veya kutup yerleştirme gibi diğer yöntemler olmadan ).


Tuning manuel olarak kazanır:

Eğim açısının, konum / hızın ve tekerlek torklarının ileriye doğru yönlendiğini (pozitifse) varsayalım, eğim açınızdan ve eğim oranınızdan pozitif bir kazanç ve ayrıca konum ve hızda pozitif bir kazanç istiyorsunuz.

Eğim açısında ve eğim hızında bir kazanç ile başlayın. Bu başlangıçta dengelemek için alacak. Dengeli kaldığında, onlara bir kazanç ekleyerek pozisyonu ve hızı kontrol edebilirsiniz. Sabit değilse, eğim oranındaki kazancı artırın (bu da sistemi nemlendirmeye yardımcı olur).

Konum / hız kontrolü her iki durumu da sıfıra kontrol edecektir. Başka bir değeri kontrol etmek için, sadece kontrol cihazınıza beslemeden önce durumlarını hatalarıyla değiştirerek (örneğin mevcut hız - hız referansı) bir referans izleme kontrol cihazına ihtiyacınız vardır.

Yalpa kontrolü bağımsız olarak yapılabilir (ana denge / hız / konum kontrol cihazına eklenen tekerlek torklarındaki farklılıklar ile).


9

Bu sorunun en popüler çözümünün bir LQR kontrol cihazı olduğuna inanıyorum . Çözmeye çalıştığınız sorun ters sarkaç problemidir . Bu anahtar kelimeleri kullanarak Google’ın açık kaynaklı kodunu kullanabilmelisiniz. Bir sonraki problem, ilgili fizik niceliklerinin çoğunu uygulamanızla eşleştirmek olacaktır (ağırlık, motor torku vb.)


5

Kontrol mühendisliği / teorisi konusundaki becerilerinizi bilmediğim için, bir PID kontrolörü ile başlamanızı öneririm . Bu basit bir kontrolördür ve birçok kod uygulamasını bulacaksınız. PID'nin dezavantajı muhtemelen parametreleri elle ayarlamak için biraz zaman harcamanız gerekecek olmasıdır.

Birkaç yıl önce, kilometre sayacını temel alan iki tekerlekli bir Lego Mindstorm robotunu kontrol etmek için kullandım ve yeterince çalıştı. Hareket etmesini sağlamak için, ayar noktaları ile oynamanız gerekecektir.

Tabii ki, daha sonra yukarıda belirtilen LQR gibi daha gelişmiş kontrol yasalarını kullanarak kontrol cihazınızın kalitesini (stabilite, sağlamlık vb.) Artırabilirsiniz.

İyi şanslar!

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.