Sensor GPS#
Perkenalan#
Kelas gps digunakan untuk mengontrol dan mengakses data dari Sensor GPS V5 (Game Positioning System™). Sensor ini menyediakan pelacakan posisi dan orientasi yang akurat untuk robot di Lapangan VEX. Sensor ini menggunakan Kode Lapangan GPS di sekitar perimeter Lapangan untuk menghitung koordinat X dan Y serta arah robot secara real-time.
Sensor GPS mengembalikan posisi robot menggunakan titik referensi yang dihitung secara otomatis dari offset yang dimasukkan saat mengkonfigurasi Sensor GPS di jendela Perangkat.
Untuk informasi lebih lanjut mengenai Sensor GPS, baca Menggunakan Sensor GPS dengan VEX V5 di Pustaka VEX.
Titik referensi bertindak sebagai posisi (0, 0) Sensor GPS itu sendiri, di mana semua koordinat, arah, dan pergerakan yang dikembalikan oleh metode GPS bersifat relatif terhadap titik yang dikonfigurasi ini.

Konstruktor Kelas#
1 — Membuat objek
gpspada Smart Port yang ditentukan menggunakan titik asal default (0, 0).gps( int32_t index, double heading_offset = 0, turnType dir = right );
2 — Membuat objek
gpspada Smart Port yang ditentukan dan mendefinisikan posisi asal khusus.gps( int32_t index, double ox, double oy, distanceUnits units = mm, double heading_offset = 0, turnType dir = right );
Destruktor Kelas#
Menghapus objek gps dan melepaskan sumber daya terkait.
~gps();
Parameter#
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Port Pintar tempat Sensor GPS terhubung, ditulis sebagai |
|
|
Koordinat X dari posisi asal. |
|
|
Koordinat Y dari posisi asal. |
|
|
Satuan pengukuran yang digunakan untuk
|
|
|
Offset rotasi sensor GPS dalam derajat, dari 0,00 hingga 359,99. Nilai default adalah 0. |
|
|
Arah yang akan menghasilkan nilai haluan positif:
|
Contoh#
// 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
Fungsi Keanggotaan#
Kelas gps mencakup fungsi anggota berikut:
calibrate— Mengkalibrasi Sensor GPS.setOrigin— Mengatur posisi asal untuk sistem koordinat GPS.setLocation— Mengatur lokasi dan arah saat ini dari Sensor GPS.xPosition— Mengembalikan posisi X saat ini.yPosition— Mengembalikan posisi Y saat ini.heading— Mengembalikan heading saat ini.acceleration— Mengembalikan percepatan linier sepanjang sumbu yang ditentukan.gyroRate— Mengembalikan kecepatan sudut untuk sumbu yang ditentukan.orientation— Mengembalikan orientasi untuk sumbu yang ditentukan.quality— Mengembalikan kualitas sinyal GPS saat ini.changed— Mendaftarkan fungsi callback yang berjalan ketika data GPS berubah.
Sebelum memanggil fungsi anggota gps apa pun, sebuah instance gps harus dibuat, seperti yang ditunjukkan di bawah ini:
/* 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);
Metode Kelas#
calibrate#
Mengkalibrasi Sensor GPS. Ini akan mengatur arah yang dikonfigurasi GPS (sesuai dengan offset sudutnya) sebagai arah penggerak saat ini.
Sensor GPS harus tetap diam selama proses kalibrasi.
Available Functionsvoid calibrate();
Fungsi ini tidak memerlukan parameter apa pun.
Return ValuesFungsi ini tidak mengembalikan nilai.
Examples// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)
setOrigin#
Menentukan titik asal sistem koordinat GPS.
Available Functions1 — Mengatur titik asal ke posisi X dan Y yang ditentukan.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Mengatur titik asal ke posisi sensor saat ini.
void setOrigin();
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Koordinat X dari posisi asal yang baru. |
|
|
Koordinat Y dari posisi asal yang baru. |
|
|
Satuan pengukuran yang digunakan untuk
|
Fungsi ini tidak mengembalikan nilai.
NotessetLocation#
Mengatur posisi dan arah GPS saat ini.
Available Functions1 — Mengatur lokasi saat ini menggunakan satuan jarak dan rotasi yang ditentukan.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — Mengatur lokasi saat ini menggunakan milimeter dan derajat.
void setLocation( double x, double y, double angle );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Koordinat X dari lokasi saat ini. |
|
|
Koordinat Y dari lokasi saat ini. |
|
|
Satuan pengukuran yang digunakan untuk
|
|
|
Nilai arah untuk lokasi saat ini. |
|
|
Satuan pengukuran yang digunakan untuk sudut
|
Fungsi ini tidak mengembalikan nilai.
NotesxPosition#
Mengembalikan posisi X saat ini dari Sensor GPS.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Satuan pengukuran untuk posisi X yang dikembalikan:
|
Mengembalikan nilai double yang mewakili offset posisi x dari titik asal dalam satuan yang ditentukan.
Posisi X diukur relatif terhadap titik asal saat ini.
Asal usul dapat diubah menggunakan
setOrigin.
// 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#
Mengembalikan posisi Y saat ini dari Sensor GPS.
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Satuan pengukuran untuk posisi Y yang dikembalikan:
|
Mengembalikan nilai double yang mewakili offset posisi Y dari titik asal dalam satuan yang ditentukan.
Posisi Y diukur relatif terhadap titik asal saat ini.
Asal usul dapat diubah menggunakan
setOrigin().
// 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#
Mengembalikan arah (sudut yaw) terkini dari Sensor GPS.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Satuan pengukuran untuk nilai arah yang dikembalikan:
|
Mengembalikan nilai double yang mewakili arah saat ini dalam satuan yang ditentukan.
Nilai heading dibungkus antara 0 dan 360 derajat.
Arah rotasi positif ditentukan oleh parameter
diryang ditentukan selama konstruksi.
// 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#
Mengembalikan percepatan linier yang diukur oleh Sensor GPS sepanjang sumbu yang ditentukan.
Available Functionsdouble acceleration(
axisType axis );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sumbu yang akan dikembalikan percepatannya:
|
Mengembalikan nilai double yang mewakili percepatan sepanjang sumbu yang ditentukan dalam G (satuan gravitasi).
Nilai percepatan dilaporkan dalam satuan G, di mana 1 G sama dengan percepatan gravitasi di permukaan Bumi.
gyroRate#
Mengembalikan kecepatan sudut yang diukur oleh Sensor GPS di sepanjang sumbu yang ditentukan.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sumbu yang akan dikembalikan kecepatan sudutnya:
|
|
|
Satuan pengukuran untuk kecepatan sudut yang dikembalikan:
|
Mengembalikan nilai double yang mewakili kecepatan sudut sepanjang sumbu yang ditentukan dalam satuan yang dipilih.
orientation#
Mengembalikan sudut orientasi Sensor GPS untuk sumbu yang ditentukan.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sumbu orientasi yang akan diambil:
|
|
|
Satuan pengukuran untuk nilai orientasi yang dikembalikan:
|
Mengembalikan nilai double yang mewakili orientasi sumbu yang ditentukan dalam satuan yang dipilih.
quality#
Mengembalikan kualitas sinyal GPS yang terdeteksi.
Available Functionsint32_t quality();
Fungsi ini tidak memerlukan parameter apa pun.
Return ValuesMengembalikan nilai int32_t yang mewakili kualitas sinyal GPS dalam persentase:
Nilai yang Mungkin |
Keterangan |
|---|---|
|
Semua data posisi dan arah yang dilaporkan dari Sensor GPS adalah valid. |
|
Data posisi tidak lagi dihitung langsung dari Kode Lapangan GPS, melainkan diperkirakan melalui cara alternatif. |
|
Hanya nilai arah yang valid. Seiring berjalannya waktu tanpa pemindaian Kode Medan GPS yang memadai, kualitas sinyal terus menurun hingga |
changed#
Mendaftarkan fungsi callback yang akan dijalankan ketika nilai arah GPS berubah.
Available Functionsvoid changed(
void (* callback)(void) );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Pointer ke sebuah fungsi yang akan dipanggil ketika nilai arah GPS berubah. Fungsi tersebut tidak boleh menerima parameter dan harus mengembalikan |
Fungsi ini tidak mengembalikan nilai.