Robotik Sistemlerde Algoritmayı Test Edebilme

Robotik sistemlerde test senaryoları, örnek girdiler, hata (bug) türleri ve 5 adımlı hata ayıklama (debugging) süreci. Maarif Modeli RK1.1.4 ders notu.

Robotik Kodlama4. HaftaRK1.1.4
KAZANIM • RK1.1.4

Robotik sistemlerde algoritmayı test edebilme.

  1. Robotik sistemlerde geliştirdiği algoritmayı örnek girdilerle test eder.
  2. Algoritmadaki hataları ayıklayarak kullanıma hazır hâle getirir.
🔧 En İyi Yazılımcılar Asla İlk Denemede Pes Etmez! Bir robotik algoritma yazmak işin sadece başlangıcıdır; asıl ustalık o algoritmanın her türlü gerçek şartta doğru çalıştığından emin olmaktır. Robotlar tam olarak bizim kodladığımız kadar akıllıdır; tek bir mantık hatası veya yanlış bir eşik değeri robotun duvara çarpmasına veya hedefini kaçırmasına yol açar. Bu yüzden robotik dünyasının altın kuralı: Örnek Girdi Ver ➔ Çıktıyı Gözlemle ➔ Hatayı Ayıkla ➔ Tekrar Test Et!
Anahtar Kavramlar: Test Etme Örnek Girdi (Test Case) Hata (Bug) Hata Ayıklama (Debugging) Mantıksal Hata Sıralama Hatası Koşul Hatası Sonsuz Döngü Doğrulama (Tekrar Test)

1) Temel Kavramlar: Test Etme ve Hata Ayıklama

Robotik projelerde tasarladığımız algoritmaların kusursuz çalışması için iki temel süreç işletilir:

KavramAçıklama / TanımRobotik Projedeki Somut Karşılığı
Test EtmeAlgoritmanın her türlü durumda doğru çalışıp çalışmadığını anlamak için sisteme farklı örnek girdiler verilerek çıktının kontrol edilmesidir.Mesafe sensörünün önüne sırasıyla 50 cm, 20 cm ve 5 cm mesafede engeller koyup robotun durup durmadığını denemek.
Hata (Bug)Algoritmanın beklenenden farklı, eksik veya yanlış çalışmasına sebep olan mantık veya sıra kusurudur.Robot süpürgenin karanlık bir odaya girdiğinde sehpayı görmeyip çarpması; çizgi izleyicinin virajda yoldan çıkması.
Hata Ayıklama (Debugging)Tespit edilen hatanın hangi adımda olduğunu bulma, nedenini analiz etme ve algoritmayı düzelterek sistemi hazır hâle getirme sanatıdır.Akış şemasındaki karar adımında yer alan Mesafe < 15 koşulunu inceleyip eşik değerini 25 cm olarak güncellemek.
🦋 Biliyor muydun? "Bug" ve "Debugging" Kelimeleri Nereden Gelir?
1947 yılında bilgisayar biliminin öncüsü Amiral Grace Hopper ve ekibi, devasa Harvard Mark II bilgisayarında bir arıza yaşadı. Sistemi açıp incelediklerinde rölelerin arasına sıkışmış gerçek bir güve (moth/böcek) buldular. Güveyi cımbızla çıkarıp laboratuvar defterine yapıştırdılar ve yanına "İlk gerçek hata (bug) bulundu ve ayıklandı (debugged)" yazdılar. O günden beri yazılımdaki her kusura "Bug", düzeltme işlemine ise "Hata Ayıklama (Debugging)" denir.

2) 5 Adımlı Test ve Hata Ayıklama Süreci

Karşılaştığımız bir hatayı rastgele tahminlerle değil, mühendislik disiplinine uygun 5 adımda çözeriz:

AdımEylem AdıNe Yapılır?Çizgi İzleyen Robot Örneği
1. AdımÖrnek Girdi VerSisteme bilinen ve kontrollü bir test ortamı sunulur.Robot siyah çizgiyle çizilmiş virajlı bir test pistine konur.
2. AdımÇıktıyı GözlemleSistemin verdiği fiziksel tepki (motor, ışık, ses) izlenir.Robot düz çizgide sorunsuz gider; ancak keskin sağ virajda çizgiyi kaybedip pist dışına fırlar.
3. AdımHatayı (Bug) BulBeklenen sonuç ile gerçekleşen sonuç kıyaslanır, hatalı adım saptanır.Sağ kızılötesi sensör siyahı gördüğünde sağ motorun yeterince yavaşlamadığı (hız farkı hatası) belirlenir.
4. AdımAdımı DüzeltAkış şemasındaki veya koddaki hatalı blok yeniden düzenlenir.Sağ viraj adımı: "Sağ motoru durdur, sol motoru %60 çalıştır" şeklinde güncellenir.
5. AdımTekrar Test EtYapılan düzeltmenin başka bir yeri bozmadığından emin olunur.Robot aynı virajlı pistte 3 kez art arda çalıştırılarak doğrulanır.
💡 Altın Kural: Bir hatayı düzelttikten sonra projeyi hemen bitmiş sayamayız! 5. Adım olan "Tekrar Test Etme (Doğrulama)" yapılmadan bir robot asla kullanıma hazır hâle gelmiş sayılmaz.

3) Robotik Algoritmalarda Sık Yapılan 4 Hata Türü

Öğrencilerin ve mühendislerin robotik projelerde en çok karşılaştığı 4 kritik hata türü şunlardır:

