जीपीएस सेंसर#

परिचय#

gps क्लास का उपयोग वी5 जीपीएस (गेम पोजिशनिंग सिस्टम™) सेंसर से डेटा को नियंत्रित करने और एक्सेस करने के लिए किया जाता है। यह सेंसर वीईएक्स फील्ड पर रोबोट की सटीक स्थिति और दिशा ट्रैकिंग प्रदान करता है। यह फील्ड की परिधि के आसपास मौजूद जीपीएस फील्ड कोड का उपयोग करके रोबोट के एक्स और वाई निर्देशांक और दिशा की गणना वास्तविक समय में करता है।

जीपीएस सेंसर, डिवाइस विंडो में जीपीएस सेंसर को कॉन्फ़िगर करते समय दर्ज किए गए ऑफसेट से स्वचालित रूप से गणना किए गए संदर्भ बिंदु का उपयोग करके रोबोट की स्थिति लौटाता है।

जीपीएस सेंसर के बारे में अधिक जानकारी के लिए, वीईएक्स लाइब्रेरी में वीईएक्स वी5 के साथ जीपीएस सेंसर का उपयोग करना पढ़ें।

संदर्भ बिंदु जीपीएस सेंसर की अपनी (0, 0) स्थिति के रूप में कार्य करता है, जहां जीपीएस विधियों द्वारा लौटाए गए सभी निर्देशांक, दिशाएं और गतिविधियां इस कॉन्फ़िगर किए गए बिंदु के सापेक्ष होती हैं।

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

जीपीएस सेंसर जिस स्मार्ट पोर्ट से जुड़ा है, उसे PORTxके रूप में लिखा जाता है, जहां x पोर्ट नंबर है (उदाहरण के लिए, PORT1)।

ox

double

मूल बिंदु की X-निर्देशांक।

oy

double

मूल बिंदु की Y-निर्देशांक।

units

distanceUnits

ox और oyके लिए प्रयुक्त माप की इकाई:

  • mm (डिफ़ॉल्ट) — मिलीमीटर
  • distanceUnits::in / inches — इंच
  • distanceUnits::cm — सेंटीमीटर

heading_offset

double

जीपीएस सेंसर का घूर्णीय ऑफसेट डिग्री में, 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 — जीपीएस समन्वय प्रणाली के लिए मूल स्थिति निर्धारित करता है।

  • setLocation — जीपीएस सेंसर का वर्तमान स्थान और दिशा निर्धारित करता है।

  • xPosition — वर्तमान X स्थिति लौटाता है।

  • yPosition — वर्तमान Y स्थिति लौटाता है।

  • heading — वर्तमान शीर्षक लौटाता है।

  • acceleration — निर्दिष्ट अक्ष के साथ रैखिक त्वरण लौटाता है।

  • gyroRate — निर्दिष्ट अक्ष के लिए कोणीय वेग लौटाता है।

  • orientation — निर्दिष्ट अक्ष के लिए ओरिएंटेशन लौटाता है।

  • quality — वर्तमान जीपीएस सिग्नल गुणवत्ता लौटाता है।

  • changed — एक कॉलबैक फ़ंक्शन पंजीकृत करता है जो जीपीएस डेटा बदलने पर चलता है।

किसी भी 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#

जीपीएस सेंसर को कैलिब्रेट करता है। इससे जीपीएस की कॉन्फ़िगर की गई दिशा (उसके कोण ऑफ़सेट के अनुसार) ड्राइवट्रेन की वर्तमान दिशा के रूप में सेट हो जाएगी।

कैलिब्रेशन प्रक्रिया के दौरान जीपीएस सेंसर स्थिर रहना चाहिए।

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#

जीपीएस निर्देशांक प्रणाली का मूल बिंदु निर्धारित करता है।

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#

वर्तमान जीपीएस स्थिति और दिशा निर्धारित करता है।

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#

जीपीएस सेंसर की वर्तमान 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#

जीपीएस सेंसर की वर्तमान वाई स्थिति लौटाता है।

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#

जीपीएस सेंसर की वर्तमान दिशा (याव कोण) लौटाता है।

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

Parameters

पैरामीटर

प्रकार

विवरण

units

rotationUnits

लौटाए गए हेडिंग मान के लिए माप की इकाई:

  • deg (डिफ़ॉल्ट) — डिग्री
  • rev — चक्कर

