More Related Content Similar to 01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
Similar to 01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉 (20) 01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉4. 3©2019 @MoriKen254
ROSの位置づけ
ユーザアプリ
オペレーティン
グシステム
ハード
パソコン スマホ ロボット
ROSはここ!
※ロボット主体なら
PCのOSもロボの一部
(ファームの一種)
※パソコン主体なら
ROSはミドルウェア
ファーム
BIOS (UEFI 等) BIOS的な
何か BIOS (UEFI 等)
※「OSではなくミドルウェアと
呼ぶ方が正しい」という議論が
頻繁にされるが、それは安直?
※彼らは本気で「OS」と主張した
からこそ、成功したと考える。
※ 「ミドルウェア」という意識で
は「パソコン主、ロボット従」。
※ 「ROS」の哲学は
「ロボット主、パソコン従」
※画像出典は後述
5. 4©2019 @MoriKen254
• ミドルウェア
• ミドルウェアとは、ソフトウェアの分類のうち、オペレーティングシステム
(OS)とアプリケーションソフトの中間的な処理・動作を行うソフトウェア
のことである。
引用:weblio辞書
ハードウェア
OS1
ドライバ1
アプリケーション
モータA
センサA
ハードウェア
OS2
ドライバ2
モータB
センサB
アプリケーション
OSやドライバの違いを意識して
アプリケーション側のコードまで変えないと
いけない事態に…
使えるものは
移行したい
ロボットソフトウェアプラットフォーム(ミドルウェア)のイメージ
出典:https://www.cleanpng.com/png-world-
robot-olympiad-4549552/preview.html
出典:https://frame-
fukuoka.blogspot.com/2019/08/blog-post_934.html
6. 5©2019 @MoriKen254
OSやドライバまで見る必要はない.ミドル
ウェアとのやりとりだけを考えればよいので,
アプリケーションの移行が容易になる
• ミドルウェア
• ミドルウェアとは、ソフトウェアの分類のうち、オペレーティングシステム
(OS)とアプリケーションソフトの中間的な処理・動作を行うソフトウェア
のことである。
引用:weblio辞書
ロボットソフトウェアプラットフォーム(ミドルウェア)のイメージ
ハードウェア
OS1
ドライバ1
ハードウェア
OS2
ドライバ2
ミドルウェア ミドルウェア
使えるものは
移行したい
モータA
センサA
モータB
センサB
App1 App2 App3 App1 App2 App3
出典:https://www.cleanpng.com/png-world-
robot-olympiad-4549552/preview.html
出典:https://frame-
fukuoka.blogspot.com/2019/08/blog-post_934.html
8. 7©2019 @MoriKen254
ロボット開発用メタ・オペレーティング・システム(ミドルウェア)
通信ライブラリ
I/Fが共通化。ユーザはOSやハードウェアの詳細な仕様を知らなくても良い。
タイムスタンプ、時刻同期、排他、形式の異なるデータの通信…全部面倒を見てくれる (ToT)
開発・操作ツール
異なる言語で組んだプログラムを使用しても依存関係を解決しながらビルド。
可視化、デバッグが容易に。
高機能ライブラリ
シミュレータ、座標変換、ナビゲーション、パスプランニング…
エコシステム
開発者コミュニティ、Wiki、QA、メーリングリスト、開発者会議…
ROS[1]とは?
ROSは「ロボット開発用メタ・オペレーティング・システム(ミドルウェア)」
[1] Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler and Andrew
Y Ng: ROS: an open-source Robot Operating System, In ICRA workshop on open source software, 3, 5 (2009)
9. 8©2019 @MoriKen254
• Switchyardプロジェクト @スタンフォード大学
• 研究開発・教育用途としての、ロボット開発プラットフォームを開発
ROS開発の背景
移管
スピン
アウト
収益化
?
• 2007~2012: Willow Garage
• 米国ロボットベンチャー(パーソナル、サービス用途)がSwitchyardの開発を引き継ぐ。
• 様々なソフトウェアプラットフォームを開発(OpenCV等)。
• 「ROS 1.0」(「学」向け) をリリース。
• 2012~2017: OSRF (Open Source Robotics Foundation)
• ROS事業をスピンアウトし、管理運営を移管。
• この間に産業利用の要望が出てきたためROS-Industrialコンソーシアムが設立。
• 「ROS 2.0」 (「産官」向け) をリリース。
• 2017~現在:Open Robotics
• 研究・教育ベース(学)から、商用ベース(産官)へシフトの気配?
• 営利団体への舵切りを強くし、マーケットでもプラットフォーマを目指すのでは?(妄想)
10. 9©2019 @MoriKen254
ROSが使われているフィールド(研究)
DARPA Robotics Challenge Amazon Picking Challenge
出典:https://japan.zdnet.com/article/35110483/9/ 出典:https://www.innovations-report.com/html/reports/information-technology/
rosin-project-towards-an-eu-digital-industrial-platform-for-robotics-through-open-source-software.html
つくばチャレンジ
出典:https://www.kyutech.ac.jp/whats-new/education/entry-3977.html
出典:https://www.afpbb.com/articles/-/3137553 出典:https://historyofai.wordpress.com/2014/04/13/secondary-
initiatives-robocup-rescue/
RoboCup (Succor, Rescue, @home)
出典:https://www.femexrobotica.org/tmr2018/en/portfolio-item/robocuphome/
11. 10©2019 @MoriKen254
ROSが使われているロボット(商用、産業用)
AmazonSony Softbank TOYOTA x PFN
HONDANASA
JAXA
Panasonic
Hitachi
FANUC KAWADA Rethink
NTT x Vstone
RT
SIEMENSE PLM
出典:https://aibo.sony.jp/store/
出典:
https://www.itmedia.co.jp/news/articles/1612/
06/news107.html
出典:
https://hasigo.co.jp/blog/aipepper/
出典:
https://tech.nikkeibp.co.jp/atcl/nxt/ma
g/rob/18/00007/00008/
出典:
https://rosindustrial.org/news/2015/9/15/advanced-
simulation-of-ros-i-in-process-simulate
出典:
https://www.vstone.co.jp/produ
cts/sota/
出典:
https://tech.nikkeibp.co.jp/atcl/nxt/mag/rob/18/00003/120500023/
出典:https://www.digitalavmagazine.com/pt/2015/08/25/el-
robot-panasonic-hospi-ayuda-en-la-entrega-de-medicinas-en-el-
hospital-de-cgh/
出典:
https://gigazine.net/news/20100205_robonaut/
出典:
https://www.honda.co.jp/news/2016/c160712.html
出典:
http://potblog.hatenablog.com/entry/2018/01/08/162323
出典:hhttps://www.kawadarobot.co.jp/gallery/ 出典:
https://matome.naver.jp/odai/214118112329027
2801/2141181364092256903
出典:
https://roscon.ros.org/jp/2018/presentations/RO
SCon_JP_2018_presentation_6.pdf
出典:
https://tech.nikkeibp.co.jp/dm/article/COLUMN/2
0130128/262741/
13. 12©2019 @MoriKen254
ロボット開発用メタ・オペレーティング・システム(ミドルウェア)
トピック
パブリッシュ・サブスクリブ型で非同期に情報を取得
サービス
同期通信方式で、クライアントからの処理の要請・サーバからの応答、という形式。
パラメータ
ネットワーク全体で一元的に管理・共有される情報。パラメータサーバへの取得・更新問合せ。
ROSの基本構成(おさらい)
連携方法の違いにより大別して3つ[2]
[2] 西田, 森田, 岡田, 原, 山崎, 田向, 垣内, 大川, 齋藤, 田中, 有田, 石田: 実用
ロボット開発のための ROS プログラミング, 森北出版株式会社 (2018)
14. 13©2019 @MoriKen254
DDSの採用
マスタ不要+様々な恩恵。後述。
rcl/rmwによる仕様の明確化
言語拡張性を担保。
ROS2
ROS1/2のアーキテクチャの比較
ROSマスタが必須
単一障害点。
TCPROSの仕様が不明確
言語拡張性が欠落。
ROS1
[3] 近藤: ROS2 ではじめよう次世代ロボット
プログラミング, 技術評論社 (2019)
16. 15©2019 @MoriKen254
3. ROS2 の特長 ~論文サーベイを添えて~
3.1. ネットワーク品質
3.2. セキュリティ
3.3. 組込みシステムサポート
3.4. リアルタイム制御
3.5. ロボットの同時利用
©2019 @MoriKen254
17. 16©2019 @MoriKen254
柔軟なネットワーク構成が可能
通信速度を重視する場合:UDP 的な振る舞いに
確実なデータ送信をする場合:TCP 的な振る舞いに
品質と速度のトレードオフ
品質を上げれば速度が落ちる:当然
ROS1 vs. ROS2[4]
メモリ使用量はROS2の方が大(ROS2の方が弱い)
プロセス内通信で大容量データを扱う場合はROS2
のレイテンシは大(ROS2の方が弱い)
その他の条件では、ROS2は概ねROS1と同等の
パフォーマンス
3.1. ネットワーク品質
QoSの恩恵
[4] Yuya Maruyama, Shinpei Kato and Takuya Azumi: Exploring the performance of ROS2,
In Proceedings of the 13th International Conference on Embedded Software, 5 (2016)
18. 17©2019 @MoriKen254
ソフトウェアセキュリティレイヤのサポート
PKI (公開鍵認証基盤) とDH (DiffleHellman) 法の活用
セキュリティと速度のトレードオフ
セキュリティを強化すれば速度が落ちる[5]:当然
レイテンシ 約4倍、スループット 約1/5
SROS2[6] vx. VPN
VPNの方が高パフォーマンス[7]
SROS2はVPNに比べて
レイテンシ約2倍、スループット 約1/2
3.2. セキュリティ
DDSによるセキュリティのサポート
[5] Vincenzo DiLuoffo, William R Michalson and Berk Sunar: Robot Operating System 2: The need for a holistic security approach to
robotic architectures, International Journal of Advanced Robotic Systems, 15-3, 1729881418770011 (2018)
[6] Ruffin White, Dr Christensen, I Henrik, Dr Quigley et al.: SROS: Securing ROS over the wire, in the graph, and through the kernel,
arXiv preprint arXiv:1611.07060, (2016)
[7] Jongkil Kim, Jonathon M Smereka, Calvin Cheung, Surya Nepal and Marthie Grobler: Security and performance considerations
in ros 2: A balancing act, arXiv preprint arXiv:1809.09566, (2018)
19. 18©2019 @MoriKen254
今まではシリアルだった
ROS1では有志によるmROSがあった[8]
必要十分なレートで動作実証済み
IMU、カメラにて実証[9]
3.3. 組込みシステムサポート
組込みボード上でノード実行可能
[8] Hideki Takase, Tomoya Mori, Kazuyoshi Takagi and Naofumi Takagi: mROS:A Lightweight Runtime Environment for Robot Software Components onto Embedded Devices, In Proceedings of the 10th
International Symposium on Highly Efficient Accelerators and Recongurable Technologies, 7 (2019)
[9] Morgan Quigley: ROS2 on “small" embedded systems, (2015)
20. 19©2019 @MoriKen254
倒立振子のシミュレーション[10]
1,000Hz でリアルタイム制御を実現
マイコンを利用したリアルタイム制御[11]
1,000Hz でPWMによる電圧制御を実現
FreeRPTSとFreeRTOS を連携
STM32F4-Discovery で実験
3.4. リアルタイム制御
UDPベースによりリアルタイム制御が可能に
[10] Dirk Thomas, Esteve Fernandez and William Woodall: Real-time Performance in ROS 2, https: // roscon. ros. org/2015/ , (2015: accessed 2019.09.29)
[11] Lucas da Silva Medeiros, Ricardo Emerson Julio, Rodrigo Maximiano Antunesde Almeida and Guilherme Sousa Bastos:
Enabling Real-Time Processing for ROS2 Embedded Systems (2019)
21. 20©2019 @MoriKen254
郡ロボット研究での活用[12]
シミュレータで100台,実機で10台を同時制御
3.5. ロボットの同時利用
ROSマスタ不要に
[12] Agata Gniewek, Micha l Barcis and Christian Bettstetter: Robots that sync and swarm: A proof of concept in ROS 2, arXiv preprint arXiv:1903.06440, (2019)
23. 22©2019 @MoriKen254
4.1. OSS のライセンス問題
BSD, MIT 等
免責事項さえ書けば良い
Apache 2.0
訴訟を起こした瞬間特許権剥奪
寛容型ライセンスでは秘匿化可能
GPL, LGPL 等
開示要求されたら拒否できない。
共存問題を起こしやすい
プログラム頒布が不能となる。
互恵型ライセンスでは秘匿化不可
[13] 上田理,岩井久美子: OSS ライセンスの教科書: ソフトウェア開発の現場で求められる適切な
利用方法, 技術評論社 (2018)
25. 24©2019 @MoriKen254
4.2. 規格・リスクアセスメント
遊びじゃない
お金を頂いて、お客様に価値を提供するということ。負の価値を提供してはならない。
遊ぶなとは言っていない。遊び心は必要だが出口はキッチリ締るべし。ルールを目的化しない。
規格 (ISO/CE/JIS) は入門チケットでしかない
何をもって品質保証を担保するのか?そのガイドラインと思って良い。
世界で浸透している価値なので、業界やマーケットへの説明がつきやすい。
製品開発[14]、環境保全、安全(リスクアセスメント[15])等、様々な規格が存在する。
規格はマネジメント「システム」の構築論 → 人づくり・仕組みづくり からの ものづくり
規格を満たすことが目的化してはならない。
規格を満たす組織を構築するための基本指針であり、その根底に流れる信念を忘れてはならない。
世に製品を出荷するということ
[14] 安藤慶昭: ロボットミドルウェアの動向と今後の展望―システムインテグレーションの観点から―, 計測と制御, 57-10, 682/687(2018)
[15] Ryan Gariepy: 基調講演1: 安全なロボットへの 8 ステップ, http: // roscon. jp/2019/ , (accessed 2019.09.29)
26. 25©2019 @MoriKen254
4.3. 製造物責任
不具合がおきてしまったらどうする?
社内での再発防止策は当然のこと。お客様が被った損害をどう保証する?
「それはROSのバグなんで弊社の責任では有りません」などと、言うわけにはいかない。
PL 保険組合の設立
商工会議所での総合保険[16] 、業界に特化した保険組合[17]で相互扶助をする必要あり。
自動運転業界の法律面での議論[18][19]・動向を観測しながら、ROS・ロボット側に適用してゆく。
コンポーネントベンダの責任か?SIerの責任か?顧客の責任か?
いざというときに備えて、責任の所在は明確にしておかないといけない。
部品が原因でシステムに伝播した不具合だったら?部品が悪い?
混入した悪い部品を検知・システム停止できなかったSIerが悪い?そんな使い方をした顧客責任?
それでも不具合は起こる
[16] 日本商工会議所: ビジネス総合保険制度, https: // hoken. jcci. or. jp/business , (accessed 2019.09.29)
[17] 日本食品衛生協会: 食品営業賠償共済, http: // www. n-shokuei. jp/ kyousai/baisyou. html , (accessed 2019.09.29)
[18] 小林正啓: 自動運転車の実現に向けた法制度上の課題, 情報管理, 60-4, 240/250 (2017)
[19] 大羽宏一: 自動運転を巡る産業界の動向と今後の社会のあり方, 損害保険研究, 79-1, 105/134 (2017)
27. 26©2019 @MoriKen254
ROSがやるのはアプリケーションレイヤのみ。制御レイヤは自社製で固く守る。
埼玉大学: 産業応用を目的としたエンジニアリングサンプル[20] (RT-Middlewareの研究開発事例)
Denso Wave: オープンソースコントローラ
Sony: aibo
4.4. 製品化事例
大事なところはROSにはやらせない
[20] 高橋直希,藤間瑞樹,程島竜一,琴坂信哉: RT ミドルウエアの産業応用を目的としたエンジニアリング
サンプルの開発, 日本ロボット学会誌, 33-5, 370/378 (2015)
[21] 岡田慧,植田亮平,村瀬和都,垣内洋平,稲葉雅幸,犬飼利宏: 産業ロボット用オープンソースコントローラ
の設計と開発, 第14 回計測動制御学会システムインテグレーション部門講演会 (SI2013), 2G3-3 (2013)
[22]藤田智哉: aibo における ROS の利用とソニーの取り組み, https: // roscon. jp/2018/ , (2018: accessed 2019.09.29)
ROS
ROS
RT-Middleware
29. 28©2019 @MoriKen254
まとめ
DDSの採用により市場ニーズを捉えた機能が追加された
言語拡張性、ネットワーク品質、リアルタイム性、組込みシステム対応、ロボットの同時利用
まだ発展途上 → 一緒に作り上げていく心構えを
パフォーマンスの作り込み、標準ライブラリの整備、周辺機能の完成度等、これからの発展を応援
ROS2の現状
エンジニアの(独断的な)夢だけでは飯は食えない
ライセンス、規格、リスクアセスメント、品質保証、製造物責任。全部面倒を見て初めてメーカ。
ROSを使うならまずはアプリケーションレイヤから
不確定要素の混入が事故を招きうる制御レイヤは、信頼と実績のある既存の仕組みを使うべき。
ROSを活用したビジネス展開
30. 29©2019 @MoriKen254
• https://www.irasutoya.com/
• https://www.google.com/intl/ja_jp/chrome/
• https://www.adobe.com/
• https://www.office.com/
• https://www.apple.com/jp/itunes/
• https://www.apple.com/jp/macos/
• https://www.ubuntulinux.jp/
• https://www.apple.com/jp/ios/
• https://line.me/ja/
• https://www.facebook.com/
• https://www.amazon.co.jp/
• http://wiki.ros.org/
p. 3 の画像出典
• https://www.apple.com/jp/iphone/
• https://www.softbank.jp/robot/pepper/
• https://aibo.sony.jp/store/
• https://www.yaskawa.co.jp/