**********************************************************************
セッション:s3b
テーマ  :ROS2リアルタイムの最新動向の紹介と、ROS2への期待 
       − 超小型宇宙探査機が広げる世界と背景にある技術
       − 宇宙における組み込みソフトウェア開発事例紹介
講師   :長谷川 敦史氏 (株式会社 システム計画研究所)
      清水 敏郎氏 (株式会社 システム計画研究所)
日時   :2020/8/21(金) 11:30~12:40
参加人数 :28名(終了時)
**********************************************************************


ROS2リアルタイムの最新動向の紹介と、ROS2への期待
----------------------------------------------------------------------
・ROS の基本的な話
 オープンソースで提供されるロボット向けの メタ・オペレーティングシステム
 トピックを介した Pub/Sub 方式の通信を採用
 ROS 2 は通信プロトコルを OMG 規格に変更
 ROS 1 と ROS 2 間の通信にはブリッジが必要

・ROS 2 のリアルタイム性
 リアルタイム性とは、システムが定められた時間要件を満たして動作する性質
 コールバックのスケジューリング
  Single (static) /Multi thread executor (C++)
  Cbg executor (C++)
  RCLC executor (C)
  ThreadedCallback (C++)
 更に厳しいリアルタイム性に向けて関連した話題を紹介
 高速な通信方式
 デッドライン・オーバーランの検出
 リアルタイム処理に優れたスケジューリング

 DDS や Executor 単体/複合 での評価・改良が必要。 現状、個別の評価が進んでいる状態。
 我々のチームでは Executor の評価・提案を進めています

・ROS 2 への期待
 ロボットソフトウェアの共同開発を全世界的に推進する

 利用者としてのメリット
  労働・コスト・時間 の分散
  知識・知恵・経験 の共有

■質疑応答

参加者Aコメント:MQTT-SN GatewayのEvent driven Taskも同じようなことやってるかも。

参加者Bコメント:スケジューラーの辺りが興味深かった
長谷川さん:この辺りがまとまっている情報がなかったので今回まとめてみました。

Q.:今一番力を入れているところは?
A.:既存のExecutorではできていないこと。RTLC-Executorではリアルタイムに対応できる
  言っているがマルチスレッドに対応していないなどの課題がある。マルチコアで
  リアルタイムの領域を狙ってる。

Q.:マルチコアでの話をもっと聞けるとうれしいかった。
A.:この辺りの話は、AUTOSARに適用されている内容がROSにフィードバックできるのでは
  ないかと考えている

----講師交代

− 超小型宇宙探査機が広げる世界と背景にある技術 -  宇宙における組み込みソフトウェア
  開発事例紹介

・月面探査車 SORATOの開発 - 超小型機が広げる世界
 国際宇宙探査レースと民間事業者による宇宙開発の拡大
 ハードウェアからソフトウェアへ、大型から小型へ
 宇宙機をとりまく特殊な環境・開発の留意点
・超小型人工衛星ソフトウェアプラットフォーム
 Command Centric Architecture (C2A)
 Spacecraft Simulation Environment (S2E)

・Google Lunar X Prizeとは
 月を舞台にした国際レースGoogle Lunar XPRIZE

・超小型衛星開発の利点
 「短期間」かつ「低コスト」でミッションを実現できること

・近年の超小型衛星を取り巻く環境
 ミッションの高度化に伴う「高性能化」と「運用の長期化」が求められる
 「短期間」「低コスト」と相反

・超小型衛星開発の課題
 超小型衛星用におけるS/W開発の再利用性の低さ、低信頼性
 H/W中心の開発による柔軟性の低さ
 S/W再構成のハードルの高さ
  S/W全入れ替え(リスク高い)orパラメタのみ変更可能(柔軟性低い)といった点など
 宇宙開発を学ぶことへの敷居の高さ

・S/Wの高い再利用性・高信頼化・高い柔軟性、教育プラットフォームとしての機能を持つ
 開発プラットフォームの整備・活用が望まれる

・まとめ
・近年、民間や中小宇宙機関による宇宙開発が活発
 小型化、 民生品+ S/W開発に軸足が移行しつつあり
 深宇宙(月以遠)探査を見据えた超小型探査機開発も加速
 耐宇宙環境探査機開発を支える技術がS/Wプラットフォーム化されていて改良中
・耐放射線性
 冗長化
 メモリスクラビング
 リセッタブルシステム
 放射線試験/耐放射線性民生品利用
・耐熱(高温・低温)性
 低エネルギー運用
 熱真空試験、熱解析
・故障修理難度が高い/ 宇宙に行ってdebugは難しい
 信頼性向上・ 地上での宇宙環境評価(SILS, HILS)
 再構成性

■質疑応答

Q.:C2Aは公開されているバージョンとかあるのでしょうか?ほどよしSDKとの違いも知りたいです。
A.:C2Aに関してはまだ公開されていません。ただし、(汎用的に使える形にして)今公開を
  目指して活動をしているところです。

Q.:ROSを宇宙で使う場合の期待・課題はありますか?
A.:プロトタイプでは使っていました。ローバーなどでは使いやすいプラットフォームは使って
  いこうという動きはあるように思います。

Q.:構成でFPGAを利用していましたが、どういう用途で利用していますか?
A.:電源ユニットなど、サブモジュールの情報を集約してデータのやり取りをする部分やメイン
  コンピュータと独立して自律的に動かしたいところで利用しています。

Q.:FPGAはSRAMの塊ですが、宇宙で利用しても問題ないですか?
A.:FPGAに限りませんが、放射線によりRAMが影響を受けるものはリセット可能なところで利用しています。
放射線耐性のあるものは、メインコンピュータと独立して自律的に動かしたいところで利用しています。

参加者Cコメント:FPGAは、RAMでなくて、フラッシュメモリで回路定義が記憶されます。

Q.:ソフトウェアの信頼性はどのように確保していますか?
A.:階層的に異常を処理/影響範囲に応じたリセットをするようにして復旧可能にしたり復旧可能に
  したり、回復できない部分は異常箇所を切り離して信頼性を確保しようとしています。
  個々で対応の仕方が違いますが、例えば、ソフトで冗長化して、3つの多数決で決めたり、
  ビット反転した場合の対策、不具合の分析、プロセス改善などいろいろ行っています。

Q.:ハードの冗長化は行わない?
A.:コストの問題でハードの冗長化はなるべく行っていない。なるべくソフトの方でチェックできる
  方法を考えている。

Q.:ハイブリッド通信(2.4GHz, 900MHz)にしている理由は?
A.:月面の環境が分からないので、設計当初は速度優先のものと回折性の優れているものを利用しよう
  として検討していました。

以上。