2011年3月28日月曜日

roshを使ってみる

みなさん震災の影響はどうでしょうか?
私のところはほとんど影響はありませんでした。
では前回の続きでroshです。

http://www.ros.org/wiki/rosh

roshはPythonインタプリタからROSにアクセスするための便利ツールです。
私の経験上、ロボットとインタプリタの相性は抜群だと思いますので、
これはかなりいい予感がします。
(作者は予想通りKen Conleyさんですね)

個人的にはPythonのインタプリタはあまり好きではありません。(っていうほど使ったことないですけど)
roshもデフォルトのインタプリタではなく、IPythonというものを使っているようです。
(IPythonではtabの補完ができたり、デバッグにも使えるみたいです。
emacsキーバインドも使えるし、これはすごいです!!Python使いには常識?)

まずroshのインストールです。
desktop-fullでインストールしてもroshは入らないようです。

$ sudo apt-get install ros-diamondback-rosh-desktop-plugins


IPythonが初めての人は ~/.ipython/ipythonrcの以下の部分を2にセットします。(プライベートシンボルを補完しないように)

readline_omit__names 2


カスタマイズしたい人はroshrcを書くこともできます。
http://www.ros.org/wiki/rosh/roshrc

私は以下のようにして動作確認しました。

予め、自作のjtalk_node、/talk (std_msgs/String)をSubscribeするノードを動かしておきます。
$ rostopic list
/rosout
/rosout_agg
/talk
という状態です。

$ rosrun rosh rosh
で起動します。

ここで、
topics.
まで入力して、Tabを押すと


In [1]: topics.
topics.rosout      topics.rosout_agg  topics.talk      

とトピック一覧が表示されます。
で、
tをタイプしてTabすると補完されて、
In [1]: topics.talk
となります。

topics.talk[0]
とすれば最新の/talkが見れます。

topics.talk(data="hoge")
とすれば、/talkに大して、std_msgs/Stringのstring dataに"hoge"をいれたものを発行できます。

これはすごい便利な予感がしますね。
rostopicでは物足りないときはこれですね。っていうかrostopicいらない?

0 件のコメント:

コメントを投稿