Skip to main content

Výzva pro vizuální data - C++

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele výzvy Vision Data

Účelem soutěže Vision Data Challenge je zajistit, aby studenti pochopili data shromážděná ze snímku vizuálního senzoru a jak se vypočítávají středové hodnoty X a Y. Vaši studenti by také měli toto cvičení dokončit s pochopením toho, jak lze tato data interpretovat (např. hodnotu středové osy X lze použít k určení polohy objektu vzhledem ke středovému bodu robota) a s osvědčenými postupy pro pojmenovávání objektů při konfiguraci.

Snímek kamerového senzoru z konfigurace ukazující ruku držící žlutý převodový stupeň. Na ozubeném kole je čtvercová překryvná vrstva s výše uvedenými údaji: Yellow Box, X 90, Y 62, W 102, H 98.

Dokončete výzvu Vision Data Challenge zodpovězením otázek a vyplněním chybějících údajů ve vašem technickém notebooku.

  1. Který z těchto pokynů byl použit k pořízení snímku výše?
    1. Vision5.takeSnapshot(Vision5__REDBOX);
    2. Vision5.takeSnapshot(Vision5__YELLOWBOX);
  2. Vyplňte tyto hodnoty:

    Příkazy kamerového senzoru uvedené dole na levé straně s prázdnými poli pro vyplnění jejich hodnot. Shora dolů jsou bloky uvedeny: počet objektů > 0, počet objektů, střed objektu 0 x, střed objektu 0 y, šířka objektu 0 a výška objektu 0.

  3. Je YELLOWBOX vlevo nebo vpravo od středu robota?
  4. Je YELLOWBOX nad nebo pod středovým bodem robota?
  5. ŽLUTÁ SKŘÍŇKA jeNEnejlepší název pro tento objekt, pokud chcete snadno rozpoznat, která barevná signatura je která. Které z nich je lepší jméno? Proč?
    1. YELLOWGEAR
    2. YELLOWCUBE

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele - odpovědí

Odpovědi studentů lze prodiskutovat ve třídě a/nebo si můžete projít jejich technické sešity, abyste se ujistili, že aktivitu úspěšně dokončili.

  1. Vision5.takeSnapshot(Vision5__YELLOWBOX);
  2. Dokončená data zarovnaná s příkazy VEXcode. Odpovědi se čtou v pořadí: počet objektů > 0 = Pravda; počet objektů = 1; střed objektu 0 x = 141; střed objektu 0 y = 111; šířka objektu 0 = 102; výška objektu 0 = 98.
  3. ŽLUTÝ BOX je mírně vlevo od středového bodu robota, ale pouze o rozdíl 16,5 pixelů (střed 157,5 - 141).
  4. ŽLUTÝ BOX je o něco níže než střed robota, ale pouze o rozdíl 5,5 pixelů (111 - střed 105,5).
  5. A. ŽLUTÝ OZUBENÍ

    Toto je lepší název, protože popisuje nejen barvu objektu, ale také jeho typ. Je to ozubené kolo,nebo krychle.

Ikona Rozšiřte si učení Rozšiřte si učení - Používejte instrukce pro snímání v rámci projektu

Nyní, když jsou některá data hlášená kamerovým senzorem lépe pochopena, by studenti mohli tyto instrukce pro snímání použít v rámci projektu. Dovolte jim, aby to prozkoumali.

void má 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("Nalezen červený objekt");
    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("Žádný červený objekt");
  }
}

Pokročilejší studenti mohou tyto instrukce použít v rámci projektu k rozhodování.

Drivetrain.drive(vpřed);
Vision5.takeSnapshot(Vision5__REDBOX);

if (Vision5.objectCount > 1 && Vision5.objects[0].centerX > 157.5) {
  Drivetrain.turnFor(vlevo, 90 stupňů);
} else {
  Drivetrain.turnFor(vpravo, 90 stupňů);
}