SlideShare a Scribd company logo
1 of 40
Download to read offline
テキスト
ROS+Gazeboではじめるロボットシミュレーション
akio
DISCLAIMER
この発表の内容は全て公開されている情報および発
表者(akio)の個人的な意見に基づくものです。発表者
の雇用者に一切の関係はありません。
発表内容には細心の注意を払っていますが、記載情
報のご利用により万一損害が生じても、発表者は一
切の責任を負いません。
自己紹介
akio
@akio(GitHub)
ロボットのソフトウェアを開発する仕事をしてます
学生時代から物理シミュレータで遊ぶのが好きです
内容
Gazeboについて
ROSとの連携
すぐ試せるパッケージ
自分のモデルをつくってみよう
まとめ
Gazeboについて
Gazeboとは
!
公式サイトはhttp://gazebosim.org
オープンソース(Apacheライセンス)の3Dロボットシミュレータ
リアルタイム性を重視
OGREを利用した高品質なグラフィック
複数の物理エンジンを切り替えられる(ODE, Bullet, Simbody, DART)
カメラ、レーザーレンジファインダなどのセンサーシミュレーション
独自のAPIを持つが、ROSとの連携も充実
独断と偏見によるGazeboの歴史
Player時代
ROS時代
Standalone時代 👈今ここ
Player時代
2DロボットシミュレータPlayer/Stageの用途を補完す
る目的で始動
設定ファイルはXMLベースで記述
ライセンスはGPL
発表者もあまりよく知らない
ROS時代(2009 - 2011)
Willow Garageが開発支援
ROSとの連携を容易にする努力がなされる
PR2のシミュレータとして利用される
C++サポートの強化
コードベースはPlayer時代と同じ(GPL)
ROS Wikiにはまだこの時代の記述が残っており、混乱しやすい
Standalone時代(2012 - 現在)
WillowGarageからスピンアウトしたOSRF(Open Source Robotics Foundation)
が主に開発
全面的な書き直しが行われ、バージョンもリセット
ライセンスもApache Software License 2.0に
設定ファイルもSDF(Simulation Description Format)へ
Protobufを利用した独自のメッセージ通信機構を持つ
DARPA Robotics Challengeの予選の一つVRC(Virtual Robotics Challenge)用シ
ミュレータに採用される
Gazeboのアーキテクチャ
SDF
gzserver
gzclient
(GUI)
プラグイン
モデル
Load
モデル
プラグイン プラグイン
Simulation World
メッセージ通信
制御処理など
向き不向き
元々の開発経緯から、センサー+シンプルな機構のロボットとは比較的相性
が良いです
しかし、物理シミュレーションエンジンのアルゴリズムの影響もあり多関節
ロボットや歩行ロボットなどでは苦しい場面が…
リアルタイム性重視なので、厳密な精度を期待しないで使うのが良い
v1.9を使っていても動作が不安定な時がある。締め切りに追われている時に
は向かないかもしれない
今後(v2.2∼)、物理シミュレーションエンジンの選択肢が広がるので、改善
の希望はあります
まとめ
今後はStandalone版が主流です
向き不向きがあるので、用途と性能を考慮して使う
のが吉です
今後の改善次第で対応用途は広がるかも?
ROSとの連携
GazeboとROSとの連携機構の再整備
Standalone版では長らく公式なROSとの連携機構が
なかった
Standalone版1.3∼から対応し始め1.9でほぼ安定
ROSはHydroからこちらの仕組みに準拠
Groovyではあちこち不整合が出ます
SDF
gzserver
gzclient
(GUI)
プラグイン
モデル
Load
プラグイン
Simulation World
メッセージ通信
制御処理など
連携システムのアーキテクチャ
URDF
変換
ROS controller
manager
roscpp
ROSノード
ROSノード
Controller
プラグイン
モデル
Controller
プラグイン
roscpp roscpp
ROS メッセージ等
モデルを制御したい場合
gazebo_pluginsにある既成プラグインを使う
Gazeboプラグインとして開発する
モデルに紐づいて、Gazebo APIを利用
roscppを使って他のROSノードと通信
ros-controlsのControllerManagerに対応したControllerプラグインとして開発する
ros-controlsはPR2のリアルタイム制御レイヤーの一般化版
実機用制御プログラムと、Controllerを共有できる
gazebo_pluginsのプラグイン
Camera
Multicamera
Depth Camera
Openni Kinect
GPU Laser
Laser
Block Laser
F3D (Force Feedback Ground Truth)
Force
IMU
Joint Pose Trajectory
P3D (3D Position Interface for Ground Truth)
Projector
Prosilica Camera
Bumper
Differential Drive
Skid Steering Drive
Video Plugin
Planar Move Plugin
まとめ
しばらくはGazebo1.9 + ROS Hydroの組み合わせが安定だと思
われます
異なるバージョンを組み合わせると、追跡が難しいエラーが出
たりします
モデルを制御するなら将来的にはros-controls経由か?
ros-controls自体はまだ成熟しきっていない
今は使い分けが必要
すぐ試せるパッケージ
ROS Hydroでリリースされている
GazeboシミュレーションPKG
発表者調べなので、抜け/漏れなど多数あると思われます
Turtlebot2/Kobuki
Husky
Grizzly
youBot
Segbot
UR5/10
Hector Quadcoptor
テキスト
Turtlebot2/Kobukiインストール
$ apt-get install ros-hydro-turtlebot-simulator
実行
$ roslaunch turtlebot_gazebo turtlebot_empty_world.launch
!
テキスト
Husky
インストール
$ apt-get install ros-hydro-husky-simulator
実行
$ roslaunch husky_gazebo husky_empty_world.launch
テキスト
Grizzly
インストール
$ apt-get install ros-hydro-grizzly-simulator
実行
$ roslaunch grizzly_gazebo grizzly_empty_world.launch
テキスト
youBot
インストール
$ apt-get install ros-hydro-youbot-simulation
実行
$ roslaunch youbot_gazebo_robot youbot_dual_arm.launch
テキスト
Segbotインストール
$ apt-get install ros-hydro-segbot-simulator
実行
$ roslaunch segbot_gazebo segbot_test_world.launch
(別の端末)$ roslaunch segbot_gazebo segbot_mobile_base.launch
テキスト
UR5/10(Universal Robots)
インストール
$ apt-get install ros-hydro-ur-gazebo
実行
(UR5)$ roslaunch ur_gazebo ur5.launch
(UR10)$ roslaunch ur_gazebo ur10.launch
アームだけなので、好きな台車にくっつけよう
テキスト
Hector Quadrotor
インストール
$ apt-get install ros-hydro-hector-quadrotor-gazebo