Return Values

यह निर्दिष्ट इकाइयों में वर्तमान शीर्षक को दर्शाने वाला double लौटाता है।

Notes
  • शीर्षक का मान 0 से 360 डिग्री के बीच रैप किया जाता है।

  • धनात्मक घूर्णन दिशा निर्माण के दौरान निर्दिष्ट dir पैरामीटर द्वारा निर्धारित की जाती है।

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#

निर्दिष्ट अक्ष के अनुदिश जीपीएस सेंसर द्वारा मापा गया रैखिक त्वरण लौटाता है।

Available Functions
double acceleration( 
  axisType axis );

Parameters

पैरामीटर

प्रकार

विवरण

axis

axisType

वह अक्ष जिसके लिए त्वरण लौटाया जाएगा:

  • xaxis
  • yaxis
  • zaxis

Return Values

यह निर्दिष्ट अक्ष के अनुदिश त्वरण को G (गुरुत्वाकर्षण इकाई) में दर्शाने वाला double मान लौटाता है।

Notes
  • त्वरण के मान G की इकाई में बताए जाते हैं, जहाँ 1 G पृथ्वी की सतह पर गुरुत्वाकर्षण के कारण त्वरण के बराबर होता है।

gyroRate#

निर्दिष्ट अक्ष के अनुदिश जीपीएस सेंसर द्वारा मापी गई कोणीय वेग लौटाता है।

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

Parameters

पैरामीटर

प्रकार

विवरण

axis

axisType

वह अक्ष जिसके लिए कोणीय वेग लौटाया जाएगा:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

प्रत्यावर्ती कोणीय वेग की मापन इकाई:

  • dps — डिग्री प्रति सेकंड
  • rpm — चक्कर प्रति मिनट

Return Values

यह निर्दिष्ट अक्ष के अनुदिश कोणीय वेग को चयनित इकाइयों में दर्शाने वाला double मान लौटाता है।

orientation#

यह निर्दिष्ट अक्ष के लिए जीपीएस सेंसर का अभिविन्यास कोण लौटाता है।

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

Parameters

पैरामीटर

प्रकार

विवरण

axis

orientationType

दिशा अक्ष जिसे प्राप्त करना है:

  • roll
  • pitch
  • yaw

units

rotationUnits

लौटाए गए अभिविन्यास मान के लिए माप की इकाई:

  • deg — डिग्री
  • rev — चक्कर

Return Values

यह निर्दिष्ट अक्ष के अभिविन्यास को चयनित इकाइयों में दर्शाने वाला double मान लौटाता है।

quality#

यह जीपीएस सिग्नल की अनुमानित गुणवत्ता लौटाता है।

Available Functions
int32_t quality();

Parameters

यह फ़ंक्शन कोई पैरामीटर नहीं लेता है।

Return Values

यह एक int32_t लौटाता है जो जीपीएस सिग्नल की गुणवत्ता को प्रतिशत के रूप में दर्शाता है:

संभावित मान

विवरण

100

जीपीएस सेंसर से प्राप्त सभी स्थिति और दिशा संबंधी डेटा मान्य है।

~90

जीपीएस फील्ड कोड से सीधे स्थिति संबंधी डेटा की गणना नहीं की जा रही है, बल्कि वैकल्पिक तरीकों से इसका अनुमान लगाया जा रहा है।

0 – 80

केवल दिशा मान ही मान्य हैं। जीपीएस फील्ड कोड की पर्याप्त स्कैनिंग के बिना समय बीतने के साथ, सिग्नल की गुणवत्ता लगातार घटती जाती है जब तक कि 0न हो जाए, जिसके बाद जीपीएस डेटा प्रभावी रूप से स्थिर हो जाता है और अब मान्य नहीं रहता।

changed#

जीपीएस हेडिंग वैल्यू में बदलाव होने पर चलने वाले कॉलबैक फ़ंक्शन को रजिस्टर करता है।

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

Parameters

पैरामीटर

प्रकार

विवरण

callback

void (*)(void)

एक फ़ंक्शन का पॉइंटर जिसे जीपीएस हेडिंग मान बदलने पर कॉल किया जाएगा। फ़ंक्शन में कोई पैरामीटर नहीं होना चाहिए और उसे void

Return Values

इस कार्य पर कीमत के लिहाज से कुछ भी रिटर्न नहीं मिलता है।