Bloky specifické pro robota#

Zavedení#

Hrdinský robot Flex obsahuje motor ClawMotor, motor ArmMotor, senzor AI Vision, senzor vzdálenosti a senzor GPS (Game Positioning System).

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

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

Pohon – Pohyb a otáčení robota.

Pohyb – Pohybujte a sledujte motory robota.

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

  • Akce

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

  • Nastavení

  • Hodnoty

Snímání – Využijte různé senzory robota.

  • Vzdálenost

  • GPS

    • Pozice GPS – Vrátí pozici X nebo Y ze senzoru GPS.

    • GPS směr – Vrátí směr, kterým se robot aktuálně nachází.

Příklady na této stránce používají výchozí pozici C z kontrolního seznamu před zápasem na hřišti.

Hnací ústrojí#

Pohon řídí, jak se VR robot řídí a zatáčí. Pohon se může pohybovat vpřed nebo vzad, zatáčet doleva nebo doprava, otáčet se do směru a sledovat svou rotaci.

Akce#

řídit#

Blok drive pohybuje robotem vpřed nebo vzad donekonečna. Robot se bude pohybovat, dokud nedostane další akci, například otočení nebo zastavení.

jet [dopředu v]

Parametry

Popis

směr

Směr pohybu robota: vpřed nebo vzad.

Příklad

při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
čekat (0.5) sekund
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

jet pro#

Blok drive for pohybuje robotem vpřed nebo vzad o určitou vzdálenost. Projekt počká, dokud se robot nedokončí s pohybem, než se spustí další blok v zásobníku.

jet [dopředu v] na (200) [mm v] ▶

Parametry

Popis

směr

Směr pohybu robota: vpřed nebo vzad.

vzdálenost

Vzdálenost, kterou robot urazí. Může to být celé číslo nebo desetinné číslo.

jednotka

Jednotka vzdálenosti: mm (milimetry) nebo palce

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í :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

otočit#

Blok turn otáčí robota doleva nebo doprava navždy. Robot se bude otáčet, dokud nedostane další akci, například jízdu nebo zastavení.

otočit [vpravo v]

Parametry

Popis

směr

Směr otáčení robota: doleva nebo doprava.

Příklad

při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v]
čekat (0.78) sekund
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

otočit se pro#

Blok turn for otočí robota doleva nebo doprava o určitý počet stupňů. Otočení je relativní vzhledem k aktuální poloze robota. Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.

otočit [vpravo v] o (90) stupňů ▶

Parametry

Popis

směr

Směr otáčení robota: doleva nebo doprava.

úhel

Počet stupňů, o které se robot otočí. Může to být celé číslo nebo desetinné číslo.

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í :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

otočit k nadpisu#

Směr je směr, kterým je robot otočen, měřený ve stupních. Blok zásobníku otoč se do směru otočí robota tak, aby směřoval v určitém směru, od -359 do 359 stupňů. Robot se otočí nejkratším směrem, aby dosáhl cílového směru.

Výchozí směr je 0 stupňů.

Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.

otočit na kurz (90) stupňů ▶

Parametry

Popis

záhlaví

