サンプルリターンのロボティクス — はやぶさ2に学ぶ小天体探査技術

小天体の表面に探査機がそっと触れ、数秒間だけ岩石の破片をかき集めて地球に持ち帰る――サンプルリターンミッションは、宇宙探査のなかでも最も高度なロボティクス技術が要求されるミッション形態の一つです。

なぜわざわざ持ち帰る必要があるのでしょうか? 探査機に搭載できる分析装置は、質量・電力・体積のすべてが厳しく制約されます。一方、地球の実験室にはシンクロトロン放射光やイオンマイクロプローブなど、数十トン級の分析装置があります。サンプルを持ち帰ることで、ナノメートルスケールの結晶構造解析や同位体比測定など、その場観測(in-situ)では到底実現できない精度の分析が可能になるのです。

この技術を学ぶと、以下のような幅広い応用が見えてきます。

  • 惑星防衛 — 小天体の物理特性(密度、空隙率、強度)を正確に知ることで、将来の衝突回避ミッション(キネティックインパクター等)の設計パラメータが精緻化されます
  • 宇宙資源探査(ISRU) — 小天体に含まれる水や貴金属の量と状態を実測データで評価でき、将来の宇宙資源利用の実現性判断につながります
  • 太陽系形成論 — 始原天体のサンプルから太陽系誕生時の物質組成を直接読み解くことができます

本記事の内容

  • サンプルリターンの意義と技術的挑戦
  • はやぶさ初号機の教訓
  • はやぶさ2のミッション概要とタッチダウンの自律制御
  • ターゲットマーカー・LIDAR・光学航法の統合
  • サンプリング機構と人工クレーター生成
  • MASCOT/MINERVAローバーの技術
  • OSIRIS-RExとの比較
  • Pythonでタッチダウン降下軌道のシミュレーション

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

サンプルリターンの意義 — なぜ「持ち帰る」のか

リモートセンシングの限界

探査機に搭載される分光器やカメラは、天体の表面組成を推定する強力な手段です。しかし、リモートセンシングにはいくつかの本質的な限界があります。

まず、空間分解能の壁です。探査機搭載の質量分析器は典型的に $\sim 100 \, \mu\text{m}$ の分解能しか持ちません。一方、地球のナノSIMS(二次イオン質量分析器)は $\sim 50 \, \text{nm}$ の分解能で同位体比を測定できます。これは約2,000倍の差であり、鉱物粒子一つひとつの履歴を読み取るには地上分析が不可欠です。

次に、分析手法の多様性です。地球の実験室では、X線回折、透過電子顕微鏡(TEM)、シンクロトロン放射光 XANES など数十種類の手法を同一サンプルに適用できます。探査機では電力・質量の制約からせいぜい2〜3種類の分析しかできません。

最後に、将来技術での再分析が可能な点です。持ち帰ったサンプルは数十年後の新技術で再度分析できます。実際、アポロ計画で持ち帰った月面サンプルは50年以上経った今も新しい発見を生み出し続けています。

サンプルリターンに要求されるロボティクス

サンプルリターンミッションでは、以下のようなロボティクス技術が統合的に求められます。

  1. 自律航法・誘導 — 通信遅延のある環境で、探査機が自律的に目標地点へ降下する
  2. 高精度姿勢制御 — 着地の瞬間に機体を正確な姿勢に保つ
  3. サンプリング機構 — 短時間で確実にサンプルを採取するメカニズム
  4. ハザード検知 — 障害物(岩石、急斜面)をリアルタイムで検知・回避する

地球から小天体までの通信遅延は、はやぶさ2の場合で片道約16分にも達しました。つまり、タッチダウンの最終段階では地上からのリアルタイム操縦は不可能であり、探査機が自ら判断して降下する「自律ロボット」でなければなりません。

ここまでで、サンプルリターンの科学的意義とロボティクス上の挑戦を概観しました。では、この困難なミッションに世界で初めて挑んだ「はやぶさ」初号機は、何を達成し、何を教訓として残したのでしょうか。

はやぶさ初号機の挑戦と教訓

ミッション概要

はやぶさ(MUSES-C)は、2003年5月に打ち上げられ、小惑星イトカワ(25143 Itokawa)を目指したJAXAの探査機です。世界で初めて小惑星表面からのサンプルリターンを試みるという野心的なミッションでした。

イトカワは長径約 $535 \, \text{m}$、短径約 $209 \, \text{m}$ のラッコのような形状をした S 型小惑星です。表面重力は地球の約10万分の1($\sim 10^{-5} \, g$)と極めて小さく、通常の着陸とは根本的に異なるアプローチが必要でした。

タッチダウンの技術的挑戦

はやぶさのサンプリング方式は「タッチ・アンド・ゴー」と呼ばれます。表面に長時間留まるのではなく、ほんの数秒だけ接触してサンプルを採取し、すぐに離脱するという戦略です。

この方式が選ばれた理由は明快です。微小重力天体では、着陸して静止すること自体が極めて困難だからです。表面重力が小さいため脱出速度も非常に小さく(数 cm/s オーダー)、わずかな衝撃で探査機が跳ね飛ばされてしまいます。さらに、不整形な天体では重力場が一様でなく、安定した着陸姿勢を維持するのが難しいのです。

初号機の教訓

はやぶさ初号機は多くのトラブルに見舞われました。

航法面の教訓: 初回の降下試行では、ターゲットマーカーの投下後に機体のレーザー高度計(LIDAR)が想定通りに動作せず、降下を中断しました。2回目の試行では実際に着地しましたが、プロジェクタイル(弾丸)の射出が正常に行われなかった可能性が高いことが後に判明しました。

