人工衛星姿勢制御ソフトウェアの 状態遷移表ベース...

25
Shin-ichiro Sakai, ISAS/JAXA 坂井 真一郎 宇宙航空研究開発機構 宇宙科学研究所 (JAXA/ISAS) e-mail[email protected] 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース設計事例 ZIPCユーザーカンファレンス 2011

Upload: others

Post on 20-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

坂井 真一郎

宇宙航空研究開発機構

宇宙科学研究所

(JAXA/ISAS)

e-mail: [email protected]

人工衛星姿勢制御ソフトウェアの 状態遷移表ベース設計事例

ZIPCユーザーカンファレンス 2011

Page 2: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

自己紹介(宇宙科学研究所)

• JAXA所属、宇宙科学の遂行と、そのための人工衛星・探査機・ロケットの研究開発を役割としている。

• ルーツは、東京大学で「ペンシルロケット」を開発した糸川博士の研究室。日本初の人工衛星「おおすみ」の打ち上げなど。

• 宇宙科学・宇宙工学の専門家が混在

• 伝統的に二足のわらじを履いている

–科学衛星・探査機などの企画立案と、そのプロジェクトマネージメント

–その礎となる科学や技術の基礎研究・開発。大学共同利用研究機関としての側面

Page 3: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

衛星開発への問題意識(1)

• 宇宙科学の発展、探査機の到達範囲の拡大に伴い、宇宙ミッションは高度化・大規模化の一途を辿っている。

–プロジェクト予算の拡大(数10億→数100億規模)

–開発年数の増大(5年規模→10年規模)

• その負の側面のひとつとして、宇宙科学分野での衛星・探査機打ち上げ頻度が低下する傾向にある。

–かつて :2年前後に一度の打ち上げ

–近い将来 :4-5年に一度の打ち上げ?

Shin-ichiro Sakai, ISAS/JAXA

Page 4: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

• それでは、どうするべきか?

–大規模プロジェクトと相補的な、機動力のある中規模プロジェクトを!→500kg級の小型科学衛星”SPRINT”シリーズを開発中

• 開発期間の短縮へ向けて

–重要な点は、科学衛星や探査機は常に”新しい”点。

–従って、毎回目的や要求の全く異なる衛星を、いかに効率よく開発できるかが、が問われている。

衛星開発への問題意識(2)

Shin-ichiro Sakai, ISAS/JAXA

その搭載ソフトウェア開発において、状態遷移表設計手法はひとつの有用な手法と感じている。以下ではその具体的な事例を紹介したい(小型衛星「れいめい」衛星での例)

Page 5: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

50kg級小型衛星「れいめい(1)

• 50kg級の超小型科学衛星

• オーロラ観測と工学技術実証を目的

• 教育などを目的としたインハウス開発

–若手スタッフ中心、学生も参加

• 2000年頃から設計開始、2005年夏に打ち上げ成功。現在も運用中

• 50kg級衛星としては優れた姿勢制御性能を実現(オーロラ観測のため)

Page 6: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

50kg級小型衛星「れいめい」(2)

• 衛星を作るのは初めてという若手スタッフが中心(筆者も)、インハウス開発でもあり、新しい試みもいろいろ行われた

Page 7: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

50kg級小型衛星「れいめい」(3)

• 開発線表

Shin-ichiro Sakai, ISAS/JAXA

FY00 FY01 FY02 FY03 FY04 FY05

CMD-DEC PM FM

OBC PM FM BBM

IOP PM* FM PM** 基本設計

1次噛み合わせ試験

温度試験

総合試験

単体振動/衝撃試験

OBCソフト 基本設計 設計/開発/試験

2004.夏~秋 ロケット決定

2005.8打ち上げ!

PM : Prototype Model

FM : Flight Model

Page 8: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

50kg級小型衛星「れいめい」(4)

• バイコヌール宇宙基地から打ち上げ(2005年)

Shin-ichiro Sakai, ISAS/JAXA

ロケットは元ICBM.

地下サイロから発射

砂漠の宇宙基地

衛星最終チェックを終えて

Page 9: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

打ち上げ

γ 2005/8/23 21:9:59(UTC)

