ロボット専用ブロック#

導入#

ヒーローボット「フレックス」には、クローモーター、アームモーター、AIビジョンセンサー、距離センサー、およびゲームポジショニングシステム(GPS)センサーが搭載されています。

すべての標準VEXcode VRブロックは、V5 26-27 Overrideプレイグラウンドで使用できます。

以下は、利用可能なロボット専用ブロックの一覧です。

駆動系 – ロボットの移動と旋回。

  • アクション

    • drive — ロボットを永久に前進または後退させます。

    • drive for — ロボットを特定の距離だけ前進または後退させます。

    • turn — ロボットを永久に左または右に回転させます。

    • turn for — ロボットを特定の角度だけ左または右に回転させます。

    • 方向転換 — ロボットを特定の方向に向けて回転させます。

    • 回転方向へ — ロボットを特定の回転方向に向けます。

    • 運転停止 — ロボットの動きを停止します。

  • 設定

  • 価値観

    • 走行完了 — ロボットの移動が完了したかどうかを報告します。

    • ドライブが動いている — ロボットが動いているかどうかを報告します。

    • 駆動方向 — ロボットの現在の進行方向を0度から359.99度の範囲で報告します。

    • 駆動回転 — ロボットの現在の回転を報告します。

    • drive velocity — ロボットの走行速度を報告します。

動作 – ロボットのモーターを動かし、追跡する。

AIビジョン – AIビジョンセンサーを使用して物体をキャプチャおよび分析します。

センシング – ロボットの各種センサーを活用する。

  • 距離

  • GPS

    • GPS位置 – GPSセンサーからのXまたはY位置を返します。

    • GPS 方位 – ロボットが現在向いている方位を返します。

このページに掲載されている例では、プレイグラウンドの試合前チェックリストにある開始地点Cを使用しています。

パワートレイン#

駆動系は、VRロボットの走行と旋回を制御します。駆動系は、前進、後退、左折、右折、方向転換、回転などを行うことができます。

行動#

ドライブ#

駆動スタックブロックは、ロボットを永久に前進または後退させます。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。

[前進 v] へ走行

パラメータ

説明

方向

ロボットの移動方向:前進または後退。

例

開始したとき :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ走行
(0.5) 秒待つ
走行停止
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

ドライブ#

駆動スタックブロックは、ロボットを特定の距離だけ前進または後退させます。プロジェクトは、ロボットの移動が完了するまで待機し、その後スタック内の次のブロックが実行されます。

[前進 v] へ (200) [mm v] 走行 ▶

パラメータ

説明

方向

ロボットの移動方向:前進または後退。

距離

ロボットが走行する距離。整数または小数で指定できます。

ユニット

距離の単位:mm(ミリメートル)またはインチ

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

振り向く#

turnスタックブロックは、ロボットを左右に永久に旋回させます。ロボットは、走行や停止などの別の動作が与えられるまで旋回を続けます。

[右 v] へ旋回

パラメータ

説明

方向

ロボットが旋回する方向:左または右。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
[左 v] へ旋回
(0.78) 秒待つ
走行停止
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

ターン#

turn forスタックブロックは、ロボットを指定された角度だけ左右に回転させます。回転角度はロボットの現在位置を基準としています。プロジェクトは、ロボットの回転が完了するまで待機し、その後スタック内の次のブロックが実行されます。

[右 v] へ (90) 度旋回 ▶

パラメータ

説明

方向

ロボットが旋回する方向:左または右。

角度

ロボットが回転する角度(度)。整数または小数で指定できます。

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
[左 v] へ (110) 度旋回 ▶
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

見出しに目を向ける#

方位とは、ロボットが向いている方向のことで、度数で表されます。方位へ旋回スタックブロックは、ロボットを-359度から359度までの特定の方位に向けます。ロボットは、目標の方位に到達するために最短の方向へ旋回します。

開始時の方位は0度です。