通信遅延の問題: イトカワまでの通信は片道約16分でした。この遅延のため、着地シーケンスの最終フェーズでは地上からの介入が間に合わず、自律制御の重要性が浮き彫りになりました。

機体ダメージ: 着地時の想定外の接触によりスラスタのバルブからキセノンガスが漏洩し、姿勢制御に深刻な問題が発生しました。帰還までの道のりは、イオンエンジンの故障も重なり、まさに満身創痍の旅路でした。

それでも2010年6月、はやぶさはカプセルを地球に届けて大気圏に散りました。回収されたカプセルからは約1,500個のイトカワ起源の微粒子が確認され、世界初の小惑星サンプルリターンが達成されたのです。

これらの教訓――特に自律航法の信頼性向上、サンプリング確実性の担保、冗長系の充実――は、後継機はやぶさ2の設計に直接反映されることになります。

はやぶさ2のミッション概要

ターゲット天体リュウグウ

はやぶさ2が目指したのは、C 型小惑星リュウグウ(162173 Ryugu)です。C 型小惑星は炭素質コンドライトに相当する組成を持つと考えられ、水や有機物を含む可能性が高い天体です。太陽系形成初期の物質を保存している「タイムカプセル」とも言われます。

リュウグウの基本パラメータを整理しましょう。

パラメータ
直径 約 $900 \, \text{m}$
形状 そろばん玉型(赤道リッジあり)
自転周期 約 $7.63 \, \text{h}$
表面重力 $\sim 1.2 \times 10^{-4} \, \text{m/s}^2$
平均密度 $\sim 1.19 \, \text{g/cm}^3$
スペクトル型 Cb型(C群に属する暗い小惑星)

密度が $1.19 \, \text{g/cm}^3$ と水より少し重い程度であることから、内部に大きな空隙(ポロシティ $\sim 50\%$)があると推定されます。これは「ラブルパイル」――小さな岩石の破片が重力でゆるく集まった構造――であることを示唆しています。

ミッションタイムライン

はやぶさ2のミッションは以下のように進行しました。

  • 2014年12月: H-IIAロケットで打ち上げ
  • 2018年6月: リュウグウに到着、ホームポジション(HP、高度約20 km)に滞在
  • 2018年9月: MINERVA-II1ローバー投下
  • 2018年10月: MASCOTランダー投下
  • 2019年2月: 第1回タッチダウン(TD1)
  • 2019年4月: SCI(衝突装置)による人工クレーター生成
  • 2019年7月: 第2回タッチダウン(TD2)— 人工クレーター近傍
  • 2019年11月: リュウグウ出発
  • 2020年12月: カプセル地球帰還(オーストラリア・ウーメラ砂漠)

特筆すべきは、第2回タッチダウンで人工クレーター近傍のサンプルを採取した点です。これにより、宇宙風化の影響を受けていない「新鮮な」地下物質を入手することに成功しました。

では、この精密なタッチダウンはどのような自律制御で実現されたのでしょうか。ここからが本記事の核心です。

タッチダウンシーケンスの自律制御

タッチダウンの全体像

はやぶさ2のタッチダウンは、「降下→接近→着地→離脱」の一連のシーケンスを自律的に実行する高度なロボティクス技術です。ホームポジション(高度約 $20 \, \text{km}$)から表面までの降下を、段階的に行います。

降下フェーズは大きく以下の4段階に分けられます。

  1. フェーズ1(高度 20 km → 5 km): ゆるやかな降下。地上からのコマンドで制御
  2. フェーズ2(高度 5 km → 500 m): LIDARによる高度計測を開始。降下速度を精密制御
  3. フェーズ3(高度 500 m → 45 m): 光学航法カメラ(ONC)で地表のランドマークを追尾
  4. フェーズ4(高度 45 m → 0 m): 完全自律制御。ターゲットマーカーを追尾して最終降下

自律制御の必要性

リュウグウまでの通信遅延は片道で約 $16$ 分です。往復で $32$ 分かかるということは、地上から「降下を止めろ」と指令を出しても、探査機がその指令を受け取るのは $16$ 分後です。

タッチダウンの最終段階(フェーズ4)における降下速度は約 $10 \, \text{cm/s}$ で、高度 $45 \, \text{m}$ からの降下には約 $7.5$ 分かかります。この時間スケールでは、地上局との往復通信が間に合いません。したがって、フェーズ4は完全に自律制御で実施されます。

GCP-NAV(Gate Check Point Navigation)

はやぶさ2の降下では、GCP-NAV(Gate Check Point Navigation)と呼ばれる方式が採用されました。これは、降下経路上にいくつかの「ゲート」を設定し、各ゲートで位置・速度・姿勢が許容範囲内かを自動判定する方式です。

ゲートを通過するたびに、以下のチェックが行われます。

  • 探査機の位置が計画軌道からの許容偏差 $\Delta r$ 以内か
  • 降下速度が許容範囲 $[v_{\min}, v_{\max}]$ 以内か
  • 機体姿勢が制約角度内か

いずれかの条件を満たさない場合、自動的に降下を中断して上昇に転じます(アボートシーケンス)。この「進むか退くかを自動判断する」仕組みにより、安全性と確実性を両立させているのです。

最終降下の誘導則

最終降下フェーズでは、探査機はターゲットマーカー(TM)を光学カメラで追尾しながら、垂直降下を行います。誘導則は以下のように定式化できます。

探査機の位置を $\bm{r} = (x, y, z)^T$($z$ は高度方向)、目標着地点を $\bm{r}_{\text{target}}$ とします。誘導則は比例航法(Proportional Navigation)の変形で、横方向の位置偏差を抑えながら一定速度で降下する形になります。

