ജിപിഎസ് സെൻസർ#

ആമുഖം#

V5 GPS (ഗെയിം പൊസിഷനിംഗ് സിസ്റ്റം™) സെൻസറിൽ നിന്നുള്ള ഡാറ്റ നിയന്ത്രിക്കാനും ആക്‌സസ് ചെയ്യാനും gps ക്ലാസ് ഉപയോഗിക്കുന്നു. VEX ഫീൽഡിലെ ഒരു റോബോട്ടിന് കൃത്യമായ സ്ഥാനവും ഓറിയന്റേഷൻ ട്രാക്കിംഗും ഈ സെൻസർ നൽകുന്നു. റോബോട്ടിന്റെ X, Y കോർഡിനേറ്റുകളും ഹെഡിംഗും തത്സമയം കണക്കാക്കാൻ ഇത് ഫീൽഡിന്റെ ചുറ്റളവിന് ചുറ്റുമുള്ള GPS ഫീൽഡ് കോഡ് ഉപയോഗിക്കുന്നു.

ഡിവൈസസ് വിൻഡോയിൽ ജിപിഎസ് സെൻസർ കോൺഫിഗർ ചെയ്യുമ്പോൾ നൽകിയ ഓഫ്‌സെറ്റുകളിൽ നിന്ന് യാന്ത്രികമായി കണക്കാക്കിയ ഒരു റഫറൻസ് പോയിന്റ് ഉപയോഗിച്ച് ജിപിഎസ് സെൻസർ റോബോട്ടിന്റെ സ്ഥാനം തിരികെ നൽകുന്നു.

GPS സെൻസറിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, VEX ലൈബ്രറിയിലെ VEX V5 ഉപയോഗിച്ച് GPS സെൻസർ ഉപയോഗിക്കുന്നു വായിക്കുക.

റഫറൻസ് പോയിന്റ് GPS സെൻസറിന്റെ സ്വന്തം (0, 0) സ്ഥാനമായി പ്രവർത്തിക്കുന്നു, അവിടെ GPS രീതികൾ വഴി നൽകുന്ന എല്ലാ കോർഡിനേറ്റുകളും, തലക്കെട്ടുകളും, ചലനങ്ങളും ഈ കോൺഫിഗർ ചെയ്ത പോയിന്റുമായി ആപേക്ഷികമാണ്.

VEX V5 GPS സെൻസർ.

ക്ലാസ് കൺസ്ട്രക്‌ടറുകൾ#

1 — ഡിഫോൾട്ട് ഒറിജിൻ (0, 0) ഉപയോഗിച്ച് നിർദ്ദിഷ്ട സ്മാർട്ട് പോർട്ടിൽ gps ഒബ്‌ജക്റ്റ് സൃഷ്ടിക്കുന്നു.

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

2 — നിർദ്ദിഷ്ട സ്മാർട്ട് പോർട്ടിൽ gps ഒബ്‌ജക്റ്റ് സൃഷ്‌ടിക്കുകയും ഒരു ഇഷ്‌ടാനുസൃത ഉത്ഭവ സ്ഥാനം നിർവചിക്കുകയും ചെയ്യുന്നു.

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

ക്ലാസ് ഡിസ്ട്രക്റ്റർ#

gps ഒബ്‌ജക്റ്റ് നശിപ്പിക്കുകയും അനുബന്ധ ഉറവിടങ്ങൾ പുറത്തുവിടുകയും ചെയ്യുന്നു.

~gps();

പാരാമീറ്ററുകൾ#

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

index

int32_t

GPS സെൻസർ ബന്ധിപ്പിച്ചിരിക്കുന്ന സ്മാർട്ട് പോർട്ട്, PORTxഎന്ന് എഴുതിയിരിക്കുന്നു, ഇവിടെ x എന്നത് പോർട്ട് നമ്പറാണ് (ഉദാഹരണത്തിന്, PORT1).

ox

double

ആരംഭ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്.

oy

double

ആരംഭ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്.

units

distanceUnits

ox നും oyഉപയോഗിക്കുന്ന അളവെടുപ്പ് യൂണിറ്റ്:

  • mm (സ്ഥിരസ്ഥിതി) — മില്ലിമീറ്റർ
  • distanceUnits::in / inches — ഇഞ്ച്
  • distanceUnits::cm — സെന്റീമീറ്റർ

heading_offset

double

GPS സെൻസറിന്റെ റൊട്ടേഷണൽ ഓഫ്‌സെറ്റ് ഡിഗ്രിയിൽ, 0.00 മുതൽ 359.99 വരെ. ഡിഫോൾട്ട് 0 ആണ്.