プロジェクトでは、ロボットの旋回が完了するまで待機し、その後スタック内の次のブロックが実行されます。

ヘディング (90) 度へ旋回 ▶

パラメータ

説明

見出し

ロボットが向くべき方向。範囲は-359度から359度まで。

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
ヘディング (-110) 度へ旋回 ▶
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

回転する#

回転方向転換スタックブロックは、ロボットを特定の回転方向に向けます。

回転とは、ロボットがどれだけ回転したかを示すもので、度数で表されます。プロジェクトの開始時には、回転値は0度に設定されています。回転は、set drive rotation ブロックを使用して設定することもできます。

回転値は絶対値です。つまり、旋回方向はロボットの現在の回転角度によって決まります。右に旋回すると回転角度が大きくなり、左に旋回すると回転角度が小さくなります。

例えば、ロボットが0度の位置から始まり、720度回転させると、右に2回転します。次に360度回転させると、360度は720度より小さいため、左に1回転します。

プロジェクトでは、ロボットの旋回が完了するまで待機し、その後スタック内の次のブロックが実行されます。

回転 (90) 度へ旋回 ▶

パラメータ

説明

回転

ロボットが回転する角度(度数)。整数または小数を指定できます。

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
回転 (-110) 度へ旋回 ▶
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

運転をやめる#

「運転停止」スタックブロックは、ロボットの動きを停止させます。

走行停止

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ走行
(0.5) 秒待つ
走行停止
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

設定#

ドライブ速度を設定する#

走行速度設定スタックブロックは、ロボットの走行速度を指定します。パーセンテージが高いほどロボットは速く走行し、低いほど遅く走行します。

すべてのプロジェクトは、ロボットがデフォルトで50%の速度で走行するところから始まります。

注: 速度を速くするとロボットの走行速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとロボットの走行速度は遅くなりますが、精度は向上する可能性があります。

走行速度を (50) [% v] に設定

パラメータ

説明

速度

0%から100%までの走行速度。

ユニット

速度の単位:%

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
[左 v] へ (110) 度旋回 ▶
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
走行速度を (100) [% v] に設定
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

旋回速度を設定#

旋回速度設定スタックブロックは、ロボットがどれくらいの速さで旋回するかを指示します。パーセンテージが高いほどロボットは速く旋回し、低いほど遅く旋回します。

すべてのプロジェクトは、ロボットがデフォルトで50%の速度で旋回するところから始まります。

注: 速度が速いほどロボットの旋回速度は速くなりますが、精度が低下する可能性があります。速度が遅いほどロボットの旋回速度は遅くなりますが、精度は向上する可能性があります。

旋回速度を (50) [% v] に設定

パラメータ

説明

速度

旋回速度を0%から100%まで設定します。

ユニット

速度の単位:%

例

開始したとき :: hat events
[Turn to face the Neutral Goal faster.]
旋回速度を (100) [% v] に設定
[左 v] へ (110) 度旋回 ▶

ドライブヘディングを設定する#

方位とは、ロボットが向いている方向のことで、度数で表されます。set drive headingスタックブロックは、ロボットの現在の方位を新しい方位値に変更します。

例えば、ロボットが右を向いた場合、方位を0度に設定すると、その右向きの位置が新たな0度になります。その後、ロボットはその新たな方位に基づいて他の位置に旋回することができます。

走行ヘディングを (0) 度に設定

パラメータ

説明

見出し

ロボットに設定する方位角の値(度数)。

例

開始したとき :: hat events
[Make facing the Neutral Goal the new heading.]
走行ヘディングを (110) 度に設定
ヘディング (0) 度へ旋回 ▶

ドライブの回転方向を設定します#

回転とは、ロボットがどれだけ回転したかを示すもので、度数で表されます。プロジェクトの開始時には、回転値は0度に設定されています。set drive rotationスタックブロックは、ロボットの現在の回転値を新しい値に変更します。

