জিপিএস সেন্সর#

ভূমিকা#

gps ক্লাসটি ভি৫ জিপিএস (গেম পজিশনিং সিস্টেম™) সেন্সর থেকে ডেটা নিয়ন্ত্রণ ও অ্যাক্সেস করতে ব্যবহৃত হয়। এই সেন্সরটি ভিইএক্স ফিল্ডে থাকা একটি রোবটের জন্য নির্ভুল অবস্থান এবং অভিমুখ ট্র্যাকিং প্রদান করে। এটি ফিল্ডের পরিধি বরাবর থাকা জিপিএস ফিল্ড কোড ব্যবহার করে রিয়েল টাইমে রোবটটির এক্স ও ওয়াই স্থানাঙ্ক এবং দিক নির্ণয় করে।

ডিভাইসেস উইন্ডোতে জিপিএস সেন্সরটি কনফিগার করার সময় প্রবেশ করানো অফসেটগুলো থেকে স্বয়ংক্রিয়ভাবে গণনা করা একটি রেফারেন্স পয়েন্ট ব্যবহার করে জিপিএস সেন্সরটি রোবটের অবস্থান নির্ণয় করে।

GPS সেন্সর সম্পর্কে আরও তথ্যের জন্য, VEX লাইব্রেরিতে VEX V5 এর সাথে GPS সেন্সর ব্যবহার করা পড়ুন।

রেফারেন্স পয়েন্টটি জিপিএস সেন্সরের নিজস্ব (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

জিপিএস সেন্সরের ঘূর্ণন অফসেট ডিগ্রিতে, যার মান ০.০০ থেকে ৩৫৯.৯৯ পর্যন্ত। ডিফল্ট মান হলো ০।

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#

জিপিএস সেন্সরটি ক্যালিব্রেট করে। এটি জিপিএস-এর কনফিগার করা হেডিংকে (এর অ্যাঙ্গেল অফসেট অনুযায়ী) ড্রাইভট্রেনের বর্তমান হেডিং হিসেবে সেট করবে।

ক্যালিব্রেশন প্রক্রিয়া চলাকালীন জিপিএস সেন্সরটি অবশ্যই স্থির থাকতে হবে।

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

বর্তমান অবস্থানের এক্স-স্থানাঙ্ক।

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#

জিপিএস সেন্সরটির বর্তমান এক্স অবস্থান ফেরত দেয়।

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#

জিপিএস সেন্সরের বর্তমান 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() 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
  • হেডিং মানটি ০ থেকে ৩৬০ ডিগ্রির মধ্যে র‍্যাপ করা হয়।

  • ধনাত্মক ঘূর্ণনের দিক নির্মাণের সময় নির্দিষ্ট করা 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 এককে প্রকাশ করা হয়, যেখানে ১ 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

The orientation axis to retrieve:

  • 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)

একটি ফাংশনের পয়েন্টার যা GPS হেডিং-এর মান পরিবর্তিত হলে কল করা হবে। ফাংশনটির কোনো প্যারামিটার থাকবে না এবং এটি void রিটার্ন করবে।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।