MOMOのアビオニクスはどう作られている?
MOMOの大きな特徴は、コストダウンのために、民生品を積極的に活用していることだ。飛行制御に使われているのは、Arm Cortex-M4ベースの「STM32F405」(168MHz)。そのほか、Intel/Xilinx製のFPGAも搭載している。これでも速度性能には余裕があり、小型軽量のため環境対策も簡単だという。
航法センサーとしては、MEMSジャイロとGPS受信機を搭載するが、いずれも民生品。宇宙用の製品は信頼性は高いものの、一般的に枯れた技術のものが多く、進化は遅い。しかし民生品は高性能化と低価格化のペースが非常に早い。森岡氏は、「数年前ならMOMOは実現不可能だったかも」とすら述べる。
しかし、民生品を活用する上で問題なのは、信頼性をどう評価し、担保するかだ。これについては、「民生品はTyp値や1σ値しか公開されていない場合が多いので、飛行環境下での動作などは、我々が自分で調べた上で使っている」という。航法に関わるセンサーは、誤動作が即失敗に繋がるため、全個体を評価しているそうだ。
ロケットの開発で怖いのは、たった1つのケアレスミスで、ミッションが即失敗になってしまうことだ。これまで、海外の大型ロケットや火星探査機でも、驚くようなミスで失敗した事例があった。森岡氏は、「アルゴリズムなどの高級なミスは少ない。むしろ低級なミスが多く、これを100%撲滅しないと成功しない」と指摘する。
そのために、MOMOのアビオニクス開発で心がけたのは、「極力シンプルにすること」だという。ソフトウェアのコードは、合計でわずか3,000行程度。ソフトウェア開発にバグは付きものであるが、アビオニクスの担当者は3名しかいないため、その人数でもバグがないようにするには、このくらいまで抑える必要があった。
バグをゼロにするために、開発はペアプログラミングに近い状況でやっているという。さらに、バグや失敗を個人の責任にしない、ギリギリまで徹夜でデバッグしない、ということを組織として徹底しているそうだ。
ロケットの姿勢制御は、実機を使ったテストが難しいが、ぶっつけ本番というわけにもいかないため、事前にMATLABによるフライトシミュレーションを行っている。モデルベース開発を利用しており、モデル→ソフトウェア→実物(ハードウェア)と、段階的に置き換えながら確認しているそうだ。
国家主導のロケットとは真逆の開発スタイル
講演の聴衆の多くが組み込み技術者ということで、森岡氏は、従来の国家主導のロケットとISTの民間ロケットの開発戦略を、「ASICとFPGA」に例える。従来は「失敗しないこと」を重視しており、そのため特殊化、高価格化のループに陥っていた。しかし同社は「失敗してもいいから早く進むこと」に価値を置いているという。
その例としてあげたのが、打ち上げに失敗したMOMO2号機の後の対策。普通であれば、理論解析、基礎実験&シミュレーション、数秒噴射、フル秒時噴射と積み上げたくなるところだが、同社はいきなりフル秒時噴射し、修正案を大体確認してから、細部を調整し、最後にもう一度フル秒時噴射を実施して完了したという。
森岡氏はこの点について、「従来の方法が間違っているわけではないが、我々には時間がない。対策に時間をかけすぎると会社が潰れてしまう」と補足する。「ただ我々の方法にもリスクがある。それを踏まえた上でどうするかを常に考えている」と述べた。
コストダウンの考え方も大きく異なる。日本はH-IIロケットでまず純国産を実現してから、より低コストなH-IIAロケットを開発したが、ISTはまずコスト要求重視で作り、問題点を直していくスタイルを採用している。初期には当然ながら失敗もするが、この方が「到達する価格ラインは低くできる」と見る。現在はその途上というわけだ。
ロケットはそもそも「完成された技術ではない」と森岡氏は指摘する。その違いは、飛行機と比べると分かりやすい。飛行機よりも桁違いに使用頻度は低く、事故の確率は遥かに高い。「開発段階の技術で絶対に失敗しないようにすれば、高くなるのは当然。我々は、安く作ったものでたくさん失敗をしながら完成度を上げていく」と述べる。
同社は情報をオープンにしつつ、開発を進めていることでも知られる。飛行データがGitHubにて公開されているが、ロケットの開発でここまで情報を出すケースも珍しいだろう。森岡氏は「我々は企業や個人との連携を重視している。面白そうだと思った人は、いつでも手伝いに来て欲しい」とアピールし、講演を終えた。