例えば、ロボットが右に2回転した場合、回転角度は720度になります。回転角度を0度に設定すると、720度から0度にリセットされます。その後、ロボットはその新しい値に基づいて回転することができます。

走行回転を (0) 度に設定

パラメータ

説明

回転

ロボットに設定する回転角度(度数)。整数または小数を指定できます。

例

開始したとき :: hat events
[Make facing the Neutral Goal the new rotation.]
走行回転を (110) 度に設定
回転 (0) 度へ旋回 ▶

ドライブのタイムアウトを設定する#

set drive timeoutスタックブロックは、ロボットが動作を完了するまでの試行時間を秒単位で設定します。ロボットがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、ロボットが動作中に停止してしまうのを防ぎます。

走行タイムアウトを (1) 秒に設定

パラメータ

説明

時間

ロボットが動作を完了するために試行できる秒数。整数または小数を指定できます。

例

開始したとき :: hat events
[Turn to face the Neutral Goal.]
走行タイムアウトを (0.8) 秒に設定
[左 v] へ (180) 度旋回 ▶

価値観#

運転は終了しました#

走行完了ブール値ブロックは、ロボットの移動が完了したかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • 正解 — ロボットの移動が完了しました。

  • 誤り — ロボットはまだ動いています。

このブロックは、待機しない パラメータを持つドライブトレインブロックと連携して動作します。

<走行完了?>

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Score a Pin in a Neutral Goal.]
[左 v] へ (110) 度旋回 ▶
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ◀ 待たない
<走行完了?> まで待つ
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

ドライブが動いています#

駆動装置が動いているというブール値ブロックは、ロボットが動いているかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • 正解 — ロボットは動いています。

  • 誤り — ロボットは動いていません。

このブロックは、待機しない パラメータを持つドライブトレインブロックと連携して動作します。

<走行中?>

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Raise the Arm once stopped near the Goal.]
[左 v] へ (110) 度旋回 ▶
[前進 v] へ (25) [インチ v] 走行 ◀ 待たない
<走行中?> の間繰り返す
(0.005) 秒待つ
終わり
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶

ドライブヘッジ#

方位とは、ロボットが向いている方向のことで、度数で表されます。駆動方位レポーターブロックは、0度から359.99度までの方位を報告します。

ロボットの初期進行方向は0度です。

