SlideShare a Scribd company logo
1 of 26
Download to read offline
2019/06/23 第2回瀬戸内ROS勉強会
ROS Japan UG
ROS2講習会の報告
第2回 瀬戸内ROS勉強会 報告
Micchy
2019/06/23 第2回瀬戸内ROS勉強会
Onomichi Hirokazu
• ハンドル : みっちー / Micchy
• サークル(趣味) :ロボット研究所 Dream Drive!!
• Twitter : Dream_Drive
• GitHub : dreamdrive
• 活動
• ROBO-ONE 界隈
• レスコン観戦
• メイカー系イベント
2019/06/23 第2回瀬戸内ROS勉強会
ROS2講習会に参加してきました。
ROS2講習会について
2019/06/23 第2回瀬戸内ROS勉強会
講師はGeoffrey BIGGS先生
• 横文字の講師で緊張しましたが、安心の日本語講演でした!すごく分かりやすい!
参考資料 <https://twitter.com/TAKASEhideki/status/1129556510596460544>
ROS2講習会について
2019/06/23 第2回瀬戸内ROS勉強会
瀬戸内ROS勉強会も紹介して頂きました!
高瀬先生、ありがとうございます。
ROS2講習会について
2019/06/23 第2回瀬戸内ROS勉強会
ROS2講習会の内容
• ROS2の紹介
• ROS2のハンズオン
• 内容(手順)は今もこちらで参照可能
https://gbiggs.github.io/rosjp_ros2_intro/index.html
ROS2講習会について
2019/06/23 第2回瀬戸内ROS勉強会
ROSのこと(メモ)
• 世界で3番目にROSが使われているのが日本
• 南極でも使われている
• 宇宙ステーションでも使われている
概念
ロボットは分散システムじゃないといけない
• AI/クラウド/モーター制御 etc…
• すべて繋いでいくと動くロボットになる
ROSで実現していること
• ROSに対応すれば移動が抽象化される → navigation stack
• 人に理解できないもの(センサ情報)を 可視化 → Rviz
• 自動運転で4つのLidarのセンサ情報(30回/sec)のログは、人には理解できない
• デバッグに便利な各種ツール
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
ROS2の特徴
• Masterが無くなった
• リアルタイム性
• 全スタックリアルタイム可能
• DDSと共有メモリサポート
(共有メモリじゃなくてノード間でのゼロコピーもできる)
• 組込マイコンを視野に入れた
信頼性もさることながら、速度面でのボトルネックが取り除かれた。
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
ROS2の特徴(セキュリティ)
暗号化を含めDDSの採用で、セキュリティが考慮されている。認証も可能!
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
ROS2の特徴
研究レベルではなく社会実装レベルに
参考資料 <https://twitter.com/ogimotoki/status/1129598104053854208>
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
ROSとROS2の開発プロセスの違い
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
Tips
ros2のサブコマンドのactionは、
次のROS2 Dashingで予定とのこと。
→ (5/31)リリースされました!
gazeboは開発が終わったらしい。
新しいのは出てこないみたい。衝撃!?
参考資料 <https://twitter.com/TAKASEhideki/status/1129658719644422144>
ROS2の紹介
2019/06/23 第2回瀬戸内ROS勉強会
コンパイルについて(colcon)
catkin_make ➡ colcon build
colconコマンドのサブコマンドのbuild
colconはパッケージのインストールも含む
なので・・・
(重要※忘れがち) build後は、実行(ros2 run)前に
$ source install/local_setup.bash
を必ず実行すること
colcon –h でサブコマンド確認
colcon build --packages-select hoge で、単一パッケージビルド
ハンズオンでのROS1とROS2の違い
2019/06/23 第2回瀬戸内ROS勉強会
ノード実行について (ros2)
ros2 [サブコマンド]
rosrun、roslaunchなどが統合されました。
• launcher が xml から python になった!
• Master(roscore)が無くなった。
ハンズオンでのROS1とROS2の違い
$ ros2 –hの実行結果
ros2 サブコマンド
2019/06/23 第2回瀬戸内ROS勉強会
ハンズオンで混信が発生・・・
ハンズオンでのROS1とROS2の違い
参考資料 <https://twitter.com/izumitomonori/status/1129574469847080966>
ハンズオンの最中に、自分の立ち上げたノードに、他人のPCのノードか
らメッセ―ジを受信するという珍現象があちこちで発生しました。
2019/06/23 第2回瀬戸内ROS勉強会
(検証1)その時なぜ混信は起きたのか
参考資料 <https://twitter.com/izumitomonori/status/1129574469847080966>
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(ROS) Talker & Listner おさらい
(1つ目のターミナル) $ roscore
(3つ目のターミナル) $ rosrun roscpp_tutorials listener
(2つ目のターミナル) $ rosrun roscpp_tutorials talker
まずは・・・
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(ROS) Talker & Listner おさらい
(1つ目のターミナル) $ roscore
export ROS_MASTER_URI=http://(roscoreが動いているIP):11311/
export ROS_IP= (自分自身のIP)
export ROS_HOSTNAME= (自分自身のホスト名)
ROS_MASTER_URIは、デフォルトがhttp://localhost:11311/
また、 ROS_IPとROS_HOSTNAMEは明示的に宣言しないと、設定されない = (setup.bashには含まれない)
ROS_IPとROS_HOSTNAME両方違うものを設定した場合、ROS_HOSTNAMEが優先
(実験)ターミナルごとに、 ROS_MASTER_URIをかえてみる
(3つ目のターミナル) $ rosrun roscpp_tutorials listener
(2つ目のターミナル) $ rosrun roscpp_tutorials talker
IPアドレスを超えてのROSの通信機能の確認
まずは・・・
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(ROS2) Talker & Listner
(1つ目のターミナル) $ ros2 run demo_nodes_cpp talker
(2つ目のターミナル) $ ros2 run demo_nodes_cpp listener
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(ROS2) Talker & Listner
(1つ目のターミナル) $ ros2 run demo_nodes_cpp talker
(2つ目のターミナル) $ ros2 run demo_nodes_cpp listener
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(ROS2) Talker & Listner
(1つ目のターミナル) $ ros2 run demo_nodes_cpp talker
export ROS_DOMAIN_ID=(数字)
また、 ROS_DOMAIN_IP明示的に宣言しないと設定されていない
(setup.bashには含まれない)
※環境変数がないと適当な数字が割り当てられる
(実験)ターミナルごとに、ROS_DOMAIN_IDを変えてみる
(2つ目のターミナル) $ ros2 run demo_nodes_cpp listener
IPアドレスを超えてのROSの通信機能の確認 ➡ 混信の原因はこれでした。
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
(検証2) DDSと共有メモリのサポートってどういうこと
~ノードコンポジションについて~
• ROS2になってノード間のやりとりがDDSと共有
メモリ(ゼロコピー)に対応したということ…。
つまり、どういうこと!?
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
ノードコンポジション
• 1つのプロセス(ソース)に複数ノード
• ノードの実行順番を厳密に守ることができます。
• ノードとノードの間のデータ通信をゼロコピーにする
ことは可能
ソースの確認
ノードコンポジション
RO1スタイスとROS2スタイルのノードの書き方
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
ノードコンポジション
1プロセスで2ノード立ち上がっている
ハンズオンのgreet_and_displayerを立ち上げて、ノード一覧を確認
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
ノードコンポジションとROS nodelet
• ちなみに、ROSでもROS nodeletを使って、ゼロ
コピー可能とのこと。
• ROS nodeletとの違いは、ROS2のノードコンポ
ジションは、独立ノードとしても再利用できる
こと。
共有ライブラリとしてノードを実装する。
ROS2講習会の検証
2019/06/23 第2回瀬戸内ROS勉強会
ROSからROS2へ
• 順当に進化していると実感
• ROS1の知識がROS2で役に立つと実感
• 有名どころのカメラやセンサのパッケージが揃
えば、利用しやすくなる
• 想像以上にROS2への移行は速いペースで進ん
でいる。
• 今なら、開発に参加して、自分(会社)のニーズ
を伝えられる!とのこと。