横方向($x, y$)の指令加速度は次のように与えられます。

$$ a_x = -K_p (x – x_{\text{target}}) – K_d \dot{x} $$

$$ a_y = -K_p (y – y_{\text{target}}) – K_d \dot{y} $$

ここで、$K_p$ は位置フィードバックゲイン、$K_d$ は速度フィードバックゲイン(ダンピング項)です。高度方向($z$)は目標降下速度 $v_z^*$ に追従するよう制御されます。

$$ a_z = -K_{pz} (v_z – v_z^*) + g_z $$

$g_z$ はリュウグウの表面重力加速度で、$\sim 1.2 \times 10^{-4} \, \text{m/s}^2$ です。地球の重力加速度($9.8 \, \text{m/s}^2$)と比べると約10万分の1であり、ごく微弱なスラスタ噴射で十分に制御できることがわかります。

この誘導則は本質的にはPD制御(比例-微分制御)です。微小重力環境では重力補償項 $g_z$ が極めて小さいため、スラスタの最小推力(分解能)が支配的な設計パラメータになります。はやぶさ2のスラスタ最小推力は $\sim 0.2 \, \text{N}$ で、機体質量約 $600 \, \text{kg}$ を考えると最小加速度は $\sim 3 \times 10^{-4} \, \text{m/s}^2}$ となり、表面重力の数倍の制御力が確保されています。

制御系の設計では、スラスタのパルス幅変調(PWM)やデッドバンド制御が重要です。連続的にスラスタを噴射するのではなく、微小なパルスを離散的に打つことで、燃料消費を抑えつつ精密な軌道制御を実現します。

ここまでで、タッチダウンの誘導制御の枠組みを理解しました。では、このPD制御の「目標位置」をどうやって決めるのか――つまり、探査機は自分がどこにいるかをどうやって知るのか、航法の話に移りましょう。

ターゲットマーカーとLIDAR・光学航法

航法の三本柱

はやぶさ2の降下航法は、3つのセンサーを統合的に使い分けます。

センサー 計測量 有効高度 精度
LIDAR 斜距離(高度) 25 km〜30 m $\pm 5 \, \text{m}$(30 m時)
ONC-W1(広角カメラ) ターゲットマーカー方位 50 m〜0 m $\pm 0.1 \, \text{m}$(低高度時)
LRF(レーザーレンジファインダー) 近距離高度 30 m〜0 m $\pm 0.02 \, \text{m}$

高高度ではLIDARで高度を測り、低高度では光学カメラとLRFに切り替えるという、高度に応じたセンサーフュージョンがはやぶさ2の航法の特徴です。

ターゲットマーカーの役割

ターゲットマーカー(TM)は、はやぶさ2の航法において決定的に重要なデバイスです。これは直径約 $10 \, \text{cm}$ の球体で、表面に再帰反射シート(自転車のリフレクターと同じ原理)が貼られています。

なぜターゲットマーカーが必要なのでしょうか。リュウグウの表面は非常に暗い(アルベド $\sim 0.045$)うえに、岩石がびっしりと散らばっています。探査機のフラッシュライトで照らしたとき、暗い岩石の中で再帰反射マーカーだけが明るく光り返すため、画像処理で確実に認識できるのです。

TMの反射率と背景岩石の反射率の比(コントラスト比)は設計上 $100:1$ 以上が確保されています。これにより、画像上でTMを背景から分離するのは比較的容易になります。具体的には、画像の輝度ヒストグラムにおいてTMのピークが背景から十分に分離されるため、単純な閾値処理でも検出可能です。

光学航法の原理

光学航法カメラ(ONC-W1)がTMを検出すると、画像上のTMの位置 $(u, v)$ から、探査機の横方向位置を推定できます。カメラの焦点距離を $f$、高度を $h$ とすると、画像座標 $(u, v)$ と実空間の横方向変位 $(\Delta x, \Delta y)$ の関係は次式で近似されます。

$$ \Delta x \approx \frac{h}{f} (u – u_0), \quad \Delta y \approx \frac{h}{f} (v – v_0) $$

ここで $(u_0, v_0)$ は画像中心座標です。この式は、高度 $h$ がカメラとTMの距離に比べて十分大きい(TM が光軸近傍にある)場合に成り立つ近似です。

高度 $h$ はLRFで独立に計測されるため、画像上のTM位置から横方向変位を精度よく求めることができます。この航法出力がPD制御の位置フィードバックに使われるわけです。

LIDAR航法

LIDARは Light Detection And Ranging の略で、レーザーパルスを地表に照射し、反射光が戻るまでの往復時間 $\Delta t$ から距離 $R$ を計測します。

$$ R = \frac{c \cdot \Delta t}{2} $$

ここで $c$ は光速($\approx 3 \times 10^8 \, \text{m/s}$)です。はやぶさ2のLIDARは波長 $1064 \, \text{nm}$ のNd:YAGレーザーを使用し、測定範囲 $30 \, \text{m}$ 〜 $25 \, \text{km}$ をカバーします。

ただし、LIDARは「真下への距離」ではなく「レーザー照射方向への斜距離」を測定します。機体の姿勢角を $\theta$ とすると、高度 $h$ は次のように補正されます。

$$ h = R \cos\theta $$

姿勢角 $\theta$ はスターセンサー(恒星の位置から姿勢を決定するセンサー)から得られます。このように、高度計測には姿勢情報が不可欠であり、航法と姿勢決定が密接に結びついていることがわかります。

ここまでで、はやぶさ2がどのように自分の位置を知り、目標に向かって降下するかを理解しました。次に、表面に到達した瞬間に何が起こるのか――サンプリング機構の詳細を見ていきましょう。

