レポート課題:AIロボット・ゲームAIを作ろう

人工知能(AI)技術を実世界に応用して、知的で賢いロボットまたはゲームAI を構築してみよう。ゲームとしては、スーパーマリオやパックマンなどの著名なものから、Atari の対戦型ビデ オゲーム、あるいは倉庫番、数独、ソリティアなどのパズルなども対象としている。

ロボ ットしては、LEGO mindstorm やそれと同等の形態形成ロボット、もしくは小型二足歩行ロボットなどを用 意している。 ロボットの形状・機能は自由である。

ただし、何らかの学習アルゴリズムAI機能を用いたプログラムを作成すること。

ルービックキューブを解くLEGOのデモビデオが以下にある。

cf.ルービックキューブの最短手は22と思われていたが、最近になって20だとわかった。Googleの研究者らによる全探索:God's Number

参考となる資料として以下のものをあげておく。


過去の製作例

なお、これらのロボットプログラムは、実際にAI・プログラミング教育として 高校の授業でも活用されている。


課題A: Artec社の教育用ロボットRobotistを用いた学習ロボットの製作を行う。

サンプルプログラムとして以下のものが用意されている。 このサンプルソースは ここ からダウンロードできる。

上の動画にある逆上がりのサンプルソースは ここ からダウンロードできる(実験指導書を参照のこと)。

ここにある バグレポートに注意。

また、Robotistの作例集は ここ にある。

この実験で必要なもの、準備するものは以下の通り。

Studuinoの利用手順は以下の通り:

  1. このファイルに従いStuduinoインストールする
  2. このファイルに従いArduino、ライブラリインストール
  3. 基盤を交換する
  4. boards.txtをこのファイルに交換する
  5. C:\Users\denjo\Desktop\robot\arduino-1.6.13\hardware\studuino\avr\bootloaders\optiboot_atmega328_pro_8MHz.hexをこのファイルに交換する
  6. Arduinoの設定をポート→328、シリアルポート→COM3に変更する
  7. 実行可能なことをblinkで確認する(LEDはA4に接続)
  8. 3のブロックプログラミング環境でプログラムを書く
  9. Arduinoでプログラムを書く

課題B: LEGOのMindstormを用いた学習ロボットの製作を行う。

強化学習を用いたMindstormのデモビデオが以下にある。
  1. Bumper Car

  2. Wall Follower Square Pixels

  3. Worm Like Follower

動作させるのに必要なソースコードはこの "Wall_follower" folder にある。(Java言語)

LEGOについてのセットアップ・説明用のビデオは以下にある。

  1. Bluetooth Connection Tutorial

  2. LEGO Mindstorm Setup Tutorial

なにも思いつかなければ、Braitenbergロボットをつくって、その行動を観察してみよう。 Pfeier's の 「知の創成―身体性認知科学への招待」の6章が参考になる。 英語の記述は、 ここにある。

課題C: ゲームやパズルを解くAIを作る。

教科書「ゲームAI と深層学習―ニューロ進化と人間性―(伊庭斉志, オーム社)」 を提供するので、参考にしてほしい。 ゲームやパズルのサンプルソースも提供されている。 詳細は ここ を見てほしい。 このなかのどれかを拡張してもよい。

また、ゲームやパズルに関しての以下のようなサイトを参考にして もよい。


伊庭研のホームページに戻る