655km×609km, i =97.83°

50kg級小型衛星「れいめい」(5)

Page 10: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

50kg級小型衛星「れいめい」(6)

Shin-ichiro Sakai, ISAS/JAXA

初期運用は、鹿児島・内之浦にて。打ち上げ成功はロシアからの電話で知る(左上)。数時間後、緊張の第一可視。

Page 11: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

Aurora Image Library

Page 12: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

Shin-ichiro Sakai, ISAS/JAXA

Aurora Image Library

Page 13: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

「れいめい」衛星への状態遷移表設計適用

• 筆者自身の専門は制御工学や、宇宙機の姿勢制御。ソフトウェアは専門ではないが、「れいめい」衛星では、搭載姿勢制御ソフトウェアもイチから設計・実装するはめに

• 姿勢制御本来の設計に集中したいが、ソフトウェア設計・実装としてはむしろ、状態の管理やエラーチェック、ソフトウェア構造設計など、それ以外の部分の負担が大きいことに気づく

• 制御本来の機能以外の部分を、極力テンプレート化できないか? → “状態遷移表設計”を導入してみることに(恐らく2002~3年頃)

Shin-ichiro Sakai, ISAS/JAXA

Page 14: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

姿勢制御機能と、状態遷移表との親和性

• 宇宙機の姿勢制御においては、元々、地上からのコマンド指示や衛星自身の自律的判断により、時々刻々“制御モード”や“内部状態”が遷移していく構造を持っている。

• 衛星関係者からもしばしば「分かりにくい」と言われる姿勢制御系の挙動。ダイナミクスと密接に関連することが一因だが、その連続的でアナログな姿勢制御系の挙動を、いわば離散的に切り取るツールとして、状態遷移表は適している。

Shin-ichiro Sakai, ISAS/JAXA

Page 15: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

「れいめい」姿勢制御系における状態遷移表(1)

• 「れいめい」姿勢制御機能は、「モジュール」と呼ばれる関数の接続により実現されている

• 各モジュールそれぞれには、下図の信号の流れとは別に、”動作指示値”と呼ばれる値が渡されている。

Shin-ichiro Sakai, ISAS/JAXA

フィードバック制御部

磁気トルク制御部

ホイール(モータ) 制御部

制御指令値演算部

Page 16: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

「れいめい」姿勢制御系における状態遷移表(2)

• 姿勢制御動作全体の状態を管理する状態遷移表

Shin-ichiro Sakai, ISAS/JAXA

イベント:地上からのコマンドなどに対応

状態 : オーロラ観測用の制御モードなどに対応(ポインティング、磁力線追尾など)

… Pointing Rotation …

SUNACQ … HALT HALT …

POINT … POINT ROTATE …

SUNPT … HALT HALT …

MTRACK … HALT CTRL …

EANGX … FINE HALT …

… … … … …

状態動作指示値

1:TimeUp 4:ToPointing 5:ToRotation 6:ToMagTrack …

SunPoint (処理:SunPoint) 遷移:Pointing 遷移:Rotation (処理:SunPoint) …

SunPointZ (処理:SunPointZ) 遷移:Pointing 遷移:Rotation (処理:SunPointZ) …

Pointing (処理:Pointing) (処理:Pointing)遷移:Rotation 遷移:MagTrack …

Rotation 表遷移:SPIN 遷移:Pointing (処理:Rotation) (処理:Rotation) …

MagTrack 表遷移:SPIN 遷移:Pointing (処理:MagTrack) (処理:MagTrack) …

Event

状態が決まると、各モジュールへの動作指示値がテーブルから読み出される

Page 17: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

「れいめい」姿勢制御系における状態遷移表(3)

• 各モジュールも、それぞれ状態遷移表を内包する。前述の“動作指示値”や周辺機器の状態、モジュール内部の状態等によって駆動されている。

• 状態遷移表を駆動する関数はモジュール間で共通。状態遷移表も、モジュール間で共通な部分と固有な部分とに分けられている。

Shin-ichiro Sakai, ISAS/JAXA

• 2階層の状態遷移表が接続されており、また機器状態(モータ回転数など)や衛星ダイナミクス等で状態がそれぞれの状態が遷移していくシステム。シミュレータやツールがないと、挙動の理解が難しい(開発時の苦労)

