Bloky specifické pro robota#

Zavedení#

Hrdinský robot Flop obsahuje sací motor, ramenní motor a kamerový senzor IQ AI.

Všechny standardní bloky VR kódu VEX jsou k dispozici pro použití na hřišti IQ 26-27 Level Up.

Níže je uveden seznam všech dostupných bloků specifických pro roboty:

Pohyb – Pohybujte a sledujte motory robota.

AI Vision – Zachycujte a analyzujte objekty pomocí senzoru IQ AI Vision.

  • Akce

    • get object data – Zachytí data pro konkrétní podpis, například detekovanou klasifikaci umělé inteligence.

  • Nastavení

  • Hodnoty

    • objekt existuje - Vrací, zda byla detekována nějaká klasifikace.

    • objekt je – Vrací, zda byla detekována specifická klasifikace.

    • objekt je AprilTag – Vrátí, zda detekovaný objekt je AprilTag odpovídající specifickému ID.

    • počet_objektů – Vrátí, kolik objektů bylo detekováno.

    • vlastnost objektu - Vrací šířku, výšku, střed X, střed Y, původ X nebo původ Y.

Příklady na této stránce používají výchozí počáteční pozici hřiště.

Pohyb#

Flop používá sací motor k sběru a vyhazování herních prvků. Motor ramene rameno zvedá a spouští.

Každý motor má své vlastní možnosti směru. Názvy směrů popisují, jak se motor pohybuje při Flopu.

Akce#

rotační motor#

Blok spin motor roztáčí motor donekonečna v jednom ze dvou směrů. Motor se bude otáčet, dokud nedostane další akci, například se roztočí jiným směrem nebo se zastaví.

otáčet [IntakeMotor v] [přívod v]

Parametry

Popis

motor

Motor, který se má otáčet: IntakeMotor nebo ArmMotor.

směr

Směr otáčení motoru:

  • IntakeMotor — intake nebo outtake
  • ArmMotor — nahoru nebo dolů

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

rotační motor pro#

Blok spin motor for roztočí motor o určitou vzdálenost. Otáčení je relativní vzhledem k aktuální poloze motoru. Projekt počká, dokud se motor nedotočí, než se spustí další blok v zásobníku.

otáčet [ArmMotor v] [nahoru v] na (500) [stupně v] ▶

Parametry

Popis

motor

Motor, který se má otáčet: IntakeMotor nebo ArmMotor.

směr

Směr otáčení motoru:

  • IntakeMotor — intake nebo outtake
  • ArmMotor — nahoru nebo dolů

vzdálenost

Vzdálenost, o kterou se motor otočí. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla.

jednotka

Jednotka vzdálenosti: stupně nebo otáčky.

a nečekej

Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

otočte motor do požadované polohy#

Blok zásobníku spin motor to position roztočí motor do určité polohy.

Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Na začátku projektu je poloha motoru nastavena na 0 stupňů. Polohu motoru lze také nastavit pomocí bloku set motor position.

Hodnoty polohy jsou absolutní. To znamená, že směr otáčení závisí na aktuální poloze motoru.

Například pokud se motor spustí při 0 stupních a otočí se do polohy 720 stupňů, otočí se o dvě otáčky dopředu. Pokud se poté otočí do polohy 360 stupňů, otočí se o jednu otáčku dozadu, protože 360 ​​je menší než 720.

otáčet [ArmMotor v] na polohu (500) [stupně v] ▶

Parametry

Popis

motor

Motor, který se má otáčet: IntakeMotor nebo ArmMotor.

pozice

Hodnota polohy, do které se motor otočí. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla.

jednotka

Jednotka polohy: stupně nebo otáčky.

a nečekej

Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] na polohu (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

zastavit motor#

Zásobníkový blok zastavit motor zastaví vybraný motor.

zastavit [IntakeMotor v]

Parametry

Popis

motor

Motor, který se má zastavit: IntakeMotor nebo ArmMotor.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]
čekat (1) sekund
zastavit [IntakeMotor v]

Nastavení#

nastavená rychlost motoru#

Zásobníkový blok set motor velocity říká motoru, jak rychle se má otáčet. Vyšší procento způsobí, že se motor otáčí rychleji, a nižší procento způsobí, že se motor otáčí pomaleji.

Každý projekt začíná s tím, že se každý motor standardně otáčí rychlostí 50 %.

Poznámka: Vyšší rychlost způsobí, že se motor otáčí rychleji, ale může to být méně přesné. Nižší rychlost způsobí, že se motor otáčí pomaleji, ale může to být přesnější.

nastavit rychlost [IntakeMotor v] na [50] [% v]

Parametry

Popis

