火星の地表をゆっくり走るローバーの映像を見て、「空を飛べばもっと広い範囲を探査できるのでは?」と思ったことはないでしょうか。実際、NASAは2021年に火星でヘリコプター「Ingenuity」を飛ばし、地球以外の天体で初めての動力飛行を成功させました。さらに2030年代には、土星の衛星タイタンにマルチコプター型の探査機「Dragonfly」を送り込む計画が進んでいます。
しかし、他の天体で飛ぶことは地球での飛行とはまったく異なる問題を突きつけます。火星の大気は地球のわずか約1%の気圧しかなく、ブレードを地球の何倍もの速度で回転させなければ揚力が生まれません。一方、タイタンは地球より濃い大気を持つものの、重力は地球の1/7、気温はマイナス179度という極寒の世界です。これらの環境でどうすれば飛べるのか — その答えは空気力学と制御工学の基本法則にあります。
空中探査ロボットの設計原理を理解すると、以下のような広い分野のつながりが見えてきます。
- 流体力学: 低レイノルズ数・低密度大気における翼の空力特性
- 制御工学: GPS不在環境での自律航法と姿勢制御
- 惑星科学: 火星やタイタンの大気モデルと地表地形の探査戦略
- ロボティクス: 極限環境での軽量・省電力ロボットの設計思想
本記事の内容
- 地表探査と空中探査の比較 — なぜ「飛ぶ」のか
- 火星の大気環境と飛行の物理的課題
- Ingenuityの設計思想と仕様
- 薄い大気での揚力生成の物理 — レイノルズ数と翼型設計
- Ingenuityの飛行制御アーキテクチャ
- タイタンの環境 — 窒素大気・低重力・極低温
- Dragonflyの構想と科学目標
- 火星とタイタンの飛行条件比較
- Pythonによる揚力方程式を用いた飛行パラメータの比較計算
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
なぜ空中探査か — ローバーの限界と空の可能性
ローバーによる地表探査の制約
惑星探査ローバーは輝かしい成果を挙げてきました。NASAのCuriosityは2012年の着陸以来30 km以上を走破し、Perseveranceは火星の古代の河川デルタを調査しています。しかし、ローバーには本質的な制約があります。
第一に移動速度の遅さです。Curiosityの最高速度は約140 m/hで、1日の移動距離は典型的に100 m程度です。険しい岩場や砂丘が行く手を阻めば、迂回ルートを探すだけで数日を費やすこともあります。
第二に地形障壁です。急傾斜の崖、深い渓谷、砂丘地帯など、車輪では越えられない地形が火星にも数多く存在します。火星のマリネリス峡谷は深さ7 kmに達する巨大な峡谷系ですが、ローバーでこの内部を探査することは事実上不可能です。
第三に探査範囲の狭さです。ローバーは着陸地点周辺の限られた領域しか探査できません。ミッション期間内に数十km圏内が限界であり、地質学的に興味深い地点が遠方に散在している場合、その多くは到達不能です。
空中探査が開く可能性
空中移動はこれらの制約を一挙に解決する潜在力を持っています。ヘリコプターやドローンであれば、崖や渓谷を飛び越え、1回の飛行で数百メートルから数キロメートルを移動できます。高所からの俯瞰的な観測により、広域の地質マッピングやローバーの最適経路の偵察も可能になります。
もちろん、空中探査にも課題はあります。搭載できるペイロードが限られること、飛行に大きなエネルギーを消費すること、着陸/離陸のリスクがあることなどです。そのため、理想的にはローバーと空中探査機の組み合わせが最も効果的な探査戦略となります。実際、Ingenuityは当初Perseveranceローバーの「偵察係」として設計されました。
こうした空中探査の実現可能性は、対象天体の大気環境に大きく依存します。では、最初の空中探査の舞台となった火星の大気は、飛行にとってどのような環境なのでしょうか。
火星の大気環境 — 地球の1%の気圧で飛ぶ挑戦
火星大気の基本パラメータ
火星は薄い大気を持つ惑星です。その主要パラメータを地球と比較すると、飛行にとっていかに過酷な環境かが浮き彫りになります。
| パラメータ | 地球 | 火星 | 比率(火星/地球) |
|---|---|---|---|
| 表面気圧 | 101,325 Pa | 約 600 Pa | 約 0.6% |
| 大気密度(地表) | 1.225 kg/m$^3$ | 約 0.020 kg/m$^3$ | 約 1.6% |
| 大気組成 | N$_2$ 78%, O$_2$ 21% | CO$_2$ 95.3%, N$_2$ 2.7% | — |
| 表面重力加速度 | 9.81 m/s$^2$ | 3.72 m/s$^2$ | 38% |
| 表面温度 | 288 K(平均) | 210 K(平均) | 73% |
| 音速(地表付近) | 約 343 m/s | 約 240 m/s | 70% |
火星の大気密度は地球の約1.6%しかありません。これは、揚力の式 $L = \frac{1}{2} \rho v^2 S C_L$ において密度 $\rho$ が約60分の1であることを意味します。地球と同じ翼面積・迎角で同じ揚力を得ようとすると、速度を $\sqrt{60} \approx 7.7$ 倍にしなければなりません。
火星の低重力という救い
ただし、悲観的な面ばかりではありません。火星の重力は地球の38%なので、飛行機体を浮かせるために必要な揚力も38%で済みます。つまり、低密度のペナルティは低重力によって部分的に相殺されます。
必要な揚力の比を計算すると、密度が1/60で重力が0.38倍なので、同じ翼面積・揚力係数の場合に必要な速度比は
$$ \frac{v_{\text{Mars}}}{v_{\text{Earth}}} = \sqrt{\frac{\rho_{\text{Earth}}}{\rho_{\text{Mars}}} \cdot \frac{g_{\text{Mars}}}{g_{\text{Earth}}}} = \sqrt{\frac{1.225}{0.020} \cdot \frac{3.72}{9.81}} \approx \sqrt{61.25 \times 0.379} \approx \sqrt{23.2} \approx 4.8 $$
地球での場合に比べ約4.8倍の速度(回転翼の場合は翼端速度)が必要です。これは大変ですが、「60倍」と聞くよりはずっと現実的に見えます。
CO$_2$大気の音速と圧縮性効果
火星の大気はほぼ純粋なCO$_2$であり、比熱比 $\gamma = 1.30$(地球の空気は $\gamma = 1.40$)、分子量 $M = 44.01 \, \text{g/mol}$(空気は $M = 28.97 \, \text{g/mol}$)です。音速 $a$ は
$$ a = \sqrt{\frac{\gamma R T}{M}} $$
で与えられます。ここで $R = 8.314 \, \text{J/(mol \cdot K)}$ は気体定数です。火星の地表付近($T \approx 210 \, \text{K}$)では
$$ a = \sqrt{\frac{1.30 \times 8.314 \times 210}{0.04401}} \approx \sqrt{\frac{2268.7}{0.04401}} \approx \sqrt{51547} \approx 227 \, \text{m/s} $$
この値は地球の音速 343 m/s より約34%低くなります。回転翼の翼端速度が音速に近づくと衝撃波が発生し、効率が急激に低下するため(圧縮性効果)、ブレードの翼端マッハ数を0.7程度以下に抑えることが設計上の制約となります。火星では音速が低い分、許容される翼端速度の上限も低くなり、ロータ設計をさらに難しくします。
このように、火星で飛ぶことは「極めて薄い空気」「低い音速」という二重のハンディキャップとの戦いです。NASAのエンジニアたちは、この過酷な条件にどのような設計で挑んだのでしょうか。次にIngenuityの設計思想を見ていきます。
Ingenuityの設計思想と仕様
ミッション概要
Ingenuity(インジェニュイティ)は、NASAの火星ヘリコプターであり、Mars 2020ミッションの一環としてPerseveranceローバーに搭載されて2021年2月に火星に到着しました。当初は30日間で最大5回の飛行を行う「テクノロジーデモンストレーション」として設計されましたが、予想を遥かに超える活躍を見せ、2024年1月のブレード損傷による運用終了までに72回の飛行を達成しました。
機体仕様
Ingenuityの仕様は、火星大気で飛ぶという前例のない要求に応えるため、徹底的な軽量化と最適化が行われています。
| パラメータ | 値 |
|---|---|
| 総質量 | 1.8 kg |
| ロータ直径 | 1.2 m |
| ロータ構成 | 二重反転(上下2枚) |
| ブレード枚数 | 各ロータ2枚(計4枚) |
| ブレード回転数 | 約 2,400 rpm(最大 2,537 rpm) |
| 翼端速度 | 約 150 m/s(マッハ 0.7 相当) |
| 飛行高度 | 最大 24 m |
| 飛行時間 | 最大約 170 秒 |
| 飛行距離 | 最大 704 m(1回の飛行で) |
| プロセッサ | Qualcomm Snapdragon 801(2.26 GHz) |
| ソーラーパネル出力 | 約 36 W(火星日照時) |
| バッテリ | 6 セル Li-ion、35.75 Wh |
二重反転ロータの選択理由
Ingenuityが二重反転ロータ(coaxial rotor)を採用した理由は、火星の飛行環境において複数の利点があるためです。
テールロータ不要: 通常のヘリコプターは、メインロータの反トルクを打ち消すためにテールロータが必要です。しかし、テールロータは揚力を生まない「無駄な」エネルギー消費です。二重反転ロータは上下のロータが逆回転するため、反トルクが自動的に相殺されます。これにより、全てのエネルギーを揚力生成に使えます。
コンパクト設計: テールブームが不要になるため、機体をコンパクトに設計でき、Perseveranceローバーの腹部に格納できるサイズに収まりました。
ホバリング安定性: 同軸上に2枚のロータがあることで、プロペラ後流の干渉を考慮すれば、上下のロータのピッチをそれぞれ独立に制御することでヨー制御(機首方向の回転制御)が可能です。
一方、二重反転ロータのデメリットとして、上側ロータのダウンウォッシュが下側ロータに当たるため、下側ロータの効率が低下する点があります。一般に、二重反転ロータの効率は孤立ロータ2枚分の約85%程度とされます。
徹底的な軽量化
Ingenuityの総質量1.8 kgは、火星の低密度大気で飛ぶために極限まで軽量化した結果です。構造体にはカーボンファイバー複合材が使われ、ブレードはフォームコアにカーボンファイバーを巻いた構造で、1枚あたりわずか約35 gです。脚は軽量なカーボンファイバーチューブで作られ、ソーラーパネルはブレードの回転面の上に配置されて、追加の構造体なしで太陽光を受けられるように設計されています。
ここまでIngenuityのハードウェア設計を見てきました。では、この小さな機体がなぜ火星の希薄な大気で飛べるのか、揚力生成の物理に踏み込んで考えてみましょう。
薄い大気での揚力生成の物理
揚力の基本方程式
回転翼であれ固定翼であれ、揚力は同じ基本式に従います。翼面積 $S$ の翼が密度 $\rho$ の空気中を速度 $v$ で移動するとき、揚力 $L$ は
$$ L = \frac{1}{2} \rho v^2 S C_L $$
で表されます。ここで $C_L$ は揚力係数であり、翼の形状(翼型)と迎角(翼弦に対する気流の角度 $\alpha$)に依存します。
回転翼の場合、翼端速度 $v_{\text{tip}}$ はロータ半径 $R_{\text{rotor}}$ と角速度 $\Omega$ を用いて
$$ v_{\text{tip}} = \Omega R_{\text{rotor}} = \frac{2\pi n}{60} R_{\text{rotor}} $$
と書けます($n$ はrpm単位の回転数)。ブレードの各要素は翼根から翼端に向かって速度が線形に変化するため、ロータ全体の推力はブレード要素理論(Blade Element Theory)で積分して求めます。
ブレード要素理論による推力
ロータ半径 $R_{\text{rotor}}$、ブレード枚数 $N_b$ のロータにおいて、翼根からの距離 $r$ におけるブレード微小要素(幅 $dr$、翼弦長 $c(r)$)が生む推力 $dT$ は
$$ dT = \frac{1}{2} \rho \left(\Omega r\right)^2 c(r) C_L(\alpha) N_b \, dr $$
です。ブレード全体にわたって積分すると
$$ T = \frac{1}{2} \rho \Omega^2 N_b \int_0^{R_{\text{rotor}}} r^2 \, c(r) \, C_L(\alpha(r)) \, dr $$
翼弦長 $c$ と揚力係数 $C_L$ が半径方向に一定と近似すると、積分は簡単になります。$r^2$ の積分なので
$$ \int_0^{R_{\text{rotor}}} r^2 \, dr = \frac{R_{\text{rotor}}^3}{3} $$
これを代入すると、1枚のロータの推力は
$$ T_{\text{single}} = \frac{1}{6} \rho \Omega^2 N_b \, c \, C_L \, R_{\text{rotor}}^3 $$
となります。Ingenuityは二重反転ロータなので、2枚のロータの合計推力は干渉効率 $\eta_{\text{coax}} \approx 0.85$ を考慮して
$$ T_{\text{total}} = 2 \eta_{\text{coax}} \times \frac{1}{6} \rho \Omega^2 N_b \, c \, C_L \, R_{\text{rotor}}^3 $$
ホバリング条件は $T_{\text{total}} = mg$ なので、必要な回転数は
$$ \Omega = \sqrt{\frac{mg}{\frac{1}{3} \eta_{\text{coax}} \rho N_b \, c \, C_L \, R_{\text{rotor}}^3}} $$
と表されます。この式から、大気密度 $\rho$ が小さいほど、必要な回転数 $\Omega$ が大きくなることが明確に見て取れます。
レイノルズ数と低密度環境の空力
ここで重要になるのがレイノルズ数 $Re$ です。レイノルズ数は流れの慣性力と粘性力の比であり、翼の空力特性を支配する無次元数です。
$$ Re = \frac{\rho v c}{\mu} $$
ここで $\mu$ は動粘度(粘性係数)です。火星のCO$_2$大気の粘性係数は $\mu \approx 1.1 \times 10^{-5} \, \text{Pa} \cdot \text{s}$(地球の空気の $\mu \approx 1.8 \times 10^{-5} \, \text{Pa} \cdot \text{s}$ に近い)です。
Ingenuityのブレードについて概算してみましょう。翼弦長 $c \approx 0.05 \, \text{m}$(ブレードの平均的な値)、翼端速度付近の速度を $v \approx 100 \, \text{m/s}$(翼の平均的な位置での速度)とすると
$$ Re_{\text{Mars}} = \frac{0.020 \times 100 \times 0.05}{1.1 \times 10^{-5}} \approx \frac{0.10}{1.1 \times 10^{-5}} \approx 9{,}100 $$
地球のヘリコプターでは $Re$ は典型的に $10^6$ のオーダーですから、Ingenuityのブレードは2桁も低いレイノルズ数で動作しています。
低レイノルズ数での翼型の振る舞い
レイノルズ数が $10^4$ 台の流れでは、翼の空力特性は高レイノルズ数の場合と質的に異なります。
層流剥離バブル: 低Reでは翼の上面の境界層が薄い層流のままで、圧力勾配に耐えきれず剥離します。しかし、剥離した自由せん断層が不安定性によって乱流に遷移し、運動量を翼面に戻すことで再付着する現象が起こります。この「層流剥離バブル」は揚力の急変や抗力増大の原因になります。
揚力係数の低下: 低Reでは同じ迎角でも得られる揚力係数 $C_L$ が高Reの場合より低くなる傾向があります。また、$C_L/C_D$ 比(揚抗比)も低下するため、同じ揚力を得るために大きな動力が必要です。
非線形な失速特性: 高Reでは迎角を増やしていくと比較的急に失速($C_L$ の急激な低下)が起きますが、低Reでは層流剥離バブルの影響で緩やかだが予測しづらい失速特性を示すことがあります。
このため、Ingenuityのブレード翼型は、低Re環境で高い $C_L$ と安定した失速特性を実現するよう特別に設計されています。NASAは、高い揚力係数を維持しながら層流剥離を制御する翼型を空力最適化によって開発しました。
推力係数とパワー係数
ロータの性能を無次元化して整理するために、推力係数 $C_T$ とパワー係数 $C_P$ が使われます。
推力係数は
$$ C_T = \frac{T}{\rho (\Omega R_{\text{rotor}})^2 \pi R_{\text{rotor}}^2} = \frac{T}{\rho A_{\text{disk}} v_{\text{tip}}^2} $$
パワー係数は
$$ C_P = \frac{P}{\rho (\Omega R_{\text{rotor}})^3 \pi R_{\text{rotor}}^2} = \frac{P}{\rho A_{\text{disk}} v_{\text{tip}}^3} $$
ここで $A_{\text{disk}} = \pi R_{\text{rotor}}^2$ はロータディスク面積です。運動量理論によるホバリングの理想パワーは
$$ P_{\text{ideal}} = T \sqrt{\frac{T}{2 \rho A_{\text{disk}}}} $$
この式は、ロータが空気を下向きに加速して推力を得るというシンプルな運動量保存から導かれます。分母に $\rho$ が入っているため、大気密度が低いほど同じ推力を得るために大きなパワーが必要であることがわかります。
揚力生成の物理を理解したところで、次にIngenuityがこの物理的制約のもとでどのように自律飛行を制御しているかを見ていきましょう。
Ingenuityの飛行制御
GPS不在環境での自律航法
地球のドローンではGPSが位置推定の主要手段ですが、火星にはGPS衛星網が存在しません。また、地球と火星の間の通信遅延は片道4〜24分にも及ぶため、リアルタイムの遠隔操縦も不可能です。したがって、Ingenuityは完全自律で飛行しなければなりません。
Ingenuityの航法システムは以下のセンサ群で構成されています。
慣性計測装置(IMU): 3軸加速度計と3軸ジャイロスコープを搭載し、機体の加速度と角速度を高頻度(500 Hz)で計測します。IMUデータを積分することで、短時間の位置・姿勢変化を追跡できます。ただし、IMUの積分にはドリフト(誤差の蓄積)が不可避であり、数秒以上の飛行では大きな位置誤差が蓄積します。
下向きカメラ(ナビゲーションカメラ): 地面を撮影するモノクロカメラを搭載し、フレーム間の画像変位から水平方向の移動量を推定します。これはビジュアルオドメトリと呼ばれる手法で、IMUのドリフトを補正する役割を果たします。
レーザー高度計: 地面までの距離をレーザーで直接計測します。これにより、高度の正確な情報を得ることができます。
制御ループの構造
Ingenuityの飛行制御は、典型的なカスケード制御構造を採用しています。
内側ループ(姿勢制御): IMUからの角速度データに基づき、ロータのスワッシュプレートを制御して機体の姿勢(ロール、ピッチ、ヨー)を安定化します。この制御ループは500 Hzという高い周波数で動作し、外乱(突風など)に素早く応答します。
外側ループ(位置・速度制御): ビジュアルオドメトリとレーザー高度計からの位置情報に基づき、目標地点への航行を制御します。このループは約30 Hzで動作し、内側ループに姿勢の目標値(目標ロール角・ピッチ角)を指令します。
この制御の基本的な考え方は次の通りです。水平方向に移動したい場合、機体を進行方向に傾ける(ピッチ角を与える)ことで、揚力の水平成分が推進力となります。目標速度 $v_d$ を実現するために必要なピッチ角 $\theta$ は、簡略化すると
$$ \theta \approx \arctan\left(\frac{a_{\text{horizontal}}}{g_{\text{Mars}}}\right) $$
であり、ここで $a_{\text{horizontal}}$ は水平方向の目標加速度です。ピッチ角が大きすぎると揚力の鉛直成分が減少して高度が下がるため、姿勢角には上限が設けられています。
状態推定 — 拡張カルマンフィルタ
IMU、カメラ、レーザー高度計からのデータを統合して機体の状態(位置、速度、姿勢、加速度バイアスなど)を推定するために、Ingenuityは拡張カルマンフィルタ(EKF)を使用しています。
EKFの状態ベクトルには以下が含まれます。
$$ \bm{x} = \begin{bmatrix} \bm{p} \\ \bm{v} \\ \bm{q} \\ \bm{b}_a \\ \bm{b}_\omega \end{bmatrix} $$
ここで $\bm{p}$ は位置(3次元)、$\bm{v}$ は速度(3次元)、$\bm{q}$ は姿勢を表すクォータニオン(4成分)、$\bm{b}_a$ は加速度計バイアス(3次元)、$\bm{b}_\omega$ はジャイロバイアス(3次元)です。合計16次元の状態空間です。
予測ステップではIMUデータを用いて状態を時間更新し、更新ステップではカメラとレーザー高度計の観測を用いて補正します。このフィルタにより、各センサの長所を組み合わせた高精度な状態推定が実現されています。
飛行プロファイル
Ingenuityの典型的な飛行プロファイルは以下のフェーズで構成されます。
- 離陸フェーズ: ロータ回転数を徐々に上げ、目標高度まで垂直上昇(約6秒)
- ホバリング安定化: 目標高度でホバリングし、センサキャリブレーションと姿勢安定化を確認(約5秒)
- 水平移動フェーズ: 目標地点に向けて水平移動(最高速度 約10 m/s)
- ホバリング: 目標地点上空でホバリング(カメラ撮影など)
- 着陸フェーズ: 垂直降下して着陸(約6秒)
初期の飛行では高度3 mで数秒間のホバリングだけでしたが、回を重ねるにつれて飛行距離と高度が増大し、最終的には1回の飛行で700 m以上を移動するまでになりました。
Ingenuityは火星での空中探査の実現可能性を実証しました。では、太陽系にはIngenuityよりも飛びやすい環境を持つ天体があるのでしょうか。次に、土星の衛星タイタンの環境を見てみましょう。
タイタンの環境 — 飛行に理想的な異世界
タイタンとは
タイタンは土星最大の衛星であり、太陽系の衛星の中で唯一、分厚い大気を持つ天体です。直径5,150 kmで水星よりも大きく、大気圧は地球の約1.5倍もあります。1997年に打ち上げられたカッシーニ探査機と、2005年にタイタンの地表に着陸したホイヘンスプローブにより、タイタンの環境が詳細に解明されました。
タイタンの大気と重力
タイタンの環境パラメータを地球・火星と比較すると、空中探査にとって驚くべき好条件が見えてきます。
| パラメータ | 地球 | 火星 | タイタン |
|---|---|---|---|
| 表面気圧 | 101,325 Pa | 約 600 Pa | 約 146,700 Pa |
| 大気密度(地表) | 1.225 kg/m$^3$ | 約 0.020 kg/m$^3$ | 約 5.4 kg/m$^3$ |
| 大気組成 | N$_2$ 78%, O$_2$ 21% | CO$_2$ 95.3% | N$_2$ 94%, CH$_4$ 5.7% |
| 表面重力加速度 | 9.81 m/s$^2$ | 3.72 m/s$^2$ | 1.35 m/s$^2$ |
| 表面温度 | 288 K | 210 K | 94 K($-179$°C) |
| 音速(地表付近) | 約 343 m/s | 約 240 m/s | 約 194 m/s |
注目すべきは、タイタンの大気密度が地球の約4.4倍、火星の270倍であることです。さらに重力が地球のわずか14%しかないため、飛行に必要なエネルギーは地球に比べて桁違いに少なくなります。
飛行容易度の比較
揚力方程式 $L = \frac{1}{2} \rho v^2 S C_L$ とホバリング条件 $L = mg$ から、同じ質量・翼面積・揚力係数の機体がホバリングするのに必要な速度は
$$ v_{\text{hover}} = \sqrt{\frac{2mg}{\rho S C_L}} \propto \sqrt{\frac{g}{\rho}} $$
この $g/\rho$ 比を各天体で計算すると
$$ \frac{g}{\rho}\bigg|_{\text{Earth}} = \frac{9.81}{1.225} = 8.01, \quad \frac{g}{\rho}\bigg|_{\text{Mars}} = \frac{3.72}{0.020} = 186, \quad \frac{g}{\rho}\bigg|_{\text{Titan}} = \frac{1.35}{5.4} = 0.25 $$
タイタンの $g/\rho$ 比は地球の約1/32、火星の約1/744です。つまり、タイタンでは地球に比べて約 $\sqrt{32} \approx 5.7$ 分の1の速度でホバリングでき、火星と比べれば約 $\sqrt{744} \approx 27$ 分の1の速度で済みます。タイタンは太陽系で最も飛びやすい天体の一つなのです。
タイタン環境の課題
飛行の容易さとは裏腹に、タイタンの環境はエンジニアリング的に厳しい挑戦を突きつけます。
極低温: 地表温度は94 K($-179$°C)であり、電子部品、バッテリ、機械部品の全てが極低温で動作する必要があります。一般的なリチウムイオンバッテリはこの温度では性能が大幅に低下するため、放射性同位体熱電気転換器(RTG: Radioisotope Thermoelectric Generator)や、特殊な低温対応バッテリの使用が必要になります。
太陽光不足: タイタンは太陽から約9.5天文単位(AU)の距離にあり、到達する太陽光は地球の約1%です。さらに厚い大気による散乱で、地表に届く光はさらに弱くなります。このため、ソーラーパネルによる発電は実用的ではなく、RTGが電力源として必須です。
通信遅延: 土星と地球の間の通信遅延は片道約80分です。火星の4〜24分よりもさらに長く、完全自律の飛行・着陸・科学観測が求められます。
液体メタンの雨と湖: タイタンでは液体メタン・エタンの雨が降り、湖や海が存在します。着陸地点の選定にはこれらの液体地形への対策が必要です。
こうした課題を踏まえて、NASAはDragonflyミッションでどのような機体を設計したのでしょうか。
Dragonfly — タイタンを飛ぶマルチコプター
ミッション概要
Dragonfly(ドラゴンフライ)は、NASAのNew Frontiersプログラムの第4番目のミッションとして2019年に選定された、タイタン探査用マルチコプターです。2028年頃の打ち上げを目指しており、タイタンには2030年代半ばに到着する予定です。
Dragonflyの革新的な点は、ローバーではなくマルチコプターを主要な移動手段とすることです。タイタンの濃い大気と低重力を最大限に活用し、1回の飛行で数キロメートルを移動、最終的にはミッション全体で175 km以上の飛行を計画しています。
機体設計
Dragonflyは8ロータ(4ペアの二重反転ロータ)のオクトコプター構成です。
| パラメータ | 値 |
|---|---|
| 総質量 | 約 450 kg |
| ロータ構成 | 8ロータ(4ペア二重反転) |
| ロータ直径 | 約 1 m(各ロータ) |
| 機体サイズ | 約 3.7 m(ロータスパン) |
| 電力源 | MMRTG(Multi-Mission RTG) |
| 1回の飛行距離 | 最大約 8 km |
| 飛行速度 | 約 10 m/s |
| 飛行高度 | 最大数百 m |
| ミッション全飛行距離 | 175 km 以上 |
| ミッション期間 | 約 3.3 年(タイタン上) |
なぜオクトコプターか
Dragonflyが4ペア8ロータ(同軸オクトコプター)を採用した理由には、深い工学的判断があります。
冗長性: 8つのロータのうち1つが故障しても飛行を継続できる冗長設計です。タイタンまでの片道7年のフライトの後、修理は不可能なので、この冗長性はミッションの成否を左右します。
ペイロード容量: Ingenuity(1.8 kg)と比べ、Dragonflyは約450 kgもの質量があります。これはタイタンの飛行条件が格段に有利であるためで、科学機器(質量分析計、ガンマ線分光計、気象センサ、カメラ群など)を豊富に搭載できます。
着陸安定性: 4つのランディングスキッド(脚)を持ち、多様な地形への着陸が可能です。タイタンの地表は氷と有機物の砂丘地帯が広がっており、安定した着陸が求められます。
科学目標
Dragonflyの主要な科学目標は以下の通りです。
プレバイオティック化学の探索: タイタンの地表には有機化合物が豊富に存在し、生命誕生前の化学(プレバイオティック化学)が現在進行形で起きている可能性があります。特に、過去にクレーター内に液体の水が一時的に存在した「水とアンモニアの混合物の溶融池」では、有機物と液体水が相互作用して複雑な分子が生成された可能性があります。
大気・気象の観測: タイタンの大気の組成と気象パターンを地表から観測します。メタンの循環(蒸発、雲形成、降雨)は地球の水循環のアナロジーであり、比較惑星気象学の重要な研究対象です。
地表地質の調査: 飛行によって広範囲の地質を調査し、砂丘、クレーター、山地など多様な地形の組成を分析します。
運用コンセプト
Dragonflyの運用は、タイタンの1日(約16地球日)を1サイクルとして設計されています。
- 充電期間(数タイタン日): MMRTGで発電された電力をバッテリに蓄積
- 科学観測期間: 着陸地点での地表分析(質量分析、分光分析など)
- 飛行期間: 次の探査地点まで飛行(約30分、最大8 km)
- 着陸後の科学観測: 新しい地点での分析
- 地球との通信: 科学データの送信、次の飛行計画の受信
この「ホップ&分析」の繰り返しにより、2.7年間のミッション期間で175 km以上を移動する計画です。
Ingenuityの1.8 kgとDragonflyの450 kg — この250倍もの質量差は、火星とタイタンの飛行条件の違いを如実に物語っています。次に、この差異を物理的に定量比較してみましょう。
火星 vs タイタン — 飛行条件の定量比較
ホバリングに必要なパワー
運動量理論に基づくホバリングの理想パワーを比較します。質量 $m$ の機体がロータ面積 $A$ でホバリングする場合の理想パワーは
$$ P_{\text{ideal}} = T \sqrt{\frac{T}{2 \rho A}} = mg\sqrt{\frac{mg}{2 \rho A}} $$
右辺を整理すると
$$ P_{\text{ideal}} = (mg)^{3/2} \frac{1}{\sqrt{2 \rho A}} $$
この式のポイントは、パワーが $(mg)^{3/2}$ に比例し、$\sqrt{\rho}$ に反比例することです。つまり、重力が小さく大気が濃いほどパワーが小さくて済みます。
ディスクローディングの比較
ディスクローディング($DL$)はロータ面積あたりの推力であり、ホバリング効率の重要な指標です。
$$ DL = \frac{T}{A} = \frac{mg}{\pi R_{\text{rotor}}^2} $$
Ingenuityの場合
$$ DL_{\text{Ingenuity}} = \frac{1.8 \times 3.72}{\pi \times 0.6^2} = \frac{6.70}{1.131} \approx 5.92 \, \text{N/m}^2 $$
地球のドローン(例: 1.5 kg、ロータ半径0.15 m × 4つ)の場合
$$ DL_{\text{Earth}} = \frac{1.5 \times 9.81}{4 \times \pi \times 0.15^2} = \frac{14.72}{0.283} \approx 52.0 \, \text{N/m}^2 $$
Ingenuityのディスクローディングは地球のドローンの約1/9です。これは火星の低密度大気で飛ぶために、機体質量に対して非常に大きなロータが必要であることを意味します。
Dragonflyについて見ると(4ペア×直径1 m のロータ)
$$ DL_{\text{Dragonfly}} = \frac{450 \times 1.35}{4 \times \pi \times 0.5^2} \approx \frac{607.5}{3.14} \approx 193 \, \text{N/m}^2 $$
一見、Dragonflyのディスクローディングは大きいですが、タイタンの大気密度は地球の4.4倍なので、実際の飛行効率は十分良好です。
翼端速度とマッハ数の制約
各天体での音速の違いにより、許容される翼端速度の上限が異なります。翼端マッハ数を $M_{\text{tip}} \leq 0.7$ に制限すると
$$ v_{\text{tip,max}} = 0.7 \times a $$
- 地球: $v_{\text{tip,max}} = 0.7 \times 343 = 240 \, \text{m/s}$
- 火星: $v_{\text{tip,max}} = 0.7 \times 227 = 159 \, \text{m/s}$
- タイタン: $v_{\text{tip,max}} = 0.7 \times 194 = 136 \, \text{m/s}$
火星では翼端速度の制約が厳しく、Ingenuityの翼端速度約150 m/s はマッハ 0.66 程度であり、限界に近い値で運用されています。タイタンでは音速が低いものの、必要な翼端速度自体が小さいため、マッハ数の制約は問題になりません。
飛行パラメータのまとめ
ここまでの議論を、各天体の飛行パラメータとして定量的にまとめます。
| パラメータ | 地球 | 火星 | タイタン |
|---|---|---|---|
| $g/\rho$ [m$^4$/(kg$\cdot$s$^2$)] | 8.01 | 186 | 0.25 |
| ホバリング速度比(地球基準) | 1.0 | 4.8 | 0.18 |
| 理想ホバリングパワー比 | 1.0 | 〜12 | 〜0.01 |
| 翼端マッハ数制約 | 緩い | 厳しい | 非常に緩い |
| レイノルズ数オーダー | $10^6$ | $10^4$ | $10^7$ |
この表から、タイタンが空中探査にとっていかに恵まれた環境であるかが明瞭です。火星での飛行は物理的にぎりぎり可能な挑戦であり、タイタンでの飛行は大気力学的には地球よりも容易です。
数値的な比較ができたところで、これらの計算をPythonで実装し、より詳細なパラメータスイープと可視化を行いましょう。
Pythonによる飛行パラメータの比較計算
各天体の大気・重力パラメータの定義
まず、地球・火星・タイタンの環境パラメータを定義し、揚力方程式に基づく基本的な飛行パラメータを計算します。
import numpy as np
import matplotlib.pyplot as plt
# --- 各天体の環境パラメータ ---
bodies = {
"Earth": {
"rho": 1.225, # 大気密度 [kg/m^3]
"g": 9.81, # 重力加速度 [m/s^2]
"T_surface": 288, # 表面温度 [K]
"gamma": 1.40, # 比熱比
"M_mol": 0.02897, # 平均分子量 [kg/mol]
"mu_visc": 1.81e-5, # 粘性係数 [Pa*s]
"color": "#2196F3",
"label": "Earth"
},
"Mars": {
"rho": 0.020,
"g": 3.72,
"T_surface": 210,
"gamma": 1.30,
"M_mol": 0.04401,
"mu_visc": 1.1e-5,
"color": "#FF5722",
"label": "Mars"
},
"Titan": {
"rho": 5.4,
"g": 1.35,
"T_surface": 94,
"gamma": 1.40,
"M_mol": 0.02802,
"mu_visc": 6.2e-6,
"color": "#FFC107",
"label": "Titan"
}
}
R_gas = 8.314 # 気体定数 [J/(mol*K)]
# 各天体の音速を計算
for name, b in bodies.items():
a_sound = np.sqrt(b["gamma"] * R_gas * b["T_surface"] / b["M_mol"])
b["a_sound"] = a_sound
g_over_rho = b["g"] / b["rho"]
b["g_over_rho"] = g_over_rho
print(f"{name:6s}: rho={b['rho']:.3f} kg/m^3, g={b['g']:.2f} m/s^2, "
f"a={a_sound:.1f} m/s, g/rho={g_over_rho:.2f}")
このコードを実行すると、各天体の音速と $g/\rho$ 比が表示されます。出力から、タイタンの $g/\rho$ が地球の約1/32、火星の約1/740であることが確認できます。音速は温度と分子量に依存するため、低温のタイタンが最も低い値を示しますが、飛行に必要な速度がそもそも小さいため問題にはなりません。
ホバリング回転数の比較
次に、同一のロータ仕様を仮定した場合に、各天体でホバリングに必要な回転数がどのように変わるかを計算します。
import numpy as np
import matplotlib.pyplot as plt
# 環境パラメータ
rho_earth, g_earth = 1.225, 9.81
rho_mars, g_mars = 0.020, 3.72
rho_titan, g_titan = 5.4, 1.35
# ロータパラメータ(Ingenuity準拠)
R_rotor = 0.6 # ロータ半径 [m]
N_b = 2 # ブレード枚数(1ロータあたり)
c_blade = 0.05 # 翼弦長 [m]
C_L = 1.0 # 揚力係数(平均的な値)
eta_coax = 0.85 # 二重反転ロータ効率
# 機体質量の範囲
mass = np.linspace(0.5, 10.0, 200) # [kg]
def hover_rpm(m, rho, g, R, Nb, c, CL, eta):
"""ホバリングに必要な回転数 [rpm] を計算"""
weight = m * g
# T_total = 2 * eta * (1/6) * rho * Omega^2 * Nb * c * CL * R^3
coeff = (1/3) * eta * rho * Nb * c * CL * R**3
Omega = np.sqrt(weight / coeff) # [rad/s]
return Omega * 60 / (2 * np.pi) # rpmに変換
rpm_earth = hover_rpm(mass, rho_earth, g_earth, R_rotor, N_b, c_blade, C_L, eta_coax)
rpm_mars = hover_rpm(mass, rho_mars, g_mars, R_rotor, N_b, c_blade, C_L, eta_coax)
rpm_titan = hover_rpm(mass, rho_titan, g_titan, R_rotor, N_b, c_blade, C_L, eta_coax)
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(mass, rpm_earth, color="#2196F3", linewidth=2, label="Earth")
ax.plot(mass, rpm_mars, color="#FF5722", linewidth=2, label="Mars")
ax.plot(mass, rpm_titan, color="#FFC107", linewidth=2, label="Titan")
# Ingenuityの設計点をマーク
ax.axhline(y=2400, color="#FF5722", linestyle="--", alpha=0.5, label="Ingenuity ~2400 rpm")
ax.plot(1.8, hover_rpm(1.8, rho_mars, g_mars, R_rotor, N_b, c_blade, C_L, eta_coax),
"o", color="#FF5722", markersize=10, zorder=5)
ax.set_xlabel("Mass [kg]", fontsize=13)
ax.set_ylabel("Hover RPM", fontsize=13)
ax.set_title("Required Hover RPM vs Mass (Coaxial Rotor, R=0.6m)", fontsize=14)
ax.legend(fontsize=12)
ax.set_ylim(0, 8000)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
上のグラフから、以下の特徴が読み取れます。
- 火星では地球の約5倍の回転数が必要: 同じ質量の機体を同じロータで飛ばす場合、火星での必要回転数は地球の約5倍です。Ingenuity(1.8 kg)の実際の回転数 2,400 rpmと計算値がおおむね一致していることが確認できます(揚力係数や翼弦長の近似による差はあります)。
- タイタンでは極めて低い回転数で十分: タイタンの大気密度は地球の4.4倍、重力は14%なので、必要回転数は地球の約1/6です。同じロータで450 kgの機体を飛ばしても、回転数は火星で1.8 kgを飛ばすよりはるかに低く済みます。
- 回転数は質量の平方根に比例: 全ての天体で $\Omega \propto \sqrt{m}$ の関係が見て取れ、これは先ほど導出した式と一致しています。
ホバリングパワーの比較
次に、運動量理論に基づくホバリングの理想パワーを各天体で比較します。
import numpy as np
import matplotlib.pyplot as plt
# 環境パラメータ
rho_earth, g_earth = 1.225, 9.81
rho_mars, g_mars = 0.020, 3.72
rho_titan, g_titan = 5.4, 1.35
# ロータ面積(二重反転1セット: ディスク面積 = pi * R^2)
R_rotor = 0.6
A_disk = np.pi * R_rotor**2
# 機体質量の範囲
mass = np.linspace(0.5, 20.0, 200)
def ideal_hover_power(m, rho, g, A):
"""運動量理論に基づくホバリングの理想パワー [W]"""
T = m * g
return T * np.sqrt(T / (2 * rho * A))
P_earth = ideal_hover_power(mass, rho_earth, g_earth, A_disk)
P_mars = ideal_hover_power(mass, rho_mars, g_mars, A_disk)
P_titan = ideal_hover_power(mass, rho_titan, g_titan, A_disk)
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(mass, P_earth, color="#2196F3", linewidth=2, label="Earth")
ax.plot(mass, P_mars, color="#FF5722", linewidth=2, label="Mars")
ax.plot(mass, P_titan, color="#FFC107", linewidth=2, label="Titan")
# Ingenuityの設計点
P_ing = ideal_hover_power(1.8, rho_mars, g_mars, A_disk)
ax.plot(1.8, P_ing, "o", color="#FF5722", markersize=10, zorder=5,
label=f"Ingenuity ({P_ing:.1f} W ideal)")
ax.set_xlabel("Mass [kg]", fontsize=13)
ax.set_ylabel("Ideal Hover Power [W]", fontsize=13)
ax.set_title("Ideal Hover Power vs Mass (Momentum Theory, A=πR², R=0.6m)", fontsize=14)
ax.legend(fontsize=12)
ax.set_yscale("log")
ax.grid(True, alpha=0.3, which="both")
plt.tight_layout()
plt.show()
このグラフから、3つの重要な知見が得られます。
- 火星でのホバリングは桁違いにエネルギーを消費: 同じ質量でも、火星では地球の約12倍の理想パワーが必要です。これはIngenuityのバッテリ容量(35.75 Wh)が飛行時間を数分に制限している理由を説明します。
- タイタンでは極めて少ないパワーで飛べる: タイタンでは地球の約1/100のパワーでホバリングが可能です。Dragonflyが450 kgもの質量を飛ばしながら30分間の飛行を計画できるのは、この有利な環境のおかげです。
- パワーは質量の3/2乗に比例: 対数スケールでの直線の傾きから、$P \propto m^{3/2}$ の関係が確認できます。これは $P = (mg)^{3/2} / \sqrt{2\rho A}$ の式と一致しています。
レイノルズ数マップの可視化
翼弦長と翼端速度を変数として、各天体でのレイノルズ数を等高線図で可視化します。
import numpy as np
import matplotlib.pyplot as plt
# 環境パラメータ
envs = {
"Earth": {"rho": 1.225, "mu": 1.81e-5},
"Mars": {"rho": 0.020, "mu": 1.1e-5},
"Titan": {"rho": 5.4, "mu": 6.2e-6},
}
# パラメータ範囲
v_tip = np.linspace(10, 200, 200) # 翼端速度 [m/s]
chord = np.linspace(0.02, 0.15, 200) # 翼弦長 [m]
V, C = np.meshgrid(v_tip, chord)
fig, axes = plt.subplots(1, 3, figsize=(16, 5), sharey=True)
for ax, (name, env) in zip(axes, envs.items()):
Re = env["rho"] * V * C / env["mu"]
# 等高線
levels = [1e3, 5e3, 1e4, 5e4, 1e5, 5e5, 1e6, 5e6, 1e7]
cs = ax.contourf(V, C * 100, np.log10(Re), levels=np.arange(3, 8, 0.25),
cmap="viridis")
ax.contour(V, C * 100, np.log10(Re), levels=[4, 5, 6],
colors="white", linewidths=1.5)
ax.set_xlabel("Tip Speed [m/s]", fontsize=12)
ax.set_title(f"{name}", fontsize=14)
if name == "Earth":
ax.set_ylabel("Chord Length [cm]", fontsize=12)
# カラーバーを追加
cbar = fig.colorbar(cs, ax=axes, label="log₁₀(Re)", shrink=0.9)
# Ingenuityの設計点をマーク
axes[1].plot(150, 5.0, "r*", markersize=15, zorder=5, label="Ingenuity")
axes[1].legend(fontsize=11)
plt.suptitle("Reynolds Number Map: Re = ρ·v·c / μ", fontsize=15, y=1.02)
plt.tight_layout()
plt.show()
この3パネルの等高線図から、各天体の空力環境の違いが視覚的に理解できます。
- 地球: 標準的なヘリコプターの運用域(翼端速度150〜230 m/s、翼弦長5〜15 cm)ではレイノルズ数は $10^5$ ~ $10^6$ オーダーであり、翼型データベースが豊富に存在する領域です。
- 火星: 赤い星印で示したIngenuityの運用点は $Re \approx 10^4$ の領域にあります。この領域は昆虫や小型MAV(Micro Air Vehicle)の飛行に対応し、地球の航空機の経験がほとんど通用しません。翼弦長を大きくすれば $Re$ を上げられますが、ブレード質量が増えるトレードオフがあります。
- タイタン: 高い大気密度と低い粘性係数により、地球と同程度かそれ以上の翼端速度で $Re$ は $10^7$ に達します。翼型設計の観点からは、豊富な実績データが利用可能な「飛びやすい」領域です。
統合シミュレーション — 各天体の飛行エンベロープ
最後に、各天体の飛行機体のエンベロープ(飛行可能域)を、質量・ロータ半径をパラメータとして可視化します。
import numpy as np
import matplotlib.pyplot as plt
# 環境パラメータ
envs_list = [
("Earth", 1.225, 9.81, 343, "#2196F3"),
("Mars", 0.020, 3.72, 227, "#FF5722"),
("Titan", 5.4, 1.35, 194, "#FFC107"),
]
# ロータ半径の範囲
R_range = np.linspace(0.1, 2.0, 200)
# 設計制約
N_b = 2
c_blade = 0.05 # [m]
C_L = 1.0
eta_coax = 0.85
Mach_limit = 0.7 # 翼端マッハ数の制約
fig, axes = plt.subplots(1, 3, figsize=(16, 5))
for ax, (name, rho, g, a_sound, color) in zip(axes, envs_list):
# 翼端速度制約から最大回転数を求める
# v_tip = Omega * R <= Mach_limit * a_sound
# Omega_max = Mach_limit * a_sound / R
# ロータ半径ごとに、ホバリング可能な最大質量を計算
max_mass = []
for R in R_range:
Omega_max = Mach_limit * a_sound / R
# T_total = 2*eta*(1/6)*rho*Omega^2*Nb*c*CL*R^3
T_max = 2 * eta_coax * (1/6) * rho * Omega_max**2 * N_b * c_blade * C_L * R**3
m_max = T_max / g
max_mass.append(m_max)
max_mass = np.array(max_mass)
ax.fill_between(R_range, 0, max_mass, color=color, alpha=0.3, label="Hover feasible")
ax.plot(R_range, max_mass, color=color, linewidth=2)
ax.set_xlabel("Rotor Radius [m]", fontsize=12)
ax.set_ylabel("Max Hoverable Mass [kg]", fontsize=12)
ax.set_title(f"{name} (a={a_sound:.0f} m/s)", fontsize=14)
ax.grid(True, alpha=0.3)
# 実際の機体をプロット
if name == "Mars":
ax.plot(0.6, 1.8, "r*", markersize=15, zorder=5, label="Ingenuity")
ax.set_ylim(0, 20)
ax.legend(fontsize=11)
elif name == "Earth":
ax.set_ylim(0, 50)
elif name == "Titan":
ax.plot(0.5, 450/4, "r*", markersize=15, zorder=5,
label="Dragonfly\n(per rotor pair)")
ax.set_ylim(0, 3000)
ax.legend(fontsize=11)
plt.suptitle("Hover Envelope: Max Mass vs Rotor Radius (Mach-limited)", fontsize=15, y=1.02)
plt.tight_layout()
plt.show()
この飛行エンベロープ図から、各天体の設計空間の広さの違いが明確になります。
- 地球: ロータ半径0.6 mの二重反転ロータ1セットで、約30 kgまでの機体をホバリングさせることが可能です。翼端マッハ数の制約にはまだ余裕があります。
- 火星: 同じロータで飛ばせる質量は数kg程度に限られます。赤い星印のIngenuity(半径0.6 m、1.8 kg)は、マッハ数制約による上限にかなり近い位置にあり、設計マージンの少ない挑戦的な設計であることが読み取れます。
- タイタン: 同じロータ1セットで数百kgの機体を支えることができます。Dragonfly(450 kgを4セットで分担、1セットあたり約112.5 kg)は飛行エンベロープの中央付近にあり、十分な設計マージンを持っています。
Ingenuity vs Dragonfly の設計パラメータ比較表
最後に、両機の主要パラメータを並べて比較コードを作成します。
import numpy as np
import matplotlib.pyplot as plt
# --- Ingenuity パラメータ ---
ing = {
"name": "Ingenuity (Mars)",
"mass": 1.8,
"g": 3.72,
"rho": 0.020,
"R_rotor": 0.6,
"N_rotors": 2, # 二重反転1セット
"rpm": 2400,
"a_sound": 227,
}
# --- Dragonfly パラメータ ---
dfly = {
"name": "Dragonfly (Titan)",
"mass": 450,
"g": 1.35,
"rho": 5.4,
"R_rotor": 0.5,
"N_rotors": 8, # 4ペア同軸
"rpm": 900, # 推定値
"a_sound": 194,
}
for craft in [ing, dfly]:
W = craft["mass"] * craft["g"]
Omega = craft["rpm"] * 2 * np.pi / 60
v_tip = Omega * craft["R_rotor"]
Mach_tip = v_tip / craft["a_sound"]
A_disk = craft["N_rotors"] / 2 * np.pi * craft["R_rotor"]**2 # ペア数×ディスク面積
DL = W / A_disk
P_ideal = W * np.sqrt(W / (2 * craft["rho"] * A_disk))
P_per_kg = P_ideal / craft["mass"]
print(f"=== {craft['name']} ===")
print(f" Weight: {W:.1f} N")
print(f" Tip speed: {v_tip:.1f} m/s")
print(f" Tip Mach: {Mach_tip:.3f}")
print(f" Disk loading: {DL:.2f} N/m^2")
print(f" Ideal power: {P_ideal:.1f} W")
print(f" Power/mass: {P_per_kg:.2f} W/kg")
print()
# 棒グラフで比較
labels = ["Tip Speed\n[m/s]", "Tip Mach", "Disk Loading\n[N/m²]",
"Ideal Power\n/mass [W/kg]"]
# 値を計算
W_ing = ing["mass"] * ing["g"]
Omega_ing = ing["rpm"] * 2 * np.pi / 60
vtip_ing = Omega_ing * ing["R_rotor"]
A_ing = np.pi * ing["R_rotor"]**2
P_ing = W_ing * np.sqrt(W_ing / (2 * ing["rho"] * A_ing))
W_dfly = dfly["mass"] * dfly["g"]
Omega_dfly = dfly["rpm"] * 2 * np.pi / 60
vtip_dfly = Omega_dfly * dfly["R_rotor"]
A_dfly = 4 * np.pi * dfly["R_rotor"]**2
P_dfly = W_dfly * np.sqrt(W_dfly / (2 * dfly["rho"] * A_dfly))
ing_vals = [vtip_ing, vtip_ing/ing["a_sound"], W_ing/A_ing, P_ing/ing["mass"]]
dfly_vals = [vtip_dfly, vtip_dfly/dfly["a_sound"], W_dfly/A_dfly, P_dfly/dfly["mass"]]
fig, axes = plt.subplots(1, 4, figsize=(16, 5))
for ax, label, v_i, v_d in zip(axes, labels, ing_vals, dfly_vals):
bars = ax.bar(["Ingenuity\n(Mars)", "Dragonfly\n(Titan)"], [v_i, v_d],
color=["#FF5722", "#FFC107"], edgecolor="white", linewidth=1.5)
ax.set_title(label, fontsize=12)
ax.grid(True, alpha=0.3, axis="y")
# 値を棒の上に表示
for bar, val in zip(bars, [v_i, v_d]):
ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() * 1.05,
f"{val:.1f}", ha="center", fontsize=11, fontweight="bold")
plt.suptitle("Ingenuity vs Dragonfly: Key Flight Parameters", fontsize=15, y=1.02)
plt.tight_layout()
plt.show()
この比較棒グラフから、IngenuityとDragonflyの設計思想の違いが明確に浮かび上がります。
- 翼端速度: Ingenuityは約150 m/s、Dragonflyは約47 m/s(推定)です。Ingenuityは薄い大気で揚力を絞り出すために高速回転を強いられている一方、Dragonflyはゆったりとした回転で十分な揚力を得られます。
- 翼端マッハ数: Ingenuityのマッハ0.66は圧縮性効果の限界に近く、設計マージンがわずかです。Dragonflyのマッハ0.24は圧縮性の影響がほとんどない安全な領域です。
- ディスクローディング: Dragonflyの方が高いですが、タイタンの高密度大気が十分にこれを支えます。
- 質量あたりのパワー: Ingenuityの方がDragonflyより1桁以上大きく、火星での飛行がいかにエネルギー集約的であるかがわかります。
大気密度の高度変化と飛行高度限界
補足的に、大気密度の高度変化と飛行可能高度の上限を計算します。
import numpy as np
import matplotlib.pyplot as plt
# 各天体のスケールハイト H = R*T / (M*g) を計算
R_gas = 8.314
envs_atm = {
"Earth": {"rho0": 1.225, "T": 288, "M": 0.02897, "g": 9.81, "color": "#2196F3"},
"Mars": {"rho0": 0.020, "T": 210, "M": 0.04401, "g": 3.72, "color": "#FF5722"},
"Titan": {"rho0": 5.4, "T": 94, "M": 0.02802, "g": 1.35, "color": "#FFC107"},
}
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
for name, env in envs_atm.items():
H = R_gas * env["T"] / (env["M"] * env["g"])
alt = np.linspace(0, 50000, 500) # [m]
rho = env["rho0"] * np.exp(-alt / H)
ax1.plot(rho, alt / 1000, color=env["color"], linewidth=2, label=f"{name} (H={H/1000:.1f} km)")
# ホバリング可能質量 (Ingenuityと同じロータ仕様) vs 高度
R_rotor = 0.6
N_b = 2
c_blade = 0.05
C_L = 1.0
eta_coax = 0.85
Omega = 2400 * 2 * np.pi / 60 # Ingenuityの回転数
T_alt = 2 * eta_coax * (1/6) * rho * Omega**2 * N_b * c_blade * C_L * R_rotor**3
m_alt = T_alt / env["g"]
ax2.plot(m_alt, alt / 1000, color=env["color"], linewidth=2, label=name)
ax1.set_xlabel("Atmospheric Density [kg/m³]", fontsize=12)
ax1.set_ylabel("Altitude [km]", fontsize=12)
ax1.set_title("Atmospheric Density vs Altitude", fontsize=14)
ax1.set_xscale("log")
ax1.legend(fontsize=11)
ax1.grid(True, alpha=0.3, which="both")
ax1.set_ylim(0, 50)
ax2.set_xlabel("Max Hoverable Mass [kg] (at 2400 rpm)", fontsize=12)
ax2.set_ylabel("Altitude [km]", fontsize=12)
ax2.set_title("Hover Mass Limit vs Altitude", fontsize=14)
ax2.set_xscale("log")
ax2.legend(fontsize=11)
ax2.grid(True, alpha=0.3, which="both")
ax2.set_ylim(0, 50)
ax2.axvline(x=1.8, color="#FF5722", linestyle="--", alpha=0.5, label="Ingenuity mass")
plt.tight_layout()
plt.show()
左パネルの大気密度の高度変化から、各天体のスケールハイト $H$ の違いがわかります。スケールハイトは $H = RT/(Mg)$ で与えられ、大気密度が $1/e$ に減少する高度です。火星のスケールハイトは約11 km(地球の約8.5 kmより大きい)、タイタンは約20 km(低重力のため)です。
右パネルからは、Ingenuityの回転数(2,400 rpm)を固定した場合、火星では高度が上がると急速にホバリング可能質量が減少することがわかります。高度10 km以上では1.8 kgすら飛ばせなくなります。一方、タイタンでは高度30 km以上でも十分な揚力が得られ、高高度探査の可能性が示唆されています。
まとめ
本記事では、他天体での空中探査ロボットについて、火星ヘリコプターIngenuityとタイタンドローンDragonflyを中心に解説しました。
- 空中探査の意義: ローバーの移動速度・地形障壁・探査範囲の制約を、空中移動が解決する
- 火星の飛行環境: 大気密度は地球の約1.6%と極めて薄く、低い音速がロータ設計をさらに制約する。ただし低重力(38%)が部分的にペナルティを緩和する
- Ingenuityの設計: 二重反転ロータ、1.8 kgの極限軽量化、2,400 rpmの高速回転で火星初の動力飛行を実現した。72回の飛行で技術実証を大きく超える成果を達成
- 低レイノルズ数の空力: 火星ブレードは $Re \approx 10^4$ という昆虫スケールの流れで動作し、層流剥離バブルなど特殊な空力現象への対策が必要
- Ingenuityの自律航法: GPS不在環境でIMU・ビジュアルオドメトリ・レーザー高度計をEKFで統合し、完全自律飛行を実現
- タイタンの好条件: 大気密度が地球の4.4倍、重力が14%であり、$g/\rho$ 比は地球の1/32。太陽系で最も飛びやすい天体の一つ
- Dragonflyの構想: 450 kgのオクトコプターで、2.7年間に175 km以上を飛行し、プレバイオティック化学の探索を行う
- 定量比較: Pythonシミュレーションにより、ホバリング回転数・パワー・レイノルズ数・飛行エンベロープの天体間差異を定量的に確認
空中探査ロボットの設計は、流体力学、制御工学、構造設計、電力システムの複合的な最適化問題です。Ingenuityが火星で「飛べること」を実証し、Dragonflyがタイタンで「科学探査のために飛ぶこと」を目指す — この進化の流れは、今後の惑星探査に空中移動が標準的な手段として組み込まれていく未来を示唆しています。
次のステップとして、以下の記事も参考にしてください。