GPSセンサー#

導入#

V5 GPS(ゲームポジショニングシステム™)センサーは、VEXフィールド上のロボットの正確な位置と向きの追跡を提供します。フィールドの周囲にあるGPSフィールドコードを使用して、ロボットのX座標、Y座標、および進行方向をリアルタイムで計算します。

GPSセンサーは、デバイスウィンドウでGPSセンサーを設定する際に入力されたオフセットから自動的に計算された基準点を使用して、ロボットの位置を返します。

GPSセンサーの詳細については、VEXライブラリのVEX V5でのGPSセンサーの使用を参照してください。

基準点は、GPSセンサー自身の(0, 0)位置として機能し、GPS方式によって返されるすべての座標、方位、および移動は、この設定された基準点に対する相対値となります。

VEX V5 GPSセンサー。

このページでは、GPSセンサー名の例として gps_sensor を使用しています。必要に応じて、ご自身で設定した名前に置き換えてください。

利用可能なメソッドの一覧は以下のとおりです。

  • calibrate – GPSセンサーを較正して、その方位を現在の駆動系の方位に設定します。

  • set_origin – ロボット上の基準点の位置を設定します。

  • set_location – フィールド上の基準点の位置と方位の両方を設定します。

  • x_position – フィールド上の参照点の x 座標を返します。

  • y_position – フィールド上の参照点の y 座標を返します。

  • heading – フィールドの向きに基づいて参照点の方向を返します。

  • acceleration – 選択した軸におけるロボットの加速度を返します。

  • gyro_rate – 選択した軸におけるロボットの回転速度を返します。

  • orientation – ロボットのロール、ピッチ、またはヨーの向きを度数で返します。

  • quality – GPSセンサーの信号強度を返します。

  • changed – GPSセンサーが方位の変化を検出したときに呼び出される関数を登録します。

コンストラクタ – GPSセンサーを手動で初期化します。

  • Gps – GPSセンサーを作成します。

校正する#

calibrate は基準点をキャリブレーションし、設定された方位を現在の駆動系の方位に設定します。この間、ロボットは完全に静止している必要があります。キャリブレーション中に動くと、不正確な結果が生じるためです。

Usage:
gps_sensor.calibrate()

パラメータ

説明

このメソッドにはパラメータがありません。

set_origin#

set_origin は、ロボット上の基準点の位置を手動で設定します。これは、構成設定で行う代わりに、ロボット上の GPS センサーの位置を手動で設定する場合に使用できます。

Usage:
gps_sensor.set_origin(x, y, distance_units)

パラメータ

説明

x

ロボット上の基準点のx座標。

y

ロボット上の基準点のy座標。

距離の単位

x座標とy座標の測定単位:

  • MM – ミリメートル
  • INCHES

# GPS Sensor is mounted 25mm forward
# from the reference point on a robot

gps.set_origin(0, 25, MM)

場所を設定する#

set_location は、フィールド上の基準点の位置と方位を手動で設定します。これは、起動時に GPS センサーがフィールドの壁に近すぎて、十分な量の GPS フィールド コードを視野に捉えられない場合に、精度低下を軽減するのに役立ちます。

VEX V5フィールドを上から見た図。センサーがフィールド側面のフィールドコードを見ている様子がわかる。

Usage:
gps_sensor.set_location(x, y, distance_units, heading, heading_units)

パラメータ

説明

x

フィールド上の基準点のx座標。

y

フィールド上の基準点のy座標。

距離の単位

x座標とy座標の測定単位:

  • MM – ミリメートル
  • INCHES

見出し

基準点が向いている方位角は、絶対方位角に対して0度から359.9度の範囲で表されます。

見出し単位

見出しの測定単位:DEGREES

x座標#

x_position は、フィールド上の参照点の x 座標を返します。

Usage:
gps_sensor.x_position(units)

パラメータ

説明

ユニット

測定単位:

  • MM – ミリメートル
  • INCHES

y座標#

y_position は、フィールド上の参照点の y 座標を返します。

Usage:
gps_sensor.y_position(units)

パラメータ

説明

ユニット

測定単位:

  • MM – ミリメートル
  • INCHES

見出し#

heading は、フィールドの向きに基づいて、0 度から 359.9 度までの基準点の方向を返します。

方位は絶対方位に対応しており、時計回りに0度から359.9度の範囲をとります。0度は12時の位置です。

VEX V5フィールドを上から見た図。フィールド周辺の角度を示しています。

Usage:
gps_sensor.heading()

パラメータ

説明

このメソッドにはパラメータがありません。

加速度#

acceleration 、指定された軸におけるロボットの加速度を -4.0 ~ 4.0 Gs の範囲で返します。

Usage:
gps_sensor.acceleration(axis)

パラメータ

説明

軸

使用する軸:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

ジャイロレート#

gyro_rate は、選択された軸におけるロボットの回転速度を返します。

Usage:
gps_sensor.gyro_rate(axis, units)

パラメータ

説明

軸

使用する軸:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

ユニット

測定単位:

  • VelocityUnits.DPS – 度/秒、-1000~1000
  • VelocityUnits.RPM – 回転/分、-167~167

方向#

orientation 、ロボットのロール、ピッチ、またはヨーの方向を度数で返します。

Usage:
gps_sensor.orientation(axis, units)

パラメータ

説明

軸

使用する方向:

  • OrientationType.ROLL
  • OrientationType.PITCH
  • OrientationType.YAW

ユニット

測定単位:DEGREES

品質#

quality 、GPS センサーの信号強度をパーセントで返します。

可能な値

説明

100

GPSセンサーから報告される位置情報および方位データはすべて有効です。

約90

位置データは、GPSフィールドコードから情報を取得することによって計算されるのではなく、別の手段によって計算されるようになった。

0 - 80

GPSセンサーの方位値のみが有効ですが、GPSセンサーが位置と方位情報を正確に判断するために十分なGPSフィールドコードをスキャンしていない状態が時間が経過するにつれて、報告される信号品質は0まで低下し続け、最終的にはGPSセンサーのデータは事実上凍結され、無効になります。

Usage:
gps_sensor.quality()

パラメータ

説明

このメソッドにはパラメータがありません。

変更しました#

changed GPSセンサーが方位の変化を検出するたびに呼び出される関数を登録します。

Usage:
gps_sensor.changed(callback, arg)

パラメータ

説明

callback

GPSセンサーの進行方向が変わったときに実行される、事前に定義された関数。

arg

オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付き関数の使用を参照してください。

def my_function():
  brain.screen.print("GPS heading changed")

# Call my_function whenever gps_sensor's heading changes
gps_sensor.changed(my_function)

コンストラクタ#

コンストラクタは、VEXcode の外部で GPS センサーを構成するために必要な Gps オブジェクトを手動で作成するために使用されます。

Gps#

Gps は GPS センサーを作成します。

Usage:
Gps(smartport)

パラメータ

説明

smartport

GPSセンサーが接続されているスマートポートは、 Ports.PORTx と表記されます。ここで、xはポート番号です。

# Create a GPS Sensor in Port 10
gps_sensor = Gps(Ports.PORT10)