IPA


IPAトップ





平成15年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 




1.採択者氏名


代表者

松村 耕平(公立はこだて未来大学)

共同開発者

石塚 樹(公立はこだて未来大学),小川 浩平(公立はこだて未来大学)



2.担当プロジェクト管理組織


 (株)メディアフロント



3.委託支払金額


 3,000,000円



4.テーマ名


 LEGOブロックを使ったLEGOマインドストーム開発環境



.関連Webサイトへのリンク


 http://uniblock.org



6.テーマ概要


 プログラミングといえば,PCのキーボードから訳のわからないコードを打ち込むというイメージがあり,低年齢層にはハードルの高いものであった.低年齢層が持っている,豊かかつ大人の常識にとらわれない発想を具現化するために,インタフェースとして,2D・3DでLEGOブロックを表示するシミュレータを用い,低年齢層でも扱いやすいLEGOブロックを用いたロボットプログラミングの開発環境を構築する.

 このプロジェクトの大きな目的として,「子供の夢を叶えること」があり,LEGOブロックを用いることにより,「ロボットを作りたい」という子供の夢の実現を容易にすることができる.低年齢層は発想が豊かであるといわれる理由には,環境から影響を受けていないことが大きな理由としてあると考えられる.その豊かな発想,大人には常識として考えられないような発想の具現化のためのツールとして,このLEGOブロックを用いたロボットプログラミング環境が役に立つことを目指す.

 プログラミングはコンピュータのためのものとして考えられてきたために,コンピュータ上で行なうものといった固定概念があった.今回のプロジェクトではそのような固定概念を打ち砕くことも目標の一つである.



7.採択理由


 いかにも「はこだて未来」の元気のいい学生.プレゼンも大いに受けた.LEGOブロックの組合せ配置をプログラムに見立てるというアイデアであるが,言うは易し,実現は難し.LEGOブロックをプログラミング言語の構成要素 (いや言語と呼んではいけないのかもしれないが) とする具体的なアイデアが提案段階では見えていない.そのような無謀な提案なのであるが,それも「未踏ユース」の一つのスタイルだろう.プロ管組織とPMが総出で,彼らを突っつき続ける必要があるだろう.最大の焦点は,LEGOにいろいろな細工をする工作技術にあるのではなく,LEGOブロックでなにをどう表現するか,できるかという,言語設計に関わる実はかなり高度な問題なのである.言い出した以上,しっかりと考えてほしい.

 

 
8.成果概要(中間報告時)
 

 
 インタフェースとして,2D・3DでLEGOブロックを表示するシミュレータを用い,低年齢層でも扱いやすいLEGOブロックを用いたロボットプログラミングの開発環境を構築することが本プロジェクトの目標であり,これに沿って設計と開発を進めた.

 具体的には

(1) leJOSを用いたRCXのハック,プログラミングインターフェースの設計
(2) LEGOブロックからPCへの入力方法の検討,入力インターフェースの設計
(3) LEGOブロックへのICチップ埋め込み方法の検討,ICチップシミュレータの開発

を進めた.この結果,ブロックの配置とブロック位置の把握,ブロックに組み込まれたマイコンの動作シミュレーションが出来るブロックシミュレータ (CLI版) の作成が進んだ.組まれたブロックの位置を取得するアルゴリズムについては,個々のブロックの信号に対しての応答部分について書き上げた.

 また副産物として,Logo言語をleJOS言語に変換するプログラムLOGO Mind Stormsを作成した.これはLEGO Mind Stormsロボットによる,実世界LOGOタートルである.簡単な記述でロボットを動作させることが可能で,ロボットプログラミングの学習にも最適である.

 

残る
(4) LEGOブロックで組むプログラミング方法の設計 (Javaに翻訳)
(5) 機能追加,バグフィクス

は後期の課題とする.

 中間報告時(11月末時点)の開発段階で以下のことが言える.本プロジェクトのシステムは,LEGOブロックの形状がプログラムに変換されるため,動作の定義を命令文ではなく形状によって行なうことが出来るところに最大の特徴がある.また,命令文によって行なわれるプログラミングは,文法に基づいた正確な記述が必要である.たとえば,C言語においてprintf()をprin()と書いた場合,文法エラーになる.だが,本プロジェクトのプログラミング方法論では,それをエラーとはせず,たとえば,それに近い形状との差異を調べ,形状の突然変異と見なす.そして,その形状に割り当てられた行動とは全く異なった行動をする (この行動は未知である).これはプログラミングの複雑性を逆手に利用する新しい試みである.

 

 