dir

turnType

പോസിറ്റീവ് ഹെഡിംഗ് മൂല്യങ്ങൾ നൽകുന്ന ദിശ:

  • right (സ്ഥിരസ്ഥിതി)
  • left

ഉദാഹരണങ്ങൾ#

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

അംഗ പ്രവർത്തനങ്ങൾ#

gps ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്‌ഷനുകൾ ഉൾപ്പെടുന്നു:

  • calibrate — ജിപിഎസ് സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു.

  • setOrigin — GPS കോർഡിനേറ്റ് സിസ്റ്റത്തിനായുള്ള ഉത്ഭവ സ്ഥാനം സജ്ജമാക്കുന്നു.

  • setLocation — GPS സെൻസറിന്റെ നിലവിലെ സ്ഥാനവും തലക്കെട്ടും സജ്ജമാക്കുന്നു.

  • xPosition — നിലവിലെ X സ്ഥാനം നൽകുന്നു.

  • yPosition — നിലവിലെ Y സ്ഥാനം നൽകുന്നു.

  • heading — നിലവിലെ തലക്കെട്ട് നൽകുന്നു.

  • acceleration — നിർദ്ദിഷ്ട അക്ഷത്തിൽ രേഖീയ ത്വരണം നൽകുന്നു.

  • gyroRate — നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള കോണീയ പ്രവേഗം നൽകുന്നു.

  • orientation — നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള ഓറിയന്റേഷൻ നൽകുന്നു.

  • quality — നിലവിലെ GPS സിഗ്നൽ ഗുണനിലവാരം നൽകുന്നു.

  • changed — GPS ഡാറ്റ മാറുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

ഏതെങ്കിലും gps അംഗ ഫംഗ്‌ഷനുകൾ വിളിക്കുന്നതിന് മുമ്പ്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു gps ഉദാഹരണം സൃഷ്ടിക്കണം:

