Nerves(ナーヴス)のアドバンテージの1つであるOver the air(OTA),すなわち,オンライン越しにセキュアにアップデートできる機能は,これからの宇宙機に強く求められる特性の1つです.北九州市立大学と株式会社ダイモンは,世界最小の月面探査車YAOKIの次期コンピュータシステムのソフトウェアとして,Nervesを採用しようと,日夜,研究開発を進めています.
世界最小の月面探査車YAOKIについては,下記,株式会社ダイモンのホームページをご覧ください.
月面探査車YAOKIのビジネスモデルの特徴と,ソフトウェアに求められる要件
YAOKIのビジネスモデルについては,下記ページよりダウンロードできる「Project YAOKI 事業紹介資料」に詳述されています.ご興味のある方はお取り寄せください.
ビジネスモデルから読み取れるように,YAOKIは宇宙・地上の両方に展開していきます.月面においては,1台のYAOKIで多様な企業様の多様なニーズに同時に応えるように設計する必要があります.かつ,1台1台が異なるようなYAOKIを100台以上も月面へ送り込むようなことを行います.
必然的に,様々なハードウェア部品に対応する多様なデバイスドライバを備えた上で,多様なファームウェアとアプリケーションソフトウェアを実行してYAOKIを制御し,さらにそのようなYAOKIが多数お互い通信・連携し合って動作することが求められます.
それを実現しようと思うと,少なくともそのようなソフトウェアをC言語プログラミングで1つ1つ手作りで開発していくというのでは,到底スケールしません.もっと効率的にソフトウェア・コンポーネントの組合せで効率よく開発できるような,モダンなフレームワークが求められます.
また,YAOKIの様々なハードウェア技術の進化により,最初は電池が切れたらおしまいだったのが,長寿命化していき,何年以上にもわたって様々なミッションをこなすことができるようになることが想定されます.そうすると,途中でミッションが変わった時に,ソフトウェアをアップデートする機能が欲しくなります.
OTAを備えたモダンなIoTフレームワークNervesで解決
前述の要望・技術的課題を整理すると次の通りになります.
- 効率的にソフトウェア・コンポーネントの組合せで効率よく開発したい
- 途中でミッションが変わった時に,ファームウェアをアップデートしたい
こうした要件に応えることができると我々が期待しているのが,ElixirベースのIoTフレームワークであるNervesです.Nervesにより,次のように技術的課題が解決されます.
- Elixirでは Mix というビルドツールと Hex というパッケージ・マネージャが標準で備わっており,パッケージ単位でソフトウェア・コンポーネントを扱うことができる
- Nervesでは,SSH越しにファームウェアをアップデートする機能が標準で備わっている
さらにFPGAを用いることの利点
とくにミッションを途中で変える場合,ソフトウェアだけでなく,ハードウェアを構成する論理回路もアップデートできるとより効果的です.そこで,FPGAの導入です.
下記イベントにて「FPGAによる宇宙機向け高速画像処理・信号処理・機械学習とアップデート機構の実現」を発表しました.
講演スライド(PDF)は下記からダウンロードください.
発表のYouTube動画はこちらです.
NervesのOTAを用いて,FPGAのロジックをパーシャル・リコンフィギュレーションする技術も開発していきます.
将来課題
地球と月の間のネットワーク通信は,多大な遅延時間があり,かつ帯域幅が狭いものです.そのため,Nervesを実用的に月面で活用するためには,ファームウェアをビルドするホスティング・サーバーやパッケージ・マネージャHexを,地球とも適宜同期しつつ月面上にローカル配置するようなエッジ・コンピューティングを行うことが必須になるでしょう.この点については,「Elixir,月へ行く」で議論したいと思います.
また,このような宇宙機でもモダンなソフトウェア開発手法を取り入れてシステム開発を効率よくしていく必要があること,宇宙機ではとくに信頼性が重要であることを両立する必要があります.この点については,「宇宙機にも現代的なCI/CDを取り入れたい」で議論したいと思います.
謝辞
本研究の一部は,北九州産業学術推進機構(FAIS)衛星データにかかる新技術開発事業の支援を受けた.