SlideShare a Scribd company logo
ROS2で始めよう!次世代ロボットプログラミング
4.4~4.8章
ROS2 勉強合宿(10/5)
@別府温泉
Miyazaki Takuma Twitter@ArsenicLAB
温泉
来たぜ!
Dashing
Diademata
目次
 QoS
 DDSベンダの変更
 セキュリティ
 ROS1ノードとの互換性
 リアルタイム制御
QoS(Quality of Service)
 QoS:データ送受信の品質保証システム
 QoSにより通信の信頼性を設定できる
 QoSポリシーと呼ばれる4つの設定値(パラメータ)
を設定することで通信の信頼性を決定
1. Historyポリシー
2. Depthポリシー
3. Reliabilityポリシー
4. Durabilityポリシー
QoSポリシー
1. Historyポリシー:送信したデータを全部 or N個保存する
2. Depthポリシー:Nを設定する(Keep allの場合は無視?)
https://ros.youtalk.jp/2017/05/30/ros2-qos.html
QoSポリシー
3. Reliabilityポリシー:送ったデータ届かないかも or 絶対届ける
4. Durabilityポリシー:最後に送ったデータを一時的に保持する
https://ros.youtalk.jp/2017/05/30/ros2-qos.html
QoSポリシー
 イメージ(拾いスライド)
http://4c281b16296b2ab02a4e0b2e3f75446d.cdnext.stream.ne.jp/randc/mirai/2-3_ros2_LP.pdf
QoSプロファイル
 QoSプロファイル:あらかじめ用意されたQoSポリシー
 よく使われるQoSポリシーの設定値が提供されている
 Default
ROS1のPub,Sub通信とほぼ同じ設定
 Services
Defaultと比べ、DurabilityがVolatileVolatileになった設定
 Sensor data
センサデータはすべてのデータが送受信されることより、リアルタイム性
が重視されるためReliablityがBest effortになっている
 System default
すべてのQoSポリシーをシステム初期値に設定
QoS互換性
 QoSポリシーは送信側、受信側でそれぞれ設定
 設定の仕方によっては通信が成り立たない
https://ros.youtalk.jp/2017/05/30/ros2-qos.html
DDSベンダ実装の変更
 DDSベンダを実行時に変更することができる
 研究や、商品化など用途によって使い分け
(主にライセンス切り替え目的)
ここを実行時にいじれるよという話
https://roscon.ros.org/2016/presentations/ROSCon%202016%20-%20ROS%202%20Update.pdf
DDSベンダの種類
http://4c281b16296b2ab02a4e0b2e3f75446d.cdnext.stream.ne.jp/randc/mirai/2-3_ros2_LP.pdf
これがデフォルトで入ってる
商用
組み込み向け、小型
セキュリティ
 ROS1では通信データなどが外部から容易にアクセス可
 製品化の課題点になっていた
 ROS1ではセキュリティ機能を非公式にサポート
➡ROS2ではデフォルトでサポート!
 ノード認証
 名前空間アクセス制御
 トピックへのアクセス制御
 サービスへのアクセス制御
 パラメータへのアクセス制御
 通信データの暗号化と
ノードの認証
 公開鍵暗号を用いてROS2ネットワークに接続される
ノードの認証を行う機能
➡認証されてないノードは接続できない
アクセス制御
 ROS1にはトピック、サービス、パラメータ、アクションに
アクセス制御はなかった
 ROS2でセキュリティ機能の一つとして導入
 UNIXのパーミッションと同じ概念で実装されている
 名前空間に対するアクセス権で制御
ROS1ノードとの相互接続
 ROS1からROS2への移行期である現在、ROS1と
ROS2のメッセージを仲介する仕組みがある。
これを使うとROS1ノードとROS2ノードが通信できる。
 自動的なメッセージの関連付け
 パッケージ名から自動で関連付けする
 ユーザー定義メッセージの関連付け
 手動で関連付け
リアルタイム制御
 ROS1:専用パッケージを用いて実現
 ROS2:標準で実装済み
 使用するにはLinux low-latencyカーネルを適応
$ sudo apt install linux-lowlatency
 さらにRTI製DDSベンダ実装へ変更が必須
 デフォルトのFastRTPSではリアルタイム制御不可
リアルタイム制御
 QoSプロファイルを設定し、通信設定をリアルタイム向けに
 Reliability:Best effort
 History:Keep last
 Depth:1
まとめ
 QoS
 QoSポリシーをいじって送受信データの信頼度を設定できる
 DDSベンダの変更
 通信ミドルウェアを実行時に用途に合わせて変えれる
 セキュリティ
 ノード認証ができる、名前空間アクセス制限ができる
 ROS1ノードへの接続
 関連付けを行うことでROS1,2間で通信ができる
 リアルタイム制御
 リアルタイム制御用のDDSベンダをインストール必要がある

More Related Content

What's hot

ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
Mori Ken
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けてJetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
Toshihiko Yamakami
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
 
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
Kazuhiro Nishiyama
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
 
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
 
Fiberの使いどころ
Fiberの使いどころFiberの使いどころ
Fiberの使いどころ
Tomoya Kawanishi
 
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
 
ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
Yuji Yamauchi
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
 
Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAMCartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
Yoshitaka HARA
 

What's hot (20)

ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Jetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けてJetson活用セミナー ROS2自律走行実現に向けて
Jetson活用セミナー ROS2自律走行実現に向けて
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
 
Fiberの使いどころ
Fiberの使いどころFiberの使いどころ
Fiberの使いどころ
 
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
 
ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAMCartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
 

05 第4.4節-第4.8節 ROS2の応用機能(2/2)