サンプリング機構 — プロジェクタイル射出方式

タッチ・アンド・ゴーの概念

はやぶさ2のサンプリングは「タッチ・アンド・ゴー」方式です。探査機が表面に $1$ 秒程度だけ接触し、その瞬間にサンプルを採取して即座に離脱します。長時間着陸しない理由は前述のとおり、微小重力環境では安定した着陸の維持が困難だからです。

サンプリング機構の中心は、「サンプラーホーン」と呼ばれる長さ約 $1 \, \text{m}$ の円筒形の管です。ホーンの先端が表面に接触すると、内部に装填されたプロジェクタイル(タンタル製の弾丸、質量約 $5 \, \text{g}$)が約 $300 \, \text{m/s}$ で射出されます。

プロジェクタイル射出の力学

プロジェクタイルが表面に衝突すると、運動エネルギーが岩石の破砕に使われます。衝突時の運動エネルギー $E_k$ は次のとおりです。

$$ E_k = \frac{1}{2} m v^2 = \frac{1}{2} \times 5 \times 10^{-3} \times 300^2 = 225 \, \text{J} $$

この $225 \, \text{J}$ のエネルギーで表面の岩石が破砕・飛散し、破片がサンプラーホーン内に飛び込みます。ホーンの内部にはカッチャー(キャッチャー機構)があり、飛散した破片を捕集してサンプルコンテナに格納します。

なぜプロジェクタイル方式が選ばれたのでしょうか。ドリルやスクープで表面を削る方式と比較してみましょう。

方式 メリット デメリット
プロジェクタイル射出 接触時間が短い、反力が小さい 採取量の予測が困難
ドリル 深部サンプルが得られる 接触時間が長い、反力が大きい
スクープ 構造が単純 表面のみ、反力が大きい

微小重力環境では、表面を押す反力が探査機を跳ね飛ばす原因になります。プロジェクタイル方式は反力が極めて小さい(弾丸の反動のみ)ため、微小重力天体に最適な選択だったのです。

接触検知と自動シーケンス

サンプラーホーンの先端には接触センサーが組み込まれています。ホーンが表面に接触すると、ホーンの圧縮変形によってセンサーが作動し、以下のシーケンスが自動的にトリガーされます。

  1. 接触検知($t = 0$): ホーン先端が表面に接触
  2. プロジェクタイル射出($t \approx 0.1 \, \text{s}$): 火薬の起爆でタンタル弾を射出
  3. 破片飛散・捕集($t \approx 0.1 \sim 0.5 \, \text{s}$): 飛散した破片がホーン内を上昇
  4. 離脱開始($t \approx 1 \, \text{s}$): スラスタ噴射で上昇に転じる

この全シーケンスがわずか1秒程度で完了します。地上からの指令を待つ余裕はなく、完全に自動化されたロボティクスの成果です。

第1回タッチダウン(TD1、2019年2月22日)では、このシーケンスが完璧に実行され、リュウグウ表面から約 $5.4 \, \text{g}$ のサンプルが採取されました。当初の目標量 $0.1 \, \text{g}$ を大幅に上回る成果です。

サンプラーの設計には、初号機の教訓が色濃く反映されています。初号機ではプロジェクタイルが発射されなかった可能性があることから、はやぶさ2では接触検知からプロジェクタイル射出までの自動シーケンスの信頼性が徹底的に検証されました。

表面のサンプルが採取できたとして、太陽系形成初期の「新鮮な」物質にアクセスするには、宇宙風化の影響を受けていない地下物質が必要です。そこで登場するのが、SCI(Small Carry-on Impactor)による人工クレーター生成です。

SCI — 人工クレーター生成

SCIの目的と仕組み

SCI(Small Carry-on Impactor)は、はやぶさ2が搭載した衝突装置です。質量約 $2 \, \text{kg}$ の銅製のライナー(成形炸薬弾頭の内張り)を約 $2 \, \text{km/s}$ で小惑星表面に衝突させ、人工クレーターを形成します。

なぜ人工クレーターを作るのでしょうか。小惑星の表面は、太陽風や宇宙線によって長年にわたり「宇宙風化」を受けています。表面の数ミリメートル〜数センチメートルは化学組成が変質しており、始原天体としての情報が損なわれている可能性があります。人工クレーターで地下物質を露出させれば、宇宙風化の影響を受けていない新鮮なサンプルにアクセスできます。

衝突エネルギーの見積もり

銅ライナーの運動エネルギーは次のように計算されます。

$$ E_{\text{SCI}} = \frac{1}{2} m_{\text{Cu}} v_{\text{SCI}}^2 = \frac{1}{2} \times 2 \times (2 \times 10^3)^2 = 4 \times 10^6 \, \text{J} = 4 \, \text{MJ} $$

これはTNT火薬に換算すると約 $1 \, \text{kg}$ に相当します。この巨大なエネルギーが直径約 $10 \, \text{m}$、深さ約 $2\sim3 \, \text{m}$ の人工クレーターを形成しました。

クレーター形成の物理はスケーリング則で記述されます。重力レジーム(重力が支配的な大きなクレーター)では、クレーター直径 $D$ は次式で近似できます。

$$ D \propto \left(\frac{E}{g \rho}\right)^{1/4} $$

ここで $E$ は衝突エネルギー、$g$ は表面重力加速度、$\rho$ は標的の密度です。リュウグウの表面重力が極めて小さい($g \sim 1.2 \times 10^{-4} \, \text{m/s}^2$)ことが、比較的小さなエネルギーでも大きなクレーターが形成される理由です。

SCI運用時の探査機退避

