Skip to content

Latest commit

 

History

History
57 lines (37 loc) · 2.83 KB

map-creation.md

File metadata and controls

57 lines (37 loc) · 2.83 KB

gmappingによる地図作成

ロボット走行用の11階の地図を作成します。

いつも読み込んでいるマップ(ロボットの地図に関して)の実態はただの画像です。この画像はレーザーセンサーで読み取った値から作成されるものです。

手順

以下の2コマンドを入力するとrviz上に地図が作成され始めます。コントローラーでロボットを動かすと地図が作られていくのが分かると思います。

roslaunch icart_navigation gmapping.launch
roslaunch my_utility rviz.launch

満足いく地図が出来たら保存します。保存方法は以下です。

rosrun map_server map_saver -f <ファイル名>

Error: Can't open serial port. / failed to init libypspur が出る

device-forbidden-error

上のようなエラーが出る場合、以下を実行してください。

sudo chmod 666 /dev/ttyACM0 && sudo chmod 666 /dev/ttyACM1

これだと毎回上記コマンドを打たなければいけないので嫌な人は https://moriokalab.slack.com/archives/C8Z72J4TB/p1595398117005500 のやり取りを見て設定しましょう。

うわっ…私のロボット、速すぎ…?

速すぎると思ったらロボットのパラメーターをいじりましょう。パラメーターはypspur_ros/params/yuda.paramである場合が多いです。違ったらypspur_ros/launch/ypspur_ros.launchの中を確認してみましょう。

そしてパラメーターファイルのMAX_VELを0.4くらいにすれば速すぎるということはなくなるはずです。

なんかグルグル回る

以下のようにrviz上の様子がおかしい場合があります。

rviz-guruguru

このようになるのは座標系が反転しているからです。また、以下のようにrvizをよく見ると壁とは反対の部分が壁として認識されています。

tf-inverted

これを解決するにはicart_navigation/launch/gmapping.launch中の<!-- tf -->と書かれている部分を編集する必要があります。

<!-- tf -->
<node pkg="broadcaster" type="laser_tf_broadcaster" name="laser_tf_broadcaster" />

このtype="laser_tf_broadcaster"laser_tf_broadcasterならinverted_laser_tf_broadcasterに、inverted_laser_tf_broadcasterならlaser_tf_broadcasterに変えます。

こうすることでセンサーの座標系が反転して正しく認識されるようになります。

補足 座標系はHokuyoのレーザーセンサーの向きによって決まります。レーザーセンサーが上を向いているものはlaser_tf_broadcasterで、下を向いているものはinverted_laser_tf_broadcasterを使います。