GPSセンサー#
導入#
gps クラスは、V5 GPS(ゲームポジショニングシステム™)センサーの制御とデータアクセスに使用されます。このセンサーは、VEXフィールド上のロボットの正確な位置と向きの追跡を提供します。フィールドの周囲にあるGPSフィールドコードを使用して、ロボットのX座標、Y座標、および進行方向をリアルタイムで計算します。
GPSセンサーは、デバイスウィンドウでGPSセンサーを設定する際に入力されたオフセットから自動的に計算された基準点を使用して、ロボットの位置を返します。
GPSセンサーの詳細については、VEXライブラリのVEX V5でのGPSセンサーの使用を参照してください。
基準点は、GPSセンサー自身の(0, 0)位置として機能し、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();
パラメータ#
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
GPSセンサーが接続されているスマートポートは、 |
|
|
原点位置のX座標。 |
|
|
原点位置のY座標。 |
|
|
|
|
|
GPSセンサーの回転オフセット(度数)。0.00~359.99の範囲で指定します。デフォルト値は0です。 |
|
|
正の進行方向値を返す方向:
|
例#
// 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— GPSセンサーを較正します。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 Functionsvoid calibrate();
この関数は引数を取りません。
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 Functions1 — 原点を指定された X および Y 位置に設定します。
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — センサーの現在位置を原点に設定します。
void setOrigin();
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
新しい原点位置のX座標。 |
|
|
新しい原点位置のY座標。 |
|
|
|
この関数は値を返しません。
NotessetLocation#
現在のGPS位置と方位を設定します。
Available Functions1 — 指定された距離と回転単位を使用して現在位置を設定します。
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — 現在位置をミリメートルと度で設定します。
void setLocation( double x, double y, double angle );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
現在位置のX座標。 |
|
|
現在位置のY座標。 |
|
|
|
|
|
現在位置の方向を示す値。 |
|
|
角度
|
この関数は値を返しません。
NotesxPosition#
GPSセンサーの現在のX座標を返します。
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
返されるX座標の測定単位:
|
指定された単位で、原点からのx座標オフセットを表す double を返します。
X座標は、現在の原点を基準として測定されます。
原点は
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#
GPSセンサーの現在のY座標を返します。
Available Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
返されるY座標の測定単位:
|
指定された単位で、原点からのY座標オフセットを表す double を返します。
Y座標は、現在の原点を基準として測定されます。
原点は
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#
GPSセンサーの現在の方位角(ヨー角)を返します。
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
返される方位値の測定単位:
|
指定された単位での現在の方位を表す double を返します。
方位角の値は0度から360度の範囲で切り上げられます。
正の回転方向は、構築時に指定された
dirパラメータによって決定されます。
// 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 Functionsdouble acceleration(
axisType axis );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
加速度が返される軸:
|
指定された軸に沿った加速度をG(重力単位)で表す double を返します。
加速度の値はG単位で表され、1Gは地球表面における重力加速度に等しい。
gyroRate#
指定された軸に沿ってGPSセンサーによって測定された角速度を返します。
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
角速度が返される軸:
|
|
|
返される角速度の測定単位:
|
指定された軸に沿った角速度を、選択された単位で表す double を返します。
orientation#
指定された軸に対するGPSセンサーの向きの角度を返します。
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
取得する姿勢軸:
|
|
|
返される方向値の測定単位:
|
指定された軸の方向を、選択された単位で表す double を返します。
quality#
知覚されたGPS信号品質を返します。
Available Functionsint32_t quality();
この関数は引数を取りません。
Return ValuesGPS信号品質をパーセンテージで表した int32_t を返します。
可能な値 |
説明 |
|---|---|
|
GPSセンサーから報告される位置情報および方位データはすべて有効です。 |
|
位置データは、GPSフィールドコードから直接計算されるのではなく、別の方法で推定されるようになった。 |
|
方位値のみが有効です。GPSフィールドコードを十分にスキャンせずに時間が経過すると、信号品質は |
changed#
GPS方位値が変化したときに実行されるコールバック関数を登録します。
Available Functionsvoid changed(
void (* callback)(void) );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
GPS方位値が変化したときに呼び出される関数へのポインタ。この関数はパラメータを受け取らず、 |
この関数は値を返しません。