GPS Sensörü#

giriiş#

gps sınıfı, V5 GPS (Oyun Konumlandırma Sistemi™) Sensöründen gelen verileri kontrol etmek ve erişmek için kullanılır. Bu sensör, VEX Sahası üzerindeki bir robot için doğru konum ve yön takibi sağlar. Robotun X ve Y koordinatlarını ve yönünü gerçek zamanlı olarak hesaplamak için Saha çevresindeki GPS Saha Kodunu kullanır.

GPS sensörü, Cihazlar penceresinde GPS sensörünü yapılandırırken girilen ofsetlerden otomatik olarak hesaplanan bir referans noktası kullanarak robotun konumunu döndürür.

GPS Sensörü hakkında daha fazla bilgi için VEX Kütüphanesindeki VEX V5 ile GPS Sensörünü Kullanma bölümünü okuyun.

Referans noktası, GPS sensörünün kendi (0, 0) konumu olarak işlev görür; GPS yöntemleri tarafından döndürülen tüm koordinatlar, yönler ve hareketler bu yapılandırılmış noktaya göre belirlenir.

VEX V5 GPS Sensörü.

Sınıf Oluşturucuları#

1 — Varsayılan başlangıç ​​noktası (0, 0) kullanılarak belirtilen Akıllı Bağlantı Noktasında gps nesnesi oluşturur.

gps(
  int32_t  index,
  double   heading_offset = 0,
  turnType dir = right );

2 — Belirtilen Akıllı Bağlantı Noktasında gps nesnesi oluşturur ve özel bir başlangıç ​​konumu tanımlar.

gps(
  int32_t       index,
  double        ox,
  double        oy,
  distanceUnits units = mm,
  double        heading_offset = 0,
  turnType      dir = right );

Sınıf Yıkıcısı#

gps nesnesini yok eder ve ilgili kaynakları serbest bırakır.

~gps();

Parametreler#

Parametre

Tip

Tanım

index

int32_t

GPS sensörünün bağlı olduğu akıllı port, PORTxşeklinde yazılır; burada x port numarasıdır (örneğin, PORT1).

ox

double

Başlangıç ​​noktasının X koordinatı.

oy

double

Başlangıç ​​noktasının Y koordinatı.

units

distanceUnits

ox ve oyiçin kullanılan ölçü birimi:

  • mm (varsayılan) — milimetre
  • distanceUnits::in / inches — inç
  • distanceUnits::cm — santimetre

heading_offset

double

GPS sensörünün dönme açısı (derece cinsinden), 0,00 ile 359,99 arasındadır. Varsayılan değer 0’dır.

dir

turnType

Pozitif yön değerleri döndürecek yönler:

  • right (varsayılan)
  • left

Örnekler#

// Create the gps instance
gps GPS1 = gps(
    PORT1,      // Smart Port 1
    180);       // heading_offset


// Create the gps instance
gps GPS1 = gps(
    PORT1,   // Smart Port 1
    50.00,   // ox
    100.00,  // oy
    mm,      // units
    180 );   // heading_offset

Üye Fonksiyonları#

gps sınıfı aşağıdaki üye işlevlerini içerir:

  • calibrate — GPS Sensörünü Kalibre Eder.

  • setOrigin — GPS koordinat sistemi için başlangıç ​​konumunu ayarlar.

  • setLocation — GPS Sensörünün mevcut konumunu ve yönünü ayarlar.

  • xPosition — Geçerli X konumunu döndürür.

  • yPosition — Geçerli Y konumunu döndürür.

  • heading — Geçerli başlığı döndürür.

  • acceleration — Belirtilen eksen boyunca doğrusal ivmeyi döndürür.

  • gyroRate — Belirtilen eksen için açısal hızı döndürür.

  • orientation — Belirtilen eksen için yönlendirmeyi döndürür.

  • quality — Geçerli GPS sinyal kalitesini döndürür.

  • changed — GPS verileri değiştiğinde çalışan bir geri çağırma fonksiyonu kaydeder.

Herhangi bir gps üye fonksiyonunu çağırmadan önce, aşağıda gösterildiği gibi bir gps örneği oluşturulmalıdır:

