パワートレイン#

導入#

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

ドライブトレインをコーディングする方法は数多くあります。以下に、ドライブトレインのすべてのブロックの一覧を示します。

動作 — ロボットを移動および旋回させる。

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

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

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

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

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

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

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

設定 — 駆動系設定を調整します。

値 — 移動状況を確認してください。

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

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

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

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

行動#

ドライブ#

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

[前進 v] へ走行

パラメータ

説明

方向

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

例

開始したとき :: hat events
[Drive forward, then stop.]
[前進 v] へ走行
(2) 秒待つ
走行停止

ドライブ#

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

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

パラメータ

説明

方向

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

距離

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

ユニット

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

そして待たない

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

例

開始したとき :: hat events
[Drive forward.]
[前進 v] へ (500) [mm v] 走行 ▶

振り向く#

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

[右 v] へ旋回

パラメータ

説明

方向

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

例

開始したとき :: hat events
[Turn right, then stop.]
[右 v] へ旋回
(2) 秒待つ
走行停止

ターン#

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

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

パラメータ

説明

方向

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

角度

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

そして待たない

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

例

開始したとき :: hat events
[Turn left, then turn around to the right.]
[左 v] へ (90) 度旋回 ▶
[右 v] へ (180) 度旋回 ▶

見出しに目を向ける#

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

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

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

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

パラメータ

説明

見出し

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

そして待たない

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

例

開始したとき :: hat events
[Turn to face the cardinal directions.]
ヘディング (90) 度へ旋回 ▶
(2) 秒待つ
ヘディング (180) 度へ旋回 ▶
(2) 秒待つ
ヘディング (270) 度へ旋回 ▶
(2) 秒待つ
ヘディング (0) 度へ旋回 ▶
(2) 秒待つ

回転する#

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

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

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

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

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

回転 (90) 度へ旋回 ▶

パラメータ

説明

回転

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

そして待たない

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

例

開始したとき :: hat events
[Turn left, then spin in a circle clockwise and face right.]
回転 (-90) 度へ旋回 ▶
(2) 秒待つ
回転 (450) 度へ旋回 ▶

運転をやめる#

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

走行停止

パラメータ

説明

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

例

開始したとき :: hat events
[Drive forward, then stop.]
[前進 v] へ走行
[4] 秒待つ
走行停止

設定#

駆動速度を設定する#

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

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

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

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

パラメータ

説明

速度

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

ユニット

速度の単位:%

例

開始したとき :: hat events
[Drive forward at the default velocity.]
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ
[Move slower.]
走行速度を (20) [% v] に設定
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ
[Move faster.]
走行速度を (100) [% v] に設定
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ

旋回速度を設定#

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

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

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

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

パラメータ

説明

速度

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

ユニット

速度の単位:%

例

開始したとき :: hat events
[Turn at default velocity.]
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ
[Turn slower.]
旋回速度を (20)% に設定
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ
[Turn faster.]
旋回速度を (100)% に設定
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ

ドライブヘッジを設定する#

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

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

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

パラメータ

説明

見出し

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

例

開始したとき :: hat events
[Turn to the left.]
走行ヘディングを (90) 度に設定
ヘディング (0) 度へ旋回 ▶

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

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

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

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

パラメータ

説明

回転

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

例

開始したとき :: hat events
[Spin counterclockwise two times.]
走行回転を (720) 度に設定
回転 (0) 度へ旋回 ▶

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

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

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

パラメータ

説明

時間

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

例

始動時は、走行時間を1秒に制限し、その後90度回転します。#
開始したとき :: hat events
[Drive forward for 1 second, then turn.]
走行タイムアウトを (1) 秒に設定
[前進 v] へ (25) [インチ v] 走行 ▶
[右 v] へ (90) 度旋回 ▶

価値観#

運転は終了しました#

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

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

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

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

<走行完了?>

パラメータ

説明

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

例

開始したとき :: hat events
[Start spinning when the drive is complete.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
<走行完了?> まで待つ
[右 v] へ (360) 度旋回 ▶

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

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

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

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

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

<走行中?>

パラメータ

説明

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

例

開始したとき :: hat events
[Print that the robot is moving while it is still driving.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
<走行中?> の間繰り返す
[Still Moving...] を表示 ▶
(0.1) 秒待つ
スクリーンをクリア
終わり
[Done!] を表示 ▶

ドライブヘッジ#

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

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

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

パラメータ

説明

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

例

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

駆動回転#

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

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

(走行回転角(度))

パラメータ

説明

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

例

開始したとき :: hat events
[Display the rotation after turning.]
[右 v] へ (450) 度旋回 ▶
(走行回転角(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する