Recommended
PDF
PDF
PPTX
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
PPTX
PDF
PDF
SECDマシン 実装と動きとその他もろもろについて
PDF
PDF
ROS JAPAN Users Group Meetup 01
PPTX
PDF
PDF
Dalvikバイトコードリファレンスの読み方 改訂版
PPTX
C# 7.2 with .NET Core 2.1
PDF
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
PDF
第三回ありえる社内勉強会 「いわががのLombok」
PPTX
PDF
PPTX
PPT
PDF
PPTX
PDF
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PDF
PDF
PDF
PDF
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
KEY
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
PDF
ジェネリック関数の呼び出され方 #cocoa_kansai
PPTX
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
PDF
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
More Related Content
PDF
PDF
PPTX
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
PPTX
PDF
PDF
SECDマシン 実装と動きとその他もろもろについて
PDF
PDF
ROS JAPAN Users Group Meetup 01
What's hot
PPTX
PDF
PDF
Dalvikバイトコードリファレンスの読み方 改訂版
PPTX
C# 7.2 with .NET Core 2.1
PDF
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
PDF
第三回ありえる社内勉強会 「いわががのLombok」
PPTX
PDF
PPTX
PPT
PDF
PPTX
PDF
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PDF
PDF
PDF
PDF
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
KEY
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
PDF
ジェネリック関数の呼び出され方 #cocoa_kansai
Similar to ROS Tutorial 02 - CIT
PPTX
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
PDF
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
PPTX
PPTX
PDF
PDF
ROS JAPAN Users Group Meetup 03
PDF
ZytleBot: ROSベースの自律移動ロボットへのFPGAの統合に向けて
PDF
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
PPTX
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
PDF
プログラミングコンテストでのデータ構造 2 ~動的木編~
PDF
ロボット管理プラットフォーム「 RoboticBase 」の紹介
PPTX
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
PDF
PDF
3Dロボットビジョンプラットフォーム「RoVI」入門
PDF
PPTX
ROS Gazebo unityを使ったロボット開発入門( Japanese )
PDF
PDF
PPTX
Robot Simulation_Unity × ROS2_OpenShift.pptx
PDF
Recently uploaded
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
ROS Tutorial 02 - CIT 1. 2. 目次
1.ROSとは
2.ディストリビューション
3.ROSの歴史
4.便利なパッケージを動かしてみよう
5.本日の学習範囲
6.通信の基本モデル
7.ROSのノードについて理解する
8.ROSのトピックを理解する
9.RVizで図形を可視化しよう
3. ROS(Robot Operating System)とは
■オープンソースで提供されるロボット向けのメタ・オペレーティングシステム
■ロボット制御用のミドルウェア
→ ソースをコンパイルするためのビルドシステム
→ プロセス間通信のための通信ライブラリ
■ロボット工学分野の研究・開発におけるコードの”再利用”を
支援することが目的
ROS = 通信 + ツール群 + 機能群 + エコシステム
4. 5. 6. 7. 8. 9. ■パッケージのインストール
$ sudo apt-get install ros-hydro-hector-slam
■バグファイル(ログ)のダウンロード
$ wget http://tu-darmstadt-ros-pkg.
googlecode.com/files/Team_Hector_MappingBox_RoboCup_2
011_Rescue_Arena.bag
■hector_slamの起動
$ roslaunch hector_slam_launch tutorial.launch
■バグファイルの再生
$ rosbag play
Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag
--clock
■地図の保存
$ rostopic pub syscommand std_msgs/String "savegeotiff"
10. 11. 12. 本家チュートリアル
初級
1.ROS環境のインストールとセットアップ
2.ROSのファイルシステムを学ぶ
3.ROSパッケージを作る
4.ROSのパッケージをビルドする
5.ROSのノードを理解する
6.ROSのトピックを理解する
7.ROSのサービスとパラメータを理解する
8.rqt_consoleとroslaunchを使う
9.ROSでrosedを使ってファイルを編集する
10.ROSのメッセージやサービスなどを作る
11.シンプルなパブリッシャとサブスクライバを書く
12.データを記録し、リプレイをする
中級
他のライブラリのチュートリアル
その他
13. 初級
1.ROS環境のインストールとセットアップ
2.ROSのファイルシステムを学ぶ
3.ROSパッケージを作る
4.ROSのパッケージをビルドする
5.ROSのノードを理解する
6.ROSのトピックを理解する
7.ROSのサービスとパラメータを理解する
8.rqt_consoleとroslaunchを使う
9.ROSでrosedを使ってファイルを編集する
10.ROSのメッセージやサービスなどを作る
11.シンプルなパブリッシャとサブスクライバを書く
12.データを記録し、リプレイをする
中級
他のライブラリのチュートリアル
その他
本日の学習範囲
本家チュートリアル
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ■ノードが起動しているか確認
$ rosnode ping my_turtle
rosnode: node is [/my_turtle]
pinging /my_turtle with a timeout of 3.0s
xmlrpc reply from http://daikimaekawa-ThinkPad-X230:58887/
time=0.523806ms
xmlrpc reply from http://daikimaekawa-ThinkPad-X230:58887/
time=1.019001ms
xmlrpc reply from http://daikimaekawa-ThinkPad-X230:58887/
time=1.125097ms
27. 28. 29. 30. ■rostopicはトピックの詳細を調べるコマンド
$ rostopic echo /turtle1/cmd_vel
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.0
---
linear:
x: 2.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
---
31. 32. 33. ■配信-購読されているトピックとその型の情報を調べる
$ rostopic list -v
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 3 publishers
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
Subscribed topics:
* /turtle1/cmd_vel [geometry_msgs/Twist] 2 subscribers
* /rosout [rosgraph_msgs/Log] 1 subscriber
34. 35. ■rosmsgを使用してメッセージの詳細を調べる
$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
36. 37. 38. 39. ■rostopic hzは配信されたデータの更新頻度を調べる
■/turtle1/poseを購読して, turtlesim_nodeの速さがど
の程度か見てみよう
$ rostopic hz /turtle1/pose
subscribed to [/turtle1/pose]
average rate: 62.489
データの更新頻度は60Hz
min: 0.016s max: 0.016s std dev: 0.00011s window: 62
average rate: 62.491
min: 0.016s max: 0.016s std dev: 0.00009s window: 125
average rate: 62.496
min: 0.016s max: 0.016s std dev: 0.00009s window: 187
40. ■コマンドを組み合わせて便利に使える
■rostopic type と rosmsg showを結合して使ってみよう
→ 普通にパイプが使える
$ rostopic type /turtle1/cmd_vel | rosmsg show
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
41. 42. 43. 44. ■rosservice listでアクティブなサービスの情報を表示
$ rosservice list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level
45. 46. 47. 48. 49. 50. 51. 52. ■全てのパラメータサーバの中身を見る
$ rosparam get /
background_b: 255
background_g: 86
background_r: 255
rosdistro: 'hydro
'
roslaunch:
uris: {host_daikimaekawa_thinkpad_x230__57324:
'http://daikimaekawa-ThinkPad-X230:57324/'}
rosversion: '1.10.2
'
run_id: 2ec6f1ae-be3f-11e3-986c-b8763fd266b5
53. ■全てのパラメータをファイルに書き出す
$ rosparam dump params.yaml
■yamlファイルをcopyというネームスペース
の中に読み込む
$ rosparam load params.yaml copy
■rosparam getで中身を確認する
$ rosparam get copy/background_b
255
54. 55. ■ROSのワークスペースを作成(catkin)
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make
$ echo “source ~/catkin_ws/devel/setup.bash”
>> ~/.bashrc
$ source ~/.bashrc
56. ■パッケージ作成
$ cd ~/catkin_ws/src
$ catkin_create_pkg marker_publisher roscpp
visualization_msgs
57. 58. 59. ■初期設定
#define DEFAULT_RATE 20
int main(int argc, char *argv[]){
ros::init(argc, argv, “test”);
ros::NodeHandle n;
ros::Publisher marker_pub =
n.advertise<visualization_msgs::Marker>(“visualiz
ation_marker”, 10);
・・・
}
60. ■初期設定
int main(int argc, char *argv[]){
・・・
visualization_msgs::Marker line_strip;
line_strip.header.farme_id = “practice”;
line_strip.ns = “practice”;
line_strip.id = 1;
line_strip.type =
visualization_msgs::Marker::LINE_STRIP;
line_strip.action =
visualization_msgs::Marker::ADD;
・・・
}
61. ■初期設定
int main(int argc, char *argv[]){
・・・
line_strip.scale.x = 0.1;
line_strip.color.b = 1.0;
line_strip.color.a = 1.0;
float phai = 0.0;
n.setParam(“/rate”, DEFAULT_RATE);
・・・
}
62. ■図形を作成
int main(int argc, char *argv[]){
・・・
for(int i=0; i <= 10; i++){
const float radius = i % 2 ? 6.0 : 3.0;
const float theta =
(72.0 * (i/2) + (i%2) * 36.0) * M_PI / 180.0;
geometry_msgs::Point vertex;
vertex.x = radius * cos(theta);
vertex.y = radius * sin(theta);
line_strip.points.push_back(vertex);
}
・・・
}
63. ■図形の回転
int main(int argc, char *argv[]){
・・・
while(ros::ok()){
int val = DEFAULT_RATE;
if(n.getParam(“/rate”, val)){
std::cout << “val = ” << val << std::endl;
}
ros::Rate r(val);
line_strip.header.stamp = ros::Time::now();
line_strip.pose.orientation.z = sin(phai / 2);
line_strip.pose.orientation.w = cos(phai / 2);
・・・
}
return 0;
}
64. 65. 66. 67. 68. ■ノードを起動
$ rosrun marker_publisher marker_publisher_node
■rostopic echoでframe_idを確認
$ rostopic echo /visualization_marker
・・・
frame_id: practice
・・・
line_strip.header.frame_id = “practice”
69. 70. 71. 72. ■rosbagでトピックを記録
$ rosbag record /visualization_marker
■marker_publisher_nodeを停止
$ Ctrl - C
■rosbagでバグファイルを再生
$ rosbag play *.bag
rosbagはデバックの強い味方
73.