ロボットの教育的利用
人工知能とメディア・ゲーム・教育 (2)の続き。教育支援システムの話を聴いた。いわゆるe-Learningはコンピュータの画面を見て学習を進めるという形態がほとんどのようだ。
マインドストーム―子供、コンピューター、そして強力なアイデア
- 作者: シーモアパパート,Seymour Papert,奥村貴世子
- 出版社/メーカー: 未来社
- 発売日: 1995/03
- メディア: 単行本
- 購入: 3人 クリック: 64回
- この商品を含むブログ (17件) を見る
を読んでてふと思いついたのだけれどロボットの利用目的に教育を含めるのはよさそう。今はAIBOのようなエンターテインメントロボットが主だが遊んでばっかりはいられない。教育目的のものがあってもよさそう。
子供向けの戦略。
- 少子化(今ここ)
- 教育加熱
- 子供の教育支援ロボ
- 金持ちお受験ママが購入
- ロボット普及
- 価格下落
- 一般に普及
高齢者向けの戦略。
- 高齢化
- ボケたら困る
- 脳を鍛えるゲームがブーム(今ここ)
- ボケ予防ロボ
- 金持ち高齢者が購入
- ロボット普及
- 価格下落
- 一般に普及
か、完璧だ・・・あとはロボットの身体性を生かす教育法とボケ予防法を考えるだけだ。
ブルックスの知能ロボット論
ブルックスの知能ロボット論―なぜMITのロボットは前進し続けるのか?
- 作者: ロドニーブルックス,Rodney Allen Brooks,五味隆志
- 出版社/メーカー: オーム社
- 発売日: 2006/01
- メディア: 単行本
- 購入: 2人 クリック: 37回
- この商品を含むブログ (24件) を見る
Rodney Brooks氏のこれまでの仕事とロボット観が余すところなく語られている一冊。
Brooks氏の考える知能は、センサー(知覚系)とモーター(駆動系)の連動から生まれるものであり、従来の認知科学で一般的であった認識系はとっぱらってしまう*1。
というこれ論文なの?というほどユニークな論文を書かれている*2。
この考え方をさらに発展させた内容が知の創成―身体性認知科学への招待(2005/03/15)で詳しくまとめられている。私の中ではMinsky氏の『心の社会』と並んでバイブルだ*3。
Minsky氏とBrooks氏は人工知能をめぐる考え方で激しく対立しているようだ。
知能観は違うのだろうけど、サブサンプション・アーキテクチャと心の社会は根幹部分で似ていると思う。私は強化学習に惹かれていたこともあって、Brooks氏の知能観に近い。
ただこれで達成できるのは動物の知能までで、人間の知能は不可能だと根拠はないけど思うなぁ。
Brooks氏の以前のホームページにロボットによりそった氏の写真が掲げてあってちょっとあこがれてたんだけど今はなくなってて残念。危ない人だと思われたのかな(笑)
関連リンク
- 思考と行動(2003/07/06)
- RTは安心を創造するか(2004/07/07)
leJOS
leJOSは、マインドストームで作ったロボットをJavaで制御するためのライブラリ。Cで制御できるlegOSのJava版だ。
マインドストームにはブロックを組み合わせるようにプログラムを作成できるツールが入っているがプログラマには結構使いにくい(特にループや変数の扱いが・・・)。
leJOSにはロボット制御に必要なさまざまなクラスライブラリが用意されている(センサーやモータークラスなど)。普通のJavaプログラムのようにロボットをプログラミングできるので使いやすい。
マインドストーム・プログラミング入門―LEGOでメカトロニクス/ロボティクスを学習する (COMPUTER TECHNOLOGY)
- 作者: ブライアンバグナル,Brian Bagnall,長瀬嘉秀,二上貴夫,テクノロジックアート
- 出版社/メーカー: CQ出版
- 発売日: 2004/07
- メディア: 単行本
- 購入: 1人 クリック: 35回
- この商品を含むブログ (10件) を見る
leJOSの基本から応用まで広くカバーされている。この本ではR. Brooksのサブサンプション・アーキテクチャまで解説されておりロボティクスの基礎を学ぶ上でよいと思った。
プログラムはこんな感じに書ける。
import josx.platform.rcx.*; // leJOSのライブラリ public class Tippy { public static void main(String[] args) { Motor.A.forward(); // モーターAを正転 Motor.C.forward(); // モーターCを正転 while (true) { if (Sensor.S2.readBooleanValue() == true) { // センサー2が反応したら backUpAndTurn(); } } } public static void backUpAndTurn() { Motor.A.backward(); // モーターAを逆転 Motor.C.backward(); // モーターCを逆転 try { Thread.sleep(600); // 600msそのまま } catch (InterruptedException e) {} Motor.A.forward(); try { Thread.sleep(300); } catch (InterruptedException e) {} Motor.C.forward(); } }
これをロボットに転送して実行できる。
転送は赤外線(TVのリモコンと同じ)で行うので周囲が明るいとなかなかうまくいかない。その場合は、
- 周囲を暗くする。
- コントロールパネルで赤外線タワーの出力をLONGにする。
- 同じくタイムアウト時間を長くする。
とよさそう。