motor

Motor pro nastavení rychlosti: IntakeMotor nebo ArmMotor.

rychlost

Rychlost, s jakou se bude motor otáčet. Procenta používají celá čísla od 0 % do 100 %.

jednotka

Jednotka rychlosti: %.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
nastavit rychlost [IntakeMotor v] na [100] [% v]
otáčet [IntakeMotor v] [odběr v]

nastavení časového limitu motoru#

Blok zásobníku set motor timeout nastavuje, jak dlouho se bude motor pokoušet dokončit pohyb. Pokud motor nedokončí pohyb v tomto čase, přestane se snažit a přesune se k dalšímu bloku v zásobníku. Tím se zabrání tomu, aby se motor zasekl na určitém pohybu.

nastavit časový limit [ArmMotor v] na [1] sekund

Parametry

Popis

motor

Motor pro nastavení časového limitu: IntakeMotor nebo ArmMotor.

čas

Počet sekund, po které se motor může pokusit dokončit pohyb. Může se jednat o celé nebo desetinné číslo.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
nastavit časový limit [ArmMotor v] na [2] sekund
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

Pozice#

poloha motoru#

Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Blok hlášení polohy motoru hlásí aktuální polohu motoru.

Na začátku projektu je poloha motoru nastavena na 0 stupňů. Pokud se motor otočí o jednu celou otáčku dopředu, poloha bude 360 ​​stupňů neboli 1 otáčka. Pokud se motor otáčí opačným směrem, poloha bude záporná.

(poloha [ArmMotor v] v [stupně v])

Parametry

Popis

motor

Motor, který má hlásit polohu: IntakeMotor nebo ArmMotor.

jednotka

Jednotka pro hlášení polohy motoru ve stupních nebo otáčkách.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
dokud <(poloha [ArmMotor v] v [stupně v]) [math_less_than v] [360]>
otáčet [ArmMotor v] [nahoru v]
čekat (0.002) sekund
konec
zastavit [ArmMotor v]
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

nastavení polohy motoru#

Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Blok zásobníku set motor position změní aktuální polohu motoru na novou hodnotu.

Například pokud se motor otočil o 180 stupňů, nastavení polohy na 0 stupňů resetuje tuto polohu ze 180 na 0 stupňů. Motor se pak může otáčet do pozic na základě této nové hodnoty.

nastavit polohu [ArmMotor v] na (0) [stupně v]

Parametry

Popis

motor

Motor pro nastavení polohy: IntakeMotor nebo ArmMotor.

pozice

Hodnota pozice, která se má nastavit. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla.

jednotka

Jednotka polohy: stupně nebo otáčky.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
nastavit polohu [ArmMotor v] na [0] [stupně v]
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

Hodnoty#

motor je hotový#

Logický blok motor je hotový hlásí, zda se motor dokončil. To lze použít k řízení načasování dalších funkcí na základě pohybu motoru.

  • True – Motor se roztočil.

  • Nepravda — Motor se stále točí.

Tento blok spolupracuje s následujícími bloky Motion, které mají parametr a nečekat: spin motor for a spin motor to position.

<[ArmMotor v] dokončen?>

Parametry

Popis

motor

Motor, který má hlásit, zda je dokončen jeho pohyb: IntakeMotor nebo ArmMotor.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] na polohu (1) [otáčky v] ◀ a nečekat
čekat dokud <[ArmMotor v] dokončen?>
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]

motor se točí#

Logický blok motor se točí hlásí, zda se motor točí. To lze použít k řízení načasování dalších chování na základě pohybu motoru.

  • Pravda – Motor se točí.

  • Nepravda – Motor se netočí.

Tento blok spolupracuje s následujícími bloky Motion, které mají parametr a nečekat: spin motor for a spin motor to position.

<[IntakeMotor v] se otáčí?>

Parametry

Popis

motor

Motor, u kterého se má hlásit, zda se otáčí: IntakeMotor nebo ArmMotor.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]
čekat dokud <ne <[IntakeMotor v] se otáčí?>>
zastavit [IntakeMotor v]

rychlost motoru#

Blok hlášení motor rate hlásí, jak rychle se motor otáčí, v procentech od -100 % do 100 %.

(rychlost [IntakeMotor v] v [% v] :: custom-motion)

Parametry

Popis

motor

Motor, který má hlásit rychlost: IntakeMotor nebo ArmMotor.

jednotka

Jednotka pro hlášení rychlosti motoru v: %.

Příklad

