ミッション期間の延長で生きながらえる火星のOSS

NASAの精巧な装置と、オープンソースソフトウェアへの本格的な取り組みが功を奏し、「スピリット」と「オポチュニティー」による火星探査の期間延長が許可された。

オープンソースを大幅に取り入れたローバー用ソフトウェアScience Activity Planner(SAP)の開発リーダーであるNASAジェット推進研究所(JPL)の主席コンピュータサイエンティストJeff

Norrisによれば、今回のミッション期間の延長は、NASAの予算とともに宇宙研究への支持を減らしてきた納税者にとって、ただ同然の贈り物だという。

「まともに機能する2台のローバーが火星に存在することを考えたら、期間延長に必要な費用など取るに足らない」とNorrisは言う。「この2台のローバーはいろいろな場所を探索し、日々新しいものを発見するはずだ。」

Norris――彼はローバーのオープンソースコンポーネントとその利点およびNASAにおけるOSSの可能性を強調していた――によれば、ローバーが当初想定していた最大移動距離は600メートルだが、低速ながら着実なペースで進むこのバギーは2台とも現在までに約3.5キロメートルの移動を達成しているという。

「特にワクワクするのは、ローバーが予想を遙かに超えた性能を発揮していることだ」とNorrisは言う。「既に多数の映像が送られてきているが、これからもっと送られてくるだろう。」

オープンソースの可能性

とんでもなく寒い火星の冬至――その間、「スピリット」と「オポチュニティー」に移動・活動コマンドは送られなかった――を乗り切った2台のローバーに対して、地球にいるNASAのエンジニアたちは活動を再開する準備をしている。彼らはローバーの多くの機能を実現しているオープンソースシステムを信頼しているのである。

Mars.compile.gif
マーズローバー、赤い惑星、「青い丘」の遠景

ローバーのScience Activity Planner(SAP)は、火星表面を動き回るローバーを遠隔操作するためのソフトウェアシステムであり、活動プランやエネルギー計算、リソース管理といった非常に重要なタスクで次の8つのオープンソースコンポーネントを利用している。(1)Castor――SAPの基本的な入出力機能を実現し、XMLファイル、Javaオブジェクト、SQLデータベースの間でデータを簡単に移動できるようにするデータバインディングフレームワーク。(2)Java Expression Parser(JEP)――SAPで使用される数式を解析・評価する。(3)Xerces-J――Castorと連携してミッションで入出力される全フォーマットを検証するXMLパーサー。(4)MySQLデータベース。(5)MySQL Connectorミドルウェア――SAPのJava Database ConnectivityコールをSQLネットワークプロトコルに変換する。(6)HSQL Database Engine――共有MySQLデータベースが利用できないときアプリケーションにローカルデータベースを提供する。(7)Virtual Reality Modeling Language(VRML97)――SAPが3D宇宙船モデルのために使用するジオメトリローダー。(8)Skaringa――Castorと同様のデータバインディングフレームワークで、時間形式の機能のために使われる。

Norrisによれば、彼と彼のチームがローバーの価値を納税者に納得させるためにいろいろ調べたところ、オープンソースが最も経済的なソリューションであることがわかったという。

「資金的に、データベースを開発したり、他のコンソーシアムやオープンソースグループが既にうまくやっている問題を自分たちで解決するような余裕は我々にはない」とNorrisは言う。「我々はローバーを動かすのは得意だが、データベースプログラミングやXMLパーサーやフレームワークの構築などは得意でない。オープンソースの最大の利点は、自分たちで開発しなくても自分たちが開発した場合よりずっと高品質のソフトウェアが既に存在していることだ。」

でこぼこして岩ばかりの火星表面を巧みに動き回ることで「スピリット」と「オポチュニティー」の機動性は証明されたが、ローバーのシステム開発チームはオープンソースソフトウェアを利用することで別の意味の機動性を手に入れたとNorrisは言う。

