スタートラッカ姿勢決定精度シミュレーター 戻る
宇宙工学・姿勢制御

スタートラッカ姿勢決定精度シミュレーター

CMOS/CCD で複数の恒星を撮像し、星カタログと照合して 3軸姿勢を arcsec 精度で決定する「スタートラッカ(STR)」のセンサー設計ツール。検出器解像度・視野角・追跡星数・積分時間・宇宙機角速度を変えて、像スメアと総合姿勢精度がどう変わるかをリアルタイムで確認できます。

パラメータ設定
検出器解像度
px
CMOS/CCD の1辺ピクセル数(1024² 〜 4096² が一般的)
視野角 FOV
deg
広いほど星捕捉性UP、狭いほどピクセル分解能UP
重心精度 σ_centroid
px
PSFサブピクセル重心算出の1σ。典型 0.05〜0.2 px
同時追跡星数 N_s
同時に重心算出する星の数。√N で精度UP
積分時間 t
ms
長いほどSNR UP、しかし更新レート↓・スメア↑
宇宙機角速度 ω
deg/s
3軸合成のボディレート。スラスタ後は数°/sに上昇
星等限界 m_lim
mag
検出限界等級。暗い星まで取れるほど星密度UP
計算結果
ピクセル角分解能 (arcsec)
単一星精度 (arcsec)
アンサンブル精度 (arcsec)
角速度スメア (arcsec)
全体姿勢精度 (arcsec)
視野内利用可能星数
検出器視野シミュレーション

検出器視野内の星(白点)と重心マーク(青)、角速度によるスメアスティック(赤)を表示。星等が明るいほど大きく、角速度が高いほどスメアが伸長。

姿勢精度 vs 追跡星数 N_s
スメア vs 宇宙機角速度 ω
理論・主要公式

$$\sigma_{pixel} = \frac{FOV \cdot 3600}{N_{px}},\qquad \sigma_{ensemble} = \frac{\sigma_{pixel} \cdot \sigma_{centroid}}{\sqrt{N_{stars}}}$$

FOV=視野角(deg)、N_px=検出器解像度、σ_centroid=重心精度(px)、N_stars=追跡星数。アンサンブル平均で √N 倍の精度向上。

$$\sigma_{smear} = \omega \cdot 3600 \cdot t,\qquad \sigma_{total} = \sqrt{\sigma_{ensemble}^{2} + \sigma_{smear}^{2}}$$

スメア σ_smear(arcsec)と総合精度。ω=角速度(deg/s)、t=積分時間(s)。クロストラック2軸とロール1軸では幾何上 σ_roll ≈ 6·σ_total。

$$\rho_{star} \approx 2.5^{(m_{lim}-6)}\ /\text{sqdeg},\qquad \Omega_{FOV} = \pi (FOV/2)^{2}$$

星密度と視野立体角。m_lim=星等限界。視野内利用可能星数 ≈ ρ_star · Ω_FOV。銀河面外では半分以下、Keep-out 円除外で実効は理論の30〜50%。

スタートラッカ姿勢決定精度 — 宇宙機指向制御