Směr, kterým by se měl robot otočit, od -359 do 359 stupňů.

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í :: hat events
[Score a Pin in a Neutral Goal.]
otočit na kurz (-110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

otočit se k rotaci#

Blok zásobníku otoč se na rotaci otočí robota do určité rotace.

Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Rotaci lze také nastavit pomocí bloku set drive rotation.

Hodnoty rotace jsou absolutní. To znamená, že směr otáčení závisí na aktuální rotaci robota. Otočení doprava rotaci zvyšuje a otáčení doleva snižuje.

Například pokud robot začne na 0 stupních a otočíte se o 720 stupňů, otočí se dvakrát doprava. Pokud se poté otočíte o 360 stupňů, otočí se jednou doleva, protože 360 ​​je menší než 720.

Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.

otočit na rotaci (90) stupňů ▶

Parametry

Popis

otáčení

Hodnota rotace ve stupních, na kterou se robot otočí. Může to být celé číslo nebo desetinné číslo.

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í :: hat events
[Score a Pin in a Neutral Goal.]
otočit na rotaci (-110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

přestaň řídit#

Blok stop driving zastaví pohyb robota.

zastavit jízdu

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
čekat (0.5) sekund
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

Nastavení#

nastavená rychlost pohonu#

Blok set drive velocity říká robotovi, jak rychle má jet. Vyšší procento způsobí, že robot jede rychleji, a nižší procento, že robot jede pomaleji.

Každý projekt začíná s robotem, který se standardně pohybuje rychlostí 50 %.

Poznámka: Vyšší rychlost zrychluje pohyb robota, ale může být méně přesný. Nižší rychlost zpomaluje pohyb robota, ale může být přesnější.

nastavit rychlost jízdy na (50) [% v]

Parametry

Popis

rychlost

Rychlost jízdy od 0 % do 100 %.

jednotka

Jednotka rychlosti: %

Příklad

při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
nastavit rychlost jízdy na (100) [% v]
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

nastavená rychlost otáčení#

Blok set turn velocity říká robotovi, jak rychle se má otáčet. Vyšší procento způsobí, že se robot bude otáčet rychleji, a nižší procento způsobí, že se robot bude otáčet pomaleji.

Každý projekt začíná s robotem, který se standardně otáčí rychlostí 50 %.

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

nastavit rychlost otáčení na (50) [% v]

Parametry

Popis

rychlost

Rychlost otáčení od 0 % do 100 %.

jednotka

Jednotka rychlosti: %

Příklad

při spuštění :: hat events
[Turn to face the Neutral Goal faster.]
nastavit rychlost otáčení na (100) [% v]
otočit [vlevo v] o (110) stupňů ▶

nastavit směr jízdy#

Směr je směr, kterým je robot otočen, měřený ve stupních. Blok zásobníku set drive heading změní aktuální směr robota na novou hodnotu směru.

Například pokud se robot otočil čelem doprava, nastavením směru na 0 stupňů se tato poloha směřující doprava stane novými 0 stupni. Robot se pak může na základě tohoto nového směru otáčet do jiných pozic.

nastavit kurz jízdy na (0) stupňů

Parametry

Popis

záhlaví

Hodnota směru ve stupních, která se má nastavit pro robota.

Příklad

při spuštění :: hat events
[Make facing the Neutral Goal the new heading.]
nastavit kurz jízdy na (110) stupňů
otočit na kurz (0) stupňů ▶

nastavení otáčení pohonu#

Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Blok zásobníku set drive rotation změní aktuální rotaci robota na novou hodnotu.

Například pokud robot provedl dvě plné otáčky doprava, jeho hodnota rotace bude 720 stupňů. Nastavením rotace na 0 stupňů se tato hodnota resetuje ze 720 na 0 stupňů. Robot se pak může otáčet na základě této nové hodnoty.

nastavit rotaci jízdy na (0) stupňů

Parametry

Popis

otáčení

Hodnota rotace ve stupních, která se má nastavit pro robota. Může to být celé číslo nebo desetinné číslo.

Příklad

při spuštění :: hat events
[Make facing the Neutral Goal the new rotation.]
nastavit rotaci jízdy na (110) stupňů
otočit na rotaci (0) stupňů ▶

nastavit časový limit disku#

Blok set drive timeout nastavuje, po kolik sekund se robot pokusí dokončit pohyb. Pokud robot 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 robot zasekl na pohybu.

nastavit časový limit jízdy na (1) sekund

Parametry

Popis

čas

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

Příklad

při spuštění :: hat events
[Turn to face the Neutral Goal.]
nastavit časový limit jízdy na (0.8) sekund
otočit [vlevo v] o (180) stupňů ▶

Hodnoty#

jízda je hotová#

Logický blok drive is done hlásí, zda robot dokončil pohyb. To lze použít k řízení načasování dalších chování na základě pohybu robota.

  • Pravda – Robot dokončil pohyb.

  • Nepravda — Robot se stále pohybuje.

Tento blok spolupracuje s bloky hnacího ústrojí, které mají parametr a nečekat.

<jízda dokončena?>

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ◀ a nečekat
čekat dokud <jízda dokončena?>
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

pohon se pohybuje#

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

  • Pravda – Robot se pohybuje.

  • Nepravda — Robot se nepohybuje.

Tento blok spolupracuje s bloky hnacího ústrojí, které mají parametr a nečekat.

<jede?>

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Raise the Arm once stopped near the Goal.]
otočit [vlevo v] o (110) stupňů ▶
jet [dopředu v] na (25) [palce v] ◀ a nečekat
dokud <jede?>
čekat (0.005) sekund
konec
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶

směr jízdy#

Směr otáčení je směr, kterým je robot otočen, měřený ve stupních. Blok hlášení směrování otáčení hlásí tento směr od 0 do 359,99 stupňů.

Výchozí směr robota je 0 stupňů.

(kurz jízdy ve stupních)

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Turn to the Goal, then show heading.]
otočit [vpravo v] o (450) stupňů ▶
tisk (kurz jízdy ve stupních) na obrazovce ◀ a přesunout kurzor na další řádek