/* This constructor is required when using VS Code.
GPS Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the gps instance in Smart Port 1
gps GPS1 = gps(PORT1);

Sınıf Metotları#

calibrate#

GPS sensörünü kalibre eder. Bu işlem, GPS’in yapılandırılmış yönünü (açısal sapmasına göre) aktarma organlarının mevcut yönü olarak ayarlayacaktır.

Kalibrasyon işlemi sırasında GPS sensörü sabit kalmalıdır.

Available Functions
void calibrate();

Parameters

Bu fonksiyon herhangi bir parametre almaz.

Return Values

Bu fonksiyon bir değer döndürmez.

Examples
// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)

setOrigin#

GPS koordinat sisteminin başlangıç ​​noktasını belirler.

Available Functions

1 — Başlangıç ​​noktasını belirtilen X ve Y konumuna ayarlar.

void setOrigin( 
  double        x, 
  double        y, 
  distanceUnits units = mm );

2 — Başlangıç ​​noktasını sensörün mevcut konumuna ayarlar.

void setOrigin();

Parameters

Parametre

Tip

Tanım

x

double

Yeni başlangıç ​​noktasının X koordinatı.

y

double

Yeni başlangıç ​​noktasının Y koordinatı.

units

distanceUnits

x ve yiçin kullanılan ölçü birimi:

  • mm (varsayılan) — milimetre
  • distanceUnits::cm — santimetre
  • distanceUnits::in — inç

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Başlangıç ​​noktasının değiştirilmesi, xPosition ve yPosition tarafından döndürülen değerleri etkiler.

setLocation#

Geçerli GPS konumunu ve yönünü ayarlar.

Available Functions

1 — Belirtilen mesafe ve dönüş birimlerini kullanarak geçerli konumu ayarlar.

void setLocation(
  double        x,
  double        y,
  distanceUnits units = mm,
  double        angle = 0,
  rotationUnits units_r = degrees );

2 — Geçerli konumu milimetre ve derece cinsinden ayarlar.

void setLocation( double x, double y, double angle );

Parameters

Parametre

Tip

Tanım

x

double

Mevcut konumun X koordinatı.

y

double

Mevcut konumun Y koordinatı.

units

distanceUnits

x ve yiçin kullanılan ölçü birimi:

  • mm (varsayılan) — milimetre
  • distanceUnits::in / inches — inç
  • distanceUnits::cm — santimetre

angle

double

Mevcut konumun başlık değeri.

units_r

rotationUnits

angle:

  • deg (varsayılan) — derece
  • rev — devir

Return Values

Bu fonksiyon bir değer döndürmez.

Notes
  • Bu fonksiyonun çağrılması, xPosition, yPosition ve heading tarafından bildirilen dahili konum ve yön değerlerini günceller.

xPosition#

GPS sensörünün mevcut X konumunu döndürür.

Available Functions
double xPosition( distanceUnits units = distanceUnits::mm );

Parameters

Parametre

Tip

Tanım

units

distanceUnits

Döndürülen X pozisyonu için ölçü birimi:

  • mm (varsayılan) — milimetre
  • distanceUnits::cm — santimetre
  • distanceUnits::in — inç

Return Values

Belirtilen birimlerde, orijinden x konumundaki sapmayı temsil eden double değerinde bir double sayı döndürür.

Notes
  • X konumu, mevcut başlangıç ​​noktasına göre ölçülür.

  • Başlangıç ​​noktası setOrigin kullanılarak değiştirilebilir.

Examples
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS returns an x position
// near the center of the Field
waitUntil((GPS1.xPosition(mm) < 0.0));
Drivetrain.stop();

yPosition#

GPS sensörünün mevcut Y konumunu döndürür.

Available Functions
double yPosition( distanceUnits units = distanceUnits::mm );

Parameters

Parametre

Tip

Tanım

units

distanceUnits

Döndürülen Y pozisyonu için ölçü birimi:

  • mm (varsayılan) — milimetre
  • distanceUnits::cm — santimetre
  • distanceUnits::in — inç

Return Values

Belirtilen birimlerde, orijinden Y konumundaki sapmayı temsil eden double değerinde bir double sayı döndürür.

Notes
  • Y ekseni konumu, mevcut başlangıç ​​noktasına göre ölçülür.

  • Başlangıç ​​noktası setOrigin() kullanılarak değiştirilebilir.

Examples
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS reports an y position
// near the center of the Field
waitUntil((GPS1.yPosition(mm) < 0.0));
Drivetrain.stop();

heading#

GPS sensörünün mevcut yönünü (sapma açısını) döndürür.

Available Functions
double heading( rotationUnits units = rotationUnits::deg );

Parameters

Parametre

Tip

Tanım

units

rotationUnits

Döndürülen yön değerinin ölçü birimi:

  • deg (varsayılan) — derece
  • rev — devir

Return Values

Belirtilen birimlerdeki geçerli başlığı temsil eden double bir çift değer döndürür.

Notes
  • Başlık değeri 0 ile 360 ​​derece arasında sarılmıştır.

  • Pozitif dönüş yönü, yapım sırasında belirtilen dir parametresi tarafından belirlenir.

Examples
// Turn slowly to face the right wall
Drivetrain.setTurnVelocity(20.0, percent);
Drivetrain.turn(right);
// Stop turning when the GPS reports a heading 
// greater than 90 degrees
waitUntil((GPS1.heading() > 90.0));
Drivetrain.stop();

acceleration#

GPS sensörü tarafından belirtilen eksen boyunca ölçülen doğrusal ivmeyi döndürür.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Parametre

Tip

Tanım

axis

axisType

İvmenin döndürüleceği eksen:

  • xaxis
  • yaxis
  • zaxis

Return Values

Belirtilen eksen boyunca ivmeyi G (yerçekimi birimi) cinsinden temsil eden double bir double değer döndürür.

Notes
  • İvme değerleri G biriminde ifade edilir; burada 1 G, Dünya yüzeyindeki yerçekimi ivmesine eşittir.

gyroRate#

GPS sensörü tarafından belirtilen eksen boyunca ölçülen açısal hızı döndürür.

Available Functions
double gyroRate( 
  axisType      axis, 
  velocityUnits units );

Parameters

Parametre

Tip

Tanım

axis

axisType

Açısal hızın döndürüleceği eksen:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Dönen açısal hızın ölçü birimi:

  • dps — saniyede derece
  • rpm — dakikada devir

Return Values

Belirtilen eksen boyunca açısal hızı seçilen birimlerde temsil eden double bir çift sayı döndürür.

orientation#

Belirtilen eksen için GPS sensörünün yönelim açısını döndürür.

Available Functions
double orientation( 
  orientationType axis, 
  rotationUnits   units );

Parameters

Parametre

Tip

Tanım

axis

orientationType

Alınacak yönelim ekseni:

  • roll
  • pitch
  • yaw

units

rotationUnits

Döndürülen yönelim değerinin ölçü birimi:

  • deg — derece
  • rev — devir

Return Values

Belirtilen eksenin seçilen birimlerdeki yönünü temsil eden double çift duyarlıklı sayı döndürür.

quality#

Algılanan GPS sinyal kalitesini döndürür.

Available Functions
int32_t quality();

Parameters

Bu fonksiyon herhangi bir parametre almaz.

Return Values

GPS sinyal kalitesini yüzde olarak temsil eden int32_t değerini döndürür:

Olası Değerler

Tanım

100

GPS sensöründen bildirilen tüm konum ve yön verileri geçerlidir.

~90

Konum verileri artık doğrudan GPS Alan Kodundan hesaplanmıyor, bunun yerine alternatif yöntemlerle tahmin ediliyor.

0 – 80

Yalnızca yön değerleri geçerlidir. GPS Alan Kodunun yeterli şekilde taranmaması durumunda zaman geçtikçe sinyal kalitesi 0kadar düşmeye devam eder; bu noktada GPS verileri fiilen donar ve artık geçerli değildir.

changed#

GPS yön değeri değiştiğinde çalışan bir geri çağırma fonksiyonu kaydeder.

Available Functions
void changed( 
  void (* callback)(void) );

Parameters

Parametre

Tip

Tanım

callback

void (*)(void)

GPS yön değeri değiştiğinde çağrılacak bir fonksiyona işaretçi. Fonksiyon parametre almamalı ve void.

Return Values

Bu fonksiyon bir değer döndürmez.