(これを更新したものが発表資料として使用された)
ロボット開発の一般的な話
ロボットソフトウェアフレームワークの特徴
コンポーネント化されたソフトウェア
限りあるリソースの有効活用
分野を超えてシステムを利用できる
大学: PhD Problem
分散処理
リアルタイム
大量データ処理
(近年は)オープンソースが流行
ロボットのデバッグは難しい
実世界はポーズできない
データの可視化が必要
Rviz
シミュレーション
Arena、Gazebo
ROS
ROS
フレームワークだけではなくプラットフォーム全体
ROS = plumbing + tools + capabilities + ecosystem
OSRFがメンテナー
OSRFはNPO
アメリカ、中国、日本、ドイツでよく使われている
DRC決勝にて23チーム中18チームがROSを使用した
BMW CES 2015の自動運転のデモではROSを使用
プロトタイピングにROSは便利
Yujin Robot
NASA Robonaut 2
ROS2
ROSの中でのROS2位置づけ
Plumbing(コンポーネント間の通信)の改善中心
企業にとってのROS1の問題
OSRFからのソフトウェア以外は信用できない場合がある
通信に独自プロトコルが採用されているという点ではROS1そのものがそもそも信頼性が低いという話もある
安全認証がとりにくい
リアルタイム制御が難しい
POSIX型のOSだけ
Ubuntu以外では使いにくい
組み込みシステムでは使えない
ROS2の開発スタイル
アジャイル開発
開発はすべてオープンにして記録されている
kanban-style
CI
Windows
macOS
Linux
ROS1とROS2の違い
通信プロトコル
QoSの管理
DDS-Securityをサポート
リアルタイム制御
サポートOS
LinuxだけではなくmacOSとWindowsもサポート
安全認証
アプリケーション構造
ROS1
master(roscore)が必要
データ通信はROSTCP
メタデータ通信はXMLRPC
ROS2
master(roscore)が不要
DDS Discovery Protocol
データ通信とメタデータ通信ともにDDSや共有メモリ Executorが各々のノードのライフサイクルを管理