メインメニューをとばして、このページの本文エリアへ

天文衛星「ひとみ」失敗に未来世界の恐怖を見る

コンピューター制御への依存は大惨事をもたらしうる

山内正敏 地球太陽系科学者、スウェーデン国立スペース物理研究所研究員

 エックス線天文衛星「ひとみ」の故障に関する報告書が宇宙航空研究開発機構(JAXA)から出された。報告書 を見る限り、姿勢制御のソフトの不備とプログラム上の誤植が原因だったらしい。

X線天文衛星「ひとみ」の運用断念を発表し、記者たちの質問に答えるJAXA関係者=2016年4月28日、東京都千代田区、関田航撮影

 不備とは衛星の状態に対する想定漏れで、これが2カ所あって、それに対応するソフトが組まれていなかった。誤植というのは、制御プログラムで「+」と「−」を間違えたという初歩的なものだ。いずれも、プログラミングをした経験のある者なら「あるある」とうなずいてしまうだろう。だからこそ、トラブルから2カ月という異例の早さで原因が究明された。

 報告書の49ページ目以降によると、衛星の姿勢確認の装置を改良した際に、精度向上に専念し過ぎて、精度以前の、大雑把に姿勢を決めるところ(望遠鏡を使う際に、まず肉眼で確認して望遠鏡を向けるようなもの)が甘くなった。その結果、微修正のための装置に無理がきて、最終的にエンジン噴射が必要となったが、そこでアクセルとブレーキに対応する部分に「+」と「−」の誤植があったために、衛星の回転が加速して、最終的に分解した。

 前半の想定漏れは予防が難しく、何らかの不具合が起こってから対策を練ることが多い。「ひとみ」だって、問題がこれだけだったら制御不能になる前に対策が立てられていたと思う。一方、後半の誤植は違う。これは致命的で、たとい想定漏れがなかったとしても、いつかは暴走が起こって故障したに違いない。

 宇宙開発などの大型プロジェクトでは、これらの「ありきたりのミス」をいかに減らすか、が安全設計の肝となる。特に後者は絶対に防がなければならないミスだ。だから、重要なプログラム個所は、簡単なシミュレーター(仮想上の衛星)で試行させて、バグがないか確認を取るのが開発現場の常識となっている。シミュレーターの使い方は常識として慣習的にプログラマーに申し伝えられていたし、プログラマーもプロである以上、申し伝えがなくとも確認するのが新人でも当たり前だった。でも制度としてマニュアル化されていなかった。その点をJAXA側が自戒するのも当然だ。

 しかし、今回の事故は、そこに留まらない根本的な問題を提起した。それは、

・・・ログインして読む
(残り:約2133文字/本文:約3053文字)