Adım 1: Robot Sürüşünüzü karakterize etmek¶
Not
FRC Karakterizasyon aracını kullanma hakkında ayrıntılı talimatlar için, bkz konu ile ilgili dokümantasyon.
Not
Sürücü karakterizasyon süreci, robotun hareket etmesi için geniş alan gerektirir. Karakterizasyon rutini sırasında robotun hareket edebileceği *en az * 10’ uzatmaya (ideal olarak 20’ ye yakın) sahip olduğunuzdan emin olun.
Not
Bu eğiticinin karakterizasyon verileri, 2019 North Carolina Eyalet Üniversitesi P2P Çalıştayında bu işlevselliğin gösteriminin bir parçası olarak onu oluşturan Team 5190 tarafından cömertçe sağlanmıştır.
Bir robotla bir yolu doğru bir şekilde takip etmeden önce, robotun kontrol girdilerine yanıt olarak nasıl hareket ettiğine dair doğru bir modele sahip olmak önemlidir. Böyle bir modelin belirlenmesi, “system identification-sistem tanımlama” adı verilen bir süreçtir. WPILib’in FRC-Karakterizasyonu, sürücü sistemi tanımlaması için bir araçtır.
Veri toplama¶
Sürücü karakterizasyon verilerimizi toplayarak başlıyoruz.
-
Örnek projemiz “simple” proje türünü kullanır. Diğer proje türleri (örneğin, Talon ve NEO) çok fazla fark olmadan kullanılabilir; ancak proje türünden bağımsız olarak gerekli robot parametrelerini doğru şekilde belirlediğinizden emin olun!
-
WPILib’in yörünge kitaplığı, metre birimlerinin mesafe için evrensel olarak kullanıldığını varsayar - buna göre, robotunuzun tekerlek çapının metre cinsinden belirtildiğinden emin olun!
Veriti analiz etmek¶
Karakterizasyon rutini çalıştırıldıktan ve veri dosyası kaydedildikten sonra, sıra analiz bölmesinde.
Teşhis Kontrolü¶
FRC-Karakterizasyon kılavuzu uyarınca, verilerimizin makul görünmesini sağlamak için önce tanılamayı inceliyoruz:
Verilerimiz makul derecede doğrusal göründüğünden ve eşik değerimiz doğru ayarlanmış gibi göründüğünden, bir sonraki adıma geçebiliriz.
İleri Bildirim Kazançlarını kaydetmek¶
Not
Feedforward-İlerbesleme kazançları genel olarak robotlar arasında transfer edilemez. Bu eğitimden elde edilen kazançları kendi robotunuz için kullanmayın.
Şimdi araç tarafından hesaplanan ileribesleme kazançlarını kaydediyoruz:
Tekerlek çapımız metre olarak belirtildiğinden, ileriye dönük kazançlarımız aşağıdaki birimlerdedir:
kS: Volts
kV: Volts * Seconds / Meters
kA: Volts * Seconds^2 / Meters
Birimlerinizi doğru bir şekilde belirlediyseniz, ileriye dönük kazanımlarınız muhtemelen burada bildirilenlerin büyüklüğü içinde olacaktır (
kA için olası bir istisna mevcuttur ve robotunuz hafifse kaybolacak kadar küçük olabilir). Değilse, robot projenizi oluştururken sürücü parametrelerinizden birini yanlış belirtmiş olabilirsiniz. Bunun için iyi bir test, 12 volt olan
kV nin “teorik” değerini, aktarma sisteminizin teorik serbest hızına (bu da motorun serbest hızının tekerlek çevresi ile çarpılmasının dişli redüksiyonuna bölünmesine karşılık gelir) hesaplamaktır. Bu değer, alet tarafından ölçülen
kV ile çok yakından uyuşmalıdır - eğer uymuyorsa, muhtemelen bir yerde bir hata yapmışsınızdır.
Geri besleme kazançlarını hesaplama¶
Not
Geribesleme kazanımları genel olarak robotlar arasında aktarılmaz. Bu eğitimde bahsedilen kazançları kendi robotunuz için kullanmayın .
Şimdi yolu takip etmek için kullanacağımız PID kontrolü için geri besleme kazanımlarını hesaplayacağız. WPILib’in RAMSETE denetleyicisi ile takip edilen yörünge, hız kapalı döngü kontrolünü kullanır, bu nedenle önce karakterizasyon aracında
Velocity modunu seçeriz:
Hız döngümüz için WPILib PIDController’ı kullanacağımızdan, ayrıca açılır “presets” menüsünden ``WPILib (2020-)``seçeneğini seçiyoruz. Doğru ön ayarı seçmezsek geri bildirim kazanımları doğru birimlerde olmayacağından bu çok önemlidir:
Son olarak, kontrol döngümüz için geri bildirim kazanımlarını hesaplıyor ve kaydediyoruz. Hız kontrolörü olduğundan, sadece bir P kazancı gereklidir:
Her şeyi doğru yaptığımızı varsayarsak, orantılı kazancımız Volt * Saniye / Metre cinsinden olacaktır. Bu nedenle, hesapladığımız kazancımız, her bir metre / saniye hız hatası için kontrolörün ek olarak 8,5 volt vereceği anlamına gelir.