otáčení pohonu#

Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Blok hlášení rotace pohonu hlásí aktuální rotaci robota.

Otočení doprava zvětšuje rotaci a otočení doleva ji snižuje. Například provedení dvou celých otoček doprava bude znamenat rotaci o 720 stupňů.

(rotace jízdy ve stupních)

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Spin to find a Pin, then show rotation.]
otočit [vpravo v] o (450) stupňů ▶
tisk (rotace jízdy ve stupních) na obrazovce ◀ a přesunout kurzor na další řádek

rychlost pohonu#

Blok drive velocity hlásí, jak rychle robot jede.

(rychlost jízdy v [% v])

Parametry

Popis

jednotka

Jednotka rychlosti: %

Příklad

při spuštění :: hat events
[Show speed while driving to the Goal.]
jet [dopředu v] na (150) [mm v] ▶
tisk (rychlost jízdy v [% v]) na obrazovce ◀ a přesunout kurzor na další řádek

Pohyb#

Flex používá ArmMotor ke zvedání a spouštění ramene a ClawMotor k otevírání a zavírání čelistí.

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

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 [ArmMotor v] [nahoru v]

Parametry

Popis

motor

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

směr

Směr otáčení motoru:

  • Pažní motor — nahoru nebo dolů
  • Drápavý motor — otevřít nebo zavřít

Příklad