More Related Content

What's hot

STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作る
mozyanari
 

What's hot (20)

06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
 
STMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作るSTMとROSをシリアル通信させて移動ロボットを作る
STMとROSをシリアル通信させて移動ロボットを作る
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 
ROSでつながるVRChat
ROSでつながるVRChatROSでつながるVRChat
ROSでつながるVRChat
 
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
Rootlessコンテナ
 
Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAMCartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
 
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
 
ROSでロボット開発中
ROSでロボット開発中ROSでロボット開発中
ROSでロボット開発中
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
Apple Watch 間通信
Apple Watch 間通信Apple Watch 間通信
Apple Watch 間通信
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作るYoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
 
FlutterでGraphQLを扱う
FlutterでGraphQLを扱うFlutterでGraphQLを扱う
FlutterでGraphQLを扱う
 
Gazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使うGazebo/ROSで力覚センサプラグインを使う
Gazebo/ROSで力覚センサプラグインを使う
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
【BS12】Visual Studio 2022 40分一本勝負!
【BS12】Visual Studio 2022 40分一本勝負!【BS12】Visual Studio 2022 40分一本勝負!
【BS12】Visual Studio 2022 40分一本勝負!
 

More from Hirokazu Onomichi

More from Hirokazu Onomichi (11)

VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
 
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
だみとらの作り方 ~制作過程で気づいてしまったVRChat IKの残念な真実~
 
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
 
Nuitrackを用いて自作ヒューマノイドを動かしてみた話
Nuitrackを用いて自作ヒューマノイドを動かしてみた話Nuitrackを用いて自作ヒューマノイドを動かしてみた話
Nuitrackを用いて自作ヒューマノイドを動かしてみた話
 
ROSを用いた天吊型スカラロボットの共同製作
ROSを用いた天吊型スカラロボットの共同製作ROSを用いた天吊型スカラロボットの共同製作
ROSを用いた天吊型スカラロボットの共同製作
 
ROSConJP2019とWMD2019の出張報告!
ROSConJP2019とWMD2019の出張報告!ROSConJP2019とWMD2019の出張報告!
ROSConJP2019とWMD2019の出張報告!
 
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
 
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
 
瀬戸内ROS勉強会のご紹介
瀬戸内ROS勉強会のご紹介瀬戸内ROS勉強会のご紹介
瀬戸内ROS勉強会のご紹介
 
ぼくのかんがえる、さいきょうのすからろぼっと()
ぼくのかんがえる、さいきょうのすからろぼっと()ぼくのかんがえる、さいきょうのすからろぼっと()
ぼくのかんがえる、さいきょうのすからろぼっと()
 
あるくエクセルの話
あるくエクセルの話あるくエクセルの話
あるくエクセルの話
 

ROS2講習会の報告 (瀬戸内ROS勉強会#02にて)