SCI作動時には、銅ライナーだけでなく爆薬の破片も飛散します。探査機がこれに被弾すると致命的なダメージを受けるため、SCI射出後に探査機は小惑星の裏側に退避します。

退避シーケンスは以下のとおりです。

  1. SCIを分離(高度約 $500 \, \text{m}$)
  2. 探査機がスラスタ噴射で横方向に退避
  3. DCAM3(分離カメラ)をSCIとは別に分離
  4. SCIのタイマー作動(約40分後に起爆)
  5. DCAM3が衝突の瞬間を撮影

DCAM3による撮影は大きな成果を挙げ、衝突の瞬間のエジェクタ(飛散物)の放出を鮮明に捉えました。このデータは、小惑星の表層構造(強度、ポロシティ)の推定に貴重な情報を提供しています。

2019年7月の第2回タッチダウン(TD2)では、この人工クレーター近傍に着地し、地下物質のサンプルを採取することに世界で初めて成功しました。これは宇宙探査史上初めての「小天体の地下物質サンプリング」です。

ここまで、探査機本体による探査を見てきましたが、はやぶさ2にはもう一つの「ロボット」が搭載されていました。表面に投下された小型ローバーです。

MASCOT/MINERVAローバーの技術

MINERVA-II1

MINERVA-II1は、JAXAが開発した超小型表面探査ロボットで、Rover-1AとRover-1Bの2機が搭載されていました。質量は各約 $1.1 \, \text{kg}$、直径約 $18 \, \text{cm}$、高さ約 $7 \, \text{cm}$ の円筒形です。

微小重力環境で移動するために、MINERVA-IIは独特の移動方式を採用しています。車輪ではなく、内部のトルカー(回転質量)のトルクで機体を「ホッピング」させるのです。

この仕組みは直感的に理解できます。微小重力下では、内部の回転体を急停止させると、その反動トルクが機体全体に伝わります。地球上では重力が強すぎて機体を浮かせるほどのトルクは得られませんが、リュウグウの表面重力はわずか $1.2 \times 10^{-4} \, \text{m/s}^2$ なので、小さなトルクでも機体を跳ね上げることができるのです。

ホッピングの到達距離は、ジャンプの初速 $v_0$ と表面重力 $g$ から概算できます。水平距離 $R$ は次式で与えられます。

$$ R = \frac{v_0^2 \sin 2\alpha}{g} $$

ここで $\alpha$ はジャンプの射出角度です。$\alpha = 45°$ のとき最大水平距離 $R_{\max} = v_0^2 / g$ が得られます。$v_0 = 0.1 \, \text{m/s}$、$g = 1.2 \times 10^{-4} \, \text{m/s}^2$ とすると、

$$ R_{\max} = \frac{(0.1)^2}{1.2 \times 10^{-4}} \approx 83 \, \text{m} $$

わずか $0.1 \, \text{m/s}$ の初速で $83 \, \text{m}$ も移動できるのです。ただし、滞空時間は

$$ T = \frac{2 v_0 \sin\alpha}{g} = \frac{2 \times 0.1 \times \sin 45°}{1.2 \times 10^{-4}} \approx 1,178 \, \text{s} \approx 20 \, \text{min} $$

と非常に長くなります。ホッピング1回で約20分間も空中にいることになり、この間に自転するリュウグウの表面がずれていくため、着地点の予測には天体の自転も考慮する必要があります。

2018年9月21日、MINERVA-II1は世界で初めて小惑星表面でのホッピング移動に成功し、リュウグウ表面の近接画像を取得しました。

MASCOT

MASCOT(Mobile Asteroid Surface Scout)は、DLR(ドイツ航空宇宙センター)とCNES(フランス国立宇宙研究センター)が開発した着陸機で、質量約 $10 \, \text{kg}$、サイズは $30 \times 30 \times 20 \, \text{cm}$ です。

MASCOTには4つの科学観測機器が搭載されていました。

  1. MicrOmega: 近赤外ハイパースペクトル顕微鏡(鉱物組成分析)
  2. MARA: 放射計(表面の熱物性測定)
  3. MAG: 磁力計(局所磁場測定)
  4. CAM: 広角カメラ(表面画像撮影)

MASCOTの移動は、MINERVA-IIと同様にホッピング方式ですが、内部の偏心質量を回転させることで跳躍を行う方式が採用されています。MASCOTは約16時間の運用で2箇所の観測を行い、リュウグウ表面の詳細な熱物性と鉱物分布のデータを取得しました。

これらのローバー/ランダーの技術は、将来の小天体探査だけでなく、月面や火星の洞窟探査など、従来の車輪型ローバーでは到達困難な場所の探査にも応用可能です。

さて、小天体のサンプルリターンに取り組んでいるのはJAXAだけではありません。NASAのOSIRIS-RExも同時期に小惑星ベンヌからのサンプルリターンに成功しています。両ミッションの比較から、設計思想の違いを見てみましょう。

OSIRIS-RExとの比較

ミッション概要の比較

OSIRIS-REx(Origins, Spectral Interpretation, Resource Identification, Security, Regolith Explorer)は、NASAの小惑星サンプルリターンミッションで、B型小惑星ベンヌ(101955 Bennu)を目標としました。

項目 はやぶさ2 OSIRIS-REx
運用機関 JAXA NASA
目標天体 リュウグウ(Cb型) ベンヌ(B型)
天体直径 $\sim 900 \, \text{m}$ $\sim 500 \, \text{m}$
探査機質量 $\sim 600 \, \text{kg}$ $\sim 2,110 \, \text{kg}$
サンプリング方式 プロジェクタイル射出 窒素ガス噴射(TAG)
サンプル目標量 $0.1 \, \text{g}$ 以上 $60 \, \text{g}$ 以上
実際の採取量 $\sim 5.4 \, \text{g}$ $\sim 121.6 \, \text{g}$
タッチダウン回数 2回 1回
サンプル帰還 2020年12月 2023年9月