🙋
「スタートラッカ」って、宇宙機が星を見て自分の姿勢を決めるセンサーですよね?でも、星を見るだけで本当に arcsec 精度の姿勢が分かるんですか?
🎓
本当だよ。スタートラッカ(Star Tracker、STR と略す)は、宇宙機が積める姿勢センサーの中で飛び抜けて精度が高い。CMOS や CCD で恒星を撮像して、視野に映った数個〜数十個の星のパターンを地上で作っておいた星カタログ(Hipparcos や Tycho)と照合する。星の天球上の絶対位置はミリ秒角単位で既知だから、それを基準に逆算すれば 3軸姿勢が出せる。Hubble や JWST、JAXA のはやぶさ/はやぶさ2 みたいな観測機では 1〜3 arcsec、商用機でも 10〜30 arcsec が普通だね。
🙋
なんで星を増やすと精度が上がるんですか?グラフでも「追跡星数 N_s を増やすと精度↑」って出てるけど…
🎓
これは統計のおなじみのトリックで、独立した N 個の測定の平均をとると誤差が √N 倍だけ小さくなるからだ。1星あたりの重心精度 σ_centroid は典型 0.1 px、それが角度に直すと数 arcsec。それを 8〜16 個まとめて姿勢推定(QUEST 法とか)すれば、誤差は √8≈2.8 倍、√16=4 倍と縮む。だから視野は星をたくさん取り込めるよう FOV=15° くらい広くするのが定番。ただし広げすぎるとピクセル分解能(FOV·3600/N_px)が悪化するから、左パネルでバランスを試してみて。
🙋
デフォルトのままだと判定が「ng」になっていて、スメアが 72 arcsec ってめちゃ大きいんですけど、これって何ですか?
🎓
いいところを突いてきたね。像スメア(image motion smear)といって、積分中に宇宙機が回転すると、星がセンサー上を流れて点像が線になっちゃう現象だよ。デフォルトの角速度 ω=0.1°/s に積分時間 200 ms をかけると、0.1×3600×0.2 = 72 arcsec も視野が動く。ピクセル換算で 1.4 px。これだと重心算出が破綻して、精度がスメアそのもので決まる。実機でもセーフホールド復帰直後やスラスタ噴射後の高レート時は「STR が失見当」になって、ジャイロで姿勢を引き継ぐのが普通だ。ω を 0.01°/s まで下げてみて、姿勢精度がガクッと良くなるはずだよ。
🙋
「ロール軸が 6 倍悪い」っていうのも気になります。3軸とも同じ精度じゃないんですか?
🎓
これは幾何学的な宿命でね。光軸(視線方向)に対して横向きのクロストラック2軸(ピッチ・ヨー)は、星が視野上でどこに来たかの XY 位置で直接決まる。一方ロール軸(光軸まわりの回転)は、視野中心からの星の角度配置パターンで決まるから、テコの腕が短い分だけ感度が低い。経験則で σ_roll ≈ 5〜10 · σ_crosstrack。だから観測衛星ではロール精度が要求項目になる場合、視野を広げるか、3〜4台のSTRを直交配置して合成姿勢を作る。Hayabusa2 は2台で冗長&精度向上を狙ってたよ。
🙋
電源を入れた直後の姿勢って、何も分かってないですよね?それでも星を見るだけで姿勢が決まるんですか?
🎓
それが有名な「Lost in Space 問題」だよ。Mortari (1997) のPyramid Algorithm がほぼ業界標準で、視野内の任意の4星を選んで、星間角距離の4角形(ピラミッド)パターンを作る。これを Hipparcos から抽出した数千〜数万星の k-vector インデックスと照合すれば、何の事前情報もなしに数 ms で姿勢解が出る。誤マッチ確率は10⁻⁶以下。これがあるおかげで、衛星は再起動直後でも30秒以内に自己姿勢を再取得できる。Sodern(フランス)、Jena-Optronik(ドイツ)、Selex-ES(イタリア)、Ball Aerospace(米)、Surrey(英)あたりが世界主要メーカーで、日本も NEC や明星電気が手がけてるよ。

よくある質問

基本式は σ_ensemble = (FOV·3600 / N_px) · σ_centroid / √N_stars です。FOV は視野角(deg)、N_px は検出器の1辺ピクセル数、σ_centroid は1星あたりの重心精度(典型 0.1 px)、N_stars は同時追跡星数です。さらに宇宙機の角速度 ω による像スメア σ_smear = ω·3600·t(t は積分時間 秒)が加わり、総合精度は二乗和平方根 σ_total = √(σ_ensemble² + σ_smear²) となります。クロストラック2軸とロール1軸では幾何学的にロール軸が5~10倍悪く、典型値で σ_roll ≈ 6·σ_total となります。
Lost in Space問題とは、宇宙機の初期姿勢が全く未知の状態(電源投入直後やセーフホールド復帰時)で、撮影された星画像から3軸姿勢を一意に決定する問題です。Pyramid Algorithm はその代表的解法で、視野内の任意の4星を選び、星間角距離の4角形(ピラミッド)パターンを星カタログと照合します。Hipparcos/Tycho カタログから抽出した数千~数万星のk-vectorインデックスを用い、ミリ秒オーダーで姿勢解を得られます。Mortari (1997) によって提案され、現在の商用STRの大半がこの族のアルゴリズムを採用しています。
スメアがピクセルサイズを超える(smear > 1 px)と、重心算出が劣化し精度が急速に落ちます。例えば FOV=15°、N_px=1024 のSTRはピクセル角分解能が約 53 arcsec/px。積分時間 200 ms で角速度 0.1°/s なら smear = 0.1·3600·0.2 = 72 arcsec ≈ 1.4 px となり、すでに警告領域です。実運用ではセーフモードやスラスタ噴射後の高レート(>0.5°/s)でSTRが「失見当」となるため、ジャイロ+カルマンフィルタで姿勢を維持しつつ、レートが落ちてから再捕捉する運用が標準です。
天空の星密度は星等限界 m_lim で大きく変わり、概算で密度 ≈ 2.5^(m_lim − 6) 個/平方度(m_lim=6 で約1星/sqdeg)です。視野立体角 Ω = π·(FOV/2)² より、視野内星数 ≈ Ω · 密度。例えば FOV=15° なら Ω≈177 sqdeg、m_lim=6.5 で密度≈1.58 個/sqdeg、利用可能星数≈280個と、十分な余裕があります。ただし銀河面外(galactic high latitude)では星密度が半分以下になり、太陽・地球・月の Keep-out 円内も使用不可となるため、実効値は理論値の30~50%程度で見積もるのが安全です。

実世界での応用

科学観測衛星・宇宙望遠鏡:Hubble Space Telescope(HST)は3台の Fine Guidance Sensor + 3台のSTRで 0.007 arcsec(!)の指向安定を達成、ハッブル定数の測定や系外惑星トランジット観測を支えました。JWST は L2 軌道で 3台のSTRと3台のFGSにより 1 milliarcsec 級の指向制御を実現。ESA Gaia は2台のSTRで 24 微小角秒(μas)級のアストロメトリ精度を実現し、20億星の3D星図を作成しています。

