Robot Karakterizasyonuna Giriş

The characterization tools consist of a python application that runs on the user’s PC and matching robot code that runs on the user’s robot. The PC application will send control signals to the robot over NetworkTables, while the robot sends data back to the application. The application then processes the data and determines characterization parameters for the user’s robot mechanism, as well as producing diagnostic plots. Data can be saved (in JSON format) for future use, if desired.

“Karakterizasyon” nedir?

“Karakterizasyon” - veya daha resmi olarak, “sistem tanımlama <https://en.wikipedia.org/wiki/System_identification>`__ - bir sistemin davranışına ilişkin matematiksel bir modeli, girdilerinin ve çıktılarının istatistiksel analizi yoluyla belirleme sürecidir.

FRC’de, karakterize etmekle ilgilendiğimiz en yaygın sistem, “Sabit mıknatıslı DC motor <https://en.wikipedia.org/wiki/Brushed_DC_electric_motor#Permanent-magnet_motors>`__. Özellikle, istenen * çıkışlarımızı * (yani motorun hızı ve ivmesini) elde etmek için hangi motor * input-giriş* inin (yani motor kontrolöründen gelen voltajın) gerekli olduğunu bulmakla ilgileniyoruz.

Neyse ki bunu yapmak o kadar da zor değil. Sabit mıknatıslı bir DC motor (sürtünme ve atalet dışında yüksüz) aşağıdaki “voltaj-denge denklemine” uyacaktır (daha fazla bilgi için, bu kağıt <https://www.chiefdelphi.com/uploads/default/original/3X/f/7/f79d24101e6f1487e76099774e4ba60683e86cda.pdf> `__ ‘e bakın):

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

burada: math:V uygulanan voltajdır, : math:d motorun yer değiştirmesidir (konumudur),: math:dot {d} hızıdır ve: math:ddot { d} ivmesidir (” aşırı nokta “gösterimi geleneksel olarak zamana göre türev ‘i belirtir).

Sezgisel olarak, yukarıdaki denklemdeki katsayıları aşağıdaki gibi yorumlayabiliriz:

kS, motorun statik sürtünmesinin üstesinden gelmek veya başka bir deyişle onu zar zor hareket ettirmek için gereken voltajdır; Bu statik sürtünmenin (çünkü statik olduğu için) hız veya ivmeden bağımsız olarak aynı etkiye sahip olduğu ortaya çıktı. Yani, hangi hızda giderseniz gidin veya ne kadar hızlanırsanız hızlanın, motora uyguladığınız voltajın sabit bir kısmı (belirli mekanizma montajına bağlı olarak), motorunuzdaki statik sürtünmenin üstesinden gelmeye doğru gidecektir. dişliler, yataklar vb; bu değer sizin kS’ nizdir. Signum function varlığına dikkat edin, çünkü sürtünme kuvveti her zaman hareket yönüne karşı gelir.

kV describes how much voltage is needed to hold (or “cruise”) at a given constant velocity while overcoming the electromagnetic resistance in the motor and any additional friction that increases with speed (known as viscous drag). The relationship between speed and voltage (at constant acceleration) is almost entirely linear (with FRC® components, anyway) because of how permanent-magnet DC motors work.

`` kA`` , motor şaftında belirli bir ivmeyi indüklemek için gereken voltajı tanımlar. `` KV`` ile olduğu gibi, gerilim ve ivme arasındaki ilişki (sabit hızda) FRC bileşenleri için neredeyse mükemmel doğrusaldır.

Bu katsayılar belirlendikten sonra (burada bir çoklu doğrusal regresyon ile gerçekleştirilir), daha sonra motor için belirli bir hız ve ivmeyi alabilir ve buna ulaşmak için uygulanması gereken voltajı hesaplayabiliriz. Bu çok kullanışlıdır - örneğin hareket profillerini takip etmek için değil, aynı zamanda açık döngü kontrolünde mekanizmaları daha kontrol edilebilir hale getirmek için de çok kullanışlıdır, çünkü joystick girişleriniz gerçek mekanizma hareketiyle daha yakından eşleşecektir.

Bu araç takımındaki araçlardan bazıları, yukarıda açıklanan basit durumdan bilinen farklılıkları hesaba katmak için yukarıdaki denkleme ek terimler sunar - her bir aracın ayrıntıları aşağıda bulunabilir:

Dahil Edilen Karakterizasyon Araçları

Not

Diğer birçok mekanizma türü, bu kitaplıktaki mevcut kodun basitçe uyarlanmasıyla karakterize edilebilir.

Robot karakterizasyon araç takımı şu anda aşağıdakiler için karakterizasyonu desteklemektedir:

  • Basit Motor Kurulumları

  • Aktarma organları

  • Kollar

  • Kaldırıcılar

Basit Motor Karakterizasyonu

Basit motor karakterizasyon aracı, denklem için en uygun parametreleri belirler:

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

burada: \(V\) uygulanan voltajdır,: \(d\) sürücünün yer değiştirmesidir (konumudur), \(\dot{d}\) hızı ve \(\ddot{d}\) ivmesidir. Bu, yukarıda belirtildiği gibi, sürtünme ve atalet dışında hiçbir yükü olmayan sabit mıknatıslı bir DC motor modelidir, volanlar, taretler ve yatay doğrusal kaydırıcılar için doğru bir modeldir.

Aktarma Organları Karakterizasyonu

Aktarma organı karakterizasyon aracı, denklem için en uygun parametreleri belirler:

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

burada \(V\) uygulanan voltajdır, \(d\) sürücünün yer değiştirmesidir (konumudur), \(\dot{d}\) onun hızıdır ve:math:ddot{d} ivmesidir. Bu, basit motor karakterizasyonunda kullanılanla aynı modelleme denklemidir - ancak, aktarma organı karakterizörü, özellikle diferansiyel sürücüler üzerinde çalışacak şekilde ayarlanmıştır ve istenirse sürücünün her bir tarafını bağımsız olarak karakterize edecektir.

Aktarma organı karakterizatörü ayrıca bir gyro sensör kullanarak robotunuzun etkili iz genişliğini de belirleyebilir. Karakterizasyonun nasıl çalıştırılacağına dair daha fazla bilgi aşağıdaki makalede bulunmaktadır, track width characterization article.

Kol Karakterizasyonu

Kol karakterizasyon aracı, denklem için en uygun parametreleri belirler:

\[V = kS \cdot sgn(\dot{\theta}) + kCos \cdot cos(\theta) + kV \cdot \dot{\theta} + kA \cdot \ddot{\theta}\]

burada \(V\) uygulanan gerilimdir, \(\theta\) kolun açısal yer değiştirmesidir (konum), \(\dot{\theta}\) açısal hızıdır ve \(\ddot{\theta}\) açısal ivmesidir. Kosinüs terimi (: math:kCos), yerçekiminin etkisini doğru bir şekilde hesaba katmak için eklenir.

Kaldırıcı Karakterizasyonu

Kaldırıcı karakterizasyon aracı, denklem için en uygun parametreleri belirler:

\[V = kG + kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

burada \(V\) uygulanan voltajdır, \(d\) sürücünün yer değiştirmesidir (konumudur), \(\dot{d}\) onun hızıdır ve:math:ddot{d} ivmesidir. Sabit terim (: math:kG) yerçekiminin etkisini doğru bir şekilde hesaba katmak için eklenir.

Önkoşullar

Robot Karakterizasyon Araç Takımı’nı kullanmak için, bilgisayarınızda Python 3.7’nin yanı sıra standart WPILib programlama araç takımının kurulu olması gerekir.

Python 3.7

Uyarı

Python’u Microsoft Store’dan yüklemeyin. Python’u indirmek ve yüklemek için lütfen yukarıdaki bağlantıyı kullanın.

Araç Takımını Kurma ve Başlatma

Robot Karakterizasyon Araç Takımı’nı kurmak için bir konsol açın ve aşağıdaki komutu girin

pip install frc-characterization

Araç takımı ve tüm bağımlılıkları otomatik olarak indirilmeli ve kurulmalıdır. Bir Windows makinesi kullanıyorsanız ve pip komutu tanınmıyorsa, python betikleri klasörünüzün PATH <https://datatofish.com/add-python-to-windows-path/> “__.

Not

Ubuntu’daysanız, tkinter’ı sudo apt-get install python3-tk ile manuel olarak yüklemeniz gerekecektir. Ubuntu dağıtımlarında pip Python 2’ye atıfta bulunduğundan, pip yerine pip3 komutunu da kullanmanız gerekecektir.

Araç takımını zaten yüklediyseniz, hata düzeltmelerinden ve yeni özellik eklemelerinden yararlanmak için düzenli olarak güncellediğinizden emin olun:

pip install --upgrade frc-characterization

Not

Bu aracın beta sürümünü kullanmak istiyorsanız, bunun yerine``pip install –pre –upgrade frc-characterization`` yazmalısınız.

Araç takımı kurulduktan sonra, powershell’ den veya bir terminal penceresinden aşağıdaki komutu çalıştırarak çalıştığından emin olmak için yeni bir sürücü karakterizasyon projesi başlatın.

frc-characterization drive new

Yeni proje GUI’ si anlık olarak açılmalıdır. Diğer karakterizasyon projelerini başlatmak için, drive ı istenen karakterizasyon tipiyle (arm, elevator, simple-motor) değiştirin.

Yeni proje GUI’sinde hem günlük kaydı aracını hem de analiz aracını başlatmak için düğmeler bulunurken, bunlar``new`` yerine logger veya analyzer kullanılarak doğrudan CLI ‘den başlatılabilir.

Önemli

Kaydediciyi ve analizörü CLI’den başlatmak yerine, daha etkili birim dönüşümleri için kaydedici ve analizör araçlarını başlatmak için yeni proje GUI’sini kullanmanız şiddetle tavsiye edilir.

CLI kullanımı hakkında daha fazla bilgi için, `` frc-characterization -h ‘’ girin.