Skip to main content

Vizyon Veri Mücadelesi - C++

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Vizyon Veri Mücadelesinin Amacı

Vision Data Challenge'ın amacı, öğrencilerin Vision Sensor'un anlık görüntüsünden toplanan verileri ve merkez X ve Y değerlerinin nasıl hesaplandığını anlamalarını sağlamaktır. Öğrencileriniz ayrıca bu laboratuvarı, söz konusu verilerin nasıl yorumlanabileceği (örneğin, merkez X değeri, nesnenin robotun merkez noktasına göre nerede olduğunu belirlemek için kullanılabilir) ve yapılandırma sırasında nesneleri adlandırma konusunda en iyi uygulamalar hakkında bir anlayışla tamamlamalıdır.

Vizyon Sensörü, sarı bir dişliyi tutan bir eli gösteren konfigürasyondan anlık görüntü. Dişlinin üzerinde yukarıda listelenen verilerle kare bir kaplama bulunur: Sarı Kutu, X 90, Y 62, W 102, H 98.

Soruları yanıtlayarak ve mühendislik defterinizdeki eksik verileri doldurarak Vision Data Challenge'ı tamamlayın.

  1. Yukarıdaki anlık görüntüyü almak için bu talimatlardan hangisi kullanılmıştır?
    1. Vision5.takeSnapshot(Vision5__REDBOX);
    2. Vision5.takeSnapshot(Vision5__ YELLOWBOX);
  2. Şu değerleri girin:

    Görüş Sensörü komutları, değerleriyle doldurmak için sol tarafta boş kutularla listelenmiştir. Bloklar yukarıdan aşağıya doğru listelenmiştir: Nesne sayısı > 0, nesne sayısı, nesne 0 merkez x, nesne 0 merkez y, nesne 0 genişlik ve nesne 0 yükseklik.

  3. YELLOWBOX robotun merkez noktasının solunda mı yoksa sağında mı?
  4. YELLOWBOX robotun merkez noktasının üstünde veya altında mı?
  5. Hangi renk imzasının hangisi olduğunu kolayca anlamak istiyorsanız bu nesneye verebileceğiniz en iyi isim SARI KUTUDURNOT Hangisi daha iyi bir isim? Neden?
    1. YELLOWGEAR
    2. YELLOWCUBE

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu - Cevap

Öğrencilerin cevapları sınıfça tartışılabilir ve/veya aktiviteyi başarıyla tamamladıklarından emin olmak için mühendislik defterlerini inceleyebilirsiniz.

  1. Vision5.takeSnapshot(Vision5__YELLOWBOX);
  2. VEXcode komutlarına göre hizalanmış tamamlanmış veriler. Cevaplar, sırasıyla, nesne sayısı > 0 = Doğru; nesne sayısı = 1; nesne 0 merkez x = 141; nesne 0 merkez y = 111; nesne 0 genişlik = 102; nesne 0 yükseklik = 98 şeklinde okunur.
  3. YELLOWBOX robotun merkez noktasının biraz solundadır ancak sadece 16,5 piksel farkla (merkez 157,5 - 141).
  4. YELLOWBOX, robotun merkez noktasından biraz daha aşağıdadır ancak yalnızca 5,5 piksellik bir farkla (111 - merkez 105,5).
  5. A. SARI DİŞLİ

    Bu daha iyi bir isimdir çünkü sadece nesnenin rengini değil aynı zamanda türünü de tanımlar. Bu bir dişli,değilbir kutu veya küp.

Öğrenmenizi Genişletin simgesi Öğreniminizi Genişletin - Bir Projede Algılama Talimatlarını Kullanın

Artık Görme Sensörü'nün bildirilen verilerinden bazıları daha iyi anlaşıldığına göre, öğrenciler bu Algılama Talimatlarını bir projede kullanmak isteyebilirler. Bunu yaparken keşfetmelerine izin verin.

void has RedCallback() {

  Brain.Screen.setFont(mono40);
  Brain.Screen.clearLine(3);
  Brain.Screen.setCursor(3, 1);
  Vision5.takeSnapshot(Vision5__REDBOX);

  if (Vision5.objectCount > 0) {
    Brain.Screen.print("Kırmızı Nesne Bulundu");
    Brain.Screen.newLine();
    Brain.Screen.print(Vision5.objectCount);
    Brain.Screen.newLine();
    Brain.Screen.print(Vision5.objects[0].centerX);
    Brain.Screen.print(Vision5.objects[0].centerY);
    Brain.Screen.print(Vision5.objects[0].width);
    Brain.Screen.print(Vision5.objects[0].height);

  } else {
    Brain.Screen.print("Kırmızı Nesne Yok");
  }
}

Daha ileri seviyedeki öğrenciler, karar almak için bir proje içerisinde bu talimatları kullanabilirler.

Drivetrain.drive(ileri);
Vision5.takeSnapshot(Vision5__REDBOX);

eğer (Vision5.objectCount > 1 && Vision5.objects[0].centerX > 157.5) {
  Drivetrain.turnFor(sol, 90, derece);
} değilse {
  Drivetrain.turnFor(sağ, 90, derece);
}