(走行ヘディング(度))

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Turn to the Goal, then show heading.]
[右 v] へ (450) 度旋回 ▶
(走行ヘディング(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する

駆動回転#

回転とは、ロボットがどれだけ回転したかを示すもので、単位は度です。プロジェクトの開始時には、回転値は0度に設定されます。ドライブ回転レポーターブロックは、ロボットの現在の回転角度を報告します。

右に回すと回転角度が大きくなり、左に回すと回転角度が小さくなります。例えば、右に2回転すると、720度の回転として表示されます。

(走行回転角(度))

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Spin to find a Pin, then show rotation.]
[右 v] へ (450) 度旋回 ▶
(走行回転角(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する

駆動速度#

走行速度レポーターブロックは、ロボットがどれくらいの速さで走行しているかを報告します。

(走行速度([% v]))

パラメータ

説明

ユニット

速度の単位:%

例

開始したとき :: hat events
[Show speed while driving to the Goal.]
[前進 v] へ (150) [mm v] 走行 ▶
(走行速度([% v])) をスクリーンに表示 ◀ カーソルを次の行へ移動する

モーション#

Flexは、アームモーターを使ってアームを上げ下げし、クローモーターを使って爪を開閉します。

各モーターにはそれぞれ回転方向のオプションがあります。回転方向の名前は、そのモーターがFlex上でどのように動くかを表しています。

行動#

スピンモーター#

スピンモータースタックブロックは、モーターを2つの方向のいずれかに永久に回転させます。モーターは、別の方向に回転させたり、停止させたりといった別の動作が与えられるまで回転し続けます。

[ArmMotor v] を [上 v] へ回転

パラメータ

説明

モーター

回転させるモーター:アームモーターまたはクローモーター。

方向

モーターの回転方向:

  • アームモーター — 上または下
  • クローモーター — 開くまたは閉じる

例

開始したとき
[Raise the Arm before driving toward a Pin.]
[ArmMotor v] を [上 v] へ回転
(1) 秒待つ
[ArmMotor v] を停止

スピンモーター#

spin motor forスタックブロックは、モーターを特定の距離だけ回転させます。回転はモーターの現在位置を基準としています。プロジェクトは、モーターの回転が終了するまで待機し、その後スタック内の次のブロックが実行されます。

[ArmMotor v] を [上 v] へ (90) [度 v] 回転 ▶

パラメータ

説明

モーター

回転させるモーター:アームモーターまたはクローモーター。

方向

モーターの回転方向:

  • アームモーター — 上または下
  • クローモーター — 開くまたは閉じる

距離

モーターが回転する距離。度は整数を使用します。回転数は整数または小数を使用できます。

ユニット

距離の単位:度または回転数。

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき
[Raise the Arm to carry the Pin to the Goal.]
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶

モーターを回転させて位置を合わせる#

モーターを所定の位置に回転させるスタックブロックは、モーターを特定の位置まで回転させます。

モーターの位置は、回転した角度を表し、度または回転数で測定されます。1回転は360度です。プロジェクトの開始時には、ArmMotorの位置は0度に設定されています。ClawMotorは例外で、467度(完全に閉じた状態)から始まります。モーターの位置は、モーター位置を設定ブロックを使用して設定することもできます。

位置値は絶対値です。つまり、回転方向はモーターの現在位置によって決まります。

例えば、モーターが0度の位置から始まり、720度の位置まで回転した場合、2回転前進します。その後、360度の位置まで回転した場合、360度は720度より小さいため、1回転後退します。

[ArmMotor v] を位置 (90) [度 v] へ回転 ▶

パラメータ

説明

モーター

回転させるモーター:アームモーターまたはクローモーター。

位置

モーターが回転する位置の値。度は整数を使用します。回転数は整数または小数を使用できます。

ユニット

位置の単位:度または回転。

そして待たない

矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。

例

開始したとき
[Raise the Arm, then release the Pin.]
[ArmMotor v] を位置 (800) [度 v] へ回転 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

モーターを停止する#

モーター停止スタックブロックは、選択したモーターを停止します。

[ArmMotor v] を停止

パラメータ

説明

モーター

停止させるモーター:アームモーターまたはクローモーター。

例

開始したとき
[Raise the Arm partway to hold the Pin.]
[ArmMotor v] を [上 v] へ回転
(1) 秒待つ
[ArmMotor v] を停止

設定#

モーター速度を設定する#

モーター速度設定スタックブロックは、モーターの回転速度を指定します。パーセンテージが高いほどモーターは速く回転し、低いほど遅く回転します。

すべてのプロジェクトは、各モーターがデフォルトで50%の速度で回転する状態から始まります。

注: 速度を速くするとモーターの回転速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとモーターの回転速度は遅くなりますが、精度は向上する可能性があります。

[ArmMotor v] の速度を [50] [% v] に設定

パラメータ

説明

モーター

ArmMotor または ClawMotor の速度を設定するモーター。

速度

モーターの回転速度。パーセントは0%から100%までの整数で表されます。

ユニット

速度の単位:%。

例

開始したとき
[Raise the Arm fast to release the Pin.]
[ArmMotor v] の速度を [100] [% v] に設定
[ArmMotor v] を [上 v] へ (800) [度 v] 回転 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

モータータイムアウトを設定する#

set motor timeoutスタックブロックは、モーターが動作を完了するまでの試行時間を設定します。モーターがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、モーターが動作中に停止してしまうのを防ぎます。

[ArmMotor v] のタイムアウトを [1] 秒に設定

パラメータ

説明

モーター

タイムアウトを設定するモーター:ArmMotor または ClawMotor。

時間

モーターが動作を完了するまでの試行時間(秒)。整数または小数を指定できます。

例

開始したとき
[Score a Pin in a Neutral Goal.]
[左 v] へ (110) 度旋回 ▶
[ArmMotor v] のタイムアウトを [1] 秒に設定
[ArmMotor v] を [上 v] へ (1800) [度 v] 回転 ▶
[前進 v] へ (25) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

位置#

運動位置#

モーターの位置とは、モーターが回転した角度のことで、度または回転数で測定されます。1回転は360度に相当します。モーター位置レポーターブロックは、モーターの現在の位置を報告します。

プロジェクト開始時、アームモーターの位置は0度に設定されます。クローモーターは例外で、467度(完全に閉じた状態)から始まります。モーターが1回転すると位置が増加し、反対方向に回転すると位置が減少します。

([ArmMotor v] の位置([度 v]))

パラメータ

説明

モーター

アームモーターまたはクローモーターの位置を報告するモーター。

ユニット

モーターの位置を報告する単位:度または回転数。

例

開始したとき
[Raise the Arm, then release the Pin.]
<([ArmMotor v] の位置([度 v])) < (800)> の間繰り返す
[ArmMotor v] を [上 v] へ回転
(0.002) 秒待つ
終わり
[ArmMotor v] を停止
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

モーター位置を設定する#

モーターの位置とは、モーターが回転した角度のことで、度または回転数で表されます。1回転は360度です。モーター位置設定スタックブロックは、モーターの現在の位置を新しい値に変更します。

例えば、モーターが180度まで回転している場合、位置を0度に設定すると、その位置は180度から0度にリセットされます。その後、モーターはその新しい値に基づいて回転できるようになります。

[ArmMotor v] の位置を (0) [度 v] に設定

パラメータ

説明

モーター

アームモーターまたはクローモーターの位置を設定するモーター。

位置

モーターに設定する位置の値。度は整数を使用します。回転数は整数または小数を使用できます。

ユニット

位置の単位:度または回転。

例

開始したとき
[Reset encoder, raise Arm, place Pin.]
[ArmMotor v] の位置を (0) [度 v] に設定
[ArmMotor v] を位置 (800) [度 v] へ回転 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

価値観#

モーターが完成しました#

モーター完了ブールブロックは、モーターの動作が完了したかどうかを報告します。これは、モーターの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • 正解 — モーターは動作を終えました。

  • 誤り — モーターはまだ動いています。

このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。

<[ArmMotor v] 完了?>

パラメータ

説明

モーター

動作が完了したかどうかを報告するモーター:ArmMotor または ClawMotor。

例

開始したとき
[Raise the Arm while driving to the Goal.]
[ArmMotor v] を位置 (800) [度 v] へ回転 ◀ 待たない
(0.1) 秒待つ
<<[ArmMotor v] 完了?> でない> の間繰り返す
[前進 v] へ走行
(0.005) 秒待つ
終わり
走行停止

モーターが回転している#

モーターが回転しています ブール値ブロックは、モーターが回転しているかどうかを報告します。これは、モーターの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • 正解 — モーターは回転しています。

  • 誤り — モーターは回転していません。

このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。

<[ArmMotor v] 回転中?>

パラメータ

説明

モーター

回転しているかどうかを報告するモーター:ArmMotor または ClawMotor。

例

開始したとき
[Raise the Arm while driving to the Goal, then release the Pin.]
[ArmMotor v] を位置 (800) [度 v] へ回転 ◀ 待たない
(0.1) 秒待つ
<[ArmMotor v] 回転中?> の間繰り返す
[前進 v] へ (20) [mm v] 走行 ▶
終わり
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

モーター速度#

モーター速度レポーターブロックは、モーターの回転速度を-100%から100%までのパーセンテージで報告します。

([ArmMotor v] の速度([% v]) :: custom-motion)

パラメータ

説明

モーター

ArmMotor または ClawMotor の速度を報告するモーター。

ユニット

モーター速度を報告する単位:%。

例

開始したとき
[Show Arm Motor velocity while raising.]
[ArmMotor v] の速度を [100] [% v] に設定
[ArmMotor v] を位置 (800) [度 v] へ回転 ◀ 待たない
(0.2) 秒待つ
([ArmMotor v] の速度([% v]) :: custom-motion) をスクリーンに表示 ◀ カーソルを次の行へ移動する

AIビジョン#

行動#

オブジェクトデータを取得する#

オブジェクトデータ取得ブロックは、AIビジョンセンサーフレームからのデータを単一のシグネチャ(センサーが認識できるもの、例えばフィールド上のゲーム要素などの保存された説明)にフィルタリングします。

データセットには、インデックス0から始まり、幅の大きい順から小さい順にオブジェクトが格納されます。各オブジェクトのプロパティには、AI Visionオブジェクトプロパティブロックを使用してアクセスできます。一致するオブジェクトが検出されない場合は、空のデータセットが返されます。

オブジェクトデータ取得スタックブロック。#
[AIVision v] から [AI 分類 v] データを取得

パラメータ

説明

サイン

指定された署名のデータのみを含むようにデータセットをフィルタリングします。使用可能な署名は次のとおりです

  • AI分類 - RedBluePin、BlueYellowPin、RedYellowPin、YellowPin、およびCupゲーム要素を検出します
  • AprilTags - フィールドで見つかったAprilTag IDを検出します

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Turn to face the Pin.]
旋回速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] オブジェクト [centerX v]) < (140)> then
[左 v] へ旋回
else if <([AIVision v] object [centerX v]) > (180)> then
[右 v] へ旋回
でなければ
走行停止
ブレーク
終わり
終わり
終わり