9.PMコメント(中間報告時)
 

 
 いろいろ紆余曲折しているプロジェクトである.LEGOをいじる工作技術がとりあえずこのプロジェクトの本質ではないことに早々と見切りをつけ,シミュレータの開発に重点が移ったのは正解だったと思う.しかし,中間報告時(11月末時点)ではシミュレータの機能が不足しているように見える.シミュレータにすれば,いろんな制約がなくなるのだから,ここは少し頑張ってほしい.

 LEGOブロックを組み合わせることを,プログラミングにしようという最初の発想をずっと追い続けて,いろいろなアイデアのスクラップ&ビルドをしているところは,初志貫徹の意気込みでとてもよい.この執念が実ることを期待したい.ただ,残り期間も少なくなってきた.自分たちだけで閉じて考えるのではなく,せっかくはこだて未来といういい環境にいるのだから,仲間をもっと広げてマインドストームならぬ,ブレインストーミングを行なってほしい.中間成果で述べられている,形をアバウトに捉える考えももっと突き詰めると面白いことが出てくるかもしれない.概念的に突然変異といった言葉を踊らせるだけでなく,LEGOを組んだらなにが出力と出てくるのかというのをもっともっと具体的に身近なもので考えると新しいアイデアのタネがきっと出てくる.

 ところで,副産物のLOGO Mind Stormsはなかなか面白い.計画とあまりにかけ離れているのが難だが….


10.成果概要(終了時)


 (1) レゴブロックの位置取得アルゴリズムの開発

 レゴブロックにOne-wireプロトコル対応マイコンを組み込む.One-wireにより一本の信号線にマイコンがぶら下がっており,スイッチを切り替えていくことによりブロック位置を取得し,ブロック配置を木構造問題として扱うことができた (松村 図1).

 ブロック位置を取得する母体であるスタートブロック (パソコンなどに接続されている) はまずグローバルな命令でスイッチ制御マイコンにスイッチを閉じろと命令を送信する.あるスイッチ制御マイコンが自分の制御するスイッチを閉じると,そのブロックのメインマイコン (IDなどの情報を持つ) と通信が可能になる.そこで,閉じた先のメインマイコンID問い合わせをする.問い合わせを受けたメインマイコンは自分のIDを返す.問い合わせ側は,そのIDのブロックに対して,スイッチを閉じるように命令し,グローバルな命令でスイッチを閉じろと命令をする.この際に,ブロックがない場合にはリプライが帰ってこないことからそのスイッチの先にはブロックがないと言う情報を得ることが出来る (松村 図2).

 

 

one-wireプロトコル対応マイコン組み込みイメージ図1       one-wireプロトコル対応マイコン組み込みイメージ図2

 

松村 図1 one-wireプロトコル対応マイコン組み込みイメージ図

 

 

マイコンによる位置取得方法図解

松村 図2 マイコンによる位置取得方法図解

 

(2) LEGOシミュレータの開発

 LEGOシミュレータはレゴブロック位置取得アルゴリズムを組み込み,Javaで実装したレゴブロック作成シミュレータである.疑似立体の2次元インタフェースにブロックを組み立て,Java3Dによるビューア機能で立体的に確認することが出来る.シミュレータでは実際に作成不可能なレゴの擬似的な組み立ても行なうことが出来る.これは,将来的にブロックにマイコンを組み込んだ際に横方向にも接続可能なブロックを想定したためである (松村 図3).

 

レゴシミュレータの画面

松村 図3 レゴシミュレータの画面

 

 ブロックの配置から「何か」を生成する機能をプラグインとして追加することが可能である. これらの特徴から,このシミュレータは一種のビジュアルプログラミング環境として位置づけることができる.またこれは,従来のビジュアルプログラミング環境にはない言語をユーザがプラグインとして作成できる機能を有している.

(3) 作曲プラグインONGAKUMonosashiの開発

 LEGOシミュレータで作成したブロックの色と配置からメロディを自動的に作成しMIDIファイルとして出力する機能を開発した.ソフトウェアには以下のような音楽パターンが組み込まれている.

 ・沖縄風
 ・ブルース(シャッフルビート)
 ・ブルース(通常ビート)

 これらはそれぞれ音とリズムの変化によって区別される.プラグインソフトウェアはこれらをブロック全体の雰囲気から選択し,MIDIファイルを書き出す (詳細は省略).

(4) Thinking SketchプラグインLegoSketchの開発

 Thinking Sketchは平成12年度ならびに平成13年度未踏ソフトウェア創造事業に採択された,人が絵を書くことを支援するソフトウェアで,部品を使っていろいろな作風にアレンジすることが出来るソフトウェアである.オブジェクトの色や形をある程度ブロックの配置から制御ができる.また,絵全体の雰囲気を変えるパネルの存在により,同じオブジェクトを用いても,全く雰囲気の違う絵を作成することができるといった操作感が面白いプラグインに仕上がった.松村 図4にブロックから作成した絵の例を示す.

 

