tfのデモを試す(作成編)
ROSさんお手やわらかに:ROS入門編
前回の投稿に「リストナー」ではなく「リスナー」と言うコメントをいただいた。確かにその通り、よく見りゃlistin + erだ。適当に英文を読む傾向があるので気をつけないと。なんといっても僕は、中学生のころ、listenを「リステン」と心の中で唱えていたくらいだから。
今回はタートルが追いかけっこするデモの作成だ。
まずは座標系を確認しておく。
親のワールド座標はロボットが置かれている空間の座標系。二つのタートルはそれぞれ独立の座標系を持つ。デモではタートル2から見たタートル1の位置を、tfの仕組みを使って取得し、タートル2を自動制御することになる。
次はノードとトピックの確認だ。デモを「作った後」にrqt_graphで確認したもの。本格ミステリならアンフェアな手法だが、最初に構造を確認しておくとデモコードが理解しやすくなるのでね。
丸がノード、矢印がトピック、矢印の上の文字はそこを流れるメッセージ、吹き出しは後から追加した解説だ。ポイントは次のとおり。
・ノード/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さんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
コメント