設定#

オブジェクトアイテムを設定する#

set object item ブロックは、データセット内のどのアイテムを使用するかを設定します。

Set AI Visionオブジェクトアイテムスタックブロック。#
[AIVision v] オブジェクトのアイテムを [1] に設定

パラメータ

説明

アイテム

データセット内で使用する項目の番号。

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[AIVision v] から [AI 分類 v] データを取得
[Check if any AI Classifications were detected in the last snapshot.]
もし <[AIVision v] オブジェクトあり?> なら
[If any AI Classification is detected, check if any of them are a specific game element.]
もし <[AIVision v] オブジェクトは [RedBluePin v]?> なら
[RedBluePin detected.] を表示 ▶
でなければ
[No RedBluePin detected.] を表示 ▶
終わり
終わり

価値観#

オブジェクトが存在する#

オブジェクトが存在するブロックは、データセット内にオブジェクトが検出されたかどうかを示すブール値を返します。

  • 正解 – データセットに検出されたオブジェクトが含まれています。

  • 偽 – データセットには検出されたオブジェクトが含まれていません。

AI Visionオブジェクトはブールブロックを保有しています。#
<[AIVision v] オブジェクトあり?>

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[AIVision v] から [AI 分類 v] データを取得
[Check if any AI Classifications were detected in the last snapshot.]
もし <[AIVision v] オブジェクトあり?> なら
([AIVision v] オブジェクト数) を表示 ◀ カーソルを次の行へ移動する
終わり