při spuštění
[Score a Bean Bag in a Blue Goal.]
otočit [vlevo v] o (90) stupňů ▶
jet [dopředu v] na (35) [palce v] ▶
otočit [vpravo v] o (90) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (1) [otáčky v] ▶
jet [dopředu v] na (40) [palce v] ▶
otáčet [IntakeMotor v] [odběr v]
čekat [0.2] sekund
tisk (rychlost [IntakeMotor v] v [% v] :: custom-motion) ▶

Vize umělé inteligence#

Akce#

získat data objektu#

Blok get object data filtruje data z rámce IQ AI Vision Sensor do jediného podpisu – uloženého popisu něčeho, co senzor dokáže rozpoznat, například herního prvku na hřišti.

Datová sada ukládá objekty seřazené od největší po nejmenší podle šířky, počínaje indexem 0. Vlastnosti každého objektu lze zobrazit pomocí bloku object property. Pokud nejsou detekovány žádné odpovídající objekty, vrátí se prázdná datová sada.

Blok zásobníku dat objektu get.#
získat data [AI klasifikace v] z [AIVision v]

Parametr

Popis

podpis

Filtruje datovou sadu tak, aby zahrnovala pouze data daného podpisu. Dostupné podpisy jsou:

  • Klasifikace AI – Detekuje červený fazolový vak, modrý fazolový vak a žlutý fazolový vak.
  • AprilTags – Detekuje ID AprilTag nalezená po stranách cílů.

Příklad

při spuštění :: hat events
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Find and face the nearest red Bean Bag.]
nastavit rychlost otáčení na (30) [% v]
nastavit [object_counter v] na [1]
získat data [AI klasifikace v] z [AIVision v]
opakovat (počet objektů [AIVision v])
nastavit položku objektu [AIVision v] na (object_counter)
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
if <(objekt [AIVision v] [středX v]) < (140)> then
otočit [vlevo v]
else if <([AIVision v] object [centerX v]) > (180)> then
otočit [vpravo v]
jinak
zastavit jízdu
konec
přerušit
konec
změnit [object_counter v] o [1]
konec

Nastavení#

položka nastaveného objektu#

Blok set object item nastavuje, která položka v datové sadě se má použít.

Blok zásobníku položek objektu set.#
nastavit položku objektu [AIVision v] na [1]

Parametry

Popis

položka

Číslo položky v datové sadě, která se má použít.

Příklad

při spuštění :: hat events
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Find the index of the nearest red Bean Bag.]
nastavit [object_counter v] na [1]
získat data [AI klasifikace v] z [AIVision v]
opakovat (počet objektů [AIVision v])
nastavit položku objektu [AIVision v] na (object_counter)
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
tisk (spojit [Nearest Red Bean Bag is ] (object_counter)) ▶
přerušit
jinak
změnit [object_counter v] o [1]
konec
konec

Hodnoty#

objekt existuje#

Blok object exists vrací booleovskou hodnotu, která indikuje, zda je v datové sadě detekován nějaký objekt.

  • True – Datová sada obsahuje detekovaný objekt.

  • False – Datová sada neobsahuje žádné detekované objekty.

Objekt AI Vision existuje jako booleovský blok.#
<objekt [AIVision v] existuje?>

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Turn until a Bean Bag is detected.]
nastavit rychlost otáčení na (30) [% v]
otočit [vpravo v]
opakovat dokud <objekt [AIVision v] existuje?>
získat data [AI klasifikace v] z [AIVision v]
konec
zastavit jízdu

objekt je#

Blok object is vrací booleovskou hodnotu, která označuje, zda detekovaný objekt odpovídá specifické klasifikaci.

  • True – Položka v datové sadě je daný objekt.

  • False – Položka v datové sadě není daný objekt.

Objekt je booleovský blok.#
<objekt [AIVision v] je [RedBeanBag v]?>

Parametr

Popis

objekt

S jakým objektem porovnat položku: RedBeanBag, BlueBeanBag nebo YellowBeanBag.

Příklad

při spuštění :: hat events
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Find the index of the nearest red Bean Bag.]
nastavit [object_counter v] na [1]
získat data [AI klasifikace v] z [AIVision v]
opakovat (počet objektů [AIVision v])
nastavit položku objektu [AIVision v] na (object_counter)
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
tisk (spojit [Nearest Red Bean Bag is ] (object_counter)) ▶
přerušit
jinak
změnit [object_counter v] o [1]
konec
konec

objekt je AprilTag#

Blok object is AprilTag vrací booleovskou hodnotu, která označuje, zda detekovaný objekt je AprilTag, který odpovídá specifickému ID.

  • True – Detekovaný objekt je AprilTag s daným ID.

  • False – Detekovaný objekt není AprilTag s daným ID.

Objekt je booleovský blok AprilTag.#
<objekt [AIVision v] je AprilTag [0]?>