実行
$ roslaunch hector_quadrotor_gazebo quadrotor_empty_world.launch
まとめ
ROS Hydroならすぐ試せるシミュレータモデル多数
基本的に標準的なインターフェースに準拠しているの
で、他のROSフレームワーク(MoveIt!など)とも比較
的容易のはず
自分のモデルを作ってみよう
(サンプルコードで学ぶ編)
参考になる資料
公式のROS連携チュートリアル
http://gazebosim.org/wiki/Tutorials#ROS_Integration
上記チュートリアルのサンプルコード
https://github.com/ros-simulation/gazebo_ros_demos
今回の例題
公式チュートリアル例
題を参考により簡略化
1軸回転関節を持つ
アーム先端にはカメラ
Xacro無しで書く
必要なパッケージ
ros-hydro-gazebo-ros-pkgs
ros-hydro-gazebo-ros-control
ros-hydro-ros-controllers
確認用
ros-hydro-image-view2
サンプルコード
sudo apt-get install git
Catkinのワークスペースを作って、srcディレクトリに
clone してください。
git clone https://github.com/akio/myrobot_demo.git
ファイルの説明
myrobot_demo
myrobot_gazebo
package.xml  👈 普通
CMakeLists.txt 👈 普通
myrobot.launch 👈 全部入りLaunch
myrobot.urdf  👈 モデルの定義
解説付きコードで説明
モデルを書く時の注意点
URDFからSDFへの変換プログラムや、Gazeboサーバーのエ
ラーや警告が発展途上。
結果、エラーが起きても原因不明ということがよくあります
場合によっては意図しない結果が出ていてもエラーにならな
いこともあります
そんなときは変換ステップを一つ一つ分解して確認すると良
いです(体験談)
まとめ
基本はURDFなので、Jointとリンクの繰り返しでロボットを組
み立てる
必要な部分に、Gazebo用の設定を追加するイメージ
Gazeboプラグイン、ROS Controllersプラグインともに豊富に準
備されているので、自分の使いたい機能をよく探しましょう
複雑なロボットはとても記述が長くなるので、Xacroを使って
記述を減らしたり、ファイル分割するテクニックが必要
全体のまとめ
全体のまとめ
同じGazeboでも色々あるので、要注意
しばらくはGazebo1.9 + Hydroが安定
すぐに使えるロボットモデルの配布が始まっている
要領がわかれば、自分でロボットモデルや新しいプ
ラグインを開発できる

More Related Content

What's hot

ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築Yoshitaka HARA
 
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発Yoshitaka HARA
 
WindowsではじめるROSプログラミング
WindowsではじめるROSプログラミングWindowsではじめるROSプログラミング
WindowsではじめるROSプログラミングTakayuki Goto
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたTakuya Minagawa
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解Koji Terada
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説ORB-SLAMの手法解説
ORB-SLAMの手法解説Masaya Kaneko
 
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例Yoshitaka HARA
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentationTakuya Minagawa
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピTakahiro Kubo
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争Yosuke Shinya
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。ROBOTIS Japan
 
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能についてUnityTechnologiesJapan002
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 

What's hot (20)

ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
 
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
WindowsではじめるROSプログラミング
WindowsではじめるROSプログラミングWindowsではじめるROSプログラミング
WindowsではじめるROSプログラミング
 
Visual slam
Visual slamVisual slam
Visual slam
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説ORB-SLAMの手法解説
ORB-SLAMの手法解説
 
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation
 
ARとUnity-Robotics-Hubの連携
ARとUnity-Robotics-Hubの連携ARとUnity-Robotics-Hubの連携
ARとUnity-Robotics-Hubの連携
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
G2o
G2oG2o
G2o
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
 
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション