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            

カテゴリー

ブログパーツ

無料ブログはココログ

« ROSコマンドのまとめ | トップページ | ここらでスピードアップ! »

2013年1月 9日 (水)

rostopicコマンドあれこれ

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

今回はrostopicコマンドをあれこれを試してみる。チュートリアルページの1.2.2から。このコマンドはトピックを操作をするものだ。

rostopic echoはトピックが発行したり引用したりするメッセージをタイプする。デバッグには必須だ。

rostopic listは発行・引用されている変数をリストする。もっともシンブルに rostopic list -v とやると、現在走っているすべてのトピックの変数(構造体か?)をリストする。

rostopic type でトピックを指定するとその変数の名前を取得できる。(これはlistでもわかる)次に、rosmsg show にこの変数名を与えると、その変数の要素の名前と型を表示する。こんな感じ。

rosmsg show turtlesim/Velocity

float32 linear
float32 angular

つまり、この構造体は移動距離linerと旋回角度angular二つの変数からなっているというわけだ。

これは既存のトピックとメッセージやりとりするプログラムを作る際に便利なのかな?

さて、いよいよコマンドラインからトピックにメッセージを送ってみる。ここまでくるとようやくプログラムが作れるような気になってくる。

rostopic pub -1 /turtle1/command_velocity turtlesim/Velocity -- 2.0 1.8

これはシミュレータの亀に円弧を描いて動くようメッセージを送る。一回のコマンドで一個のメッセージだ。これを実行するとこんなメッセージが現れる。

publishing and latching message for 3.0 seconds

3秒後にまたコマンド入力できるようになるが、何をラッチしているのかは分からない。
(後から考えると、これは3秒間このメッセージを「掲示」しているという意味らしい。つまりこの間にノードはメッセージを取得することになる。取得されるとメッセージはそのノードからは見えなくなるらしい。そうでないと「1回だけ」実行できない。3秒以上経過するとメッセージは自動的に消去される。メッセージが残っていると、思いがけないときに引用され、誤動作につながるかもしれないからだろう。)

周期的に送るにはこんな風にする。毎秒1回円弧を描くコマンドを送る。亀は円を描いて動きつづける。

rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8

rostopic pub -h でヘルプが出る。他のコマンドはこれを見ればまあ推測できる。
いろいろといじっているうちにコマンドを出しても亀が動かなくなった。こうなってしまうとroscoreを再起動してやり直さないとダメだった。

« ROSコマンドのまとめ | トップページ | ここらでスピードアップ! »

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

コメント

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: rostopicコマンドあれこれ:

« ROSコマンドのまとめ | トップページ | ここらでスピードアップ! »