při spuštění
[Raise the Arm before driving toward a Pin.]
otáčet [ArmMotor v] [nahoru v]
čekat (1) sekund
zastavit [ArmMotor 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 (90) [stupně v] ▶

Parametry

Popis

motor

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

směr

Směr otáčení motoru:

  • Pažní motor — nahoru nebo dolů
  • Drápavý motor — otevřít nebo zavřít

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í
[Raise the Arm to carry the Pin to the Goal.]
otáčet [ArmMotor v] [nahoru v] na (800) [stupně 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 ArmMotoru nastavena na 0 stupňů. ClawMotor je výjimkou – začíná na 467 stupních (plně zavřeno). 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 (90) [stupně v] ▶

Parametry

Popis

motor

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

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í
[Raise the Arm, then release the Pin.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

zastavit motor#

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

zastavit [ArmMotor v]

Parametry

Popis

motor

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

Příklad

při spuštění
[Raise the Arm partway to hold the Pin.]
otáčet [ArmMotor v] [nahoru v]
čekat (1) sekund
zastavit [ArmMotor 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 [ArmMotor v] na [50] [% v]

Parametry

Popis

motor

Motor pro nastavení rychlosti: ArmMotor nebo ClawMotor.

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í
[Raise the Arm fast to release the Pin.]
nastavit rychlost [ArmMotor v] na [100] [% v]
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně 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: ArmMotor nebo ClawMotor.

č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 Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
nastavit časový limit [ArmMotor v] na [1] sekund
otáčet [ArmMotor v] [nahoru v] na (1800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně 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 ArmMotoru nastavena na 0 stupňů. ClawMotor je výjimkou – začíná na 467 stupních (plně zavřeno). Pokud se motor otočí o jednu celou otáčku dopředu, poloha se zvýší. Pokud se motor otáčí opačným směrem, poloha se sníží.

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

Parametry

Popis

motor

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

jednotka

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

Příklad

při spuštění
[Raise the Arm, then release the Pin.]
dokud <(poloha [ArmMotor v] v [stupně v]) < (800)>
otáčet [ArmMotor v] [nahoru v]
čekat (0.002) sekund
konec
zastavit [ArmMotor v]
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně 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: ArmMotor nebo ClawMotor.

pozice

Hodnota polohy, která se má nastavit pro motor. 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í
[Reset encoder, raise Arm, place Pin.]
nastavit polohu [ArmMotor v] na (0) [stupně v]
otáčet [ArmMotor v] na polohu (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně 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: ArmMotor nebo ClawMotor.

Příklad

při spuštění
[Raise the Arm while driving to the Goal.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.1) sekund
dokud <ne <[ArmMotor v] dokončen?>>
jet [dopředu v]
čekat (0.005) sekund
konec
zastavit jízdu

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.

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

Parametry

Popis

motor

Motor, který má hlásit, zda se otáčí: ArmMotor nebo ClawMotor.

Příklad

při spuštění
[Raise the Arm while driving to the Goal, then release the Pin.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.1) sekund
dokud <[ArmMotor v] se otáčí?>
jet [dopředu v] na (20) [mm v] ▶
konec
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

rychlost motoru#

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

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

Parametry

Popis

motor

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

jednotka

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

Příklad

při spuštění
[Show Arm Motor velocity while raising.]
nastavit rychlost [ArmMotor v] na [100] [% v]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.2) sekund
tisk (rychlost [ArmMotor v] v [% v] :: custom-motion) na obrazovce ◀ a přesunout kurzor na další řádek

Vize umělé inteligence#

Akce#

získat data objektu#

Blok get object data filtruje data z rámce 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 AI Vision 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 herní prvky RedBluePin, BlueYellowPin, RedYellowPin, YellowPin a Cup.
  • AprilTags – Detekuje ID AprilTag nalezená na hřišti.

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn to face the Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> 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
přerušit
konec
konec
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 AI Vision.#
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í
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
pokud <objekt [AIVision v] existuje?> pak
[If any AI Classification is detected, check if any of them are a specific game element.]
pokud <objekt [AIVision v] je [RedBluePin v]?> pak
tisk [RedBluePin detected.] ▶
jinak
tisk [No RedBluePin detected.] ▶
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í
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
pokud <objekt [AIVision v] existuje?> pak
tisk (počet objektů [AIVision v]) ◀ a přesunout kurzor na další řádek
konec

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ým konkrétním objektem.

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

Parametr

Popis

objekt

S jakým objektem porovnat položku:

  • ČervenáModráŠpendlík
  • ModráŽlutáŠpendlík
  • ČervenáŽlutáŠpendlík
  • ŽlutáŠpendlík
  • Hrnek

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
pokud <objekt [AIVision v] je [RedBluePin v]?> pak
tisk [RedBluePin detected.] ▶
jinak
tisk [No RedBluePin detected.] ▶
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í
[Report if AprilTag 3 is detected.]
získat data [AprilTags v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
pokud <objekt [AIVision v] je AprilTag [3]?> pak
tisk [That is 3!] ▶
jinak
tisk [That isn't 3!] ▶
konec
konec

počet objektů#

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

Blok zásobníku položek objektu Set AI Vision.#
(počet objektů [AIVision])

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
tisk (počet objektů [AIVision v]) ◀ a přesunout kurzor na další řádek
konec

vlastnost objektu#

Každý objekt (zobrazený níže) ukládá po použití bloku get object data šest vlastností, které jsou součástí každého objektu.

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 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í

Which property of the detected object to use:

šířka#

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

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na šířku.#
(objekt [AIVision v] [šířka v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [width v]) > (140)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec
výška#

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

Blok zásobníku vlastností objektu AI Vision s parametrem nastaveným na výšku.#
(objekt [AIVision v] [výška v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [height v]) > (200)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
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 zásobníku vlastností objektu AI Vision s parametrem nastaveným na centerX.#
(objekt [AIVision v] [středX v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn and approach the next Cup and Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <(objekt [AIVision v] [středX v]) < (140)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (25) [palce v] ▶
přerušit
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 zásobníku vlastností objektu AI Vision s parametrem nastaveným na centerY.#
(objekt [AIVision v] [středY v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [centerY v]) > (230)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
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 zásobníku vlastností objektu AI Vision s parametrem nastaveným na originX.#
(objekt [AIVision v] [počátekX v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn and approach the next Cup and Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <(objekt [AIVision v] [počátekX v]) < (100)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (25) [palce v] ▶
přerušit
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 zásobníku vlastností objektu AI Vision s parametrem nastaveným na originY.#
(objekt [AIVision v] [počátekY v])

Příklad

při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [originY v]) > (140)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec

Snímání#

Vzdálenost#

Vzdálenost nalezeného objektu#

Logický blok Vzdálenost nalezena při detekci objektu hlásí, zda senzor vzdálenosti aktuálně detekuje objekt do vzdálenosti 2000 mm.

  • True – Senzor vzdálenosti detekuje objekt.

  • Nepravda – Senzor vzdálenosti nedetekuje objekt.

<[FrontDistance v] našel objekt?>

Parametry

Popis

senzor vzdálenosti

Snímač vzdálenosti, který chcete použít. Vyberte si z dostupných snímačů vzdálenosti pro Flex.

Příklad

při spuštění :: hat events
[Turn until something is detected, then release the Pin.]
otočit [vpravo v]
čekat dokud <[FrontDistance v] našel objekt?>
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

vzdálenost objektu#

Blok hlášení vzdálenosti objektu hlásí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.

(vzdálenost [FrontDistance v] v [mm v])

Parametry

Popis

senzor vzdálenosti

Snímač vzdálenosti, který chcete použít. Vyberte si z dostupných snímačů vzdálenosti pro Flex.

jednotka

Jednotka vzdálenosti: mm nebo palce.

Příklad

při spuštění :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
jet [dopředu v]
čekat dokud <(vzdálenost [FrontDistance v] v [mm v]) < (200)>
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

GPS#

GPS pozice#

Blok GPS position vrací polohový posun referenčního bodu otáčení robota od středu pole pomocí senzoru GPS (Game Positioning System™).

(poloha [GPS v] [X v] v [mm v])

Parametry

Popis

osa

Kterou osu hlásit:

  • X
  • Y

jednotky

Jednotka pro vyjádření polohy: mm nebo palce

Příklad

při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶

GPS kurz#

Blok GPS heading vrací směr, kterým se robot aktuálně nachází, na základě údajů ze senzoru GPS (Game Positioning System™) z kódu pole VEX GPS od 0,00 do 359,99 stupňů.

(kurz [GPS v] ve stupních)

Parametry

Popis

Tento blok nemá žádné parametry.

Příklad

při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
[Turn left to face the Neutral Goal.]
nastavit rychlost otáčení na (30) [% v]
otočit [vlevo v]
čekat dokud <(kurz [GPS v] ve stupních) < (18)>
zastavit jízdu