火星探査機「Perseverance」が時速約2万kmで火星の大気圏に突入すると、米航空宇宙局(NASA)はそのわずか7分後に最新の火星探査車を安全に軟着陸させた。重量1トンの移動する科学実験室である探査車には、小型のドローンヘリコプター「Ingenuity」が搭載されている。すべてが順調に進めば、重量4ポンド(1.8kg)のIngenuityは、ほかの星を飛行する最初の航空機になるだろう。火星は地球から13光分離れた距離にあるため、誰かがこの2組のプロペラで飛ぶIngenuityをコントローラーで操作するわけにはいかない。その代わり、Linuxと、NASAのジェット推進研究所(JPL)のオープンソースフレームワークである「F'」をベースにNASAが開発したプログラムを使って自律的に飛行する。
これは簡単なことではない。人類が、大気密度が地球の100分の1しかない火星で何かを飛ばそうとするのは初めてのことだからだ。火星の重力は地球の3分の1しかないが、それでもIngenuityのエンジニアは、Ingenuityが離陸しただけで大喜びするだろう。
実際、Ingenuityは純粋に技術的なデモンストレーションを目的としたもので、古生物の痕跡を探したり、後に岩や土のサンプルを地球に送り返す目的でそれらを収集したりするPerseveranceのミッションを支援するために設計されたものではない。そのミッションは、市販されている商用オフザシェルフ(COTS)のハードウェアとオープンソースソフトウェアで、火星の空を飛行できると証明することだ。
JPLのシニアソフトウェアエンジニアで、JPLのフライトミッションの組み込みソフトウェアに携わっているTimothy Canham氏は、IEEE Spectrumのインタビューで、ヘリコプターの基板で使用されているのはQualcommの「Snapdragon 801」だと述べている。恐ろしく低速で、古くさいようにも聞こえるが、実はPerseveranceのプロセッサーよりもはるかに高速だ。これは、NASAグレードのCPUやチップは、NASAのハイパフォーマンス宇宙飛行コンピューティング(HPSC)の放射線基準を満たさなければならないためだ。 これらのカスタマイズされたプロセッサーが宇宙飛行に使用されるための認証を受けるには、何年もの設計作業とテストが必要になる。例えば、NASAの最新の汎用プロセッサーは、「Raspberry Pi 3」で使用されているArmの「Cortex-A53」のバリエーションだ。しかし、Ingenuityは一般的な技術を利用できることを示すデモプロジェクトであるため、もっと新しいCPUを利用できる。
フライト制御ソフトウェア自体は500Hzで動いているという。Canham氏は米ZDNetに対し、MHzではなくHzだとし、このフライトソフトウェアは、「フライトハードウェアを制御し、ヘリコプターの安定を維持するために1秒あたり500回センサーを読み取るのに利用されている」と説明した。実際、Canham氏は、「私たちは文字通りSparkFun Electronics(米国の家電量販店)で部品を発注した。これは市販のハードウェアだが、テストしてみて、もしうまく動くようなら今後も利用する」と述べている。