2023年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

カテゴリー

ブログパーツ

無料ブログはココログ

« コーヒーブレイク(2回目) | トップページ | その前にroslaunch XMLを見ておく »

2013年4月17日 (水)

tfのデモを試す(作成編)

ROSさんお手やわらかに:ROS入門編

前回の投稿に「リストナー」ではなく「リスナー」と言うコメントをいただいた。確かにその通り、よく見りゃlistin + erだ。適当に英文を読む傾向があるので気をつけないと。なんといっても僕は、中学生のころ、listenを「リステン」と心の中で唱えていたくらいだから。

今回はタートルが追いかけっこするデモの作成だ。

まずは座標系を確認しておく。
Zahyoukei
親のワールド座標はロボットが置かれている空間の座標系。二つのタートルはそれぞれ独立の座標系を持つ。デモではタートル2から見たタートル1の位置を、tfの仕組みを使って取得し、タートル2を自動制御することになる。

次はノードとトピックの確認だ。デモを「作った後」にrqt_graphで確認したもの。本格ミステリならアンフェアな手法だが、最初に構造を確認しておくとデモコードが理解しやすくなるのでね。

Nodes_3

丸がノード、矢印がトピック、矢印の上の文字はそこを流れるメッセージ、吹き出しは後から追加した解説だ。ポイントは次のとおり。

・ノード/simがturtle_simノード。ここでは/simと言う名前をつけて起動している。
・/simではturtle1,turtle2という二つのインスタンスを生成し、2匹の亀(タートル)を出現させている。
・このうち、turtle1はキー操作を受け入れる/teleopノードから操縦される。
・それぞれのタートルのpose(位置と向き)はタートルごとにturtleX_tf_broadcasterというノードからtfというメッセージに変換して送信されている。
・listenerノードは二つのブロードキャスターからのtfメッセージを利用して、turtle2がturtle1を追いかけるように制御。

まずはブロードキャスターを作る。チュートリアルではtutorialsというディレクトリにパッケージを作るようになっているが、僕の環境(ROSのチュートリアルを素直になぞったもの)ではROSのパスが通っているのはsandboxというディレクトリなので、ここをsandboxと読み替えて作業した。
次にリスナーを作る。これはそのまま作れば良い。

これでデモは完成。
次回はコードの中身を見てみる。


« コーヒーブレイク(2回目) | トップページ | その前にroslaunch XMLを見ておく »

ROSさんお手やわらかに」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: tfのデモを試す(作成編):

« コーヒーブレイク(2回目) | トップページ | その前にroslaunch XMLを見ておく »