Norrisによれば、オープンソースソフトウェアは必ずしも火星のローバーに搭載されているわけでなく、地球でローバーを制御したり、ローバーと通信したりするために働いているという。開発段階で、NASAのエンジニアはオープンソースを利用するコンポーネント以外の、自分たちの本来の任務に集中できたという。

「あれこれ開発せずに済み、予算を本来の仕事に回すことができた」とNorris。「我々は以前からオープンソースのツールでいろいろなことができると踏んでいたので、オープンソースに移行するのは簡単だった。」

ミッションクリティカルな業務にはソースが必須

Norrisは、「スピリット」と「オポチュニティー」の機能を実現するためにローバーのエンジニアと共同で作業したオープンソースコミュニティの開発者たちの機動性についても高く評価している。

JPLのこのエンジニアによれば、ローバーのシステムはミッションクリティカルなものばかりなので、ローバーシステムの設計者たちは一部の商用コンポーネントも含め、関係するすべてのソースコードにアクセスすることを要求したという(ミッションクリティカルという用語は、ハードウェアを片道切符で宇宙へ投入するような、より緊迫した意味合いを持つ)。

「ソースにアクセスできないものは我々のシステムに一切採用しなかった」とNorrisは言う。

ローバーシステムで使われている商用コンポーネントについてはソースコードの取得に別途費用がかかったが、このプロジェクトのオープンソースソフトウェアは比較的優秀であったとNorrisは言う。

「我々が採用したコンポーネントの中で、オープンソースコンポーネントの品質は他よりもずっと高かった」とNorris。

オープンソース開発者の即応性も満足すべきものだった。Norrisによれば、オープンソースだと数時間で対応してもらえることが、商用ソフトでは数ヶ月かかったという。

「彼らが我々に保証してくれたのは、担当の開発者が調査しているので半年後の次のリリースには解決するだろうということぐらいだった」とNorrisは回想する。「我々は問題を独力で解決しなければならず、新バージョンがリリースされた場合の統合の手間を考えるとぞっとした。」

対照的に、バグフィックスや一時的回避策についてのオープンソース開発者の対応はすばやく、即応的だったとNorrisは言う。

「商用コンポーネントをもう使わないとは言わないが、嫌な経験だったことは確かだ。」

ソフトウェアにとっては小さな一歩だが、オープンソースにとっては偉大な一歩である

現在火星で活動しているローバーとそれらを地球上で制御するシステムはNASAが本格的にオープンソースを利用した最初のケースと思われるが、Norrisはこの傾向がさらに進むと示唆する。

オープンソースへのいつもの抵抗や不安とともに、兵器と分類されることが多い宇宙関連分野に適用することへの課題も少なくないが、NASAはこの方向に進もうとしている、とNorrisは言う。

「人々は明らかにオープンソースを使用することを望んでいるし、オープンソースの認知度もますます高くなってきている」とNorris。「我々は、この方向に大きく一歩踏み出そうとしている。」

NorrisはNASAのRoverwareプロジェクトにも触れている。これは「スピリット」と「オポチュニティー」で使用された一部のソフトウェアをオープンソース化するプロジェクトである。商用製品に組み込まれるのは、Caltechライセンスを必要とするソース提供バージョンに限られるだろうが、Norrisによれば、NASAは今年の終わりまでに現在の3倍の数のコンポーネントをオープンソースとしてリリースすることを考えているという。

さて、SAPのソースコードだが、これはMaestroという名前で知られており、現在、制限された形のものをダウンロードできる。Norrisによれば、NASAは今年中にCLARAtyとRoamsもオープンソース化することを考えているという。CLARAtyはローバー研究用のソフトウェアインフラストラクチャで、Roamsは地球上でのローバーの運転を学ぶためのシミュレータである。

「スピリット」と「オポチュニティー」のミッション期間の延長に関して、Norrisはローバーが動いている限り、NASAは火星で活動するための予算を認めるだろうと言う。

「ローバーが動いて映像を送ってくる限り、ローバーの電源を切ることなどとても考えられない」とNorris。「次の丘を越えるまで何が見えるか決してわからないのだから。」