【概要#1】宇宙ロボットの背景を概観してみる

　[Advent Calendar 2024の企画として、Space ROS (Robot Operating System)について集中的に解説/紹介](https://qiita.com/advent-calendar/2024/space-ros)していきます。

# サマリー
宇宙ロボットでSpace ROSを使って行けるようSpace ROSの開発を行っているところです。本記事は、宇宙ロボットの背景ということで、**①Space ROSで動かしたい対象である宇宙ロボットの守備範囲**と、**②現状の宇宙ロボットの課題**、そして、**③なぜ今、宇宙ロボットのソフトウェアなのか**を述べようと思います。

 **①のSpace ROSの対象**とは、つまり、宇宙向けのロボット全般なのでしょうが、これは、**有名な月／火星探査ローバーやロボットアームだけでなく、人工衛星、有人宇宙船/拠点をも含む宇宙機全般に及びます**。

 **②の宇宙ロボットの現状課題**は、**宇宙環境対応**、**ダイナミクスの違い**、そして、**リハーサルが困難である**ことの3つに集約できます。

 **③のなぜ今、宇宙ロボットのソフトウェアなのか**は、**打ち上げコストが下がり、ハードウェアがこなれてきている今だからこそ、ソフトウェア開発に注力できるから**となります。

:::note warn
 本文は執筆した2024年11月時点の情報です。
:::

# ①Space ROSで動かしたい対象
　**Space ROSは、ROS(2)を「宇宙ロボット」に適用しようというプロジェクト**です。ROSに関しては他所でも説明が多くあるのでここでは割愛しますが、ROSはPlumbing(配管)＋Tools＋Capabilities＋Ecosystemでその機能を表現される、50万超えユーザコミュニティに支えられるロボット工学のデファクトスタンダードです。Space ROSのスコープとしては、特にこれら4つの機能を宇宙ロボットに適用しようとしているわけですが、Space ROSが適用したい先の「宇宙ロボット」とは何を含むのでしょうか。

## 「宇宙ロボット」とは
　**「宇宙ロボット」とは、一言でいうと、宇宙向けのロボット**、となります。「海洋ロボット(Marine robots)」「空中ロボット(Aerial robots)」「原子炉ロボット(nucrear robots)」「医療ロボット(Medical robots)」など、「（なんとか環境）ロボット」という切り口の分類はわかりやすいと思います。要するに、宇宙環境で活躍するロボットが「宇宙ロボット（Space robots）」となるのではないでしょうか。

### 「ロボット」ってなんですか？
　「宇宙ロボット」より、むしろこちらの問いかけが難しいと私は思っています：「ロボット」ってなんですか？　具体的に挙げるならば、「お掃除ロボット」や「配膳ロボット」のような生活の中に目に見える形のものもそうですし、PCの中には「生成AI」や検索を引っ掛ける「ボット」、PC上で人間が行っていた作業を自動化・効率化する「RPA」などもモーターはなくても「ロボット」と呼ばれます。**私の感覚ですと、端的に言えば、「動く人工物」はおしなべて「ロボット」と呼べる時代**ではないかと思います。

　具体的に要件は以下の3つです。
+ ロボットは環境からセンサーによる入力を受けます。(sense)
+ ロボットはユーザーからの入力を受け付け、それらからロボット動作を計算します。（plan）
+ ロボットの動作として出力します。(actuation)
　そう考えると、先掲例はすべて確実にロボットですし、「動く人工物」という端的な表現もそう悪くないと考えています。

　この要件に当てはめると、人形劇で使うような操りマリオネットのように、自分で動きを計算しなかったり、センサー入力がなくても動く人工物もあり、それらはここで議論したいロボットからは外れます。自動運転ではない自動車も人が全部操縦しているからロボットではないと思うかもしれませんが、安全装置が付いていて追突防止機能がついた車は、ロボットの要件を満たしていると考えられます。

### Space ROSで動かしたいのは「宇宙向けの動く人工物」
　つまり、「宇宙ロボット」とは、「宇宙向けの動く人工物」です。したがって、**Space ROSで動かしたい対象は、これまでの狭義のイメージで先行している月／火星探査ローバーやロボットアームのみならず、人工衛星、有人宇宙船/拠点をも含む宇宙機全般に及ぶ**と考えられます。なぜなら「宇宙ロボット」の守備範囲が先述のロボットを超えて広範だからです。「人工衛星」も地球センシングや通信やで多数打ち上げられている時代で、運用も徐々に自動化を進めています。今後打ち上げられるものは、有人宇宙船は地上の自動運転車のように、有人拠点（スペースステーション）は地上のスマートホームのようなものになっていくでしょう。３軸制御衛星をやっとやっていた1980年代から比較すると隔世の感ですが、これからますます宇宙においても宇宙機システムのロボット化が進んでいくものと考えられます。

## これまでの（狭義の）宇宙ロボット
　ここまでSpace ROSのスコープに合わせて広めの方向で宇宙ロボットを定義してきました。とは言えこれまでの（狭義の）宇宙ロボットの状況を抑えることも重要です。
 
 　状況としては、後述の宇宙ロボットの課題にも相当するのですが、**少なくともこれまでは宇宙ロボットを頻繁に打ち上げられる環境ではなったので、個体数自体が少なく抽象化が進んでいないことが特徴**となります。例えば、地上で「掃除ロボット」「配膳ロボット」と言えば皆さんの回りを探せば形態は異なるでしょうが抽象化されたロボットとして存在するものでしょう。しかし、「宇宙ロボット」で一般化できるもの自体が希少です。
 
　現状宇宙ロボットで一般化できるのは、「月ローバー」「火星ローバー」くらいなもので、他はあるミッション固有（〇〇ミッションの△△ロボット）で示されるロボットと考えられるのが自然です。

### 月ローバー
　月ローバーは1. 月探査目的のローバーと、有人ミッションで移動向けのローバーに分けられます。
 
 　月探査目的のローバーの代表例は、冷戦中の旧ソ連が打ち上げて最初に月探査ローバーとして活動したLunokhodが挙げられます。Lunokhod 1は1970年11月月面に到達し、以降月の昼間に1ヶ月1km程度のペースで移動し、10ヶ月間月面探査を続けました。その他にも月の裏側に降り立って活動をしている中国の玉兔二号（2019-）や、わずか228gの車体で月着陸探査機SLIMの自律的撮影に成功した日本のSORA-Qが挙げられます。
  
　月での人類史上唯一の有人ミッションであるアメリカのアポロ計画のアポロ15号から17号では、宇宙飛行士が月面でLunar Roving Vehicleを操縦しました。これは人が現地に滞在した数時間限りのミッションですから、生命維持の機能を持ちません。生命維持装置を含む居住機能を有するローバーはアメリカのアルテミス計画内の計画として日本が分担しているLunar Cruiserの計画が進められている段階です。
 
　月ローバーで特に困難なのは、地表面に覆われているレゴリス（細かい砂）の影響と、極端な低温環境です。浜辺で車（自動車でも自転車でも）を走らせる時にタイヤが砂に取られて空転し、やがてスタックしてしまうことが月面でも起きます。月の重力は地球の1/6ですから、高校物理の授業でおなじみの抗力が取れず、摩擦からの推進力を得ることが難しくなります。また、細かい砂が電気機器や機構に挟まることを防ぐ必要があります。一方で、月の日陰の冷え込みは厳しく、夜間には－170度以下になります。特に電気機器や固着する機構を温め続ける必要がありますが、特に駆動系機器やセンサーなどはほぼむき出し状態にならざるを得ないため、設計が難しいです。越夜時には当然その温め続ける電力を蓄える必要があります。

### 火星ローバー
　火星には条件が良い時でも到達するのに１年程度かかりますし、その軌道の条件が良いのも２年に一度のことになります。その分到達できた火星ローバーも月よりさらに限られます。現状火星に探査ローバーを下ろすことができたのは、アメリカと中国のみになります。アメリカは数年に１度、火星に探査ローバーを送っており、一番有名だと思われる火星ローバーはSpiritとOpportunityだと思います。特にOpprtunityは2004年の火星着陸後14年間もサイエンスの活動を続け、42kmの走破も行いその使命を全うしました。その後に送られたCuriosity（着陸2012年）も健在ですし、さらにPerserverance（着陸2021年）も送られています。

　火星ミッションの特徴としては、火星が物理的に地球から遠いため、地球近傍や月ミッションに比べて通信時間がかかってしまいます。最も条件が良いときでも10分程度の通信遅延が発生します。これは当然いわゆるラジコンのようなロボット操縦は困難になります。そのため、地上からは大雑把なコマンドを打ちつつ、細かい動きは現場のロボット側で自律的に判断する制御方法になってしまいます。こうなると、例えば、探査ローバーが危ない地形に入るのを防ぐだけでも地上から非常停止信号を打てないので、すべてローバー制御の設計で対処していく必要があります。

### その他ロボット
　（建設中）

# ②現状の宇宙ロボットの課題
　宇宙ロボットは宇宙で活動するロボット群です。したがって、地上と全く異なる**宇宙環境対応**が目前の技術課題となります。その中でも**重力の違いによるダイナミクス**を特出しで言及します。さらに、宇宙ロボットはミッションクリティカルで使用されることがほとんどであるにも関わらず、**リハーサル困難**です。以降、①の言及と重複は出てきますが、これら課題について言及します。

## 宇宙ロボットの課題1．宇宙環境対応
　地上でロボットを開発するのと確実に異なるのは**宇宙環境対応**です。具体的には、**放射線環境**、**熱真空環境**、**通信環境**、および、（次項に特出しの）**重力の違いによるダイナミクスの違い**があります。また、ロケットで打ち上げる際の**振動環境**にも耐える必要があります。

### 放射線環境
　地球には大気があり、宇宙放射線のほとんどを遮蔽してくれます。宇宙には放射線が降り注いでいます。宇宙放射線は電子部品に悪影響を与えます。ここではシングルイベントエフェクト（SEE）とトータルドーズ（TID）を紹介します。

#### シングルイベントエフェクト（SEE）
　宇宙で降り注ぐ重粒子イオンが電子部品の半導体の絶縁部を貫通し、ショートを起こしてしまいます。これはシングルイベントラッチアップ（SEL）と呼ばれる事象で、最悪の場合は電子部品が破壊されてしまいます。または、メモリーに帯電している電位を変えてしまい、その値を変えてしまいます（シングルイベントアプセット(SEU)）。FET系部品にはSEBやSEGRを気にする必要があります。

　対策としては、一番ストレートなのは、放射線耐性のある宇宙グレードの電子部品を選ぶことです。自分のミッション期間中に浴びてしまうと思われる放射線量を推定し、使用する電子部品がその放射線量に耐えられれば問題が起きることはないと判断します。しかし、所望の機能性能を持った素子があるかは不明ですし、入手性がよくなかったり、しばしば高価です。もしこの手段が使えない場合には、放射線を当てる試験を行ってSELやSEUの発生確率を推定します。自分のミッション期間中にこれが発生しないことを確認するか、もしこれが発生した場合にも設計や運用方法で対処できればそのように対処します。

#### トータルドーズ（TID）
　電子部品に陽子、電子、ガンマ線が降り注いで電離作用が起き、それが蓄積することによって電子部品が劣化する現象です。これに関してもSEEと別に自分のミッション期間中に浴びてしまうと思われる線量を推定して各電子部品について評価を行います。
 
　対策としては、SEEと同様、放射線耐性のある宇宙グレードの電子部品を選ぶのがストレートな対策となります。これが使用できない場合には中性子やガンマ線を当てて評価を行います。TIDの場合は問題となる対象の粒子が陽子、電子、ガンマ線と軽量であるため、電気箱等の遮蔽量を適切に大きくすることによる対処も可能です。

#### 放射線環境の宇宙ロボットへの影響
　地上のロボットソフトウェアを開発したことがある方ならわかると思いますが、ロボットは機能を追求すればするほどすぐにパソコンの計算処理量が大きくなってしまいます。放射線耐性のある宇宙グレードの電子部品は地上の最新鋭のコアが乗っているわけではなく、しかも数量が出るわけではないので受注生産に近い状態です。また、集積度が高いと放射線側のサイズが変わらないため、影響を受けやすいと言われています。しかし、国内外で少しずつボード単位での開発は進んできていますので、完全に悲観する状況ではないですが、**この放射線環境のために計算処理系がタイトであり、そのため宇宙ロボットが進みにくい状況であることは確か**と考えます。

### 熱真空環境
　地上のロボットでも主に計算機や電源となりますが電子部品やモータなどの熱源に気を付けて設計を行いますが、宇宙にも追加の問題があります。宇宙空間では太陽光が直接宇宙機に降り注ぐため、**日照下では120度、日陰では－150度**にもなります。さらに、大気がないため、空気に輻射したり空気対流を使用出来ない環境となり、ほぼ全て筐体に対する熱伝導で対処する必要があります。そんな中、電子部品など温度範囲がある部品は動作範囲内に収めなければならないです。また、機構部品も真空対応が必要であったり、部品間の温度差が激しい場合には熱膨張の影響を確認する必要があります。

　対策としてはMLIと呼ばれる熱的に内外を遮断する毛布で覆う、ヒーターを適切に配置する、ヒートパイプで強制的に熱を循環させるなどの熱設計を行い、許容範囲以内に収める必要があります。機構の真空対応に関しては、真空対応品を使用したりするのが正攻法です。また、適切に真空対応の潤滑を使用も必要となります。

　宇宙ロボットへの影響ですが、やはり**計算処理系が強くなると消費電力が増える、なので、熱設計も大掛かりになってしまう**ことです。

### 通信環境
　宇宙ロボットとの通信には遅延が乗ります。電波は光の速度で伝搬しますので、400km上空の国際宇宙ステーションや37万km離れた月でも1秒程度で伝わるのですが、**地上や現地での処理で数秒オーダーの遅延**が乗ります。月以遠の火星など深宇宙のミッションでは、今度は純粋に距離が長いため、その距離に応じた遅延が支配的となります。

　また、地上側も宇宙機側もアンテナを介して通信を行いますので、地球側のアンテナが宇宙機から見えないときには通信は遮断されてしまいます。地球周回衛星では地球各地の地上局に依頼して通信を確保します。火星周辺では火星に遮られて地球が見えないとその期間は通信ができなくなってしまいます。

　地上ロボットでは難しい場合には人間が判断する設計を取れますが、宇宙ロボットでは最低でも数秒の遅延が発生してしまうことになりますので、**数秒の遅延がクリティカルになるような部分には適切に自律制御系を入れ込む**ことになります。また、**深宇宙ミッションでは間違いなく地上からは大まかな指示しかできない**状況です。地上局で宇宙側の動作の状況予測を適切にシミュレーションする方策も有効です。

### 振動環境
　日本にお住いの方なら種子島や内之浦でロケットを打ち上げるニュースを見たことがあると思いますが、とにかくとんでもない轟音を立ててロケットは地球の重力から逆らい空を超えて宇宙へ打ち上がります。打ち上げるロケットの中には宇宙ロボットが乗っているのですが、**ロケットに乗って打ち上げられる限り宇宙ロボットは振動環境に耐える**必要があります。この振動条件は打ち上げるロケットや宇宙ロボットの搭載位置によって大きく変わります。
 
 　宇宙ロボット側としては、ロボットアームのように質量はあるが剛性が弱い部品は大きく振動すると予想されるため、固定する部材（ロンチロックと呼ばれる）を設計し、固定します。特に小型化を進めた機構部品については振動で壊れてしまわないように注意を払う必要があります。

## 宇宙ロボットの課題2．重力の違いによるダイナミクス
　重力の違いによるダイナミクスの違いが宇宙ロボットの特出し課題、と銘打っています。地上に住む私たちは自然と地球の重力が生活の一部となっています。高校物理で学んだ*F=mg*の*g*, つまり重力加速度が地球上物体に作用します。**宇宙ロボットは地球から離れますから重力環境も地球と異なり、その扱いが課題**となります。

### 行き先が天体の場合
　**行き先が天体であれば異なる*g*がかかり、その*g*の大きさは、その天体の質量に依存**します。月面では地球の1/6なので、宇宙飛行士はスーパーマリオのように高くジャンプができます。アポロ14号でシェパード宇宙飛行士が月面でゴルフボールを打ちましたが、ボールは地上のプロゴルファー顔負けの距離、おそらく300ヤードは軽く超える距離を飛んでいったと推測されます。同様に月面上で棒状のものを突き刺せばより深く刺さり、そのかき分けられた砂は大きく飛散します。一方で火星は地球の1/3、火星の月であるフォボスは地球の1/2000、はやぶさ２で訪れたリュウグウは地球の1/80000とその違いも一様ではないので、問題の一般化が難しいです。ケース数自体が多くないこともありますが、それぞれのケースにおける技術開発を行うことが実際と考えられます。

### 「無重力状態」
　**地球周辺の宇宙空間や重力天体に到達する前の巡航中には重力はかなり小さくなります**。国際宇宙ステーションでふわふわ浮いている宇宙飛行士が実験をしているシーンを見たことがあると思いますが、あれが「無重力状態」です。厳密に言うと重力の影響が０ではないのですが、それが無視できるほどの大きさなので、「微小重力状態」ともいいます。重力がほとんどない国際宇宙ステーションでは、バッグから物を取り出しても固定しなければその物どこかに飛んでいってしまいますし、宇宙飛行士も宇宙ステーションの構造物に足を挟んで係留しないと離れて飛んでいってしまいます。ロボットアームが取り付いている人工衛星は、宇宙空間でロボットアームをぶんと動かすだけで人工衛星本体もその反作用力で回転してしまいます。

### 地球上で異なる重力を作り出すのは困難
　**他天体の重力、微小重力状態、いずれにせよ、地球上でその異なる重力を作り出すのは困難**です。しかし、複雑な動きをするロボットですから現地に送ってクリティカルなミッションを行う前に動作や挙動を入念に確認したいところですが、それも困難ということになります。物理シミュレータも出回っていますし、当然自作もすればいいのですが、例えば物質の接触を伴った動作や（これは地上でも難しい）、ローバーのタイヤと土壌の相互作用（重力に大きく依存する）など、正解が少ない中で合わせ込むのは難しいです。
 
　**無理やり地球上で微小重力を作るとなると、パラボリックフライトや、落下塔を用いた試験を行って自由落下状態を作り出すことが可能**です。また、**空気浮上装置というエアーホッケーのような状態で実験**をすると、2次元の平面方向限定になりますが、無重力状態的状況を模擬することが出来ます。月面の1/6の重力を模擬するには、自重の5/6分を滑車を介しておもりでキャンセルすればよいのですが、これに関しても自分が動くと即座に挙動の模擬が難しくなってしまいますし、ロボットアームのように独立して動作し、重力がかかるものに対しては結局そのアーム部分が地球上の自重がかかってしまうなどの問題があります。いずれにせよ、これらのデータ取りの組み合わせを駆使し、シミュレーションと合わせこんでいく作業が大変になります。
 
# 宇宙ロボットの課題3．リハーサルが困難
　地上でロボットを作る場合、ハードウェア、ソフトウェアを作り込んだ上で動作検証を行います。**究極の動作検証はリハーサル、つまり、使用するように繰り返し動作をさせ、問題点を洗い出す手法**になります。アプリケーションによっては、開発している仕事場で全体検証ができるロボットもあると思いますが、**宇宙ロボットの分野ではそれが困難**です。

### リハーサルが困難なのはロボット開発の共通の課題
　（宇宙でなくても）**ロボット開発でリハーサルが困難であることは、共通的に課題になりうること**だと思います。自律運転車は高速でそれなりの距離を走らせなければならないし、環境もあわせなければならないため必要な設備は大掛かりになりますし、街中で実地試験をするとしたならば安全性を担保してその許可を取っていく必要があります。医療ロボットの場合は、患者さんを傷つけてしまったらアウトなので、手術ロボットなら死んだ動物の臓器を用いるなどして検証試験に使用するなど入念なステップを踏んでいくことになります。
 
### 宇宙ロボットの場合
　**宇宙ロボットの場合も同様にリハーサルが困難**です。例えば、はやぶさ２がタッチダウンでリュウグウの砂を採取しましたが、リハーサルの考えを当てはめるならば、何機もはやぶさ２探査機を作り、それらをリュウグウに送りこみ、何度もタッチダウンのトライができれば、地球への再突入を繰り返し試せれば、やがては成功することになります。ただし、それをするには予算的にも労力的にも現実的ではないのは想像がつくのではないでしょうか。（そこを1度できっちり成功させたところがはやぶさ２の素晴らしい成果なのだと思います。）宇宙ロボットでリハーサルが困難な理由は、**宇宙ロボットのコストが高い**からまだまだ宇宙ロボットが希少な存在だから、と考えています。

# ③　なぜ今、宇宙ロボットのソフトウェアなのか
　Space ROSの開発にあたり、なぜ今、宇宙ロボットのソフトウェアなのか、を考察してみましょう。それは、**打ち上げコストが下がり、ハードウェアがこなれてきている今だからこそ、ソフトウェア開発に注力できるから**となります。

### 宇宙ロボットのコスト 
　「宇宙ロボットの課題3．リハーサルが困難」の項で、まだまだ宇宙ロボットを気軽に打ち上げられる環境になく、希少な存在であることに言及しました。これまではどうしても必要な宇宙ロボットだけを開発してきましたが、それには宇宙ロボットのコストがかかってきていました。つまり、宇宙ロボットのコストが高いのです。宇宙ロボットのコストは、A. 打ち上げコスト、B. ロボット自体のハードウェア開発コスト、C. ロボット自体のソフトウェア開発コストに分解できます。本項では宇宙ロボットのコストをブレークダウンし、なぜ今宇宙ロボットのソフトウェアなのかに言及していこうと思います。
 　
#### A. 打ち上げコストが下がった
　このうち、**Aの打ち上げコストは宇宙ミッションの固定費**です。実は、21世紀に入るまで、いわゆる地球周回低軌道（つまり深宇宙などに比べると近くて打ち上げやすい）にロボットを打ち上げるのにかかっていたのは**1kgあたり$65,000**もかかっていました[1]。これだと10kg,20kgも打ち上げれば億単位のコストです。この環境では確かに民間が手を出せず、NASAやJAXAのような国家機関が国家予算で打ち上げないと話にならなかったのが分かっていただけると思います。しかし、この状況は2010年の**SpaceXのFalcon 9**の登場で大きく状況が変わります。Falcon 9により**1kgあたり$2200**（低軌道22トン、静止軌道8トンの打ち上げ能力、2023年のデータ）までコストが圧縮されました。当然これでもまだまだ高いよという声があるかもしれませんが、**打ち上げコストは民間企業の現実的ハードルの高さに近づいた**ものと考えられます。Aの打ち上げコストが解決に近づくと、次は残りのBとCの宇宙ロボット自体の開発コストの議論が可能です。
 
#### B. 宇宙ロボットのハードウェア開発コスト
　Bのロボットハードウェアは、どういうロボットを作るか次第ではありますが、いずれにせよ宇宙環境対応による検証がたくさん必要になることは「宇宙ロボットの課題1．宇宙環境対応」の項で述べました。これは、宇宙機共通の課題であり、これまでの宇宙ロボットはこの対処で精一杯だったことがほとんどだったと考えられます。その一方で、Aで言及したように打ち上げコストが下がれば、打ち上げケースが増えていきます。行き先やミッションが異なるとハードウェアは違うと思いますが、少なくともBの宇宙環境対応の部分に関してはハードウェアが共通的にこなれてきたと考えられます。これには、ロボットの機構類もそうですが、計算処理系も含まれます。

#### C. 宇宙ロボットのソフトウェア開発コスト
　打ち上げコストが下がり、計算処理系を含むハードウェアがこなれてくると、次はようやくソフトウェア開発に取り組める環境が出来つつあると考えられます。特に「宇宙ロボットの課題2．重力の違いによるダイナミクス」は、宇宙ロボット固有の課題を制御的に対処する要素も多く、制御ソフトウェアや自律ソフトウェアの整備も可能です。そして、それに伴い、地上の処理系、地上試験検証系、シミュレータの整備が進んで来ると考えられます。

# まとめと予告
　宇宙ロボットの守備範囲には、月や火星探査ローバー、ロボットアーム、人工衛星、有人宇宙船などが含まれます。現状の宇宙ロボットの課題は、宇宙環境への対応、異なるダイナミクス、リハーサルの難しさの3つに集約されます。打ち上げコストの低下とハードウェアの進化により、今こそソフトウェア開発に注力すべき時期であり、それを実現するのがSpace ROSだと私たちは考えています。以降Space ROSの中身や周辺トピックについて言及していくつもりですが、明日はSpace ROSの目的について言及します。

https://qiita.com/yuyuqq/items/cbe07bfe8e8767c095f7


[1] Ourworldindata.org, Cost of space launches to low Earth orbit 
https://ourworldindata.org/grapher/cost-space-launches-low-earth-orbit (accessed in 2024/12/1)