組込みシステムにおけるROS 2の動向とRTOSの対応佃 明彦
ソリューションエンジニアリング事業部
イーソル株式会社
0© 2019 eSOL Co., Ltd.

2019-09-25

組込みシステムにおけるROS 2の動向

1

© 2019 eSOL Co., Ltd.

2019-09-25

1

組込みシステムとROS 2

製品開発への適用

組込みマイコン対応
2

リアルタイム制御© 2019 eSOL Co., Ltd.

State of ROS 2
http://roscon.ros.org/2015/presentations/state-of-ros2.pdf
2019-09-25

2

ROS 2の組込みマイコン対応
EU/OFERAプロジェクトのmicro-ROS
マイコン向けのROS 2アーキテクチャ• 組込み用Client library（Real-time Executor等）• Agent-Client方式のDDS通信（DDS-XRCE）• マイコン用RTOSでの評価（NuttX, FreeRTOS等）

Embedded WG• 組込み環境でのメモリサイズ調査やパフォーマンス改善• micro-ROSを使ったデモの紹介• 今後はEmbedded Linuxも対象に

GR-ROSEも︕

Architecture | micro-ROS
https://micro-ros.github.io/docs/overview/3© 2019 eSOL Co., Ltd.

2019-09-25

3

ROS 2のリアルタイム制御
ROS 2の各レイヤでリアルタイム化の議論が開始• ノード内処理（rclcpp、rcl、rmw、その他ライブラリ）• ノード間通信（DDS、Intra-process通信）• OS（カーネル、デバイスドライバ）

Event4

Node A

Node B

Realtime WG

rclcpprclcpprcl

rcl• ROS2内部実装のリアルタイム化

rmw

rmw

DDS

DDS

OSOS

• 静的/動的解析やトレースツールによる検査• 組込みボード上でperformance_testのCI
Deadline© 2019 eSOL Co., Ltd.

2019-09-25

4

ROS 2の製品開発への適用
CIによるコード品質の検査
サニタイザによる解析• Address Sanitizer（ASan）• Thread Sanitizer（TSan）

ROS 2の品質特性を向上させるためのWG活動• Quality Assurance WG• Safety-critical WG• Security WG

https://ci.ros2.org/

5© 2019 eSOL Co., Ltd.

2019-09-25

5

RTOSの対応

6© 2019 eSOL Co., Ltd.

2019-09-25

6

ROS 2になぜRTOSが必要か?
設計者がシステムのリアルタイム性を担保するための機構
EmbeddedやRealtimeのWGで検討中のリアルタイム実装に欠かせない機能

スケジューリング• 優先度ベーススケジューラの利用• リアルタイムスレッドの分離
メモリ管理• ページフォルトやTLBミスの防止• 処理時間⼀定のメモリアロケータ
同期プリミティブ• 優先度逆転の回避• 無限待ちの回避
リアルタイム性保護機構• CPU時間の割り当てに基づく時間保護

Autoware.Auto demo on R-CarH3
7© 2019 eSOL Co., Ltd.

2019-09-25

7

スケーラブルRTOS eMCOS
Deterministic

Scalable

セミプライオリティベーススケジューリング
（特許第5734941号、5945617 取得）

8

独自の分散型マイクロカーネルアーキテクチャによりシングルコア、メニーコア、マルチチップまでサポート

Verified and Certified

Ready for ROS & ROS 2

最新バージョンはISO26262 ASIL Dで認証取得活動中

ROS と ROS 2 をサポート© 2019 eSOL Co., Ltd.

2019-09-25

8

eMCOSのROS/ROS 2対応
GCCツールチェーンの開発••

ROS App

eMCOS用にROS/ROS 2アプリケーションをクロスビルドするGCCツールチェーン
catkin, colconへのインテグレーション

ROS2App$catkin$colcon

組込みボードを使ったCI•••

ROS1（ros_comm/rostest他）
ROS2（ros2/system_tests他）
C/C++ライブラリ（libc, stdc++, boost）

今後の予定•••
9rclcpp

GitHubでのツールチェーン公開
ROS/ROS 2評価パッケージの提供
eMCOSが持つリアルタイムなメッセージングの統合© 2019 eSOL Co., Ltd.

rclrmw
eMCOS Messaging
2019-09-25

9おわりに組込みやリアルタイムでの利用に向けて
ROS 2は大きく進化中
組込みやリアルタイムが得意な日本のロボットメーカーを中心に、早くROS 2を使ってフィードバックを︕︕
10© 2019 eSOL Co., Ltd.

2019-09-25

10

参考情報
micro-ROS• OFERA, micro-ROS | ROS 2 for microcontrollers, https://micro-ros.github.io/• OMG, About the DDS For Extremely Resource Constrained Environments Specification
Version 1.0 beta 2, https://www.omg.org/spec/DDS-XRCE/About-DDS-XRCE/
ROS 2のリアルタイム実装• ros2/realtime_support: Minimal real-time testing utility for measuring jitter and latency.，
https://github.com/ros2/realtime_support• Jackie Kay et al., Real-time control in ROS and ROS 2.0,
https://roscon.ros.org/2015/presentations/RealtimeROS2.pdf• Introduction to Real-time Systems,
http://design.ros2.org/articles/realtime_background.html• Proposal for Implementation of Real-time Systems in ROS2,
http://design.ros2.org/articles/realtime_proposal.html
eMCOS• eSOL, メニーコアプロセッサ対応スケーラブルリアルタイムOS,
https://www.esol.co.jp/embedded/emcos.html•11

GitHub esol-community, https://github.com/esol-community© 2019 eSOL Co., Ltd.

2019-09-25

11

Thank you.
We are hiring!!
特に関⻄のROSエンジニアを募集中
www.esol.co.jp

本発表の⼀部は、国⽴研究開発法人 新エネルギー・産業技術総合開発機構(NEDO)の委託業務で得られたものです12© 2019 eSOL Co., Ltd.