Navigation stackの座標系を確認する
ROSさんお手やわらかに:ROS青雲編
« 2014年6月 | トップページ | 2014年8月 »
ROSさんお手やわらかに:ROS青雲編
ROSさんお手やわらかに:ROS青雲編
ROSさんお手やわらかに:ROS青雲編
読んでみると、コストマップがキモのようだ。これも結構分量があるので、これも翻訳しておいた方が良さそうだ。
ここまででわかったことは、
●ナビゲーションスタックにゴール位置を何らかの方法で与えると、ロボットがそこへ移動する。
●「コストマップ」というのが、その環境の障害物などの情報を保持している。
●world座標系に乗ったグローバルコストマップと、ロボットの座標系に乗ったローカルコストマップの二つが必要。
ROSさんお手やわらかに:ROS青雲編
ここまで来たのなら、Hanabot1に測距センサを載せてturtleBotのようにROSで使えるロボットにしたい。
センサのデータはオリジナルのデータフォーマットを作らずに、sensor_msgs/LaserScanの形で流すようにしたい。これなら、rvizでモニタできるので、開発が楽だ。
試しに、ダミーのLaserScanデータを作成するdmylaser.pyと、これをちょっとばかりオフセットしてTFに設定するtesttf.pyを作ってrvizで見てみた。(この辺を参考に)hanabotパッケージのフォルダに二つのファイルを置いて、rosrunで起動するだけだ。
ちっぽけな点々がダミー障害物の位置だ。これはdmylaser.pyの
laser.ranges = [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5]
で、値を設定している。単位はmだ。まだデータの数と方向が思ったようになっていないが、ともあれこんな感じでデータを作れば、レーザースキャナ(URG)よりずっと測定点が少ないセンサでも、データを送れることがわかった。
ただ、レーザースキャナのようにスピーディにマッピングができるわけではないだろう。測定点がすくないのだから。