IPA


IPAトップ





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


 



1.担当PM


 近山 隆   (東京大学 新領域創成科学研究科 基盤情報学専攻 教授 )



2.採択者氏名


 代表者

湯淺 太一 (京都大学 大学院 情報学研究科 教授)

共同開発者

なし



3.プロジェクト管理組織


 日本エンジェルズ・インベストメント株式会社



4.委託金支払額


 8,075,163円



5.テーマ名


 Lego Mindstorms制御プログラムの対話型開発・実行環境



6.関連Webサイト


 http://www.xslisp.com



7.プロジェクト概要


 ブロック玩具で知られているLego社が提供するMindstormsとよばれるロボットシステムに対し、対話的プログラム開発が可能なプログラミング言語Schemeをベースとし、Mindstormsを制御するための諸機能を追加した言語を設計、プログラムを対話的に開発するためのLinuxおよびWindows PC上のプログラム開発・実行環境を構築する。
 従来制御プログラム記述のために提供されてきたものは、低学年の子供でも容易に使える簡易言語と、本格的プログラム開発が可能ではあるが完結したプログラムをコンパイル、ダウンロードするというターンアラウンド時間が長くかかるCのような言語のみであった。面倒な手間を必要とする。本テーマでは、容易に理解し利用できる一方、相当高度な制御プログラムの対話的開発も可能にするプログラミング言語環境を提供する。




8.採択理由


 成人の知的好奇心をそそる玩具に対して、ある程度のプログラミングの素養を持つ者が記述するのに相応しいプログラミング環境を用意しようとする提案である。言語仕様、実装方式とも適切な提案であり、有用な成果が得られる可能性が高い。




9.開発目標


 Schemeをベースに、ロボット制御に必要な機能を付加した言語XSLispを設計し、XSLispで記述されたプログラムを実行するための本体上の実行系、PC上で動作し主にプログラムやデータの入出力を行うフロントエンドシステム、実行系とフロントエンドシステムとの通信機能を開発する。
 これを実現するために、以下の各サブテーマについて、開発を実施する。
 (1) 適切なプログラミング言語の設計(以下では、XSLispと呼ぶ)
 (2) XSLispで記述されたプログラムを実行するために、Mindstorms本体に踏査される8ビットプロセッサRCX上で動作する実行系
 (3) PC上で動作し、プログラムやデータの入出力等を行うフロントエンドシステム
 (4) 実行系とフロントエンドシステムとの間の通信機能




10.進捗概要


 開発は順調に推移し、所期の機能を提供するシステムを構築した。前期において、上述のサブテーマ(1)に掲げたXSLispの設計を完了、さらに(2)〜(4) の各機能を持つモジュールの暫定版を開発した。後期においてXSLispの設計をさらに洗練し、最終版の開発を完了した。
 (1) XSLispの設計
 Schemeの標準的な仕様から適宜取捨選択し,必要かつ十分なサブセットを設計、これにロボット制御に必要なプリミティブを追加している。サブセットの設計にあたっては、限られたメモリで動作するためにcontinuationというSchemeを特徴付ける機能を省いているが、これは動作環境を考えるといたしかたないところである。追加した機能には、リアルタイム制御のための機能、諸々のセンサーに対応する機能、モーターなどの動作制御のための機能、ホストPCとの赤外線通信による接続状態を調べる機能などがある。
 (2) 実行系
 Continuationは省いたが、他の面においてはSchemeの本格的処理系と同様の機能を持つ実行系を開発した。通常の実行に加え、ガーベジコレクタ、プログラムの動的書き換え機能、デバッグのためのトレース機能も備えている。また、限られたメモリ量でも動作するように、データ表現には種々の工夫がなされている。実行形式は約11Kバイトとコンパクトな実装である。
 (3) フロントエンドシステム
 プログラムの実行管理、静的に可能なエラー検出、動的なデバッグを支援する機能などを備える。Windows版とLinux版を開発した。
 (4) 通信機能
 フロントエンドと実行系との間の赤外線通信を行うモジュールである。通信にはLego Network Protocolを用いるので、このためのエンコード/デコード等の機能を提供する。やはり、Windows版とLinux版を開発した。



11.成果


 限られたメモリ上で自律的に動作する、非常にコンパクトでありながら高い機能を持つシステムを開発した点が、大きな成果である。従来も同様対話的なLisp系の言語システムがあったが、これらはホストコンピュータ上で動作し、ロボットのセンサー入力や動作指示は赤外線通信でやりとりするものであったため、ロボットが赤外線通信の到達範囲外に出ると制御不能となる欠点があった。このシステムは自律動作が可能であるため、ホストコンピュータの通信圏外に出てもセンサー入力に基づいて適切に動作するプログラムを構築することが出来る。
 なお、成果ソフトウェアはソースコードやマニュアルと共にWeb上で公開している(http://www.xslisp.com)。




12.プロジェクト評価


 Lisp系の言語は、対話的な開発に向いていることは周知であるが、言語システムが大きくなりがちで、一般に組み込み型のような限られた計算資源しか利用できない環境には向かないとの誤解がある。これが誤解でしかないことはLisp系言語の開発者は理解しているが、本プロジェクトは具体的なシステムの実装を通して、局面によっては限定された計算資源しか利用できない場合もLisp系言語が有力であることを具体的に示したことは、大きな成果である。
 一部のモジュール開発を外注で行ったが、プロジェクトの遂行は順調であり、中間成果を著名な国際学会において報告し、高い評価を得ている。




13.今後の課題


 プログラミング実習等、教育用途に十分利用できるシステムとなっており、成果ソフトウェアの普及促進が望まれる。すでにWeb上での公開は行われているが、チュートリアルテキストの充実など、さらなる努力を期待する。

  ページトップへ   






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