サンプリング方式の違い

最も大きな技術的差異はサンプリング方式です。

はやぶさ2のプロジェクタイル方式: タンタル弾丸を射出して岩石を破砕し、飛散した破片を捕集します。機械的な接触はサンプラーホーンの先端のみで、接触時間は約1秒と極めて短いのが特徴です。

OSIRIS-RExのTAG方式: TAGSAM(Touch-And-Go Sample Acquisition Mechanism)と呼ばれる円形のヘッド(直径約 $30 \, \text{cm}$)を表面に押し付け、高圧窒素ガス(約 $2.4 \times 10^5 \, \text{Pa}$)を噴射してレゴリスを巻き上げ、捕集します。接触時間は約5〜10秒です。

TAG方式はプロジェクタイル方式よりも多くのサンプルを採取できる利点があります。実際、OSIRIS-RExは $121.6 \, \text{g}$ という大量のサンプルを持ち帰りました。一方、窒素ガスのボトルを搭載する必要があり、質量ペナルティが生じます。

航法戦略の違い

はやぶさ2はターゲットマーカーを投下して追尾する方式を採用しましたが、OSIRIS-RExはNatural Feature Tracking(NFT)と呼ばれる手法を用いました。

NFTは、事前に取得した高解像度画像マップと、リアルタイムの航法カメラ画像を照合することで、探査機の位置を推定する技術です。人工のマーカーを投下する必要がなく、天体表面の自然な特徴(岩石の形状、影のパターン等)をランドマークとして使用します。

両方式の比較は以下のとおりです。

方式 メリット デメリット
ターゲットマーカー 高コントラストで検出確実 マーカー投下が必要、着地点選択が制約される
NFT マーカー不要、柔軟な着地点選択 事前の詳細マッピングが必要、照明条件に依存

設計思想の違い

両ミッションの設計思想には、興味深い対照が見られます。

はやぶさ2は「小型・軽量で複数回チャレンジ」の思想です。探査機質量を $600 \, \text{kg}$ に抑え、その分をミッションの多様性(2回のタッチダウン、SCI運用、ローバー投下)に振り向けました。1回あたりのサンプル量は少ないものの、複数回の試行で確実性を高める戦略です。

OSIRIS-RExは「大型・高性能で1回で確実に」の思想です。探査機質量 $2,110 \, \text{kg}$ と大型化することで、TAGSAMの大きな捕集ヘッドと十分な窒素ガスを搭載し、1回のタッチダウンで大量のサンプルを採取する戦略です。

どちらの戦略が「正しい」ということではなく、打ち上げ能力、コスト制約、科学目標の違いが設計思想に反映されているのです。

両ミッションの比較を踏まえたところで、いよいよPythonでタッチダウン降下軌道のシミュレーションを行いましょう。理論で学んだ誘導則を実装し、数値的に挙動を確認します。

Pythonでタッチダウン降下軌道のシミュレーション

シミュレーションの目的

ここでは、はやぶさ2のタッチダウン最終フェーズを簡略化した2次元シミュレーションを行います。具体的には、以下を確認します。

  • PD制御による横方向位置の収束
  • 一定速度降下の実現
  • 初期位置偏差がある場合の軌道修正挙動

降下ダイナミクスのモデル

探査機の2次元運動方程式は以下のとおりです。高度方向を $z$、横方向を $x$ とします。

$$ \ddot{x} = a_x = -K_p (x – x_{\text{target}}) – K_d \dot{x} $$

$$ \ddot{z} = a_z – g = -K_{pz}(\dot{z} – v_z^*) – g + g = -K_{pz}(\dot{z} – v_z^*) $$

ここでは表面重力 $g$ が制御入力で補償されているとして、$z$ 方向の運動方程式を簡略化しています。これをRunge-Kutta法で数値積分します。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

# === パラメータ設定 ===
g_ryugu = 1.2e-4        # リュウグウの表面重力 [m/s^2]
z0 = 45.0               # 初期高度 [m](フェーズ4開始)
x0 = 3.0                # 初期横方向偏差 [m](意図的にずらす)
vz_target = -0.1        # 目標降下速度 [m/s](下向き負)
x_target = 0.0          # 目標横方向位置(TM直上)

# PD制御ゲイン
Kp_x = 0.01             # 横方向 位置ゲイン [1/s^2]
Kd_x = 0.08             # 横方向 速度ゲイン [1/s]
Kp_z = 0.05             # 高度方向 速度ゲイン [1/s]

# === 状態ベクトル: [x, vx, z, vz] ===
def dynamics(state, t):
    x, vx, z, vz = state
    ax = -Kp_x * (x - x_target) - Kd_x * vx
    az = -Kp_z * (vz - vz_target)
    return np.array([vx, ax, vz, az])

# === Runge-Kutta 4次 ===
def rk4_step(state, t, dt, func):
    k1 = func(state, t)
    k2 = func(state + 0.5 * dt * k1, t + 0.5 * dt)
    k3 = func(state + 0.5 * dt * k2, t + 0.5 * dt)
    k4 = func(state + dt * k3, t + dt)
    return state + (dt / 6.0) * (k1 + 2*k2 + 2*k3 + k4)

# === シミュレーション実行 ===
dt = 0.5                 # 時間刻み [s]
t_max = 600.0            # 最大シミュレーション時間 [s]
state = np.array([x0, 0.0, z0, 0.0])  # 初期状態

