テーマ
ロボット工学
対象学年
8~12 年生 (アメリカ/13 歳以上)
レッスン 1:ロボット車両
このアクティビティでは、二輪ロボットのコーディング方法を学習します。このロボットは最小限のコマンドを使用して、戦車のような動きで特定のターゲットに向けて移動できます。このアクティビティで取り上げる仮想ロボットの動作は、家庭用のロボット掃除機に似ています。転倒しないように設計されており、前進、後退、右折、左折、旋回に対応しています。また、ロボットの適切な設計について、エンジニアリングと物理学の原理も解説し、一貫した結果を生み出せる安定したロボットの、重量、車輪の位置、滑走球を扱います。
タスクを実行するようにロボットをプログラムする際は、出力アクションの解釈と意思疎通が必要です。この意思疎通は、人間とロボット装置の両方が理解できる、特定のソフトウェア言語で実現しなくてはなりません。このプロセスを通じて生徒は、Unreal Engine Robotics Learning Kit を利用したブループリント ノードによるコーディングにより、ロボットの動作を制御する方法を学習できます。
生徒は、プログラム コマンドを作成して、ロボットをテストします。そして、コーディングに戻って、指定した目標を達成しなかった命令設定を調整します。目標が達成されるまで、調整したコードを仮想ロボットで実行します。
学習目的
- Unreal Engine のプラットフォーム、ツール、ダッシュボードについて、基本的な操作方法を理解する。
- Unreal Engine でプロジェクトを開く。
- Unreal Engine でブループリントを編集し、複製する。
- モーターの設定を編集して、ロボットを走行および旋回させる。
- 二輪ロボット車両に 3 つ目の接地点を装備することの、設計上のメリットを理解する。
- ロボット設計に関する既知の要点に従って、プログラムの実行前に必要なコードと設定を予測し、計算する。
レッスン プランを確認する
生徒向けガイドを確認する
レッスン 2:相撲ロボット
このレッスンでは、ロボットにセンサーが必要な理由、センサーを利用して情報を取得する方法、その情報に基づいてロボットに判断させる方法を解説します。
ロボットが入力を使用せずに走行すると、結果が不安定になり、信頼性が低下します。では、より正確で一貫性した走行を、どのように実現すればよいでしょうか。
そこで、センサーを追加して情報を取得し、この情報に基づいて、目標の達成に必要な行動が何であるかをロボットが決定できるようにします。
生徒は、こうしたセンサーが提供する情報の種類を理解することで、その情報を判断に利用する方法を見極められるようになります。このレッスンで使用するセンサーは 1 種類の値を返し、取りうる値の範囲内で現在のフィードバックを識別します。このレッスンで取り組むロボットは、センターで制御され、ラインに向かうものの、ラインを超えないように移動します。ロボットのラインを検出する機能は、反射した光の影響を受けます。生徒はセンサーのフィードバックに、しきい値を設定して、ロボットがさまざまな反応をするタイミングを指定できます。たとえば 0〜100 の範囲で値を返すセンサーについて、しきい値を 46 とします。すると 46 未満のフィードバックは、特定のアクションを発生させ、46 から 100 までのフィードバックは別のアクションを発生させます。このように、しきい値を使用すると、数値の範囲をブール値に変換できます。
このレッスンのサンドボックスでは相撲ロボットに挑戦します。相撲をご存知ない場合、自分は土俵という円の内側に留まりながら、相手を土俵の外側に押し出すと、勝ちになります。実際にロボットの動作を確認しましょう!
学習目的
- センサーで制御する「視覚」に基づいて動作の価値を認識することで、ロボットの正確性と信頼性を高める。
- 光センサーを使用して入力の設定を処理し、その情報を解釈する方法を制御する。
- 現在のセンサー値を使用して、ロボットが土俵の内側にあるのか、境界線上にあるのかを判断する。
- ロボットが土俵の床を検出したら、そのロボットに移動命令を割り当てる。
- ロボットが土俵の境界線を検出したら、そのロボットに移動命令を割り当てる。
- ブループリント プログラミング言語でループと条件の記述を実装し、ロボットが常に土俵面の線を探すようにする。
レッスン プランを確認する
生徒向けガイドを確認する
レッスン 3:自動運転車
このレッスンで生徒は、ロボットをガイドラインから離れさせ、再びラインを見つけさせ、結果的にラインに沿って前進を続けさせる方法を学習します。
ロボットがラインを発見すると、そのラインから離れます。そのラインが見えなくなったら、進行方向を反転させ、もう一度そのラインを探します。
ロボットをライン「上」にとどまらせるために、このプロセスを連続的に繰り返します。
学習目的
- 光センサーを使用したロボットを構成し、表面の明暗を検出する。
- そして、しきい値を設定し、光センサーによる入力範囲をブール値に変換する。
- ロボットがラインを見つけたら離れさせ、ラインが見えなくなったら進行方向を反転させることで、ロボットを前進させる。
- ロボットのコピーを作成して、ビューポートの環境に追加する。
- ブループリント プログラミング言語でループと条件の記述を実装し、ロボットが常に地面のラインに沿って進むようにする。
レッスン プランを確認する
生徒向けガイドを確認する
レッスン 4:衝突回避ロボット
このアクティビティにより生徒は、ロボットが距離センサーを使用して、進路上の物体を検出する方法を学習します。Robotics Learning Kit のレッスン 3 と同様に、このロボットはプログラムによってラインに沿って進みますが、このアクティビティでは、進路に物体がある場合は停止するように、ロボットをアップグレードします。つまり、これはテクノロジーの進歩によって命を救うことができる機能です!
LiDAR センサーのすべての機能については、このアクティビティの対象範囲を超えるため、距離を測定するだけの簡易バージョンを用意しました。Robotics Learning Kit の距離センサーは、レーザー距離測定装置のように機能し、視線の先に存在する最初のオブジェクトまでの距離を返します。
衝突回避タスクでは、ロボットの進路に存在する物体を距離センサーが検出した場合、その物体が取り除かれるまでロボットを停止させます。進路に物体を認識しなくなると、ロボットは前進を再開します。
衝突したり、落としたりすることなく、ピザや小包を配達しましょう!
学習目的
- レーザー距離センサーで物体を「見ることができる」ロボットをコーディングする。
- 進行方向の物体を探しながら、前進し続けるロボットをコーディングする。
- 距離センサーがフィードバックを提供する方法と、その情報をロボットが解釈する方法を、コーディングする。
- ブループリント プログラミング言語でループと条件の記述を実装し、ロボットが衝突を回避しなら、常に地面のラインに沿って進むようにする。
レッスン プランを確認する
生徒向けガイドを確認する
レッスン 5:遠隔操作できるサッカー ロボット
このレッスンの生徒は、モーターをキーボードのキー押下にマッピングして、キーボード入力による仮想遠隔操作を作成する方法を学びます。これにより、ロボットの動作をキーボードで操作し、制御できるようになります。
遠隔操作は、ビデオ ゲーム、テレビ、プロジェクター、ドローン、モデル自動車、その他多くのデバイスで、日常的に利用されています。遠隔操作を使用すると、オブジェクトの設定変更や必要な仕様への移行を、すばやく簡単に指示できます。デベロッパーは、遠隔操作で指示できるようにアクションをコーディングする必要があります。
今回の目標は、キーボード入力に基づいて、前進、停止、後退、任意の方向への旋回を行えるように、ロボットを制御することです。
そのためには、ロボットの各モーター コントロールを、キーボードの特定のキーに「マッピング」する必要があります。まず、コードのフローでイベントを使用してキーボードのキーが押されたことを検出し、特定の速度と方向でモーターを回転させるコードを実行します。
学習目的
- Robotics Learning Kit の遠隔操作センサーをロボットに追加する。
- 仮想遠隔操作としてキーボードを使用するようにロボットをコーディングし、コマンドに従って移動させる。
- イベントを実装して、キーの押下と解放によってモーターにコマンドを発行する。
- 数学関数を使用して、複数の同時入力に対する最終的な結果を計算する。
- ブループリント プログラミング言語を使用してコードを作成し、ロボットが遠隔操作でユーザーの指示に従うようにする。
- このコーディング方法を現在使用している実際のアプリケーションや、その他の設計に役立つ新しいアプリケーションについて説明する。
レッスン プランを確認する
生徒向けガイドを確認する
レッスン プランをさらに確認する