オブジェクトは#

object is ブロックは、検出されたオブジェクトが特定の分類に一致するかどうかを示すブール値を返します。

  • 真 – データセット内の項目は特定のオブジェクトです。

  • 誤り – データセット内の項目は、特定のオブジェクトではありません。

AI Visionオブジェクトはブールブロックです。#
<[AIVision v] オブジェクトは [RedBluePin v]?>

パラメータ

説明

物体

比較対象オブジェクト:

  • 赤青ピン
  • 青黄ピン
  • 赤黄ピン
  • 黄ピン
  • カップ

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
もし <[AIVision v] オブジェクトは [RedBluePin v]?> なら
[RedBluePin detected.] を表示 ▶
でなければ
[No RedBluePin detected.] を表示 ▶
終わり
終わり

オブジェクトは AprilTag です#

object is AprilTag ブロックは、検出されたオブジェクトが特定の ID に一致する AprilTag であるかどうかを示すブール値を返します。

  • 正解 – 検出されたオブジェクトは、指定されたIDを持つAprilTagです。

  • 偽 – 検出されたオブジェクトは、指定されたIDを持つAprilTagではありません。

オブジェクトは AprilTag ブール値ブロックです。#
<[AIVision v] オブジェクトは AprilTag [0]?>

パラメータ

