2017年6月
        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  

カテゴリー

ブログパーツ

無料ブログはココログ

« roombaプラットフォームのまとめ(その1) | トップページ | roombaプラットフォームのまとめ(その3) »

2013年10月 9日 (水)

roombaプラットフォームのまとめ(その2)

ROSさんお手やわらかに:ROS奮闘編

実行時のノードとトピックをrqt_graphで表示したものがこれ。丸がノードで四角がトピックだ。

Roombarobotrqt

自作ノードrbjoyは、joy_nodeがトピックjoyにパブリッシュするゲームパッドの入力情報を、サブスクライブして直線速度と旋回速度に変換、cmd_velというトピックにパブリッシュする。roombaを動かすroomba500_light_nodeがこれをサブスクライブして、roombaにコマンドを送るわけだ。
同時に、トピックtfにworld、roombaの座標系をブロードキャストする。マップ生成やナビゲーションで利用するためだ。(うわー、なんかカタカナばっかりで、アタマ悪そうな文章だなこりゃ)
また、同じく自作ノードlaseroffsetはtfからroomba座標系をリスンして、前に書いたとおり、レーザー測域センサの座標系laserをtfにブロードキャストする。これで、センサが読み取った障害物をworld座標系のマップに記録することなどが可能だ。

これだけのことが、数学を少しも使わないで実現できるのはありがたい。シェーキーでマップ作成の実験をしたときには、座標変換行列の実装にずいぶん苦労したものだ。

T61でrvizを起動し、これらをモニターしたのがこれ。tfとLaserScanをDisplaysウィンドウにAddしている。それぞれの設定は画面を参考に。

Rviz

この画面はworld座標系から見ているので、ゲームパッドでroombaを動かすと、画面のroombaとlaser座標系が動く。白く見えているのは、レーザーで感知した障害物。これがロボットから見えている周囲のイメージだ。慣れれば、画面だけを見ながら操縦することもできる。ゲームみたいでなかなか楽しい。

続きは次回。


« roombaプラットフォームのまとめ(その1) | トップページ | roombaプラットフォームのまとめ(その3) »

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

コメント

コメントを書く

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

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/53536782

この記事へのトラックバック一覧です: roombaプラットフォームのまとめ(その2):

« roombaプラットフォームのまとめ(その1) | トップページ | roombaプラットフォームのまとめ(その3) »