/* 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);

ക്ലാസ് രീതികൾ#

calibrate#

GPS സെൻസർ കാലിബ്രേറ്റ് ചെയ്യുന്നു. ഇത് GPS-ന്റെ കോൺഫിഗർ ചെയ്‌ത ഹെഡിംഗ് (അതിന്റെ ആംഗിൾ ഓഫ്‌സെറ്റ് അനുസരിച്ച്) ഡ്രൈവ്‌ട്രെയിനിന്റെ നിലവിലെ ഹെഡിംഗ് ആയി സജ്ജമാക്കും.

കാലിബ്രേഷൻ പ്രക്രിയയിൽ GPS സെൻസർ നിശ്ചലമായിരിക്കണം.

Available Functions
void calibrate();

Parameters

ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.

Return Values

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.

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

setOrigin#

GPS കോർഡിനേറ്റ് സിസ്റ്റത്തിന്റെ ഉത്ഭവം സജ്ജമാക്കുന്നു.

Available Functions

1 — ഉത്ഭവസ്ഥാനം നിർദ്ദിഷ്ട X, Y സ്ഥാനത്തേക്ക് സജ്ജമാക്കുന്നു.

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

2 — സെൻസറിന്റെ നിലവിലെ സ്ഥാനത്തേക്ക് ഉത്ഭവം സജ്ജമാക്കുന്നു.

void setOrigin();

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

x

double

പുതിയ ആരംഭ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്.

y

double

പുതിയ ആരംഭ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്.

units

distanceUnits

x നും yഉപയോഗിക്കുന്ന അളവെടുപ്പ് യൂണിറ്റ്:

  • mm (സ്ഥിരസ്ഥിതി) — മില്ലിമീറ്റർ
  • distanceUnits::cm — സെന്റീമീറ്റർ
  • distanceUnits::in ൽ — ഇഞ്ച്

Return Values

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.

Notes
  • ഉത്ഭവസ്ഥാനം മാറ്റുന്നത് xPosition ഉം yPosition ഉം നൽകുന്ന മൂല്യങ്ങളെ ബാധിക്കുന്നു.

setLocation#

നിലവിലെ GPS സ്ഥാനവും തലക്കെട്ടും സജ്ജമാക്കുന്നു.

Available Functions

1 — നിർദ്ദിഷ്ട ദൂരത്തിന്റെയും ഭ്രമണത്തിന്റെയും യൂണിറ്റുകൾ ഉപയോഗിച്ച് നിലവിലെ സ്ഥാനം സജ്ജമാക്കുന്നു.

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

2 — മില്ലിമീറ്ററും ഡിഗ്രിയും ഉപയോഗിച്ച് നിലവിലെ സ്ഥാനം സജ്ജമാക്കുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

x

double

നിലവിലെ സ്ഥാനത്തിന്റെ X-കോർഡിനേറ്റ്.

y

double

നിലവിലെ സ്ഥാനത്തിന്റെ Y-കോർഡിനേറ്റ്.

units

distanceUnits

x നും yഉപയോഗിക്കുന്ന അളവെടുപ്പ് യൂണിറ്റ്:

  • mm (സ്ഥിരസ്ഥിതി) — മില്ലിമീറ്റർ
  • distanceUnits::in / inches — ഇഞ്ച്
  • distanceUnits::cm — സെന്റീമീറ്റർ

angle

double

നിലവിലെ ലൊക്കേഷന്റെ തലക്കെട്ട് മൂല്യം.

units_r

rotationUnits

angle:

  • deg (ഡിഫോൾട്ട്) - ഡിഗ്രി
  • rev - റൊവല്യൂഷനുകൾ
ന് ഉപയോഗിക്കുന്ന അളവിന്റെ യൂണിറ്റ്

Return Values

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.

Notes
  • ഈ ഫംഗ്ഷൻ വിളിക്കുന്നത് xPosition, yPosition, heading, എന്നിവ റിപ്പോർട്ട് ചെയ്ത ആന്തരിക സ്ഥാനവും ഹെഡിംഗ് മൂല്യങ്ങളും അപ്ഡേറ്റ് ചെയ്യുന്നു.

xPosition#

GPS സെൻസറിന്റെ നിലവിലെ X സ്ഥാനം തിരികെ നൽകുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

units

distanceUnits

തിരികെ നൽകിയ X സ്ഥാനത്തിനുള്ള അളവെടുപ്പ് യൂണിറ്റ്:

  • mm (സ്ഥിരസ്ഥിതി) — മില്ലിമീറ്റർ
  • distanceUnits::cm — സെന്റീമീറ്റർ
  • distanceUnits::in ൽ — ഇഞ്ച്

Return Values

നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ ഉറവിടത്തിൽ നിന്നുള്ള x പൊസിഷണൽ ഓഫ്‌സെറ്റിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

Notes
  • നിലവിലെ ഉറവിടവുമായി താരതമ്യപ്പെടുത്തിയാണ് X സ്ഥാനം അളക്കുന്നത്.

  • setOrigin ഉപയോഗിച്ച് ഉത്ഭവം മാറ്റാവുന്നതാണ്.

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 സെൻസറിന്റെ നിലവിലെ Y സ്ഥാനം നൽകുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

units

distanceUnits

തിരികെ നൽകിയ Y സ്ഥാനത്തിനായുള്ള അളവെടുപ്പ് യൂണിറ്റ്:

  • mm (സ്ഥിരസ്ഥിതി) — മില്ലിമീറ്റർ
  • distanceUnits::cm — സെന്റീമീറ്റർ
  • distanceUnits::in ൽ — ഇഞ്ച്

Return Values

നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ ഉത്ഭവത്തിൽ നിന്നുള്ള Y പൊസിഷണൽ ഓഫ്‌സെറ്റിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

Notes
  • നിലവിലെ ഉത്ഭവവുമായി താരതമ്യപ്പെടുത്തിയാണ് Y സ്ഥാനം അളക്കുന്നത്.

  • setOrigin() ഉപയോഗിച്ച് ഉത്ഭവം മാറ്റാൻ കഴിയും.

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 സെൻസറിന്റെ നിലവിലെ ഹെഡിംഗ് (yaw angle) നൽകുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

units

rotationUnits

തിരികെ നൽകിയ ഹെഡിംഗ് മൂല്യത്തിനായുള്ള അളവെടുപ്പ് യൂണിറ്റ്:

  • deg (സ്ഥിരസ്ഥിതി) — ഡിഗ്രി
  • rev — പരിക്രമണങ്ങൾ

Return Values

നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ നിലവിലെ തലക്കെട്ടിനെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

Notes 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 സെൻസർ അളന്ന രേഖീയ ത്വരണം തിരികെ നൽകുന്നു.

Available Functions
double acceleration( 
  axisType axis );

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

axis

axisType

ത്വരണം തിരികെ നൽകുന്ന അക്ഷം:

  • xaxis
  • yaxis
  • zaxis

Return Values

G-യിൽ (ഗുരുത്വാകർഷണ യൂണിറ്റുകൾ) നിർദ്ദിഷ്ട അക്ഷത്തിൽ ത്വരണം പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

Notes
  • ഭൂമിയുടെ ഉപരിതലത്തിലെ ഗുരുത്വാകർഷണം മൂലമുള്ള ത്വരണത്തിന് 1 G തുല്യമാണ്, ഇവിടെ ത്വരണം G യുടെ യൂണിറ്റുകളിലാണ് റിപ്പോർട്ട് ചെയ്യുന്നത്.

gyroRate#

നിർദ്ദിഷ്ട അക്ഷത്തിൽ GPS സെൻസർ അളന്ന കോണീയ പ്രവേഗം തിരികെ നൽകുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

axis

axisType

കോണീയ പ്രവേഗം നൽകുന്ന അക്ഷം:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

തിരിച്ചുകിട്ടിയ കോണീയ പ്രവേഗത്തിന്റെ അളവെടുപ്പ് യൂണിറ്റ്:

  • dps — സെക്കൻഡിൽ ഡിഗ്രി
  • rpm — മിനിറ്റിൽ പരിക്രമണങ്ങൾ

Return Values

തിരഞ്ഞെടുത്ത യൂണിറ്റുകളിലെ നിർദ്ദിഷ്ട അക്ഷത്തിൽ കോണീയ പ്രവേഗത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

orientation#

നിർദ്ദിഷ്ട അക്ഷത്തിനായുള്ള GPS സെൻസറിന്റെ ഓറിയന്റേഷൻ ആംഗിൾ നൽകുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

axis

orientationType

വീണ്ടെടുക്കേണ്ട ഓറിയന്റേഷൻ അക്ഷം:

  • roll
  • pitch
  • yaw

units

rotationUnits

തിരികെ ലഭിച്ച ഓറിയന്റേഷൻ മൂല്യത്തിന്റെ അളവെടുപ്പ് യൂണിറ്റ്:

  • deg — ഡിഗ്രി
  • rev — പരിക്രമണങ്ങൾ

Return Values

തിരഞ്ഞെടുത്ത യൂണിറ്റുകളിലെ നിർദ്ദിഷ്ട അക്ഷത്തിന്റെ ഓറിയന്റേഷൻ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

quality#

മനസ്സിലാക്കിയ GPS സിഗ്നൽ ഗുണനിലവാരം തിരികെ നൽകുന്നു.

Available Functions
int32_t quality();

Parameters

ഈ ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററുകളും എടുക്കുന്നില്ല.

Return Values

GPS സിഗ്നൽ ഗുണനിലവാരത്തെ ഒരു ശതമാനമായി പ്രതിനിധീകരിക്കുന്ന int32_t നൽകുന്നു:

സാധ്യമായ മൂല്യങ്ങൾ

വിവരണം

100

ജിപിഎസ് സെൻസറിൽ നിന്ന് റിപ്പോർട്ട് ചെയ്യപ്പെട്ട എല്ലാ പൊസിഷണൽ, ഹെഡിംഗ് ഡാറ്റയും സാധുവാണ്.

~90

സ്ഥാന ഡാറ്റ ഇനി GPS ഫീൽഡ് കോഡിൽ നിന്ന് നേരിട്ട് കണക്കാക്കുന്നില്ല, പകരം ബദൽ മാർഗങ്ങളിലൂടെയാണ് കണക്കാക്കുന്നത്.

0 – 80

ഹെഡിംഗ് മൂല്യങ്ങൾ മാത്രമേ സാധുതയുള്ളൂ. GPS ഫീൽഡ് കോഡിന്റെ മതിയായ സ്കാനിംഗ് ഇല്ലാതെ സമയം കടന്നുപോകുമ്പോൾ, 0വരെ സിഗ്നൽ ഗുണനിലവാരം കുറയുന്നത് തുടരുന്നു, ആ ഘട്ടത്തിൽ GPS ഡാറ്റ ഫലപ്രദമായി മരവിപ്പിക്കപ്പെടുകയും ഇനി സാധുതയില്ലാത്തതാകുകയും ചെയ്യും.

changed#

GPS ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ പ്രവർത്തിക്കുന്ന ഒരു കോൾബാക്ക് ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുന്നു.

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

Parameters

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

callback

void (*)(void)

GPS ഹെഡിംഗ് മൂല്യം മാറുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു ഫംഗ്ഷനിലേക്കുള്ള ഒരു പോയിന്റർ. ഫംഗ്ഷൻ ഒരു പാരാമീറ്ററും എടുക്കരുത് കൂടാതെ void തിരികെ നൽകണം.

Return Values

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.