説明

AprilTag ID

検出されたAprilTagと比較するためのID番号。

例

開始したとき
[Report if AprilTag 3 is detected.]
[AIVision v] から [AprilTags v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
もし <[AIVision v] オブジェクトは AprilTag [3]?> なら
[That is 3!] を表示 ▶
でなければ
[That isn't 3!] を表示 ▶
終わり
終わり

オブジェクト数#

オブジェクト数ブロックは、データセット内で検出されたオブジェクトの数を整数として返します。

Set AI Visionオブジェクトアイテムスタックブロック。#
([AIVision] オブジェクト数)

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
([AIVision v] オブジェクト数) を表示 ◀ カーソルを次の行へ移動する
終わり

オブジェクトプロパティ#

オブジェクトデータの取得 ブロックが使用された後に保存される各オブジェクトには、以下の 6 つのプロパティが含まれています。

AI Visionオブジェクトプロパティレポーターブロック。#
([AIVision v] オブジェクト [幅 v])

すべてのプロパティ値は、オブジェクトデータ取得ブロックが使用された時点での、AIビジョンセンサーの視野内における検出されたオブジェクトの位置とサイズを表します。これらの値は、センサーの320×240ピクセルの解像度に基づいて、ピクセル単位で測定されます。

パラメータ

説明

財産

Which property of the detected object to use:

幅#

widthプロパティは、検出されたオブジェクトの幅をピクセル単位で、1から320までの整数値で報告します。

パラメータが幅に設定されたAI Visionオブジェクトのプロパティスタックブロック。#
([AIVision v] オブジェクト [幅 v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Approach the next Cup and Pin.]
走行速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] object [width v]) > (140)> then
走行停止
ブレーク
でなければ
[前進 v] へ走行
終わり
終わり
終わり
身長#

heightプロパティは、検出されたオブジェクトの高さをピクセル単位で、1から240までの整数値で報告します。

パラメータが高さに設定されたAI Visionオブジェクトのプロパティスタックブロック。#
([AIVision v] オブジェクト [高さ v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Approach the next Cup and Pin.]
走行速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] object [height v]) > (200)> then
走行停止
ブレーク
でなければ
[前進 v] へ走行
終わり
終わり
終わり
センターX#

centerXプロパティは、検出されたオブジェクトの中心のx座標をピクセル単位で、0から320までの整数値で報告します。

パラメータがcenterXに設定されたAI Visionオブジェクトプロパティスタックブロック。#
([AIVision v] オブジェクト [centerX v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Turn and approach the next Cup and Pin.]
旋回速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] オブジェクト [centerX v]) < (140)> then
[左 v] へ (5) 度旋回 ▶
でなければ
[前進 v] へ (25) [インチ v] 走行 ▶
ブレーク
終わり
終わり
終わり
センターY#

centerYプロパティは、検出されたオブジェクトの中心のy座標をピクセル単位で、0から240までの整数値で報告します。

AI VisionオブジェクトのプロパティスタックブロックのパラメータがcenterYに設定されています。#
([AIVision v] オブジェクト [centerY v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Approach the next Cup and Pin.]
走行速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] object [centerY v]) > (230)> then
走行停止
ブレーク
でなければ
[前進 v] へ走行
終わり
終わり
終わり
オリジネーション#

