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  

カテゴリー

ブログパーツ

無料ブログはココログ

« gmappingに入門する | トップページ | roombaプラットフォームとgmappingでマップを作る »

2013年10月21日 (月)

gmappingを使う準備をする

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

マップ作成実験の前に、roombaプラットフォームの構成をgmappingのチュートリアルに近い形に整理する。原因不明のトラブルを回避したいからだ。


まずは座標系。現在、自作のrbjoyとlaseroffsetで定義している座標系はworld→roomba→laserだが、これをチュートリアルにどおりのodom→base_link→base_scanに変更。
もともとroomba500_light_nodeがodomとbaseはブロードキャストしているので、laseroffset.pyを修正し、その座標系にセンサの座標系をリンクするだけ。ただ、worldとroombaの座標系を外したい(余計なので)ので、rbjoy.pyも差し替えた。ついでに、ゆっくり走らせやすいよう、ジョイスティックの係数を調整した。
laseroffset.pyを見る
rbjoy.pyを見る

次はレーザー測域センサの座標系をデフォルトのlaserからbase_scanに変更する。hokuyo_nodeの設定だ。今回、これに気づかなくて、相当苦労した。
hokuyo_nodeのパラメータframe_idに"base_scan"をセットすればいいので、ローンチファイルを修正する。rb_base.launchに下記を追加するだけだ。
<param name="hokuyo_node/frame_id" value="base_scan"/>
rb_base.launchを見る

これで修正は終わり。テストした時は気づかなかったが、レーザースキャンのトピック名もbase_scanに変更すればチュートリアルどおり。これを変更するにはローンチファイルに下記を追加すればいいはず。
<remap from="scan" to="base_scan" />

テスト中気がついたのは、ラップトップを立ち上げたとき、レーザー測域センサのポートが、ACM0になったりACM1になったりと、一つのポートに固定されないことだ。USBシリアル変換器などは、結構同じポートに割り当てられるのだが、これはちょっと勝手が違う。ローンチファイルで起動していると、ポートがオープンできなくともエラーにならないが、データは入ってこないので、原因不明のトラブルになりがちだ。
ローンチが成功したかどうは、測域センサのアタマの小さなLEDの点灯状態でわかる。点いたままならOKだが、点滅しているならポート違いの可能性がある。
【後日追加】残念ながら、LEDの点滅は必ずしもそうならないようだ。最初に起動したときに、rvizでレーザーが見えるかどうか、確認する必要がある。

Dscn2668

次回は実際にマップを作ってみる。

« gmappingに入門する | トップページ | roombaプラットフォームとgmappingでマップを作る »

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

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: gmappingを使う準備をする:

« gmappingに入門する | トップページ | roombaプラットフォームとgmappingでマップを作る »