Parametr

Popis

ID značky AprilTag

Číslo ID, které se má porovnat s detekovanou hodnotou AprilTag.

Příklad

při spuštění :: hat events
[Stop when you see the Red Goal!]
nastavit rychlost otáčení na (30) [% v]
otočit [vpravo v]
opakovat dokud <objekt [AIVision v] je AprilTag [1]?>
získat data [AprilTags v] z [AIVision v]
konec
zastavit jízdu
tisk [Found the Red Goal!] ▶

počet objektů#

Blok object count vrací počet detekovaných objektů v datové sadě jako celé číslo.

Blok reportéru počtu objektů.#
(počet objektů [AIVision v])

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Print how many Bean Bags are detected.]
získat data [AI klasifikace v] z [AIVision v]
tisk (počet objektů [AIVision v]) ▶

vlastnost objektu#

Po použití bloku get object data je ke každému objektu uloženému šest vlastností.

Blok reportéru vlastností objektu AI Vision.#
(objekt [AIVision v] [šířka v])

Všechny hodnoty vlastností popisují polohu a velikost detekovaného objektu v zobrazení senzoru IQ AI Vision v okamžiku použití bloku get object data. Tyto hodnoty se měří v pixelech na základě rozlišení senzoru 320 x 240 pixelů.

Parametr

Popis

vlastnictví

Kterou vlastnost detekovaného objektu použít: šířka, výška, středX, středY, počátekX nebo počátekY.

šířka#

Vlastnost width udává šířku detekovaného objektu v pixelech jako celé číslo od 1 do 320.

Blok reportéru vlastností objektu AI Vision s vybranou šířkou.#
(objekt [AIVision v] [šířka v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Approach the Bean Bag, then pick it up.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
if <([AIVision v] object [width v]) > (180)> then
jet [dopředu v] na [50] [mm v] ▶
otáčet [IntakeMotor v] [přívod v] na [90] [stupně v] ▶
přerušit
jinak
jet [dopředu v]
konec
konec
konec
konec
výška#

Vlastnost height udává výšku detekovaného objektu v pixelech jako celé číslo od 1 do 240.

Blok reportéru vlastností objektu AI Vision s vybranou výškou.#
(objekt [AIVision v] [výška v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Approach the Bean Bag, then pick it up.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
if <([AIVision v] object [height v]) > (100)> then
jet [dopředu v] na [50] [mm v] ▶
otáčet [IntakeMotor v] [přívod v] na [90] [stupně v] ▶
přerušit
jinak
jet [dopředu v]
konec
konec
konec
konec
centrumX#

Vlastnost centerX udává souřadnici x středu detekovaného objektu v pixelech jako celé číslo od 0 do 320.

Blok reportéra vlastností objektu AI Vision s vybraným centremX.#
(objekt [AIVision v] [středX v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Steer to keep the Bean Bag centered while approaching.]
nastavit rychlost otáčení na (30) [% v]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
if <(objekt [AIVision v] [středX v]) < (140)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (150) [mm v] ▶
otáčet [IntakeMotor v] [přívod v]
přerušit
konec
konec
konec
konec
centrumY#

Vlastnost centerY udává souřadnici y středu detekovaného objektu v pixelech jako celé číslo od 0 do 240.

Blok reportéra vlastností objektu AI Vision s vybraným středem Y.#
(objekt [AIVision v] [středY v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Print the y-position of the Bean Bag.]
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
tisk (objekt [AIVision v] [středY v]) ▶
konec
konec
původX#

Vlastnost originX udává souřadnici x levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 320.

Blok reportéru vlastností objektu AI Vision s vybraným originX.#
(objekt [AIVision v] [počátekX v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Steer to keep the left edge centered.]
nastavit rychlost otáčení na (30) [% v]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
if <(objekt [AIVision v] [počátekX v]) < (100)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (150) [mm v] ▶
otáčet [IntakeMotor v] [přívod v]
přerušit
konec
konec
konec
konec
původY#

Vlastnost originY udává souřadnici y levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 240.

Blok reportéru vlastností objektu AI Vision s vybraným originY.#
(objekt [AIVision v] [počátekY v])

Příklad

při spuštění
[Drop the preloaded Bean Bag.]
otáčet [IntakeMotor v] [odběr v] na (180) [stupně v] ▶
otočit [vlevo v] o (90) stupňů ▶
[Print the y-position of the Bean Bag's top edge.]
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
nastavit položku objektu [AIVision v] na [1]
pokud <objekt [AIVision v] je [RedBeanBag v]?> pak
tisk (objekt [AIVision v] [počátekY v]) ▶
konec
konec