Hareket Eden Renkli Nesnelerin Takibinin PID ile Gerçekleştirilmesi

advertisement
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
Hareket Eden Renkli Nesnelerin Takibinin PID ile
Gerçekleştirilmesi
Yalçın Karakoç1, Sıtkı Öztürk2, Melih Kuncan3
1
Elekronik ve Haberleşme Mühendisliği Bölümü
Kocaeli Üniversitesi, Umuttepe
{yalcinkarakoc87}@hotmail.com
2
Elekronik ve Haberleşme Mühendisliği Bölümü
Kocaeli Üniversitesi, Umuttepe
{sozturk}@kocaeli.edu.tr
3
Mekatronik Mühendisliği Bölümü
Kocaeli Üniversitesi, Umuttepe
{melih.kuncan}@kocaeli.edu.tr
Özetçe
Bu çalışmada renkli nesnelerin gerçek zamanlı tespiti ve
takibini yapacak yazılım, donanım çalışması yapılmıştır.
Yazılım kısmı için Linux işletim sistemi altında çalışılmış
olup, OpenCV kütüphanesinden yararlanılmıştır. Donanım
kısmında Arduino geliştirme kartı ve bu karta bağlı iki adet
servo motor kullanılmıştır. OpenCV ile usb portu üzerinden
haberleşen Arduino, servo motorlara koordinat bilgileri
gönderilerek nesnenin takibi sağlanmıştır.
1. Giriş
Sayısal bir resim (görüntü), nesneler tarafından yansıtılan ışık
enerjisinin (analog sinyal) bir algılayıcı tarafından öngörülen
elektromanyetik aralıkta algılanarak sayısal sinyal haline
dönüştürülmesi ile oluşur. Bir görüntünün temel bileşeni
pikseldir. Sayısal bir görüntü MxN boyutlu piksellerden
oluşan bir matris ile ifade edilir. Gri tonlu görüntülerde,
görüntü farklı gri ton değerlerinden oluşur. Gri değer aralıkları
{0,1,2,...,255} şeklinde ifade edilir.
Video kamera ve tarayıcı gibi görüntü yakalayıcı
cihazlarla alınarak sayısallaştırılan görüntülerin geliştirilen
yöntemlerle işlenip analiz edilerek görüntülerden bilgi elde
edilmesi ve bu bilgilerin yorumlanması, görüntü işleme
alanının temelini oluşturur.
Görüntü işleme uygulamalarına örnek olarak fabrika
otomasyon uygulamalarından endüstriyel kalite/üretim
kontrolleri, tıbbi uygulamalardan kan hücrelerinin sayımı,
bilgi işlem uygulamalarından karakter tanıma, güvenlik amaçlı
uygulamalardan yüz tanıma, askeri uygulamalardan akıllı
silahlar üretimi gibi örnekler verilebilir[1]. Son yıllarda ise
şüphe çeken kişi veya nesnelerin doğrudan görüntü işleme
teknikleri kullanılarak belirlenmesine yönelik çalışmalar
yapılmaktadır.[5]
Bu çalışmada, görüntü işleme algoritmalarından
yararlanılarak renkli nesne algılama teknikleri kullanılmıştır.
Görüntü işleme kısmını İntel’in açık kaynaklı görüntü işleme
kütüphanesi olan Open Source Computer Vision (OpenCV)
kullanılmıştır. Bu çalışmada OpenCV kütüphanesini
kullanılmasındaki asıl amaç gerçek zamanlı görüntü işleme
uygulamalarına izin vermesidir. OpenCV’nin sağlamış olduğu
renk algılama ve algılanan renk bileşenlerinin aralarında
benzerlik gösteren belirli bölgelere ayırma işlemi yapılmış ve
nesnemizin konumu koordinat olarak belirlenerek nesnelerin
takibini gerçekleştirecek algoritma yazılmıştır.
Donanımın çalışma prensibi kısaca bilgisayar yardımıyla
işlenen görüntü sayesinde renkli nesnemizin kamera koordinat
üzerinde yeri belirlenmiştir. Belirlenen koordinatlar USB portu
aracılığıyla Arduino geliştirme kartına gönderilmiştir. Arduino
geliştirme kartına bağlı iki adet servo motor gelen koordinat
bilgilerini kullanarak servo motorların hangi yönde kaç
derecelik açıyla hareket edeceğine karar verir.
Servo motorların hareketi için PID denetçi kontrolü
kullanılmıştır. PID kontrolüyle Arduino’nun verilen
koordinatlara sıfır hatayla yaklaşması amaçlanmıştır.
Sonuç olarak görüntü işleme yazılımı sayesinde renkli
nesnenin kamera üzerindeki konumu belirlenir ve yön
vektörlerinin sonuçlarına göre hareket tespit edilen yöne servo
motorlar hareket ettirilir. Kameramız servo motorlara bağlı
olduğundan motorlar hareket ettikçe hareketli nesne kamera
görüntüsünün merkezine doğru alınmaktadır.
2. Hareketli Nesne Takip Metodu
Hedef takibi; hareket eden objenin durumunun tahmin
edilmesidir. Burada durum ifadesi “pozisyon, hız, ivme v.b.”
şeklinde ihtiyaca bağlı olarak seçilebilir. Hedef takibinde bir
veya daha fazla değişik platforma monteli sensörler
kullanılarak gerçekleştirilebilir. Hedef takibi kestirimden daha
geniş bir anlam taşımaktadır. Çünkü hedef takibinde sadece
kestirim araçlarını kullanmakla kalmaz, karar verme teorisinin
istatistiksel kurallarını da kullanır[2].
Literatürdeki hedef takip sistemleri incelendiğinde,
hedefin t anındaki durumuna göre sadece t+1 anında
281
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
bulunacağı konumunun tahmin edildiği gibi ve bu tahmini
konumda küme veya kapsama ağacı gibi yapılandırmalar
gerçekleştirilerek hedef takibi sağlandığı görülmektedir.
Ayrıca, literatürde birçok çalışmada hedef hızının 20-30
m/sn’yi aşmadığı varsayılmıştır.
Mevcut yaklaşımlarda hedefin hızı arttıkça düğümler
tarafından
algılanmadan,
ilerleme
durumu
ortaya
çıkabilmektedir
ve
bu
da
hedefin
konumunun
hesaplanamamasına yol açmaktadır. Önermiş olduğumuz
algoritmalar ile hedefin gideceği yön önceden tahmin edilir ve
bu
doğrultudaki
düğümler
uyandırılarak
gerekli
yapılandırmalar gerçekleştirilir [3].
Öncelikle görüntü işleme teknikleri için hareketin dış
dünyadan zengin bir bilgi kaynağı olduğunu söylemek yerinde
olacaktır. Bundan dolayı kısa bir şekilde görüntü hareketine
göz atılması uygun olacaktır. Şekil 1’de görüntü hareketi
gösterilmiştir. Zamanla değişen bir X(t) güzergâhında hareket
eden üç boyutlu noktanın hız denklemi aşağıdaki gibidir.
( )
⃗
(
( )
( )
( )
)
korelasyon belirlenir. En iyi karşılaştırma değeri en iyi yer
değiştirme bilgisini verir. Yani her işlem adımında uzaysal
olarak kayan ve geçici olarak türevlendirilen bir alan üzerinde
inceleme yapılır. Bu yaklaşımla çok daha sağlam vektör
alanları, türevlendirme işlemi geçici olarak sadece araştırma
alanlarında yapıldığı için, diğer yöntemlere göre çok daha
hızlı olarak elde edilir.
( )
Üç boyutlu güzergâhın görüntü düzlemi üzerine perspektif
izdüşümü iki boyutlu bir güzergâh ortaya çıkarır:
( ( ) ( ))
(
( )
( )
( )
)
( )
( )
Buradan anlık iki boyutlu hız aşağıdaki şekilde ifade
edilebilir:
⃗
(
( )
(
( )
( )
( )
( )
)
)
( )
( )
( ( ) ( ))
Şekil 1: Hareketli ve Sabit Işıkla Duran ve Dönen Lambert
Küreleri
Çalışmada, görüntüler bloklara bölünmüştür ve her bloğun
orta noktası optik akış vektörlerinin başlangıç noktası olarak
alınmıştır. Birbirini izleyen iki görüntü için, ilk görüntüdeki
her blok çevre blokların içinde aranmıştır.
( )
İki boyutlu hareket alanı bütün görünür noktalar için iki
boyutlu hızı ifade eder. Optik akış alanı ise hareket alanının
bir kestirimidir. Optik akış konseptinde iki temel problemle
karşılaşılır; izlenecek görüntü özelliğinin belirlenmesi, bu
özelliğin nasıl izleneceği. Daha açık ifade edilecek olursa,
yüzey parlaklığının zamanla değişmez olduğunu varsayılarak,
öncelikle sabit parlaklığın noktaları denklem 4’teki gibi ifade
edilir.
(
)
(
)
( )
Genellikle araştırmacılar tarafından parlaklığın sabit olduğu
kabul edilir, ancak doğa farklı şartlar ortaya koyar. Bundan
dolayı optik akış hareket alanı kestiriminde bazen çok zayıf
yakınsamalar elde edilebilir. Örneğin; dönen bir Lambert
küresi sabit bir ışık kaynağı altında sabit görüntü verir. Fakat
sabit bir küre hareket eden ışık kaynağı altında hatalı
yoğunluklar ortaya çıkarır.
Çalışmada, alan karşılaştırma tabanlı optik akış
algoritması uygulanmıştır. Alan karşılaştırma algoritmaları
diğer optik akış algoritmalarından, bir önceki görüntü için
elde edilen bilgilerden de yararlanarak vektör hesaplamaları
yaptığı için farklıdır. Bir önceki resim ile sonraki resim
arasında bazı mesafe ölçüm yöntemleri kullanılarak
282
Şekil 2: Blok Karşılaştırma
Birbirini izleyen iki görüntü için, bloklardaki kayma, farkların
kareleri toplamı (Sum of Squares Differences) metoduyla
hesaplanmıştır. İki pozisyon için SSD ölçümü şu şekilde
gerçekleştirilir:
( (
(
)
(
(
))
∑ ∑(
(
)
)
( )
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
Mevcut blok ile araştırma penceresindeki olası blokların
farklarının kareleri toplamı en küçük olan bloğun orta
noktaları, optik akış vektör çizimi için kullanılmıştır.
Görüntülerin üzerine çizdirilen optik akış vektörleri
yardımıyla hareket tahmininde bulunmamız kolaylaşmıştır
[4].
2.1. OpenCV ile Hareketli Nesne Takibi
OpenCV görüntü işlemek üzere 1999’da İntel tarafından açık
kaynaklı olarak C yazılım dilinde geliştirilmiş olan görüntü
işleme kütüphanesidir. Bu çalışma OpenCV Kütüphanesi ile
C yazılım dilinde gerçekleştirilmiştir. Renkli nesne algılamak
ve algılanan nesnenin hareketinin takibi için HSV renk uzay
modelinden yararlanılmıştır. HSV (Hue, Saturation, Value)
veya bazı kaynaklarda HSB (Hue, Saturation, Brightness)
renk uzayı, renkleri sırasıyla renk özü, doygunluk ve parlaklık
olarak tanımlar. HSV renk modunun kullanılma amacı
RGB(Red, Green, Blue) uzayına göre insan görü düzeneğine
daha yakın bir yapı oluşturmaktadır. HSV, RGB renk
uzayından doğrusal olmayan bir dönüşüm ile elde edilir.
HSV, aygıt bağımlıdır. Yani bu uzayda tanımlı bir renk, rengi
üreten aygıt cihazına göre değişim gösterebilir.
Şekil 4: Görüntü alınan web kamerası
Kullanılan kamera, renkli kameradır ve 640*480 piksel
boyutunda çözünürlüğe sahiptir. Kameranın renkli olması
önemlidir. Çünkü renk modellerinden birbirlerine dönüşüm
sadece renkli görüntülerde olur. Siyah beyaz görüntülerde renk
sadece siyah/beyaz olduğundan renkli nesneden söz edilemez.
Kamera görüntüleri 25fps (frame per second) saniyede 25
kare olarak kayıt etmektedir. Kamera görüntüsünü işlemek
için bir frame(resim) alırız ve o frame üzerinden işlem yaparız.
Video görüntüsünden frame almak için OpenCV’ de aşağıdaki
komut kullanılır.
IplImage* cvQueryFrame( CvCapture* capture );
Bu komut görüntü aldığımız kamera nesnesinin içerisinden bir
framelik görüntü alır. Alınan bu görüntü RGB formatından
olduğundan bu formatın asıl kullanacağımız renk uzayı olan
HSV uzayına dönüştürmemiz gerekir. HSV uzayında
dönüştürülen framede görüntü işleme algoritmasını
geliştirilmesi ve renkli hedef takibinin yazılım kısmının
tamamlanması amaçlanmaktadır. OpenCV’nin renk dönüşümü
için hazır komutlar vardır.
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
Kaynak dosyası (src) 8-bit (8u), 16-bit (16u) ya da floatingpoint 32-bit (32f) olabilir. Hedef dosyası (dst) kaynak
dosyasıyla aynı tipte ve aynı boyutta olur. Kaynak dosyasının
int code ile belirtilen dönüşüm yöntemiyle dönüşümü yapılır
ve hedef dosyaya kaydedilir. Aşağıda bazı int code
dönüşümleri gösterilmiştir.
2.2. Renkli Nesne Algılama Yazılımın Gerçekleştirilmesi
RGB<=>HSV
(CV_BGR2HSV,
CV_HSV2BGR, CV_HSV2RGB)
RGB<=>HLS
(CV_BGR2HLS,
CV_HLS2BGR, CV_HLS2RGB)
Çalışmanın bu kısmında OpenCV’ de görüntü işleme
yöntemlerine yer verilmiştir. OpenCV’ de görüntü işleme için
öncelikle renkli bir görüntü algılayıcısına ihtiyacımız vardır.
Burada işimizi bir web kamerası görebilir. Şekil 4’de görüntü
alınan kamera görünmektedir.
Renk dönüşümleri yapıldıktan sonra renkli hedefimizin
istediğimiz renk aralıklarıyla algılanması ve takibi
gerçekleştirilecektir. Dönüştürülen imgenin renk uzayında kaç
bit renk kullanacağını aşağıdaki komut kullanılarak
belirlenebilir.
Web kamerasının görüntü almak için OpenCV’ de bir görüntü
işaretçisi tanımlanır ve o işaretçinin ayırdığı alana görüntü
kare kare kayıt edilir.
IplImage*
channels);
Şekil 3: Konik ve silindirik biçimli HSV renk uzayı
CvCapture* cvCreateCameraCapture( int index );
Komutu ile kamera görüntüsü alınır. Kameradan alınan
görüntü renkli ya da siyah/beyaz olabilir.
cvCreateImage(CvSize
size,
CV_RGB2HSV,
CV_RGB2HLS,
int
depth,
int
CvSize: İmgenin eni ve boyunu belirtmemiz gerekir. Depth:
Bir piksel kaç bit derinliği kullanacağını belirten değişkendir.
Channels: Pikselin kullandığı kanal sayısını belirtir. Bu
aşamadan sonra kamera görüntüsünden aldığımız bir framelik
283
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
görüntüyü takip edilmesi gereken hedefin renk bilgilerini
girerek takip edilmesi gerçekleştirilecektir.
Renk algılanması ve renkli nesnenin takibi için OpenCV
kütüphanesinden CvInRanges komutu kullanılır.
void cvInRangeS( const CvArr* A src, CvScalar SL, CvScalar
SU, CvArr* D dst );
6′sı PWM çıkışı olarak kullanılabilir. 6 analog giriş pinine
sahiptir. 16 MHz kristal osilatörü, USB bağlantısı, 2.1mm güç
girişi, ICSP başlığı ve reset butonu vardır. Mikroişlemciyi
destekleyecek her şeye sahiptir. Çalıştırmak için DC 7~12V
güç kaynağına bağlamak yeterlidir. Şekil 6’da Arduino’nun
pinleri ve giriş/çıkışları gösterilmiştir. Arduino tüm işletim
sistemlerinde çalışabilmektedir..
Bahsi geçen komut da ilk değişken kaynak frame işaretçisidir.
Kaynağın üzerinde algılanacak olan rengin belirlenmesi için
ikinci argüman olarak CvScalar SL komutu renk bilgisinin alt
değerini alır. CvScalar SU komutu ise renk bilgisinin üst
değerini alır. HSV uzayında renk değerleri alt ve üst değerler
olarak girildikten sonra CvInRangeS komutu girilen renk
değerini frame üzerinden arar ve bulduğu renkteki piksellerin
piksel değerini 0 yapar. Diğer geri kalan pikseller 1 değerini
alır. Şekil 5’de bu durum kısaca gösterilmiştir.
Bir sonraki bölümde algılanan renkli hedefin piksellerinin
aldığı değerlere göre hedef ayrışımı ve hedefin takibine
yönelik algoritmalar geliştirilmiştir. Piksellerin aldığı
değerlerin bir algoritmaya göre aranması ve bulunmasıyla
hedef takibi yapılacaktır.
Şekil 6: Arduino üzerinde bulana pinler ve giriş/çıkış
bağlantıları
3.2. Arduino Geliştirme Kartı ile Servo Sürmek
Servo motor daha çok robotlarda, sanayilerde ve modelcilikte
sıkça kullandığımız, girişine uyguladığımız darbe genişliği ile
0 - 180 derece açılarda dönebilen motorlardır. Bu motorlar
kullanım yerlerine göre çeşitlendirilebilirler. Otomasyonda
kullanılan yüksek torklu servolar olduğu gibi modelcilikte
kullanılan mikro servo motorlara kadar çok fazla çeşidi
bulunmaktadır. RC (Radio Control), Hobi servoları olarak da
geçebilir.
Arduino’nun kütüphanelerinde servo sürmek için bir
servo kütüphane bulunmaktadır. Servo sürmek için PWM
sinyalini Arduino içerisindeki servo kütüphanesi yardımıyla
oluşturulacaktır. Şekil 7’de servo motorların Arduino’ya nasıl
bağlandığı gösterilmiştir.
Şekil 5: Algılanan renkli nesnenin piksel bit durumu
3. Takip Donanımının Gerçekleştirilmesi
Takip yazılımını tamamladıktan sonra donanım kısmının
gerçekleştirilmesi gerekmektedir. Donanım kısmında, görüntü
işleme sonucunda hedefimizin koordinat bilgisinin
bilgisayarın USB portundan Arduino geliştirme kartına
gönderilmesi amaçlanmaktadır. Arduino USB’ den aldığı
bilgilerle X ve Y komuna göre servo motorlara hareket bilgisi
göndererek hedefin takibi sağlanmıştır.
3.1. Arduino Geliştirme Kartı
Arduino açık kaynaklı bir geliştirme kartıdır. Atmel
firmasının ürettiği geliştirme kartında C yazılım dilinde
projeler
geliştirilebilmektedir.
Donanım
kısmında
kullanacağımız Arduino Uno ATmega328 işlemci kullanan
Arduino çeşididir. 14 dijital giriş/çıkış pini bulunur, bunlardan
284
Şekil 7: Servo motorların Arduino’ya bağlantısı
Servolardan biri X düzleminde diğeri ise Y düzleminde
hareket etmektedir. Görüntü işleme sonucunda algılanması
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
gereken renkli hedefin koordinat bilgileri seri olarak
Arduino’ya gönderilir. Arduino üzerindeki yazılım sayesinde
servoları gereken koordinat bilgilerine göre hareket ettirir.
3.3. Görüntü İşleme Yazılımı Yardımıyla Nesne Takibi
OpenCV ile algılanan hedefin kamera görüntüsü düzleminde
X ve Y koordinatları belirlenmiştir. Belirlenen koordinatlar
posX ve posY değişkenlerine gönderilmiştir. Bu değişkenleri
USB ile göndermemiz için öncelikle bir mantık kontrolüyle
değerlerin değişip değişmeyeceğini kontrol etmemiz gerekir.
Eğer posX ve posY değişkenleri değişmiyorsa servo
motorlarımız hareket etmeyeceğinden bu bilginin sürekli
gönderilmesine gerek yoktur. Yani hedefimiz hareketsiz
konumdaysa hedef koordinatları gönderilmeyecektir.
Hedefimiz ne zaman hareket etmeye başlarsa hareketin
algılandığı bölgenin koordinat bilgileri posX ve posY
değişkenlerine atanacağından bu bilgileri USB aracılığıyla
Arduino’ya ve Arduino ile servo motorlara gönderilecektir.
Arduino’ya USB olarak bilgi göndermek için aşağıdaki kod
kullanılır.
FILE*
integral I ile gösterilir türev değerleri, D ile gösterilir. Mevcut
hata P, geçmişteki hataların toplamı I, ve değişimin mevcut
oranı D ye dayanarak, gelecekteki hatanın bir tahmini
hesaplanır. Bu üç eylemin ağırlıklı toplamı yoluyla kontrol
edilen süreç istenilen seviyeye ayarlamak için kullanılır.
Böylece örnek olarak bir kontrol valfının pozisyonu ya da bir
ısıtma elemanı çıkış gücü kontrol edilerek istenilen akış veya
sıcaklık seviyesi en düşük hata ile elde edilmeye çalışılır[6].
Tablo 1’de nesnemizin istenilen noktaya olan uzaklığını
yani hatasını ve PID katsayıları verilmiştir. Tablo 1’e göre
nesne görüntünün tam ortasında olması istenilmektedir. Yani
X eksenindeki konumu 320 ve Y eksenindeki konumunun ise
240 olması istenilmektedir. Buna göre nesnenin konumu ve
PID katsayıları Tablo 1’de verilmiştir.
Tablo 1: Nesnenin Konumuna Göre PID Katsayıları
Nesnenin
X’deki
Konumu
278
319
407
423
serial = fopen("/dev/ttyACM0", "w");
Buradaki kodun yaptığı iş seri portu yazma durumuna açmak
için bir serial işaretçisi tanımlanır ve kullanılacak port girilir.
İkinci argüman ise yapılacak işi gösterir. Burada porta bilgi
göndereceğimizden “w” (write) olarak ayarlanmaktadır. Bir
başka husus ise servo motorlarımızın 180 derece dönme
kabiliyeti olduğundan 0-180 arası değerler alması
gerekmektedir. Kamera çözünürlüğü X’de 640 ve Y’de 480
olduğundan bu değerleri 180’e göre modunu alıp
göndermekteyiz. Arduino seri bilgiyi aşağıdaki komut ile
okuruz.
int posX = Serial.read();
int posY = Serial.read();
Olarak okunan seri bilgileri X ve Y koordinat bilgilerini alırız.
Aldığımız bu bilgilerini Arduino’ya bağlı servo motorlara
iletmek için aşağıdaki komut kullanılır.
servoX.write(posX);
servoY.write(posY);
Nesnenin
Y’deki
Konumu
232
241
153
380
P
I
-8.04
-0,12
17,40
25,32
4,12
3,07
13,5
16,08
D
-4,79
-1,01
-5,12
-6,56
4. Sonuçlar
Sonuç olarak bu çalışmada görüntü işleme ile renkli hedef
takibi nasıl yapılır? Hedef takibi yaparken nelere dikkat
edilir? Renk algılama nedir? Renk algılama teknikleri
nelerdir? Kısaca bunlara değinilmiştir. Yazılım kısmında
renkli hedef ekranın tam orta noktasında olmasına dikkat
edilmiş ve takip aşaması bu koşula göre yapılmıştır. Takip
edilecek olan hedefin ağırlık merkezi görüntümüzün
merkezinde olduğu için hareketteki sapmaları kontrol edilecek
sisteme yani servo motorlara bilgiler gönderilmiştir. Yazmış
olduğumuz görüntü işleme yazılımına bağlı olarak çalışan
donanım şekil 11 ve 12’de gösterilmiştir. Donanım kısmı iki
servonun biri X, diğeri Y yönünde hareket edecek şekilde
tasarlanmıştır.
Gönderilen koordinat bilgileri servo için 0-180 derece
arasında dönme hareketi yapar. Servo motorlara gelen posX
bilgisi X yönünde hareket eden servo motora kaç derece
dönmesi gerektiğini söyler. Aynı şekilde gelen posY bilgisi de
Y yönünde hareket eden servo motora kaç derece dönmesi
gerektiğini söyler. Servo motorlarımızın Arduino geliştirme
kartı aracılığıyla kontrolü kısaca bu şekildedir.
3.4. PID Kontrolünün Yapılması
PID (proportional, Integral, Derivative) oransal-integraltürevsel denetleyici PID kontrol döngüsü yöntemi, yaygın
endüstriyel kontrol sistemlerinde kullanılan genel bir kontrol
döngüsü geribildirim mekanizmasıdır. Bir PID denetleyici
ölçülü bir süreç içinde değişen ve istenilen ayar noktası ile
arasındaki farkı "hata" değeri olarak hesaplar. Kontrolör
proses kontrol girişini ayarlayarak hatayı en aza indirerek
istenilen ayar değerine ulaşmak için çalışır.
PID algoritması üç ayrı sabit parametreyi içerir ve buna
göre bazen üç aşamalı kontrol denir: oransal, P ile gösterilir.
Şekil 8:Yazılım sonuçları test görüntüsü 1
285
Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde
Şekil 9: Yazılım sonuçları test görüntüsü 2
Şekil 12: Donanımın Yandan Görüntüsü
5. Kaynakça
[1] M.
Özden,
“Ortalama
Kayma
Algoritmasının
Geliştirilerek Görüntü Dizilerinde Hareketli Nesne Takibi
ve Görüntü Kesimleme Amaçlı Kullanılması,” Kırıkkale
Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi,
2005.
[2] A. G. Pakfiliz, “Parazit Yankılı Ortamda Manevra Yapan
Birden Çok Hedefin Takibi İçin Olasılıksal Bir Takip
Algoritması Geliştirilmesi,” Ankara Üniversitesi Fen
Bilimleri Enstitüsü, Doktora Tezi, 2004.
[3] A. Beyoğlu, A. Kantarcı ve K. Erciyes “Telsiz Duyarga
Ağlarında Çok Hızlı Hareket Eden Hedefler için Hedef
Takip Algoritmaları,” 2012
[4] E. Dur, H. Temeltaş, S. Kurnaz, “Optik Akışın
Hesaplanması ve Yapay Sinir Ağları ile Yorumlanarak
Mobil Robotlar İçin Engel Tespiti ve Kaçınma
Davranışında Kullanılması,” Havacılık ve Uzay
Teknolojileri Dergisi Cilt 4 Sayı 1(77-87), Ocak 2009
[5] M. Şanlı, F. Zengin, O. Urhan, M. K. Güllü, “Web
Kamerasıyla Hareketli Nesne Takibi” Elektronik ve
Haberleşme
Mühendisliği
Bölümü
Mühendislik
Fakültesi, İzmit/KOCAELİ, 2005
[6] http://tr.wikipedia.org/wiki/PID (Erişim Tarihi: 06/2012)
Şekil 10: Yazılım sonuçları test görüntüsü 3
Şekil 11: Donanımın Önden Görüntüsü
286
Download