Přejít k hlavnímu obsahu

GPS navigace

Vytvořte algoritmus pro navigaci Hrdinského Bot na konkrétní pozici na poli. Pomocí bloků [Jeďte pro] a [Otočte se do směru], GPS senzoru, motoru ramene a sacího motoru dojeďte s hrdinským robotem na pozici (1380,-1380), kde můžete sebrat červeně zvýrazněný kmenový míč. Pak jeďte robotem na pozici nacházející se v bodě (600,-300) a skórujte kmenový míč v brance Červené aliance.

  • Vyberte virtuální dovednosti VRC – hřiště Over Under.
  • Použijte kontrolní seznam před zápasem k výběru počáteční polohy „H“, Spočátečního směru „Sever“a předpětí robota „Ne“ pro robota.
  • Vytvořte algoritmus pro navigaci robota do určité pozice.
  • Naprogramujte robota tak, aby otáčel motorem ramene a zcela ho spustil dolů, aby mohl zvednout kmenový míč na hřišti.
  • Pomocí algoritmu navigujte robota na souřadnice (1380, -1380) a otočte robota do směru 135 stupňů.
  • Naprogramujte robota tak, aby roztočil sací motor a sebral zelený kmenový míč zvýrazněný červeně.
  • Pomocí algoritmu navigujte robota na souřadnice (600, -300) a otočte robota o 90 stupňů do směru Heading.
  • Naprogramujte robota tak, aby roztočil sací motor a vypustil tak kmenovou kouli k cíli Rudé aliance. 

Užitečné rady

  • Pomocí GPS senzoru určete souřadnice X a Y hrdinského robota na hřišti. Pro více informací o používání GPS senzoru na hřišti VRC Over Under Playground klikněte prosím zde.
  • Pro získání hodnot polohy ze senzoru GPS použijte bloky Reporter z kategorie Sensing.

    Blok polohy GPS kódu VEX, který čte 'polohu GPS X v'.

    Blok polohy GPS kódu VEX, který čte 'polohu GPS Y v'.

    • Odpovídající příkaz Pythonu:

      Pozice GPS na ose X (MM)
      Pozice GPS na ose Y (MM)
  • Použijte bloky set z kategorie Proměnné k deklaraci dvou proměnných pro uložení původních souřadnic X a Y Hero Bot.

    Zásobník VEXcode Nastavte bloky proměnných. První blok přečte ', nastaví X1 na GPS pozici X v'. Druhý blok přečte 'nastaví Y1 na GPS pozici Y v'.

    • Odpovídající příkaz Pythonu:

      X1 = gps.pozice_x(MM)
      Y1 = gps.pozice_y(MM)
  • Pro pomoc s deklarací proměnné a ukládáním dat v projektu klikněte na tlačítko „TUTORIALS“ v souboru VEXcode VR a zvolte Ukládání dat Tutoriál.

    Ikona tutoriálů z panelu nástrojů VEXcode VR.

    Ikona tutoriálu pro ukládání dat ve VEXcode VR.

  • Pro více informací o pravidlech pojmenování proměnných ve VEXcode VR prosím podívejte na tento článek.
  • Použijte souřadnice robota (x1,y1), souřadnice cílové pozice (x2,y2) a funkci atan k nalezení směru pohybu.
    • Vypočítejte úhel theta θ přímky spojující tyto dva body.

      Diagram dvou matematických výrazů. První výraz zní 'theta rovno atan((y² - y1) / (x² - x1))'. Druhý výraz zní 'minus pí / 2 je menší než theta, což je menší než pí / 2'.

      Matematický diagram shora dolů zobrazuje robota na souřadnici (X1, Y1) a čáru směřující k souřadnici (X2, Y2). Vzdálenost je označena proměnnou d, úhel je označen proměnnou theta. Horizontální vzdálenost mezi body je znázorněna jako '- x1'a vertikální vzdálenost je znázorněna jako '- y1'.

    • Převeďte úhel theta θ na směr řízení.

      Příklad pseudokódu pro matematický výraz (Počáteční směr: Sever):

      pokud X1 rovno X2:
      	pokud Y2 > Y1:
      		nadpis = 0
      	jinak:
      		nadpis = 180
      jinak:
      	pokud X2 > X1:
      		nadpis = 90 - atan((Y2 - Y1) / (X2 - X1))
      	jinak:
      		nadpis = 270 - atan((Y2 - Y1) / (X2 - X1))
    • Schéma shora dolů zobrazuje robota uvnitř kruhu, který má popisky označující kruh's 360 stupňů.
  • Použijte blok funkce z kategorie Operátory a vyberte funkci atan pro výpočet úhlu theta θ.

    Prázdný funkční blok VEXcode, který čte hodnotu 'a je prázdný jako'.

    • Odpovídající příkaz Pythonu:

      math.atan() / math.pi * 180
  • Pro určení vzdálenosti jízdy použijte souřadnice robota (x1,y1), souřadnice cílové pozice (x2,y2) a Pythagorovu větu.

    Matematický výraz zní 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    Stejný diagram shora dolů jako předtím znázorňující rozdíl mezi dvěma souřadnicemi. Robot se nachází na souřadnici (X1, Y1) a čára směřuje k souřadnici (X2, Y2). Vzdálenost je označena proměnnou d, úhel je označen proměnnou theta. Horizontální vzdálenost mezi body je znázorněna jako '- x1'a vertikální vzdálenost je znázorněna jako '- y1'.

  • Pro výpočet ujeté vzdálenosti použijte blok function z kategorie Operators a vyberte funkci sqrt.

    Prázdný funkční blok VEXcode, který čte 'sqrt z prázdné'.

    • Odpovídající příkaz Pythonu:

      matematika.sqrt()