惑星探査機とその技術 | サイバーエージェント 公式エンジニアブログ
 皆さん、初めまして。2009年新卒入社のレンガと申します。
 芸能人・有名人ポータルのシステムを担当しております。

 今回のエントリーは、私が大学院生のときに携わった『惑星探査機とその技術』をテーマにしたお話です。現在の業務内容とは全く繋がりのない話なのですが、M.S.氏から「レンガ、俺らもグローバル化に備えなくちゃ駄目だと思うんだよね。同業は最近海外、海外うるさいから、俺らは一歩先いって宇宙ネタで。LHCかはやぶさか、スタートレックネタでお願い」と(いつもの?)無茶が振ってきたため、雑文ですが書いてみました。
 拙文ですが、一コラムとしてご覧いただければ幸いです。

 早速ですが、日本が関係している惑星の探査機(*)はどのようなものがあるでしょうか?日本は過去に様々な人工衛星を打ち上げてきましたが、こと惑星探査に限って言えば、過去現在未来含めて5つしかありません。

 【任務を終えた探査機】
  ・小惑星探査機「はやぶさ」
  ・月周回衛星「かぐや」

 【航行中の探査機】
  ・金星探査機「あかつき」

 【製作中の探査機】
  ・水星磁気圏探査機「MMO」(水星探査プロジェクト「BepiColombo」より)

 【任務途中で行方不明になってしまった探査機】
  ・火星探査機「のぞみ」

 (JAXAのWebページより)

余談ですが、「あかつき」に関しては、擬人化してTwitterで呟いたりしてます(あかつき公式Twitter)。

 (探査機がブログを書く時代はこないのでしょうか…?)

 話は戻りまして、上に挙げた中で一つ目の「はやぶさ」については、今年の6月に7年間の宇宙の旅から帰還したということで皆さんの記憶に新しいと思います。日本の技術力の高さを全世界に証明した誇るべき探査機ですね。通信が取れなくなったり、帰還のための燃料が漏れてしまったりと苦難の連続でしたが、緻密な制御を行い、何とか地球へと戻ってきました。そう、探査機において重要なのは、それを制御するプログラムだったりするのです。

 弊社のサービス「アメーバピグ」ではそのシステムの多くをJavaで動かしておりますが、実は惑星探査機のシステムとしてJavaを使用したものもあったりします。2004年に着陸し、今もなお観測を続けているアメリカの火星探査車「Spirit」です。火星の大地を縦横無尽に動き回る「Spirit」は、その(地球側で操作する)動作制御命令システムがJavaで作られており、以前はその動作検証用シミュレータがフリーで配布されておりました。
 このシステムにJavaを採用した理由について、Javaの父 James Gosling はこう語っております。

 「It's due to Java's ability to transcend many platforms.」
 「Javaには多くのプラットフォームを超越することができる。」

 探査機の中で、命令を受けて様々な観測を行う機器については、主にC言語が使用されます。ですが、命令を出す側としてはプラットフォームに依存しないほうが好ましいので、その理由においてはJavaは最適だったと言えるわけです。Javaを勉強する上で最初に学ぶJVMの特長がよく活かされている良い例だと思います。方やWebサービス、方や惑星探査機の制御システム。非常に不思議な気持ちにさせられますが、言語の可能性というのを感じずにはいられません…。


 最後になりましたが、天体繋がりでお一つ紹介いたします。本日11月17日(水)から18日(木)にかけて、しし座流星群が夜空に出現します(正確に言うと、5日頃より既に出現しております)。最も多く観測できると予想されているのが、18日の午前6時頃(JST)です。詳細については、AstroArtsさんのページをご覧下さい。

ネット系エンジニアの皆さまへ。

普段パソコンを眺めているその目を、今夜だけは夜空に向けてみませんか?



※M.S注:そういえば子供の頃、新聞で「日本版スペースシャトル開発中」という記事を見ました。アメリカのものとは異なり、燃料タンクを機体内に内蔵し、サンダーバード2号みたいな外見でめちゃめちゃ胸をときめかせていましたが、誰かその後ご存知の方います?