おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はLiDARを使って地図の作成を行いましたが、はっきりとした地図はできませんでした。もう一度地図作成にチャレンジする前にRVIZでロボットの状態を可視化してみます。
Rvizでロボットの状態を可視化してみる
Gazeboを動かし、Rvizを動かします。
1. ターミナルを開いて以下を入力します
| |

2. もう一つターミナルを開いて以下を入力します。
| |
3. Rviz の機能をいろいろ触ってみます。
- Robot description
- RobotModelのチェックをはずすとロボットの外観がみえなくなります。
- TF(座標変換:transformation)の表示
- TFのFramesでAll Enabledにチェックを入れると様々な座標が見えます。
- 見やすくするために以下のところだけチェックをいれます。
- create1/base_footprint
- create1/base_link
- create1/odm
- create1/wheel_left_link
- create1/wheel_right_link
- map
- Addボタンを押す→By display typeでtfを選択→Topicで/create1/base_footprintを選択→OK
- LaserScanの表示
- Addボタンを押す→By display typeでLaserScanを選択→Topicで/create1/rplider/scanを選択→OK
4. 2枚目のターミナルからキーボードでルンバを動かしてみる
- create1/wheel_left_link, create1/wheel_right_link の座標が回転しているのがわかります。
- create1/odom や /map は元の位置にとどまっているのがわかります。

5. TFがツリー構造になっているのがわかります。

- map ワールドの原点(大体は起動した絶対的な位置)
- create1/odom ワールドの基準点(様々な原因で起こる微妙なずれを調整するためのもの)
- create1/base_footprint ロボットの現在位置(車軸の中心の地上面)
- create1/base_link ロボットの基準位置
- create1/battery_link バッテリーの位置
- create1/wheel_left_link 左車輪の位置
- create1/wheel_right_link 右車輪の位置
URDFをRvizで見てみる
URDF (Unified Robot Description Format)は、ロボットの構造を記述するためのXMLのフォーマットです。いろいろなURDFをRvizで表示してみました。
この部分は以下のサイトを参考にしました。
ルンバ実機で地図を作ってみよう
もう一度ルンバで地図を作成してみます。
初期設定
1.ca_driverのconfigファイルで/tfをpublishするように設定する。
- 変更するファイル
| |
- 変更箇所
| |
2.rplidarのlaunchファイルでlaserとbase_footprintのリンクをpublishするように設定する。
- 変更するファイル
| |
- 追加部分
| |
ルンバを動かす
1.bagデータを取得
| |
2.ルンバのドライバを起動する
| |
3.RPLiDARのノードを起動する。
| |
4.キーボード操作でルンバを動かす
| |
5.動かし終わったらbagデータの取得を止める

地図を作成する
1.gmappingを起動する。
| |
2.取得したbugデータを再生する。
| |
3.再生が終わったらmap情報を取得する。
| |
作成できた地図
1回目(2021-11-03取得)
途中でバッテリーが切れたため中途半端な地図になりました。しかし通路がはっきりわかります。

2回目(2021-11-06取得)
データをしっかりとろうと細かく動かしすぎたせいか通路や壁もわからなくなってしまいました。これは失敗です。

次回の予定
データの取得はコツが必要のようです。もう少し試したあとに自律走行に向けて準備をしてみます。
