ロボット専用ブロック#
導入#
VRローバーロボットには、ドライブトレイン、距離センサー、およびローバーレスキュープレイグラウンド固有のアクションが含まれています。
すべての標準VEXcode VRブロックは、Rover Rescueプレイグラウンドで使用できます。
以下は、利用可能なロボット専用ブロックの一覧です。
駆動系 - VRローバーを動かし、方向転換させる。
アクション
設定
走行速度を設定 - VR Roverに走行速度を指示します。
旋回速度を設定 - VR Roverに旋回速度を指示します。
set drive heading - VR Rover の現在の進行方向を新しい進行方向に変更します。
set drive timeout – VR Rover が動作を完了しようとする秒数を設定します。
価値観
走行完了 - VR Rover の移動が完了したかどうかを報告します。
ドライブが動いている - VR Roverが動いているかどうかを報告します。
ドライブ方位 - VR Rover の現在の方位を 0 ~ 359.99 度の範囲で報告します。
アクション - ローバーのリソース、敵、および内蔵AIシステムとインタラクトする。
アクション
価値観
rover sees - VR Rover が視界範囲内にオブジェクトを認識しているかどうかを返します。
rover detected - VR Rover が検出範囲内で鉱物または敵を検出したかどうかを返します。
貯蔵中の鉱物 - VR ローバーが運んでいる鉱物の数を返します。
ストレージ容量 - VR Rover の現在の積載容量を返します。
ローバー方向 - オブジェクトの方向を度数で返します。
ローバー距離 - オブジェクトまでの距離をミリメートルまたはインチで返します。
ローバー位置 - オブジェクトの X または Y 座標をミリメートルまたはインチ単位で返します。
攻撃中 - VR Rover が現在攻撃を受けているかどうかを返します。
敵レベル - 最も近い検出された敵のレベルを返します。
敵の放射線 - 最も近い検出された敵の放射線を返します。
バッテリーレベル - VR Rover の現在のバッテリーレベルを % で返します。
level - VR Rover の現在のレベルを返します。
XP - VR Rover の現在の経験値を返します。
攻撃を受けているとき - VR ローバーが攻撃されたときに、接続されたブロックを実行します。
レベルアップ時 - VR ローバーがレベルアップすると、接続されたブロックを実行します。
センシング - ローバーの距離センサーで近くの物体を検出します。
距離がオブジェクトを検出しました - 距離センサーがオブジェクトを検出したかどうかを返します。
オブジェクト距離 - 検出された最も近いオブジェクトまでの距離を返します。
このページに掲載されている例では、Playgroundのデフォルトの開始位置を使用しています。
パワートレイン#
駆動系はVRローバーの走行と旋回を制御します。駆動系は前進、後退、左折、右折、方向転換、および進行方向の報告を行うことができます。
行動#
ドライブ#
駆動スタックブロックは、ロボットを永久に前進または後退させます。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。
[前進 v] へ走行
パラメータ |
説明 |
|---|---|
方向 |
ロボットの移動方向:前進または後退。 |
例
開始したとき
[Drive forward, then stop.]
[前進 v] へ走行
(2) 秒待つ
走行停止
ドライブ#
駆動スタックブロックは、ロボットを特定の距離だけ前進または後退させます。プロジェクトは、ロボットの移動が完了するまで待機し、その後スタック内の次のブロックが実行されます。
[前進 v] へ (200) [mm v] 走行 ▶
パラメータ |
説明 |
|---|---|
方向 |
ロボットの移動方向:前進または後退。 |
距離 |
ロボットが走行する距離。整数または小数で指定できます。 |
ユニット |
距離の単位:mm(ミリメートル)またはインチ。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Drive forward for 500 mm.]
[前進 v] へ (500) [mm v] 走行 ▶
振り向く#
turnスタックブロックは、ロボットを左右に永久に旋回させます。ロボットは、走行や停止などの別の動作が与えられるまで旋回を続けます。
[右 v] へ旋回
パラメータ |
説明 |
|---|---|
方向 |
ロボットが旋回する方向:左または右。 |
例
開始したとき
[Turn right, then stop.]
[右 v] へ旋回
(2) 秒待つ
走行停止
ターン#
turn forスタックブロックは、ロボットを指定された角度だけ左右に回転させます。回転角度はロボットの現在位置を基準としています。プロジェクトは、ロボットの回転が完了するまで待機し、その後スタック内の次のブロックが実行されます。
[右 v] へ (90) 度旋回 ▶
パラメータ |
説明 |
|---|---|
方向 |
ロボットが旋回する方向:左または右。 |
角度 |
ロボットが回転する角度(度)。整数または小数で指定できます。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Turn left, then turn right.]
[左 v] へ (90) 度旋回 ▶
[右 v] へ (180) 度旋回 ▶
見出しに目を向ける#
方位とは、ロボットが向いている方向のことで、度数で表されます。方位へ旋回スタックブロックは、ロボットを-359度から359度までの特定の方位に向けます。ロボットは、目標の方位に到達するために最短の方向へ旋回します。
開始時の方位は0度です。
プロジェクトでは、ロボットの旋回が完了するまで待機し、その後スタック内の次のブロックが実行されます。
ヘディング (90) 度へ旋回 ▶
パラメータ |
説明 |
|---|---|
見出し |
ロボットが向くべき方向。範囲は-359度から359度まで。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Turn to face east.]
ヘディング (90) 度へ旋回 ▶
オブジェクトへ移動#
オブジェクトへ移動スタックブロックは、VRローバーを回転させて選択したオブジェクトまで移動させます。
[minerals v] ▶へ進む
パラメータ |
説明 |
|---|---|
物体 |
VRローバーが向かうオブジェクトはどれですか?
|
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
VRローバーが複数の鉱物または複数の敵を検出した場合、より近い場所に移動します。
ブロック実行時に探査機の視界範囲内に鉱物や敵が検出されない場合、ロボットは走行しない。基地は常に標的になり得る。
例
開始したとき
[Drive to the closest mineral.]
[minerals v] ▶へ進む
運転をやめる#
「運転停止」スタックブロックは、ロボットの動きを停止させます。
走行停止
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Drive forward, then stop.]
[前進 v] へ走行
(4) 秒待つ
走行停止
設定#
ドライブ速度を設定する#
走行速度設定スタックブロックは、ロボットの走行速度を指定します。パーセンテージが高いほどロボットは速く走行し、低いほど遅く走行します。
すべてのプロジェクトは、ロボットがデフォルトで50%の速度で走行するところから始まります。
注: 速度を速くするとロボットの走行速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとロボットの走行速度は遅くなりますが、精度は向上する可能性があります。
走行速度を (50) [% v] に設定
パラメータ |
説明 |
|---|---|
速度 |
0%から100%までの走行速度。 |
ユニット |
速度の単位:% |
例
開始したとき
[Move faster.]
走行速度を (100) [% v] に設定
[前進 v] へ (100) [mm v] 走行 ▶
旋回速度を設定#
旋回速度設定スタックブロックは、ロボットがどれくらいの速さで旋回するかを指示します。パーセンテージが高いほどロボットは速く旋回し、低いほど遅く旋回します。
すべてのプロジェクトは、ロボットがデフォルトで50%の速度で旋回するところから始まります。
注: 速度が速いほどロボットの旋回速度は速くなりますが、精度が低下する可能性があります。速度が遅いほどロボットの旋回速度は遅くなりますが、精度は向上する可能性があります。
旋回速度を (50) [% v] に設定
パラメータ |
説明 |
|---|---|
速度 |
旋回速度を0%から100%まで設定します。 |
ユニット |
速度の単位:% |
例
開始したとき
[Turn faster.]
旋回速度を (100) [% v] に設定
[右 v] へ (90) 度旋回 ▶
ドライブヘディングを設定する#
方位とは、ロボットが向いている方向のことで、度数で表されます。set drive headingスタックブロックは、ロボットの現在の方位を新しい方位値に変更します。
例えば、ロボットが右を向いた場合、方位を0度に設定すると、その右向きの位置が新たな0度になります。その後、ロボットはその新たな方位に基づいて他の位置に旋回することができます。
走行ヘディングを (0) 度に設定
パラメータ |
説明 |
|---|---|
見出し |
ロボットに設定する方位角の値(度数)。 |
例
開始したとき
[Set the heading, then turn to 0 degrees.]
走行ヘディングを (90) 度に設定
ヘディング (0) 度へ旋回 ▶
ドライブのタイムアウトを設定する#
set drive timeoutスタックブロックは、ロボットが動作を完了するまでの試行時間を秒単位で設定します。ロボットがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、ロボットが動作中に停止してしまうのを防ぎます。
走行タイムアウトを (1) 秒に設定
パラメータ |
説明 |
|---|---|
時間 |
ロボットが動作を完了するために試行できる秒数。整数または小数を指定できます。 |
例
開始したとき
[Drive for at most 1 second.]
走行タイムアウトを (1) 秒に設定
[前進 v] へ (25) [インチ v] 走行 ▶
価値観#
運転は終了しました#
走行完了ブール値ブロックは、ロボットの移動が完了したかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 - ロボットの移動が完了しました。
誤り - ロボットはまだ動いています。
このブロックは、待機しない パラメータを持つドライブトレインブロックと連携して動作します。
<走行完了?>
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Start turning when the drive is complete.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
<走行完了?> まで待つ
[右 v] へ (360) 度旋回 ▶
ドライブが動いています#
駆動装置が動いているというブール値ブロックは、ロボットが動いているかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 - ロボットは動いています。
誤り - ロボットは動いていません。
このブロックは、待機しない パラメータを持つドライブトレインブロックと連携して動作します。
<走行中?>
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Print while the rover is moving.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
<走行中?> の間繰り返す
[Still Moving...] を表示 ▶
(0.1) 秒待つ
全行をクリア
終わり
[Done!] を表示 ▶
ドライブヘッジ#
方位とは、ロボットが向いている方向のことで、度数で表されます。駆動方位レポーターブロックは、0度から359.99度までの方位を報告します。
ロボットの初期進行方向は0度です。
(走行ヘディング(度))
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Display the heading after turning.]
[右 v] へ (90) 度旋回 ▶
(走行ヘディング(度)) を表示 ▶
カーソルを次の行へ移動
行動#
行動#
ミネラルの作用#
ミネラル [選び出す v]
パラメータ |
説明 |
|---|---|
アクション |
鉱物の操作方法:
|
鉱物を採取すると、それらはVRローバーに保管され、落とされるか使用されるまでそこに留まります。
鉱物を使用すると、VRローバーのエネルギーが一部回復します。鉱物は地面にある場合のみ使用できます。
VRローバーは、鉱物を使用したり、基地に鉱物を投下したりすることで経験値(XP)を獲得します。
例
開始したとき
[Drive to the closest mineral and pick it up.]
[minerals v] ▶へ進む
ミネラル [選び出す v]
敵の放射線を吸収する#
敵の放射線を吸収ブロックは、ローバーレスキュープレイグラウンドで敵から発せられる放射線を吸収します。
放射線を吸収する
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Drive to the closest enemy and absorb radiation.]
[enemy v] ▶へ進む
放射線を吸収する
待機する#
スタンバイブロックは、指定されたバッテリー残量に達するまでVR Roverをスタンバイモードにします。
バッテリー残量 [50] %までスタンバイ
パラメータ |
説明 |
|---|---|
パーセント |
VR Roverがスタンバイモードを終了するバッテリー残量のしきい値(0~100)。 |
VR Roverはスタンバイ状態ではバッテリーの消費速度は遅くなりますが、生存日数カウンターはより速いペースで増加します。
バッテリー残量が設定されたしきい値に達すると、VR Roverはスタンバイモードを終了し、通常のバッテリー使用と日数の進行に戻ります。
選択されたしきい値が現在のバッテリー残量以上である場合、VR Roverはスタンバイモードに入りません。
例
開始したとき
[Wait in standby until battery reaches 35%.]
バッテリー残量 [35] %までスタンバイ
[minerals v] ▶へ進む
価値観#
ローバーは見る#
rover sees ブロックは、VR Rover が内蔵の AI 技術を使用して選択されたオブジェクトを認識しているかどうかを示すブール値を返します。
正解 - 選択されたオブジェクトはVRローバーから1000ミリメートル以内であり、かつ視野内にあります。
誤り - 選択したオブジェクトが1000ミリメートル以上離れているか、視野外にあります。
<[minerals v]見る?>
パラメータ |
説明 |
|---|---|
物体 |
チェックするオブジェクト:
|
VRローバーの視野角は40度で、ミニマップ上ではローバーの前方から伸びる灰色の半透明の円錐として表示されます。
例
開始したとき
ずっと
もし <[minerals v]見る?> なら
[minerals v] ▶へ進む
終わり
終わり
ローバーが検出#
rover detected ブロックは、VR Rover が内蔵の AI 技術を使用して鉱物または敵を検出したかどうかを示すブール値を返します。
正解 - 選択されたオブジェクトは、探査機の検出半径内にあります。
誤り - 選択されたオブジェクトは、探査機の検出半径内にありません。
<[minerals v]を検出しましたか?>
パラメータ |
説明 |
|---|---|
物体 |
検出対象:
|
VRローバーの検知半径は800ミリメートルで、ミニマップ上ではローバーを囲む黄色の円で表示されます。
例
開始したとき
ずっと
もし <[minerals v]を検出しましたか?> なら
[minerals v] ▶へ進む
終わり
終わり
貯蔵されている鉱物#
貯蔵中の鉱物ブロックは、VRローバーが貯蔵している現在の鉱物の量を返します。
(貯蔵中の鉱物)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
(貯蔵中の鉱物) を表示 ▶
カーソルを次の行へ移動
ストレージ容量#
ストレージ容量ブロックは、VRローバーのストレージの積載容量を返します。
(ストレージ容量)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
(ストレージ容量) を表示 ▶
カーソルを次の行へ移動
ローバーの方向#
ローバー方向ブロックは、VRローバーから選択されたオブジェクトへの方向を度数で返します。
([minerals v] 方向)
パラメータ |
説明 |
|---|---|
物体 |
報告するオブジェクトの方向:
|
鉱物や敵に関しては、このブロックは選択されたオブジェクトが1000ミリメートル以内かつ探査車の40度の視野内にある場合にのみ値を報告します。
baseが選択されている場合、ベースが視野内にない場合でも方向が報告されます。ベースの場合、このブロックは-180度から180度までの値を報告します。
例
開始したとき
([minerals v] 方向) を表示 ▶
カーソルを次の行へ移動
ローバーの距離#
ローバー距離ブロックは、VRローバーから選択したオブジェクトまでの距離を返します。
([minerals v] の距離([mm v]) :: custom-actions)
パラメータ |
説明 |
|---|---|
物体 |
報告する対象物の距離:
|
ユニット |
距離の単位:mmまたはインチ |
鉱物や敵に関しては、このブロックは選択されたオブジェクトが1000ミリメートル以内かつ探査車の40度の視野内にある場合にのみ値を報告します。
ベースが選択されている場合、ベースが視野内にない場合でも距離が報告されます。
例
開始したとき
([minerals v] の距離([mm v]) :: custom-actions) を表示 ▶
カーソルを次の行へ移動
ローバーの位置#
ローバー位置ブロックは、ローバーに内蔵されたAI技術を使用して、選択されたオブジェクトのX座標またはY座標を返します。
([minerals v] 場所 [X v] に [mm v])
パラメータ |
説明 |
|---|---|
物体 |
報告するオブジェクトの位置:
|
軸 |
返される座標:
|
ユニット |
座標の報告に使用される単位:mmまたはインチ |
鉱物や敵に関しては、このブロックは選択されたオブジェクトが1000ミリメートル以内かつ探査車の40度の視野内にある場合にのみ値を報告します。
基地が選択されている場合、基地が視野内にない場合でも位置情報が報告されます。
例
開始したとき
([base v] 場所 [X v] に [mm v]) を表示 ▶
カーソルを次の行へ移動
([base v] 場所 [Y v] に [mm v]) を表示 ▶
カーソルを次の行へ移動
攻撃を受けている#
under attack ブロックは、VR Rover が現在敵から攻撃を受けているかどうかを示すブール値を返します。
本当です。VRローバーは攻撃を受けています。
誤り - VRローバーは攻撃を受けていません。
<攻撃を受けている?>
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
ずっと
もし <攻撃を受けている?> なら
[後退 v] へ [500] [mm v] 走行 ▶
終わり
終わり
敵レベル#
敵レベルブロックは、VRローバーによって検出された最も近い敵のレベルを返します。
(敵のレベル)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
VRローバーの検出範囲内に敵が検出されない場合、このブロックは 0を返します。
例
開始したとき
ずっと
もし <(敵のレベル) [math_equal v] [1]> なら
[enemy v] ▶へ進む
でなければ
[後退 v] へ [500] [mm v] 走行 ▶
終わり
終わり
敵の放射線#
敵の放射線ブロックは、VRローバーによって検出された最も近い敵の放射線を返します。
(敵の放射線)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
VRローバーの検出範囲内に敵が検出されない場合、このブロックは 0を返します。
例
開始したとき
(敵の放射線) を表示 ▶
カーソルを次の行へ移動
バッテリー残量#
バッテリーレベルブロックは、VR Roverの現在のバッテリーレベルをパーセントで返します。
(バッテリー残量(%) :: custom-actions)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
(バッテリー残量(%) :: custom-actions) を表示 ▶
カーソルを次の行へ移動
レベル#
levelブロックは、VRローバーの現在のレベルを返します。
(レベル)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
(レベル) を表示 ▶
カーソルを次の行へ移動
XP#
XPブロックは、VRローバーが現在持っている経験値の数を返します。
(XP)
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
(XP) を表示 ▶
カーソルを次の行へ移動
攻撃を受けているとき#
攻撃を受けた時ブロックは、VRローバーが敵に攻撃されるたびに、アタッチされたスタックを実行します。
攻撃を受けたとき
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
攻撃を受けたとき
放射線を吸収する
レベルアップ時#
レベルアップ時ブロックは、VRローバーが1つのレベルから次のレベルに移動するたびに、それに接続されたスタックを実行します。
レベルアップ時
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
レベルアップ時
[The VR Rover has leveled up!] を表示 ▶
カーソルを次の行へ移動
センシング#
距離#
距離がオブジェクトを検出しました#
距離で物体を検出ブロックは、距離センサーが2000mm以内に物体を検出したかどうかを示すブール値を返します。
正解 - 距離センサーが物体を検出しました。
誤り - 距離センサーが物体を検出していません。
<[distance v] がオブジェクトを検出?>
パラメータ |
説明 |
|---|---|
距離センサー |
どの距離センサーを使用するか。このプレイグラウンドでは、利用可能なセンサーは距離 |
例
開始したとき
[Turn until the Distance Sensor detects an object.]
[右 v] へ旋回
<[distance v] がオブジェクトを検出?> まで待つ
走行停止
物体距離#
オブジェクト距離ブロックは、距離センサーから最も近いオブジェクトまでの距離を返します。
([distance v] in [mm v])
パラメータ |
説明 |
|---|---|
距離センサー |
どの距離センサーを使用するか。このプレイグラウンドでは、利用可能なセンサーは距離 |
ユニット |
距離の単位:mm または インチ |
例
開始したとき
[Wait until the Distance Sensor detects an object, then print the distance.]
[右 v] へ旋回
<[distance v] がオブジェクトを検出?> まで待つ
走行停止
([distance v] in [mm v]) を表示 ▶