Ana içeriğe atla

GPS Navigasyon

Kahraman robotu saha üzerindeki belirli bir konuma yönlendirecek bir algoritma oluşturun. [Sürüş Yönü] ve [Yöne Dön] bloklarını, GPS Sensörünü, Kol Motorunu ve Giriş Motorunu kullanarak Kahraman Robotu (1380,-1380) konumuna götürün ve kırmızıyla vurgulanan Triball'ı alın. Ardından robotu (600, -300) konumuna götürün ve Triball'ı Kırmızı İttifak Kalecisine sokun.

  • VRC Sanal Beceriler - Üstten Alttan Oyun Alanı'nı seçin.
  • Robot için Başlangıç ​​Konumu “H”,​​Yönü “Kuzey”ve Robot Ön Yüklemesi “Hayır üzere Maç Öncesi kontrol listesini kullanın.
  • Robotu belirli bir konuma yönlendirmek için bir algoritma oluşturun.
  • Robotun kolunun tamamen aşağı inmesini ve sahadaki bir Triball topunu almasını sağlamak için robotu, kol motorunu döndürecek şekilde kodlayın.
  • Robotu (1380, -1380) koordinatlarına yönlendirmek ve robotu 135 derece yönüne döndürmek için algoritmayı kullanın.
  • Robotu, kırmızıyla vurgulanan yeşil üç renkli topu almak için emme motorunu döndürecek şekilde kodlayın.
  • Robotu (600, -300) koordinatlarına yönlendirmek ve yönünü 90 dereceye çevirmek için algoritmayı kullanın.
  • Robotu, Triball'ı Kırmızı İttifak hedefine fırlatmak için Emme Motorunu döndürecek şekilde kodlayın. 

Faydalı İpuçları

  • Sahadaki Kahraman Robotun X ve Y koordinatlarını belirlemek için GPS Sensörünü kullanın. VRC Üstü Alt Oyun Alanı'ndaki GPS Sensörünün kullanımı hakkında daha fazla bilgi için lütfen buraya .
  • GPS sensöründen konum değerleri almak için Algılama kategorisindeki Muhabir bloklarını kullanın.

    VEXcode GPS konum bloğu, 'GPS konumu X'i mm cinsinden' olarak okur.

    VEXcode GPS konum bloğu, 'GPS konumu Y'yi mm cinsinden' olarak okur.

    • Eşleşen Python komutu:

      gps.x_konumu(MM)
      gps.y_konumu(MM)
  • Hero Bot'un orijinal X ve Y koordinatlarını saklamak için Değişkenler kategorisindeki set bloklarını kullanarak iki değişken tanımlayın.

    VEXcode Set değişken bloklarının yığını. İlk blokta 'set X1 to GPS position X in mm' . ifadesi yer almaktadır. İkinci blokta 'set Y1 to GPS position Y in mm' ifadesi yer almaktadır.

    • Eşleşen Python komutu:

      X1 = gps.x_position(MM)
      Y1 = gps.y_position(MM)
  • Projede değişken tanımlama ve veri depolama konusunda yardım EĞİTİMLER" düğmesini seçin ve Veri Depolama Eğitimini seçin.

    VEXcode VR Araç Çubuğundaki Eğitimler simgesi.

    VEXcode VR Veri Depolama Eğitimi simgesi.

  • VEXcode VR'deki değişkenler için adlandırma kuralları hakkında daha fazla bilgi için bu bakın.
  • Robotun koordinatlarını (x1,y1), hedef konumun koordinatlarını (x2,y2) ve atan fonksiyonunu kullanarak sürüş yönünü bulun.
    • Bu iki noktayı birleştiren doğrunun açısını (teta θ) hesaplayın.

      İki matematiksel ifadenin diyagramı. İlk ifade 'theta'nın atan((y2 - y1) / (x2 - x1))' eşit olduğunu belirtir. İkinci ifade, '- pi / 2'nin teta'dan küçük olduğunu, teta'nın da pi / 2' küçük olduğunu belirtir.

      Yukarıdan aşağıya doğru gösterilen matematiksel diyagramda robot (X1, Y1) koordinatında yer alıyor ve bir çizgi (X2, Y2) koordinatına doğru yöneliyor. Mesafe d değişkeniyle, açı ise teta değişkeniyle gösterilmiştir. Noktalar arasındaki yatay mesafe '- x1', dikey mesafe ise '- y1' olarak gösterilmiştir.

    • Yönü belirlemek için teta θ açısını kullanın.

      Matematiksel ifade için sözde kod örneği (Başlangıç ​​yönü: Kuzey):

      Eğer X1, X2'ye eşitse:
      	Eğer Y2 > Y1'e eşitse:
      		yön = 0
      	aksi halde:
      		yön = 180
      aksi halde:
      	Eğer X2 > X1'e eşitse:
      		yön = 90 - atan((Y2 - Y1) / (X2 - X1))
      	aksi halde:
      		yön = 270 - atan((Y2 - Y1) / (X2 - X1))
    • Yukarıdan aşağıya doğru gösterilen diyagramda, robotun'ile 360 ​​derece arasında işaretlenmiş etiketlerle belirtilen bir daire içinde yer aldığı görülmektedir.
  • Operatörler kategorisindeki fonksiyon bloğunu kullanın ve teta θ açısını hesaplamak için atan fonksiyonunu seçin.

    Boş VEXcode Fonksiyon bloğu, 'atan of blank' değerini okur.

    • Eşleşen Python komutu:

      matematik.atan() / matematik.pi * 180
  • Robotun koordinatlarını (x1,y1), hedef konumun koordinatlarını (x2,y2) ve Pisagor Teoremini kullanarak sürüş mesafesini bulun.

    Matematiksel ifade şu şekildedir: 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    Öncekiyle aynı yukarıdan aşağıya doğru çizilmiş diyagram, iki koordinat arasındaki farkı gösteriyor. Robot (X1, Y1) koordinatındadır ve bir çizgi (X2, Y2) koordinatına doğru yönelmektedir. Mesafe d değişkeniyle, açı ise teta değişkeniyle gösterilmiştir. Noktalar arasındaki yatay mesafe '- x1', dikey mesafe ise '- y1' olarak gösterilmiştir.

  • Operatörler kategorisinden fonksiyon bloğunu kullanın ve sürüş mesafesini hesaplamak için sqrt fonksiyonunu seçin.

    Boş VEXcode fonksiyon bloğu, 'karekökünün boş' değerini okur.

    • Eşleşen Python komutu:

      matematik.karekök()