Page 18: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

得られたメリット(1)

• 仕様の漏れ抜け、見える化

–姿勢制御系全体の状態については、従来は主に状態遷移図で管理されていた。これを状態遷移表表現にすることで、より漏れや抜けのない設計が行える。

• 試験すべき内容の整理がしやすい

–姿勢制御系全体の動作にせよ、各モジュール単体の動作にせよ、試験すべき項目をリストアップしやすい(まずは全ての状態遷移を起こすところから考え始められる)

Shin-ichiro Sakai, ISAS/JAXA

Page 19: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

得られたメリット(2)

• ソフトウェア単体試験の一部を、自動化可能

–状態遷移表定義と、実際にコーディングされたソフトウェア挙動とを比較する試験用コードを実装、状態遷移表実装および処理部の試験自動化を試みた。

–試験としては有意義だったが、“正解値”の用意が面倒で、思ったより手間がかかった

•制御ソフトウェアはダイナミクスを扱うため、状態の時間的変化が重要になる。ところが、これは状態遷移表を静的に眺めても、理解が難しい(人間にも、ソフトウェアにも)

Shin-ichiro Sakai, ISAS/JAXA

Page 20: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

得られたメリット(3-1)

• 2011.2, 「れいめい」衛星搭載の姿勢制御センサ(ジャイロセンサ)が故障、現在これに対応したソフトウェアの改修作業を実施中だが、奇しくもここでも状態遷移表設計の利点を実感

–5年以上前の仕様は(自分で作ったにも関わらず)かなり忘れているが、とりあえず状態遷移表をみれば理解可能

–必要な設計変更のうち、ある範囲については状態遷移表定義の変更だけで対応可能

•表自身の変更については、データだけコマンド送信すればよい。

•イベント発生条件については、コード変更&パッチ送信で対応の必要あり。

Shin-ichiro Sakai, ISAS/JAXA

Page 21: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

得られたメリット(3-2)

• 新旧状態遷移表の比較

Shin-ichiro Sakai, ISAS/JAXA

0:NoEvent 1:TimeUp 2:ToSunPoint 3:ToSunPointZ 4:ToPointing 5:ToRotation 6:ToMagTrack 7:ToSunAcq 8:Complete 9:Error

SunPoint (処理:SunPoint) (処理:SunPoint) (処理:SunPoint) 遷移:SunPointZ 遷移:Pointing 遷移:Rotation (処理:SunPoint) 表遷移:SPIN (処理:SunPoint) 表遷移:SPIN

SunPointZ (処理:SunPointZ) (処理:SunPointZ) 遷移:SunPoint (処理:SunPointZ) 遷移:Pointing 遷移:Rotation (処理:SunPointZ) 表遷移:SPIN (処理:SunPointZ) 表遷移:SPIN

Pointing (処理:Pointing) (処理:Pointing) 遷移:SunPoint 遷移:SunPointZ (処理:Pointing) 遷移:Rotation 遷移:MagTrack 表遷移:SPIN (処理:Pointing) 表遷移:SPIN

Rotation (処理:Rotation) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing (処理:Rotation) (処理:Rotation) 表遷移:SPIN 遷移:SunPoint (*2) 表遷移:SPIN

MagTrack (処理:MagTrack) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing (処理:MagTrack) (処理:MagTrack) 表遷移:SPIN (処理:MagTrack) 表遷移:SPIN

Event (Event番号が小さいものから優先的に処理される。ただし例外的に0は最も優先度が低い)

stat

e

0:NoEvent 1:TimeUp 2:ToSunPoint 3:ToSunPointZ 4:ToPointing 5:ToRotation 6:ToMagTrack 7:ToSunAcq 8:Complete 9:Error 10:Singular

SunPoint (処理:SunPoint) (処理:SunPoint) (処理:SunPoint) 遷移:SunPointZ 遷移:Pointing 遷移:Rotation (処理:SunPoint) 表遷移:SPIN (処理:SunPoint) 表遷移:SPIN 遷移:Singular