ブロックから作成した絵の例画像

松村 図4 ブロックから作成した絵の例

 

(5) ファイル暗号化プラグインLEGOnoHIMITSUの開発

 レゴブロックをキーに用いてファイルの暗号化を行なうもので,パスワードに変わる暗号キーの手段を提供する.連想により覚えやすく,他人からは連想しにくいキーとして有用であると考える.また,暗号化には現在実用されているDES及びAESを用いる.

(6) LOGO Mind Storms

 LEGO Mind Stormsロボットによる実世界LOGOタートルである.簡単な記述でロボットを動作させることが可能で,ロボットプログラミングの学習にも最適と言える.このタートルはペンを持ちペンの上げ下げをコントロールすることにより紙などに絵を描くことができる.ロボット及びLOGO言語インタプリタを開発した.

* * * * * * *

 上記の開発で得られたレゴブロックシミュレータとプラグインの特徴について紹介しておく.

 レゴブロックシミュレータはブロックの配置とブロック位置の把握,ブロックに組み込まれたマイコンの動作をシミュレートする.ブロックの配置は疑似立体表示の2Dインタフェースで行ない,ブロックの積み上げはレイヤー操作によって行なう.上位レイヤーからは,下位のレイヤーが透過して見え,配置操作が容易になっている.積み上げたブロックはJava3Dを用いた3Dビューアで見ることも可能で,全体の様子を捉えながらブロックを組み立てることができる.

 シミュレータで組み上げられたブロックはそれ自体がプログラムになる.これを可能にするのがレゴシミュレータプラグインで実装される翻訳部分である.これによりブロックの組合せから音楽や絵を作成することが可能である.翻訳部分をプラグイン化することによりユーザがレゴブブロック言語の設計者となることを可能にするアーキテクチャとなっている.



11.PM評価とコメント(終了時)


 最後の最後までアイデアが宙を迷っていたプロジェクトである.しかし,PMの2回目の訪問 (1月31日) での議論のあと,あっと驚くべき進展を見せた.上記の絵画,音楽プラグインをわずか2週間以内で作り上げたのだ.これは松村君たちが,長い間,いかに多くのことを考えていたかを示す証である.すなわち,レゴブロックシミュレータをどうしたら面白く使えるかについて悩みに悩んで,まさに爆発寸前の状態にまで来て,それが一挙に発散したのである.実際,それまでキーワード的なアイデアがポロポロ出てきていた.しかし,それらの実現性にはどこか難があった.

 このプロジェクトの計画段階からあったトラウマは,レゴブロックの組合せを通常のプログラミング言語で書いたプログラムと捉えようとしたことだろう.PMが採択理由で述べたように,やはり,これはそう簡単ではない.しかし,厳密なプログラムに対応させることを諦めた瞬間に,レゴブロックには非常に広い世界が開けていることに彼らは気がついたのである.PMからThinkingSketchのアイデアを出したとき,彼らの顔が一瞬輝いたのが印象に残っている.現場訪問の場に,ThinkingSketchの開発者である美馬さんと木村さんが付き添ってくれていたのがよかった.ほとんどリアルタイムで彼らはプラグインの設計に入っていった.

 爆発寸前までたまっていたエネルギーが一気に堰を切ったように流れ出した.現場訪問からわずか2週間後の西日本報告会での彼らのプレゼンはまったく予想もしなかった出来栄えだった.未踏ユースならではの急展開であった.暗号化プラグインはそのあとの産物である.こうやって,簡単にプラグインが作れるのだから,今後さらに面白い展開が期待できる.

 とはいえ,ブロックの組み立てと出てくるものの間の相関,つまり制御感と揺らぎの微妙なバランスにはさらに実験と考察を加えてほしい.徳井直生君のSonaSphereなどを参考にするとよいだろう.

 まだシミュレータしかできていないが,もう少しシミュレータとプラグインで遊んでもいいだろう.物理的のブロックの話はもう少し先でもよさそうだ.

 なお,LEGO Mind Stormsの開発は直接このプロジェクトとは関係ない.しかし,これがあったので,彼らの根気が続いたに違いない.

★★ 準スーパークリエータ: くじけそうになりながら,というよりも,ほとんどくじけながらくじけずにプロジェクトをやり遂げた執念.最後の2〜3週間の爆発は見事.これをいい教訓に次のステップに進んでほしい.




  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004