SlideShare a Scribd company logo
2017/07/19 株式会社テクノロード
Rviz プラグイン作成入門
第11回ROS JapanUG 勉強会
2017/07/19 ShoTakahashi
2017/07/19 株式会社テクノロード
目次
●
動機
●
今回作るもの
●
環境
●
いざRvizプラグイン作成入門
●
動作確認
● Rviz プラグイン作成まとめ
●
参考文献
2017/07/19 株式会社テクノロード
動機
● Rviz に独自の GUI を追加し、操作を簡単にしたい!
●
しかし、日本語のドキュメントが少ない?
→ あるにはあったけど(※1)、 hydro の頃のやつとか古い
● 多分ROSやってる人達は頭が良すぎて、 ROS のソースを直接読ん
で、作り方がわかっちゃうんだろうな・・・
● よし自分の為に、シンプルな奴を作って、ついでに LT のネタにしよ
う!
2017/07/19 株式会社テクノロード
今回作るもの
● Rviz 上のパネルへボタンとスライダーを作成して、
GUIのスライダーで地図上の赤いマーカを操作するアプリ
→ 最終的には地図の座標とか指定できる!
作成するパネル!
2017/07/19 株式会社テクノロード
環境
● OS : ubuntu16.04LTS
● ROS ver : Kinetic Kame
● Qt ver : 5.5.1
2017/07/19 株式会社テクノロード
いざRvizプラグイン作成入門
~~~~~~~~~~~~~~~~~ 中略 ~~~~~~~~~~~~~~~~~~~~~
// パネル GUI のレイアウト作成
QHBoxLayout* layout = new QHBoxLayout; // 水平配置する
btn_ = new QPushButton( "Spawn" ); // ボタン作成
QSlider* sld_x = new QSlider(Qt::Horizontal);
QSlider* sld_y = new QSlider(Qt::Horizontal);
sld_x->setRange(1, 100); // スライダーの範囲を決める
sld_y->setRange(1, 100); // スライダーの範囲を決める
layout->addWidget( btn_ ); // ボタンをレイアウトへ登録
layout->addWidget( sld_x ); // スライダーをレイアウトへ登録
layout->addWidget( sld_y ); // スライダーをレイアウトへ登録
this->setLayout(layout); // Rviz パネルへ GUI をのせる
// イベント SIGNAL とイベント時のコールバック SLOT を設定
connect( btn_, SIGNAL( clicked() ), this, SLOT( btn_clicked() ));
connect( sld_x, SIGNAL( valueChanged(int) ), this, SLOT( sld_x_changed(int)) );
connect( sld_y, SIGNAL( valueChanged(int) ), this, SLOT( sld_y_changed(int)) );
}
~~~~~~~~~~~~~~~~~ 中略 ~~~~~~~~~~~~~~~~~~~~~
// イベントコールバック関数
void SamplePanel::sld_x_changed( int val )
{
x_ = (double)val / 10.0;
visualization_msgs::Marker marker = create_marker( x_, y_ );
marker_pub_.publish(marker);
}
メインのプラグインソース (cpp) から一部抜粋
GUI のボタン、
スライダーの
作成と配置
GUI へ
操作されたときの
イベント登録
イベント発生時の
処理
2017/07/19 株式会社テクノロード
動作確認
2017/07/19 株式会社テクノロード
Rviz プラグイン作成まとめ
●
Qtの勉強も出来て一石二鳥
→ Linux上で他のGUIアプリ構築にも役立つ!
● 今回は時間がないので、 Rviz プラグインの紹介までですが、
内容に興味がある人は github を見てください
→https://github.com/takahashi-e6/rviz_panel_sample
●
作るのに手間が掛かるが、ターミナルコマンドじゃなくてGUIで操
作できるってのはわかりやすい!
2017/07/19 株式会社テクノロード
参考文献
● New Dockable Panel (日本語)
http://wiki.ros.org/ja/rviz/Tutorials/hydro/Plugins%3A
%20New%20Dockable%20Panel
● New Tool Type (日本語)
http://wiki.ros.org/ja/rviz/Tutorials/Plugins%3A%20New%
20Tool%20Type

More Related Content

What's hot

SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット
Toru Tamaki
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
Yusuke Uchida
 
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
Deep Learning JP
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
Yoshitaka Ushiku
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
 
Objectnessとその周辺技術
Objectnessとその周辺技術Objectnessとその周辺技術
Objectnessとその周辺技術
Takao Yamanaka
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
Kota Nagasato
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
Keigo Nishida
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
Deep Learning JP
 
コンピュータビジョンの研究開発状況
コンピュータビジョンの研究開発状況コンピュータビジョンの研究開発状況
コンピュータビジョンの研究開発状況
cvpaper. challenge
 
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Yosuke Shinya
 
TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
Mitsuhisa Ohta
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた
Ryo Kabutan
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
 

What's hot (20)

SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット動作認識の最前線:手法,タスク,データセット
動作認識の最前線:手法,タスク,データセット
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
Objectnessとその周辺技術
Objectnessとその周辺技術Objectnessとその周辺技術
Objectnessとその周辺技術
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks? 【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
 
コンピュータビジョンの研究開発状況
コンピュータビジョンの研究開発状況コンピュータビジョンの研究開発状況
コンピュータビジョンの研究開発状況
 
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
 
TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
 

Similar to RvizPlugin作成入門

簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
Yuji Nojima
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
tomo_masakura
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
 
20190324vvvvオフ会
20190324vvvvオフ会20190324vvvvオフ会
20190324vvvvオフ会
Saya Katafuchi
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
Hiroki Toyokawa
 
プログラミング言語を作る
プログラミング言語を作るプログラミング言語を作る
プログラミング言語を作る
Masaya Konishi
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
 
Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012
makoto tsuyuki
 
phpstudy_php_to_node
phpstudy_php_to_nodephpstudy_php_to_node
phpstudy_php_to_node
Suguru Shirai
 
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来Masahiro Nishimi
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
Yuzo Hebishima
 
Ciecleci
CiecleciCiecleci
Ciecleci
YosukeHojo
 
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
文樹 高橋
 
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
Tetsuji Hayashi
 
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
Yahoo!デベロッパーネットワーク
 
Raspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃないRaspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃない
Koichi Ota
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
Makoto Takizawa
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
 

Similar to RvizPlugin作成入門 (20)

簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
簡単!低コスト!楽しい!レスポンシブ デザイン ディレクション
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
20190324vvvvオフ会
20190324vvvvオフ会20190324vvvvオフ会
20190324vvvvオフ会
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
 
プログラミング言語を作る
プログラミング言語を作るプログラミング言語を作る
プログラミング言語を作る
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012
 
phpstudy_php_to_node
phpstudy_php_to_nodephpstudy_php_to_node
phpstudy_php_to_node
 
[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来[RubyMotion LT] nitronに見るiosアプリ開発の未来
[RubyMotion LT] nitronに見るiosアプリ開発の未来
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Ciecleci
CiecleciCiecleci
Ciecleci
 
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめあと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
 
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
X pages day2015_みんな大好き@式とbootstrapで作る簡単coolなxpagesアプリ(公開用)
 
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
 
Raspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃないRaspberry pi は raspbian だけのものじゃない
Raspberry pi は raspbian だけのものじゃない
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
WWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension についてWWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension について
 

RvizPlugin作成入門