Kontrol Kartı Yazılım Geliştirmesi ve Temizlik Robotu Revizyonu
Herkese merhaba, ben Furkan Enes KOÇAK! Bu yazımda sizlere stajım boyunca gerçekleştirdiğim projeden bahsedeceğim. Stajım boyunca kendine özgü tasarımı olan kontrol kartıyla yazılım geliştirmesi ve işlevini yerine getiremeyen temizlik robotu revizyonu üzerine çalışmalarda bulundum. Sizlere yazımın içeriğinden bahsetmek istiyorum,
- Projenin konusu ve hedefi nedir?
- Kontrol kartı tanıtımı ve nerelerde kullanılacağı.
- LG VR5806KL temizlik robotu tanıtımı
- LG temizlik robotu kontrol ve motor hall effect kartları tanıtımı.
- Enkoder ve hall effect sensörlerin çalışma mantığı ve RPM hesabı nasıl yapılır?
- PID kontrol ve Windup nedir?
- Temizlik robotu tekerlekleri PID kontrolü gerçekleştirilmesi
- Yönlü PID kontrol nedir? Temizlik robotu tekerlekleri senkron şekilde kontrol edilmesi.
- Rosserial nedir? USB ve UART haberleşme protokolleriyle Rosserial
1.Adım: Projemin Konusu ve Hedefleri Nelerdir?
Gerçekleştirilen projenin konusu, otonom görev robotu kontrol kartı kullanılarak işlevini yerine getiremeyen LG temizlik robotunun kontrolü sağlanarak ROS ortamıyla haberleşmesidir.
Projenin amacı, görev robotu kontrol kartı vasıtasıyla işlevini yerine getiremeyen LG temizlik robotunun tekerlek motorlarının PID kontrolü sağlanması, motorların senkron olacak şekilde çalıştırılması ve ROS ortamıyla kontrol kartı haberleşmesi sağlanarak temizlik robotunu ROS ortamından kontrol edilmesi projenin başlıca hedefleri arasındadır. Bu sayede işlevini yitirmiş olan temizlik robotunun geliştirilerek tekrardan kullanıma sunulabilmesi hedeflenmektedir.
2.Adım: Kontrol Kartı Nedir ve Nerelerde Kullanılır?
Kontrol Kartları, bir sürecin istatistiksel kontrolünü kurmak ve sürdürmek için kullanılmaktadır. Ayrıca süreç parametreleri tahminlemesinde, özellikle süreç yeterlilik çalışmalarında etkili birer araçtırlar. Bir kontrol kartının kullanımı ;
1. Örnek büyüklüğü seçimini,
2. Örnekler arasındaki aralık veya örnekleme sıklığının seçimini,
3. Kontrol sınırlarının seçimini içermektedir. Bu üç parametrenin seçimine kontrol kartının tasarımı adı verilmektedir.
Kullanılan kontrol kartı Elfatek Elektronik bünyesinde tasarlanmış ve geliştirilmiş, otonom görev robotları kontrolünü sağlamak amacıyla üretilmiş özel bir karttır.
3.Adım: Enkoder Verisi Okuma ve Timer Kullanımı
Kısa devre ve yazılım testleri gerçekleştirilen kontrol kartı artık kullanıma hazır hale gelmiştir. Kontrol kartı programlaması ve konfigürasyon ayarları için STM32CubeId kullanılmaktadır. Kontrol kartında enkoder verisini okumak için STM32 mikrodenetleyicisi konfigürasyonları yapılırken Timer kullanılmaktadır. Timer’ın modu ayarlanırken encoder mode seçilmesi gerekmektedir. Enkoder mod kendi içerisinde gerekli fonksiyonları yaparak enkoder ileri veya geri yönde her sinyalde birer birer saymaktadır. STM32’nin enkoder mod özelliği enkoder okumada büyük ölçüde kolaylık sağlamaktadır.
4.Adım: LG Temizlik Robotu
Revizyonu gerçekleştirilmesi istenilen temizlik robotunun ilk başta mekaniksel ve elektronik olarak çalışma prensibi incelemesi ve tanınması gerçekleştirilmiştir. LG marka temizlik robotu özelliklerini sizinle paylaşmak istiyorum,
- LG temizlik robotu 2008 yılında LG markasının üretmiş olduğu temizlik robotudur.
- Robotun tekerleklerini kontrol eden 2 adet DC motor bulunmaktadır.
- Sağ ve solda temizlik fırçaları bulunmaktadır.
- Robotun ortasındaki vakum sayesinde zemindeki parçacıkları robotun arkasındaki hazneye birikmektedir.
- Robotun altında silindir şeklindeki fırçalar dairesel olarak dönerek zemini temizlemektedir.
- Robotun ön tarafında mesafe sensörleri bulunmaktadır.
- Robotun arka hazne kısmında ise bir adet switch vardır. Arka tarafdaki switch herhangi bir çarpma anında elektriği kesmekte ve robotu durdurmaktadır.
- Robotta zemin tespiti yapan sensörler mevcuttur.
- Temizlik robotunun tekerleklerinde DC motor kullanılmıştır.
- DC motor miline bağlanan enkoder diski ve hall effect sensörler sayesinde motor hız kontrolü yapılabilmektedir.
- Motorlar yaklaşık 30:1 redüktör oranına sahiptir.
5.Adım: Motor Hız Verisi Elde Etme Yöntemleri
1 – Enkoder
Enkoder bağlı olduğu motor milinin hareketine karşılık sayısal (dijital) bir elektrik (pulse) sinyali üreten elektromekanik bir cihazdır. Ayrıca bağlanan milin mevcut konumlarını izlemek ve geri bildirim sağlayan bir algılama cihazıdır. Dönüş yönü için iki sıra hâlinde dizilmiş yarıklar kullanılır. Alttaki yarıkla üstteki yarık arasında çeyrek açıklık vardır. Üstteki yarıktan gelen sinyale A, alttan gelen sinyale B kanalı denir. Mil döndükçe mil hızıyla orantılı bir frekansta bu kanallarda pulse üretilir. Bu iki sinyal arasındaki faz farkı dönme yönü konusunda bilgi verir. Örneğin A kanalı B’ye göre önde ise mil saat yönünde döner. Disk üzerindeki yarık sayısı encoderin çözünürlüğünü verir. Diskte 400 yarık ya da iz var ise bu encoderin çözünürlüğü 400 adım/tur olarak verilir. Her bir kanaldaki pulse sayısı ve çözünürlük bilinirse milin açısal konumu tayin edilir. Encoderlerde çoğunlukla üçüncü bir kanal daha bulunur. Z ya da indeks kanalı denilen bu kanal, her turda bir pulse üreterek milin dönme sayısı hakkında bilgi verir. Ayrıca mekanizmalarda başlangıç konumuna gelmek için bir referans sinyali olarak da kullanılır.
2 – Hall Effect
Akım geçen bir iletken, bir manyetik alana konulduğunda akıma ve manyetik alana dik yönde gerilim farkı ortaya çıkar. Bu ölçülebilir gerilim farkını, 1879 yılında Amerikalı fizikçi Edwin Hall keşfetmiştir. Bu keşiften ötürü bu gerilim farkına Hall Etkisi (Hall Effect) denir.
Temizlik robotu tekerlekleri çalışma prensibi incelenmesi sonucunda motor miline bağlı bir adet yaklaşık 180 PPR bir enkoder diski bulunmaktadır. Tekerlek motoru kartı üzerinde 2 adet hall effect sensörü bulunmaktadır 2 adet olmasının sebebi bir tanesi A kanalı bir tanesi B kanalı olarak tasarlanmıştır. Yapılan testler sonucunda tekerlek motorlarından bir tanesinin hall effect sensörlerinin bozuk ve enkoder diski kırık olduğu gözlemlenmiştir. Hall effect sensörleri sağlam olan sensörlerle değiştirilmiş olup kırık enkoder diski yerine kendi enkoder diskimi üreterek bu sorunu çözmeyi amaçladım.
6.Adım: RPM Hesabı ve PID Kontrol
PID kontrol algoritmalarının yazılabilmesi için bir referans değerine ihtiyacımız vardır. Ben referans değerimi RPM olarak ayarladım ve ilk olarak motorun dönüş hızını doğru bir şekilde hesaplamam gerekti. RPM hesabı algoritmaları yazılarak kontrol kartına yüklendi ve takometre vasıtasıyla motorun dönüş hızı RPM cinsinden ölçüldü. Aşağıdaki görselde kontrol kartı ile bilgisayarı USB haberleşeme ile haberleştirerek seri porta yazdırdığım ve takometre ile ölçtüğüm RPM değerini görmektesiniz.
PID (Proportional Integral Derivative) oransal-integral-türevsel denetleyici kontrol döngüsü yöntemi, endüstriyel kontrol sistemlerinde yaygın olarak kullanılan bir geri besleme denetleyicisi yöntemidir. Bir PID denetleyici sürekli olarak bir hata değerini, yani amaçlanan sistem durumu ile mevcut sistem durumu arasındaki farkı hesaplar. Denetleyici süreç kontrol girdisini ayarlayarak hatayı en aza indirmeye çalışır.
Oransal terim sistemdeki hatayı bir katsayı (Kp) ile çarparak küçültmeyi hedefler. Bu işlemle birlikte hata hızlıca düzeltilir ancak çıkışta osilasyon görülme ihtimali artar. Bu yüzden salınımları önlemek için Kp değeri yüksek seçilmemelidir.
İntegral hatanın alanını bulmak anlamına gelir. Her bir periyottaki hata katsayı (Ki) ile çarpılarak toplanır. Sürekli toplama işlemi yapıldığı için integral çok fazla artmadan sınırlandırılması gerekir.
Türev zamana bağlı değerin değişimi ile ilgilidir. Sistemde gerçekleşen değişimden gerçekleşecek değişimi fark eder ve sistemi istenen değerin üzerine çıkmaması için yavaşlatır. Eğer iki örnek arasındaki hatada değişim olmadıysa türev sıfır olur.
PID kontrol algoritmaları yazarken katsayılar büyük önem taşımaktadır. Katsayılar seçmenin birçok yöntemi vardır ama en hızlı ve kolay olanı deneysel olarak seçmektir. Eğer ki katsayılar uygun değerler seçilmezse motor istenilen verimde çalışmayabilir. Aşağıdaki görselde yazmış olduğum PID kontrol algoritmasının grafikte referans değerine oturma görüntüsünü vermekteyim. Kontrol kartı ile bilgisayarın USB haberleşme ile seri porta gerekli algoritmaları yazarak çizdirebiliriz. Bu sayede osiloskop olmadan algoritmalarımızı test edebiliriz.
7.Adım: PID Kontrol ve Windup
Bir kontrol sisteminin lineer aralığı, geri besleme kontrolör çıkışının doygunluğu ile sınırlandırılabilir. Kontrolörün başlangıçta doygun olması gerektiğinde bir sistem adımı yanıtının yükselme süresi, lineer bölgedeki adım yanıtından daha uzundur. Bu nedenle, entegratör yükselme sırasında daha büyük bir çıktı biriktirecek ve bu da aşmaya neden olacaktır.
Bu aşmayı önlemek için entegratör anti-windup kullanılabilir. Birkaç anti-kurma tekniği mevcuttur; iki yaygın olanı geri hesaplama ve kenetlemedir.
PID kontrolü sağlanan sistemin Windup’a girmemesi ve sistemin istenilen şekilde çalışabilmesi için Anti-Windup algoritmaları yazılmaktadır. Anti-Windup algoritmalarıyla sistem sınırlandırılacaktır. Aşağıdaki görselde kendi yazmış olduğum Anti-Windup algoritmaları çıktısı verilmiştir.
8.Adım: Motorların Senkron Çalışması ve Yönlü PID
Motorların PID kontrol algoritmaları yazılırken farklı katsayılar girilmiştir bunu sebebi ise kullanılan enkoder diskleri farklıdır bu sebepten dolayı motorların senkron çalışması ve sadece ileri yönde değil geri yönde de PID kontrol algoritmaların çalışması için gerekli düzenlemeler ve algoritmaları oluşturdum. Seri porttan girilen RPM değerine göre motorların istenilen hızda ve istenilen yönde çalışmaları sağlanmıştır. Aşağıdaki blok diyagramda sırayla gerçekleşen olaylar ve döngüler gösterilmiştir.
9.Adım: Rosserial nedir ? Rosserial Kontrol Kartı Haberleşmesi
-
Rosserial standart ROS serileştirilmiş mesajları almak ve seri porta mesajları yazmak için bir protokoldü
-
Rosserial kullanarak UART ve USB haberleşme protokolü ile motor RPM ve yön verileri ROS ortamına aktarılmıştır.
-
ROS ortamından gönderilen mesajlar UART ve USB haberleşme protokolü ile STM32 tarafından değerlendirilerek bir sonuç verisi alınmıştır.
-
ROS ortamından belirlenen yön tuşlarına göre robotun konumlandırılması sağlanacaktır.
- Rosserial ile kontrol kartı haberleşmesi sağlanarak motorların yani robotun ROS ortamından kontrolü sağlanmıştır. Bu sayede klavyeden rastgele atanan tuşlarla robotun kontrolü sağlanmıştır. Robot ROS ortamında uzaktan kontrol edilmiştir. Yapılan ve yazılan algoritmalarla robotu birçok işlevde kullanabiliriz. Çalışmayan işlevini yerine getiremeyen temizlik robotu bu sayede hem işlevini yerine getirebilir hem de başka amaçlar için kullanılabilir hale getirilmiştir.
TEŞEKKÜRLER…
İletişim
Furkan Enes KOÇAK
Konya Teknik Üniversitesi
Elektrik – Elektronik Mühendisliği
https://www.linkedin.com/in/furkan-enes-ko%C3%A7ak-549114213?
kocak.eness01@gmail.com