times = [0.0]
states = [state.copy()]
accels = []

t = 0.0
while t < t_max and state[2] > 0.0:
    # 加速度を記録
    x, vx, z, vz = state
    ax = -Kp_x * (x - x_target) - Kd_x * vx
    az = -Kp_z * (vz - vz_target)
    accels.append([ax, az])

    state = rk4_step(state, t, dt, dynamics)
    t += dt
    times.append(t)
    states.append(state.copy())

times = np.array(times)
states = np.array(states)
accels = np.array(accels)

# === 可視化 ===
fig = plt.figure(figsize=(14, 10))
gs = GridSpec(2, 2, figure=fig, hspace=0.35, wspace=0.3)

# (1) 降下軌跡 (x-z平面)
ax1 = fig.add_subplot(gs[0, 0])
ax1.plot(states[:, 0], states[:, 2], 'c-', linewidth=2)
ax1.plot(states[0, 0], states[0, 2], 'go', markersize=10, label='Start')
ax1.plot(states[-1, 0], states[-1, 2], 'r*', markersize=15, label='Touchdown')
ax1.axvline(x=x_target, color='orange', linestyle='--', alpha=0.7, label='Target (TM)')
ax1.set_xlabel('Lateral position x [m]', fontsize=11)
ax1.set_ylabel('Altitude z [m]', fontsize=11)
ax1.set_title('Touchdown Descent Trajectory', fontsize=13)
ax1.legend(fontsize=9)
ax1.grid(True, alpha=0.3)
ax1.invert_yaxis()
ax1.invert_yaxis()  # z=0が下

# (2) 高度の時間変化
ax2 = fig.add_subplot(gs[0, 1])
ax2.plot(times, states[:, 2], 'c-', linewidth=2)
ax2.set_xlabel('Time [s]', fontsize=11)
ax2.set_ylabel('Altitude z [m]', fontsize=11)
ax2.set_title('Altitude vs Time', fontsize=13)
ax2.grid(True, alpha=0.3)

# (3) 横方向位置の時間変化
ax3 = fig.add_subplot(gs[1, 0])
ax3.plot(times, states[:, 0], 'm-', linewidth=2)
ax3.axhline(y=x_target, color='orange', linestyle='--', alpha=0.7, label='Target')
ax3.set_xlabel('Time [s]', fontsize=11)
ax3.set_ylabel('Lateral position x [m]', fontsize=11)
ax3.set_title('Lateral Position vs Time', fontsize=13)
ax3.legend(fontsize=9)
ax3.grid(True, alpha=0.3)

# (4) 降下速度の時間変化
ax4 = fig.add_subplot(gs[1, 1])
ax4.plot(times, states[:, 3], 'g-', linewidth=2, label='$v_z$ (actual)')
ax4.axhline(y=vz_target, color='orange', linestyle='--', alpha=0.7, label=f'Target ({vz_target} m/s)')
ax4.set_xlabel('Time [s]', fontsize=11)
ax4.set_ylabel('Descent velocity $v_z$ [m/s]', fontsize=11)
ax4.set_title('Descent Velocity vs Time', fontsize=13)
ax4.legend(fontsize=9)
ax4.grid(True, alpha=0.3)

plt.suptitle("Hayabusa2-like Touchdown Descent Simulation", fontsize=15, y=1.01)
plt.tight_layout()
plt.savefig('hayabusa2_touchdown_sim.png', dpi=150, bbox_inches='tight')
plt.show()

print(f"Touchdown time: {times[-1]:.1f} s")
print(f"Final lateral offset: {states[-1, 0]:.4f} m")
print(f"Final descent velocity: {states[-1, 3]:.4f} m/s")

上のシミュレーション結果から、以下のことが読み取れます。

  1. 降下軌跡(左上): 初期横方向偏差 $3 \, \text{m}$ から出発した探査機が、PD制御によって目標直上($x = 0$)に収束しながら降下しています。軌跡は滑らかな曲線を描き、タッチダウン時にはほぼ真下の目標位置に到達しています。
  2. 高度の時間変化(右上): 初期の加速フェーズを経て、ほぼ一定速度($0.1 \, \text{m/s}$)での降下が実現されています。高度 $45 \, \text{m}$ からの降下に約 $450$ 秒(約7.5分)かかっており、これは実際のはやぶさ2の最終降下フェーズの所要時間とおおむね一致します。
  3. 横方向位置(左下): 初期偏差 $3 \, \text{m}$ が時間とともに指数的に減衰し、タッチダウン時にはセンチメートルオーダーまで収束しています。PD制御のダンピング効果により、振動なく安定に収束していることがわかります。
  4. 降下速度(右下): 目標速度 $-0.1 \, \text{m/s}$ に素早く収束し、以後は一定値を維持しています。これにより、表面への接触速度が設計値どおりに制御されていることが確認できます。

次に、異なる初期条件でシミュレーションを行い、ロバスト性を確認しましょう。

import numpy as np
import matplotlib.pyplot as plt

# === 複数初期条件でのシミュレーション ===
initial_conditions = [
    {"x0": 0.0, "vx0": 0.0, "label": "Nominal (no offset)"},
    {"x0": 3.0, "vx0": 0.0, "label": "x₀ = 3 m"},
    {"x0": 5.0, "vx0": 0.0, "label": "x₀ = 5 m"},
    {"x0": 3.0, "vx0": 0.02, "label": "x₀ = 3 m, vx₀ = 0.02 m/s"},
    {"x0": -4.0, "vx0": -0.01, "label": "x₀ = -4 m, vx₀ = -0.01 m/s"},
]

