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            

カテゴリー

ブログパーツ

無料ブログはココログ

« 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さんお手やわらかに」カテゴリの記事

コメント

コメントを書く

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

トラックバック


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

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