Hata TürüNasıl Oluşur?Hatalı ÖrnekDoğru Çözüm
1. Sıralama Hatasıİşlem adımlarının mantıksal sırasının karıştırılmasıdır.Önce motorları ileri sür, sonra mesafe sensörünü oku.
(Sensörü okumadan gaza basıldığı için robot hemen çarpar!)
Önce sensörden mesafeyi oku; yol açıksa motorları çalıştır.
2. Yanlış Koşul HatasıKarar adımındaki mantık işaretinin veya eşik değerinin ters yazılmasıdır.Eğer Işık > 500 ise lambayı yak
(Bu yazılırsa sokak lambası gündüz yanar, gece söner!)
Eğer Işık < 200 ise lambayı yak
(Karanlık koşulu küçük işaretiyle ifade edilmelidir).
3. Eksik Adım HatasıAlgoritmanın can alıcı bir ara adımının unutulmasıdır.Engeli görünce motorları durdur. (Ama yeni bir yöne dönme komutu verilmediği için robot engelin önünde sonsuza kadar kilitlenip bekler!)Motorları durdur ➔ 1 sn geri git ➔ Sağa 90 derece dön ➔ İlerlemeye devam et.
4. Sonsuz Döngü HatasıÇıkış koşulu sağlanamayan bir döngünün içinde programın donup kalmasıdır."Butona basılana kadar bekle" komutunda buton bozuksa veya okunmuyorsa robot hiçbir zaman sonraki adıma geçemez.Döngülere zaman aşımı (ör. 5 saniye içinde basılmazsa devam et) güvenlik şartı eklemek.

4) Vaka İncelemesi: Can'ın Çizgi İzleyen Robotu

Sitemizin robotik atölyesindeki öğrencimiz Can, okul turnuvası için iki sensörlü bir çizgi izleyen robot tasarladı:

🐞 Can'ın Yaşadığı Problem (1. ve 2. Aşama):
Can robotunu test pistine koydu. Robot düz çizgide gayet dengeli ilerliyor; ancak 90 derecelik keskin viraja geldiğinde pistin dışına savruluyor.
• Soru: Can hemen robotu parçalamalı veya çöpe mi atmalıdır?
• Doğru Yaklaşım: Hayır! Düz çizgide gittiğine göre motorlar, pil ve kontrol kartı sağlamdır. Sorun robotun tamamında değil; sadece keskin dönüş karar adımındadır.
🔍 Hata Ayıklama ve Çözüm (3, 4 ve 5. Aşama):
1) İnceleme: Can akış şemasını açtı. Viraj şartında: "Sağ sensör siyahı görünce sol motoru %100 çalıştır, sağ motoru %50 çalıştır" yazıyordu. Keskin virajda %50 hız robotun dönmesine yetmiyor, savuruyordu.
2) Düzeltme: Can bu bloğu güncelledi: "Sağ sensör siyahı görünce sol motoru %80 çalıştır, sağ motoru tamamen durdur (hız %0)".
3) Tekrar Test: Robotu tekrar piste koydu. Robot keskin virajı tam merkezinde başarıyla döndü!

5) Sınav Tarzı Örnek Sorular ve Çözümleri

⚠️ Örnek Soru 1: Ayşe, akıllı sera projesi için hazırladığı sulama algoritmasını test etmek istemektedir. Ayşe'nin algoritmanın hem sulama yaptığını hem de gereksiz sulama yapmadığını kanıtlayabilmesi için sisteme vermesi gereken en doğru iki örnek girdi (test case) ne olmalıdır?
A) İki kez kuru toprak değeri vermek
B) Biri %10 nem (çok kuru), diğeri %80 nem (çok ıslak) olan iki zıt toprak nem değeri vermek
C) Sadece hava sıcaklığını ölçmek
D) Sisteme hiç sensör bağlamadan motoru çalıştırmak
Cevap: B) Biri çok kuru (%10), diğeri çok ıslak (%80) iki zıt girdi vermek.
Çünkü iyi bir test süreci algoritmanın hem koşul sağlandığında çalıştığını (%10 nemde su motorunu açmalı) hem de koşul sağlanmadığında sistemi kapalı tuttuğunu (%80 nemde sulama yapmamalı) doğrulamalıdır.
➕ Örnek Soru 2: Bir otonom yük taşıma robotu, koridorda yürürken karşısına insan çıktığında durmakta; ancak insan yoldan çekildikten sonra tekrar harekete geçmemektedir. Bu robottaki hatanın sebebi nedir ve nasıl ayıklanır?
Cevap:
Hata Sebebi (Eksik Adım / Döngü Eksikliği): Algoritmaya "İnsan görünce dur" komutu eklenmiş; fakat insan çekildikten sonra sensörü yeniden kontrol edip motorları tekrar çalıştıracak bir sürekli döngü (başa dönme oku) unutulmuştur.
Hata Ayıklama: Durma adımından sonra akış oku tekrar "Mesafe Sensörünü Oku" adımına bağlanarak sistem sürekli döngüye sokulmalıdır.

6) 4. Hafta Özeti ve Altın İlkeler

  • Hatasız yazılım olmaz, test edilmemiş yazılım olur: Bir algoritma ne kadar özenli yazılırsa yazılsın mutlaka zıt örnek girdilerle test edilmelidir.
  • Hata ayıklama bir dedektifliktir: Robot çalışmadığında panik yapılmaz; sıra, koşul, eksik adım ve döngü ihtimalleri tek tek incelenir.
  • 5 Adımlı Döngü: Girdi Ver ➔ Çıktıyı Gözle ➔ Hatayı Bul ➔ Düzelt ➔ Tekrar Test Et!
  • Tekrar test şarttır: Düzeltilen her adımdan sonra sistemin kararlılığı doğrulanmadan proje tamamlanmış sayılmaz.

Dersi BlocKodlama ile işleyin.

Kazanım bazlı interaktif içerikler, Türkçe blok kodlama editörü Dizge ve sınav merkezi tek platformda.