# パラメータ(前のコードブロックと同じ)
z0 = 45.0
vz_target = -0.1
x_target = 0.0
Kp_x = 0.01
Kd_x = 0.08
Kp_z = 0.05
dt = 0.5
t_max = 600.0

def dynamics(state, t):
    x, vx, z, vz = state
    ax = -Kp_x * (x - x_target) - Kd_x * vx
    az = -Kp_z * (vz - vz_target)
    return np.array([vx, ax, vz, az])

def rk4_step(state, t, dt, func):
    k1 = func(state, t)
    k2 = func(state + 0.5 * dt * k1, t + 0.5 * dt)
    k3 = func(state + 0.5 * dt * k2, t + 0.5 * dt)
    k4 = func(state + dt * k3, t + dt)
    return state + (dt / 6.0) * (k1 + 2*k2 + 2*k3 + k4)

fig, axes = plt.subplots(1, 2, figsize=(14, 6))
colors = ['#00e5ff', '#ff6090', '#ffd740', '#69f0ae', '#b388ff']

for i, ic in enumerate(initial_conditions):
    state = np.array([ic["x0"], ic["vx0"], z0, 0.0])
    traj_x, traj_z = [state[0]], [state[2]]
    t = 0.0
    while t < t_max and state[2] > 0.0:
        state = rk4_step(state, t, dt, dynamics)
        t += dt
        traj_x.append(state[0])
        traj_z.append(state[2])

    # 降下軌跡
    axes[0].plot(traj_x, traj_z, color=colors[i], linewidth=2, label=ic["label"])
    axes[0].plot(traj_x[-1], traj_z[-1], '*', color=colors[i], markersize=12)

    # 横方向偏差の時間変化
    t_arr = np.arange(0, len(traj_x)) * dt
    axes[1].plot(t_arr, traj_x, color=colors[i], linewidth=2, label=ic["label"])

# 軌跡プロット装飾
axes[0].axvline(x=0, color='orange', linestyle='--', alpha=0.5)
axes[0].set_xlabel('Lateral position x [m]', fontsize=12)
axes[0].set_ylabel('Altitude z [m]', fontsize=12)
axes[0].set_title('Descent Trajectories (Various ICs)', fontsize=13)
axes[0].legend(fontsize=8, loc='upper right')
axes[0].grid(True, alpha=0.3)

# 横方向プロット装飾
axes[1].axhline(y=0, color='orange', linestyle='--', alpha=0.5)
axes[1].set_xlabel('Time [s]', fontsize=12)
axes[1].set_ylabel('Lateral offset x [m]', fontsize=12)
axes[1].set_title('Lateral Convergence', fontsize=13)
axes[1].legend(fontsize=8)
axes[1].grid(True, alpha=0.3)

plt.suptitle("Robustness of PD Guidance under Different Initial Conditions",
             fontsize=14, y=1.02)
plt.tight_layout()
plt.savefig('hayabusa2_robustness.png', dpi=150, bbox_inches='tight')
plt.show()

複数の初期条件に対するシミュレーション結果から、以下のことが確認できます。

  1. 全ケースでタッチダウンに成功: 初期横方向偏差が $-4 \, \text{m}$ から $+5 \, \text{m}$ まで、また初期横方向速度がある場合でも、いずれもターゲット近傍に収束してタッチダウンに至っています。PD制御が幅広い初期条件に対してロバストであることがわかります。
  2. 偏差が大きいほど初期の修正軌道が急峻: 初期偏差 $5 \, \text{m}$ のケースでは、最初の100秒ほどでの横方向加速度が大きく、スラスタの燃料消費量がより多くなることが予想されます。実際のミッションでは、降下開始前のホバリングフェーズで位置精度を高めておくことが燃料効率の観点から重要です。
  3. 収束の時定数: いずれのケースも、タッチダウンの200秒程度前には横方向偏差が $0.5 \, \text{m}$ 以下に収束しています。これはゲイン $K_p$ と $K_d$ の設計が、降下時間内に十分な収束を保証していることを意味します。

実際のはやぶさ2では、このようなPD制御に加え、ゲート判定(GCP-NAV)によるアボート判断、スラスタのPWM制御、姿勢マヌーバとの連携など、さらに多くの要素が統合されています。本シミュレーションはその本質的な誘導原理を抽出したものです。

まとめ

本記事では、サンプルリターンミッションのロボティクス技術について、はやぶさ2を中心に解説しました。

  • サンプルリターンの意義: 地球の実験室でしかできないナノスケール分析、多様な分析手法、将来技術での再分析が可能になる
  • はやぶさ初号機の教訓: 自律航法の信頼性、サンプリング確実性、冗長系設計の重要性が浮き彫りになった
  • タッチダウンの自律制御: GCP-NAV方式による段階的ゲート判定と、PD制御に基づく誘導則で安全かつ精密な降下を実現
  • 航法の三本柱: LIDAR、光学カメラ(ターゲットマーカー追尾)、LRFの高度依存センサーフュージョン
  • サンプリング機構: プロジェクタイル射出方式が微小重力環境に最適化されている理由
  • SCI: 人工クレーター生成による地下物質へのアクセスは世界初
  • OSIRIS-RExとの比較: 「小型・複数回」対「大型・1回確実」という異なる設計思想の合理性
  • Pythonシミュレーション: PD制御による降下軌道が理論どおりに収束することを数値的に確認

はやぶさ2の技術は、将来のMMX(火星衛星フォボスからのサンプルリターン)やNASAのDragonfly(タイタン探査)など、次世代ミッションの基盤となっています。特に、自律航法・誘導制御の技術は、通信遅延がさらに大きい深宇宙ミッションにおいてますます重要になるでしょう。

次のステップとして、以下の記事も参考にしてください。