先日、打ち上げ中止になったイプシロン、昨日、イプシロンから送られてくるデータが想定より遅かったと発表されましたが、森田プロジェクトマネージャーのインタビュー記事を見て、ちょっと引っかかりますね。
異常検知は、ロケット側からのデータ受信が0.07秒遅れるズレがあって、これについて誰も気づいてなかったと言うのは、制御ソフト屋のオヤジからすれば、おかしすぎ。
ある時間にデータ受信をするプログラムを作るとすれば、当然、予定より早く、あるいは遅くデータ受信された場合を想定して設計するのが当たり前。
予定より早く受信した場合は、データ受信が完了したことを処理側のタスクに連絡(イベントを立てるとか言うんですが)、遅ければタイムアウトタイマーを起動して、一定時間待ち、それでも来なければ、異常検知とするのが、通信プログラムでは常識。
これについて、森田プロジェクトマネージャーは『ずれに気づける人がいなかった』としています。つまり、ローレベル(ソフトの世界では難易度の高い場所)について理解していなかったということになります。
多分、テストレベルでは、地上とロケット側のタイムロスがなかったので気づかなったのでしょう。
まあ、ロケット屋さんが気付かないのは、当然としても、ソフトウェアを開発した連中は気づいて当然と思うのですがね。
バグのレベルの問題だと思うのですが、大丈夫なのでしょうか?