はじめに

EusLispは、知能ロボットの研究を目的とした言語で、Common Lispと オブジェクト指向型プログラミングをベースとしている。ロボットの研究では、 センサデータの処理、環境認識、障害物回避動作計画、作業計画などが 重要なテーマとして取り上げられるが、これらに共通するのは、ロボットと 外界の3次元幾何モデルである。EusLispを開発する動機となったのは、 記号処理システムから簡単に使えて拡張性の高いソリッドモデラーの 必要性を痛感したからである。既存のソリッドモデラーを調べてわかったことは、 その実現にとって最も重要な機能は、数値演算ではなくモデル要素の トポロジーを表現、管理するためのリスト処理能力であった。もちろん、 幾何演算も重要ではあるが、ベクトル・行列を操作する関数を組み込めば 十分であることがわかった。

こうして、ソリッドモデラーはLispの上に実現されるべきであると言う 基本方針が得られた。さらに、ソリッドモデラーは、3次元物体モデルを 定義し、動きをシミュレートし、物体の相互関係を表現し、グラフィックスを 表示する機能を提供するが、先に述べた各種のロボット問題と結合されなけ れば意味がない。また、ロボットを完成されたシステムとして実現するには、 これらのロボット問題を解くモジュールが効果的に統合されなければならない。 EusLispは、この統合の枠組をオブジェクト指向に求めた。オブジェクト指向は、 モジュラープログラミングを促進し、継承機能により既存の機能を段階的に 拡張することが容易になる。実際、上記のソリッドモデラーは、物体、面、 エッジなどの物理的実体の振舞いをクラスに定義し、ロボット問題に依存する 機能は、これらをサブクラスに拡張することで効率よく発展させられる。 これは、ソフトウェア資源の再利用にもつながる。

こうしてEusLispは、オブジェクト指向とCommonLispをベースとして3次元幾何モデラー を実現し、複数ロボットの協調動作に必要なタスク間通信機能、マンマシン インタフェースに重要なウィンドウ、グラフィックス、複合的プログラミングに 必要な他言語インタフェース等を備え、さまざまなロボット問題への適用を 可能にしたプログラミングシステムとして構築された。このほか、メモリ管理にも 工夫を凝らし、メモリ容量以外に生じる領域の大きさに関する制約を極力 排除し、ガーベージコレクションが効率的に行なわれ、ユーザがメモリ管理に関する パラメータを操作する必要がないように努めた。

このリファレンスマニュアルは、EusLispの基礎と拡張に分かれ、 前者がCommon Lispの機能とオブジェクト指向型プログラミングを、後者が 幾何モデル、ロボットモデル、ウィンドウ、画像処理など、よりロボット 応用に近い部分を扱っている。アップデート情報は、[*]節に書かれ ているとおり、Euslispのメーリングリストから入手することができる。



Subsections

2016-04-05