originXプロパティは、検出されたオブジェクトのバウンディングボックスの左上隅のx座標をピクセル単位で、0から320までの整数値で報告します。

パラメータがoriginXに設定されたAI Visionオブジェクトプロパティスタックブロック。#
([AIVision v] オブジェクト [originX v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Turn and approach the next Cup and Pin.]
旋回速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] オブジェクト [originX v]) < (100)> then
[左 v] へ (5) 度旋回 ▶
でなければ
[前進 v] へ (25) [インチ v] 走行 ▶
ブレーク
終わり
終わり
終わり
起源Y#

originYプロパティは、検出されたオブジェクトのバウンディングボックスの左上隅のy座標をピクセル単位で、0から240までの整数値として報告します。

パラメータがoriginYに設定されたAI Visionオブジェクトプロパティスタックブロック。#
([AIVision v] オブジェクト [originY v])

例

開始したとき
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[左 v] へ (70) 度旋回 ▶
[Approach the next Cup and Pin.]
走行速度を (30) [% v] に設定
ずっと
[AIVision v] から [AI 分類 v] データを取得
もし <[AIVision v] オブジェクトあり?> なら
if <([AIVision v] object [originY v]) > (140)> then
走行停止
ブレーク
でなければ
[前進 v] へ走行
終わり
終わり
終わり

センシング#

距離#

距離がオブジェクトを検出しました#

距離で物体を検出ブールブロックは、距離センサーが現在2000mm以内に物体を検出しているかどうかを報告します。

  • 正解 — 距離センサーが物体を検出します。

  • 誤り — 距離センサーは物体を検出しません。

<[FrontDistance v] がオブジェクトを検出?>

パラメータ

説明

距離センサー

使用する距離センサーを選択してください。Flexで使用可能な距離センサーの中からお選びください。

例

開始したとき :: hat events
[Turn until something is detected, then release the Pin.]
[右 v] へ旋回
<[FrontDistance v] がオブジェクトを検出?> まで待つ
走行停止
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

物体距離#

オブジェクト距離レポーターブロックは、距離センサーと検出された最も近いオブジェクトとの間の距離を報告します。

([FrontDistance v] の距離([mm v]))

パラメータ

説明

距離センサー

使用する距離センサーを選択してください。Flexで使用可能な距離センサーの中からお選びください。

ユニット

距離の単位:mmまたはインチ。

例

開始したとき :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
[前進 v] へ走行
<([FrontDistance v] の距離([mm v])) < (200)> まで待つ
走行停止
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

GPS#

GPS位置情報#

GPS位置ブロックは、GPS(ゲームポジショニングシステム™)センサーを備えたフィールドの中心からロボットの旋回基準点までの位置オフセットを返します。

([GPS v] の [X v] 位置([mm v]))

パラメータ

説明

軸

報告する軸を選択してください:

  • X
  • Y

ユニット

位置を表す単位:mm または インチ

例

開始したとき :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ走行
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
走行停止
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶

GPSの方向#

GPS 方位 ブロックは、VEX GPS フィールドコードからの GPS (Game Positioning System™) センサーの読み取り値に基づいて、ロボットが現在向いている方位を 0.00 ~ 359.99 度の範囲で返します。

([GPS v] のヘディング(度))

パラメータ

説明

このブロックにはパラメータがありません。

例

開始したとき :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
[ArmMotor v] を [上 v] へ (300) [度 v] 回転 ▶
[前進 v] へ (10) [インチ v] 走行 ▶
[ClawMotor v] を [開ける v] へ (180) [度 v] 回転 ▶
[Turn left to face the Neutral Goal.]
旋回速度を (30) [% v] に設定
[左 v] へ旋回
<([GPS v] のヘディング(度)) < (18)> まで待つ
走行停止