狠狠撸

狠狠撸Share a Scribd company logo
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

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