SunPointZ (処理:SunPointZ) (処理:SunPointZ) 遷移:SunPoint (処理:SunPointZ) 遷移:Pointing 遷移:Rotation (処理:SunPointZ) 表遷移:SPIN (処理:SunPointZ) 表遷移:SPIN 遷移:Singular

Pointing (処理:Pointing) (処理:Pointing) 遷移:SunPoint 遷移:SunPointZ (処理:Pointing) 遷移:Rotation 遷移:MagTrack 表遷移:SPIN (処理:Pointing) 表遷移:SPIN 遷移:Singular

Rotation (処理:Rotation) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing (処理:Rotation) (処理:Rotation) 表遷移:SPIN 遷移:SunPoint (*2)表遷移:SPIN 遷移:Pointing

MagTrack (処理:MagTrack) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing (処理:MagTrack) (処理:MagTrack) 表遷移:SPIN (処理:MagTrack) 表遷移:SPIN 遷移:Pointing

Singular 遷移:Back(*3) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing 遷移:Rotation 遷移:MagTrack 表遷移:SPIN (処理:Singular) 表遷移:SPIN (処理:Singular)

Eclipse 遷移:Back(*3) 表遷移:SPIN 遷移:SunPoint 遷移:SunPointZ 遷移:Pointing 遷移:Rotation 遷移:MagTrack 表遷移:SPIN (処理:Eclipse) 表遷移:SPIN 遷移:Singular

Event (Event番号が小さいものから優先的に処理される。ただし例外的に0は最も優先度が低い)

stat

e

状態遷移表サイズは大きめに確保していたので、余地へ拡張して新しい状態定義を追加。

必要な関数はパッチで追加(地上からコマンド送信、1kbps以下)

Page 22: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

ここまでの試みを踏まえて

• 「れいめい」衛星での経験から、「毎回仕様の違う宇宙機をいかに効率よく開発するか」いう問題に対して、状態遷移表ベース設計の適用はメリットがあると考えている。

• そのために、衛星メーカへの普及を働きかけるべきではないか、と考え始める。

• 但しソフトウェア単体試験の自動化などで苦労した経験からも、なんらかの使いやすいツールの利用が必要と考えていた。

– “ZIPC”にたどり着く

Shin-ichiro Sakai, ISAS/JAXA

Page 23: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

ZIPCとの出会い

• 2010.12~2011.3にかけて、「れいめい」衛星姿勢制御系の状態遷移表をZIPCで再現できるか、という試行検討を行った。

• 全体の状態遷移とそれに 従った各モジュール内部の 状態遷移、特に時間推移に 伴う状態遷移まで含めて 一通りの状態遷移挙動が 再現できている (実質作業:2-3ヶ月)

Shin-ichiro Sakai, ISAS/JAXA

main Master (Steady/Spin)

SunAcq 共通部

Point 共通部

Sunpt 共通部

SunAcq 固有部

Point 固有部

Sunpt 固有部

・・・

Page 24: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

ZIPCにより再現された「れいめい」状態遷移

ESEC2011での展示

Shin-ichiro Sakai, ISAS/JAXA

ダイナミクス系 (理論モデル)

シミュレーション

状態遷移系 (実装モデル)

シミュレーション

ダイナミクス系で求めた

理論値の妥当性を

状態遷移系の

実装モデルで検証する

時間パラメータの設定

衛星の状態

各コンポーネントの状態

Page 25: 人工衛星姿勢制御ソフトウェアの 状態遷移表ベース …自己紹介(宇宙科学研究所) •JAXA所属、宇宙科学の遂行と、そのための人工 衛星・探査機・ロケットの研究開発を役割とし

今後の活動

• これまでの活動・成果を踏まえて衛星・宇宙メーカへ向けたデモンストレーションを行い、メーカ視点でみた有用性や課題の整理などを経て、宇宙開発の実際の現場への普及を働きかけていきたいと考えている。

• 目指しているのは、その度に要求・仕様の異なる衛星・宇宙機の開発効率化。具体的には、よりスムーズな設計の理解、設計と対応したブレのない効率的な実装、試験の部分自動化、打ち上げ後の衛星運用支援への適用など。

Shin-ichiro Sakai, ISAS/JAXA