SlideShare a Scribd company logo
1 of 52
Download to read offline
ROS 2の紹介
産業技術総合研究所
ロボットイノベーション研究センター
ロボットソフトウェアプラットフォーム研究チーム
Geoffrey BIGGS
Part 1
ROS 2への道
ROS
• ロボット用のソフトウェアプラットフォーム
• ロボットの分野で大成功
– 様々なロボットで利用されている
– 研究分野で人気である
– ベンチャー会社でも大手メーカーでも利用する
– 購入可能な製品にもある
ロボット機能の例
一般に応用可能な
2D ナビゲーション
システム
http://wiki.ros.org/navigation
DARPA Robotics Challenge:
2012-2015
DRC決勝の23チームの中で:
18 チームが
を利用した
BMW: CES 2015 自動運転デモ
Yujin Robot: 病院で薬等の配達
Rethink Robotics:
Baxter と Sawyer
NASA: Robonaut 2
(国際宇宙ステーションで)
もうROS 2?
• ROS 1がある!
• ROS 1は広く利用されている!
• ROS 1ようのソフトウェアはまだ増えている!
• ROS 1を使い始めたばかりだ!
• ROS 1の利用するコミュニティはやっと大きく
なり始めた!
ロボットソフトウェアの歴史
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
Arena シミュレータ開発開始
Gazebo シミュレータ開発開始
(日本)RTミドルウェアプロジェクト開始
Player 開発開始
Player 初リリース
Player 2.0 リリース
Player 3.0 リリースOrocos 開発開始
Orocos 初リリース Orocos 2 リリース
OpenRTM 初リリース
OpenRTM 1.0リリースORCA 2 初リリース
Microsoft Robotics Studio リリース
(韓国)OPRoS 開発開始
ROS 開発開始
ROS 1.0 リリース
ROS 2 開発開始
YARP 初リリース
ROS 2 の
初リリース
ROS
• Robot Operating System
• 2007年から
• フレームワークだけではなくて、
プラットフォーム全体
コンポーネント
間の通信
ツール 頻繁に利用される
ロボットの機能
エコシステムと
コミュニティー
ROS
• Robot Operating System
• 2007年から
• フレームワークだけではなくて、
プラットフォーム全体
コンポーネント
間の通信
ツール 頻繁に利用される
ロボットの機能
エコシステムと
コミュニティー
ROS 2活動の中心
ロボットソフトウェアの特質
• 複数の分野の混合
– 制御理論、信号処理、自動計画、AI、…
• リアルタイムと非リアルタイムの混合
• 大量のデータ処理
• CPU、メモリは甚だしく利用も、
小さなマイコン利用
• ハードウェアとソフトウェア
アーキテクチャーの複雑さ
• 現実世界との複雑なインタラクション
• …
ロボットソフトウェアの特質
• 複数の分野の混合
– 制御理論、信号処理、自動計画、AI、…
• リアルタイムと非リアルタイムの混合
• 大量のデータ処理
• CPU、メモリは甚だしく利用も、
小さなマイコン利用
• ハードウェアとソフトウェア
アーキテクチャーの複雑さ
• 現実世界との複雑なインタラクション
• …
企業にとってROSの問題
• OSRFからのソフトウェア・ノード以外
信頼できない
○
×
企業にとってROSの問題
• 完全自家製だから信頼性が低い
– 特に通信プロトコル
• 認証不可能(コアライブラリでも)
– 安全システム・高信頼システムで利用不可
企業にとってROSの問題
• リアルタイムが難しい
• モータードライバーや決定的なシステムに
ROSが利用できない
×
企業にとってROSの問題
• POSIX型OSだけ
• Ubuntuではないと使いにくい
• 組み込みシステムは不可能
○ ×
解決策: ROS 2
• コアのゼロから開発しなおし
• ROS1ができないことがコアユーズケース
– 自家製ソフトウェアを減らす
– 組み込み(特に小リソースマイコン)
– リアルタイム
– 決定的実行(ノードライフサイクル管理等)
– インフラの一貫性、規格化
– 管理された・記録された開発プロセス
Part 2
ROS 1とROS 2の差
ROS 1とROS 2の差
• 新しい通信プロトコル
• 通信プロトコルの実装は入れ替え可能
• QoSが管理可能
• ライブラリアーキテクチャの更新
• 全スタックがリアルタイム可能
• ノード構造の更新
• OSサポートの拡大
• 開発プロセスの記録
• 安全認証取得可能
ROS 1アプリケーションの構造
• ノードが別々のプロセス
で実行中
• Master(roscore)が
必要
– パラメータサーバ等も
• データ通信は
ROSTCPで
• メタデータ通信は
XMLRPCで
Master
ROSTCP・ROSUDP
XMLRPC
アプリケーション
プロセス
ノード
プロセス
ノード
プロセス
ノード
ROS 2アプリケーションの構造
• ノードがシステムのニー
ズに合わせて別々のプ
ロセスでも同一プロセス
でも実行可能
• Masterがない
– Single point of failureが
なくなった
• データ通信もメタデータ
通信もDDSや
共有メモリで
– 自家製ではない
DDS
アプリケーション
プロセス
ノード
プロセス
ノード
ノード
共有メモリ
新しい通信ミドルウェア:DDS
(Data Distribution Service)
レーザー
センサー
ノード「scan」
チャネル
ノード
レーザー
データ
レーザー
データ
• OMGの標準規格
• 複数の実装(企業からもオープンソースからも)
• 安全認証版
DDS実装間の互換性
ROS アプリケーション
rclcpp (ROS ライブラリ)
rmw (ROS 通信API)
OpenSplice DDS
ROS アプリケーション
rclcpp (ROS ライブラリ)
rmw (ROS 通信API)
Connext DDS
DDS interoperability wire protocol
DDSベンダーの一覧
DDSのQoS設定
ROS1:
チューニングができない
ROS 2/DDS:
細かいチューニング可能
UDP
Best-effort
TCP
Reliable
Best-effort Reliable
Masterの排除
ノード1 ノード2
Master
DDS
ノードライフサイクル – ROS 1
ノード1 ノード2
main() main()
ノード3
main()
データ
データ
ノードライフサイクル – ROS 2
ノード1
ROS定義の
ライフサイクル
ノード2
ROS定義の
ライフサイクル
ノード3
ROS定義の
ライフサイクル
Executor
実行
実行
実行
データ
データ
ノードライフサイクル – ROS 2
ノードライフサイクル – ROS 2
• もしろん、メーン関数でノードの実装はまだ
可能!
– (プロトタイピングに必須だから)
リアルタイム可能
リアルタイムアーキテクチャー
ROS 1 ROS 2
リアルタイム可能
リアルタイム可能
決定的
リソース獲得などの
非リアルタイムコード
組み込みROS
組み込みROS
ROS2の開発プロセス
チケット作成
• Kanbanでチケットの登録
• Backlogに入る
開発
• スプリントの始まりでチケットがBacklogからReadyに移動
• 順番にReadyからIn Progressに移動
• チケット専用ブランチで
テスト
• Continuous Integration
• LinuxとWindowsとOSXでテストの自動実行
レビュー
• チケットがIn Reviewに移動、Pull request作成
• 他の貢献者がレビュー
• ソース、設計等がすべてレビュー
マージ
• Masterクランチにチケットブランチをマージ
• チケットブランチ削除
• チケットを閉じる
リリース
• リリースビルドは自動生成で
• アジャイル
• Test-Driven(TDD)
• カンバンで管理
• Linux、Mac OSX、
WindowsでCIと
テスト
オープンソース、オープン開発
https://waffle.io/ros2/ros2
オープンソース、オープン開発
https://github.com/ros2
オープンソース、オープン開発
http://ci.ros2.org/
ROS1 と インタラクション
• ブリッジによりROS1のシステムとROS2の
システムが通信可能
ROS1
ノード
ROS1
トピックデータ
ROS2
ノード
ブリッジ
ROS2/DDS
トピック
データ
ROS2のまとめ
• 企業世界で好評された通信ミドルウェアの
採択
• ノードをより構造化に
– 決定的なロボットが作成可能
– リアルタイム対応可能
• Windows、組み込みシステムがサポート
されたプラットフォームに
• 企業のニーズに合うロボットソフトウェア
プラットフォーム
https://gbiggs.github.io/
rosjp_ros2_intro/
Part 3
これからのROS 2
現在状況
• まだフルスピードで開発中
• 利用が加速中
– ROSConでROS 2についての発表は増えている
• リリースサイクルは半年
– 次のリリースは6月・7月
• まだ開発されていないROS 1のフィーチャーが存在
– actionlib
– MoveIt!
– …
ROS Ardent Apalone
• 最初のサポートするリリース
– バグフィクス等をリリースする
• 最初の「利用するべき」なリリース
– プレビューではない
• 全パッケージはバージョン1ではない!
– rmw: 0.4.0 ←一番中心のライブラリ
– rclcpp: 0.4.0
– tf2_eigen: 0.8.0
– rviz2: 2.0.0
実装予定のフィーチャー
• アクションの実装
• パラメータの完成
• メッセージIDLの改善
• 動的なPythonベースlaunchツール
• ネイティブなrosbag
• リアルタイムサポートの拡張
• セキュリティサポートの拡張
https://github.com/ros2/ros2/wiki/Roadmap
ROS 2の開発に参加しよう
• デザイン情報を読む
– コメントを提供
– 改善する(プルリクエスト)
– 書く!(新しいデザインドキュメントを提供する)
http://design.ros2.org/
ROS 2の開発に参加しよう
• コードレビューに参加
– ROS 2のコアライブラリの実装はすべて
コードレビュー経由で開発されている
– 例:https://github.com/ros2/rclcpp/pulls
https://github.com/ros2
ROS 2の開発に参加しよう
• コードを書く
– ROS 2のカンバンから小さなタスクを選択する
– タスクを行う
– プルリクエストを送る!
https://waffle.io/ros2/ros2

More Related Content

Featured

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Featured (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

ROSJP #20 講習会の発表資料