地球観測衛星:WorldView/Pléiades などの高分解能光学衛星は、地上分解能 30cm/pix のために 1 arcsec 級の指向制御が必要。複数STRをスター・センサー三角形配置で搭載し、ジャイロ+カルマンフィルタと融合して姿勢を維持します。XRISM/Athena などのX線望遠鏡も、視野が狭い分だけ STR の精度が直接観測効率を左右します。

深宇宙探査・小惑星サンプルリターン:JAXA の Hayabusa/Hayabusa2 では2台のSTRで地球からの通信なしに自律航法を実施。ESA の Rosetta はチュリュモフ・ゲラシメンコ彗星接近時、STRが彗星のチリ環境で誤検出する事象が発生し、地上で対策パッチを送信した実例があります。NASA の OSIRIS-REx も Bennu 接近時に同様の課題に直面しました。

キューブサット・商用LEOコンステレーション:近年は手のひらサイズのSTR(Blue Canyon Technologies の NST、CubeSpace の CubeStar 等)が登場し、6U/12U キューブサットでも 50 arcsec 級の姿勢決定が可能に。Starlink/OneWeb のような数千機規模のコンステレーションでも、各機にSTRが標準搭載され、軌道間レーザー通信や干渉回避マヌーバの基盤になっています。

よくある誤解と注意点

第1の落とし穴が、「STRの精度=3軸とも均等」と思い込むこと。実際にはクロストラック2軸(光軸に垂直なピッチ・ヨー)に対してロール軸(光軸まわり)は幾何学的に5〜10倍精度が悪い。視野中心の星はロール回転に対してほとんど動かないため、テコの腕が短く誤差が拡大されるのが原因です。観測衛星の指向要求が「ロールも 5 arcsec 以下」と書かれている場合、視野を広げるか、複数STRを直交配置して合成姿勢を作る必要があります。本ツールでは σ_roll ≈ 6·σ_total として表示しますが、実機では具体的な配置・星パターンに依存するため、ミッション設計では Monte Carlo で評価するのが標準です。

第2の重大な誤算が、「視野内に星があれば常に使える」という前提。実際は太陽 Keep-out(典型 30〜45° 半円)、地球リム Keep-out(LEO で 60°、GEO で 9°)、月 Keep-out(10〜15°)が常に存在し、これらの円錐内に光軸が入ると検出器が飽和して使用不可となります。LEO衛星では軌道周期 90 分のうち 30〜40 分が地球リム入りで2台搭載のSTRが片方しか使えない時間帯があるのが普通です。設計段階で軌道シミュレータと連動した Keep-out 解析が必須で、それを怠ると「軌道上で1日の半分しか姿勢が更新できない」運用になります。

第3の盲点が、放射線環境下でのCMOS/CCD劣化。GEO や HEO の高放射線軌道、深宇宙ミッションでは、検出器ピクセルが宇宙線によって永久損傷を受け(hot pixels、dead pixels)、年数経過とともに重心精度が悪化します。Galileo(木星探査機)の STR は10年運用で重心精度が当初の0.1 px から 0.3 px へ約3倍劣化した記録があります。設計時には EOL(End of Life)精度で要求を満たすこと、軌道上でのダークフレーム取得と Bad Pixel Map 更新を運用に組み込むことが必須です。本ツールの値はあくまで BOL(Beginning of Life)の理想値です。

使い方ガイド

  1. 検出器解像度(ピクセル数)と視野角(度)を設定し、ピクセル当たりのarcsec角分解能を決定します
  2. 重心精度(ピクセル単位)と追跡可能星数を入力し、単一星の姿勢決定精度とアンサンブル統合精度を計算します
  3. 角速度スメア量を確認して全体姿勢精度を評価し、宇宙機の回転速度と積分時間の影響を定量化します

具体的な計算例

1024×1024ピクセル検出器、視野角8度の場合、ピクセル角分解能は31.4arcsecです。重心精度が0.2ピクセルで5個の星を追跡時、単一星精度6.3arcsec、アンサンブル精度2.8arcsecとなります。角速度スメア2deg/sで積分時間0.5秒の場合、スメア量は3.6arcsecです。結果、全体姿勢精度は4.7arcsec(90%信頼度)に達します。地球観測衛星の軌道上試験では視野内利用可能星数45個で実績があります。

実務での注意点

  1. 高解像度検出器(4096×4096)でも視野角が広すぎると(16度以上)、ピクセル当たり60arcsec以上となり精度劣化が顕著です
  2. 重心精度0.1ピクセル以下を実現するには検出器ノイズレベルを5e-rms以下に抑える必要があります
  3. 追跡星数が3個未満の場合、カタログマッチング曖昧性が増加し、全体精度は悪化傾向を示します
  4. 昼間地球反射光による検出器飽和を避けるため、積分時間は10msec以下に制限してください