こんにちはshotaです。このシリーズではRaspberry Pi Mouse(ラズパイマウス)でROS 2を動かしていきます。
今回はラズパイマウスのROS 2サンプル集にある、ライントレースサンプルを実行します。
前回のおさらい
前回はカメラマウントとUSBカメラを使って、ラズパイマウスROS 2サンプル集にある物体追跡サンプルを実行しました。
今回もROS 2サンプル集を使用するので、下記の記事を参考にサンプル集をインストールしてください。
また、ROS 2サンプル集ではブザーを鳴らしたりモータを回したりします。
デバイスドライバも忘れずにインストールしてください。
作業に必要なもの
- Raspberry Pi Mouse V3
- 商品ページはこちら
- これまでの記事で、ROS 2 DashingをインストールしたUbuntu 18.04、をインストールしたRaspberry Pi Model 4 B、を搭載したラズパイマウスをセットアップしています
- Raspberry Pi Mouse オプションキット No.3 [ライントレース]
- 商品ページはこちら
- 組み付けにはプラスドライバーが必要です
- ビニールテープ
- このテープでライントレースのコースを作ります
- 作業用PC
- Ubuntu 18.04のPCを用意しました。ROS 2 Dashingインストール済みです。
オプションキットの組み付け
それではオプションキットをラズパイマウスに組み付けましょう。
ライントレースオプションキットには下記の紹介記事があります。この記事では組み立てマニュアルも紹介しています。
組み立てマニュアルを参考にして作業を始めます。
ライトセンサユニットを取り外す
ラズパイマウスからライトセンサユニットを取り外すため、ネジやスペーサを取り外していきます。
まずはラズベリーパイに取り付けられているネジ4本とコネクタを1つ取り外します。
外したネジは小さくて紛失しやすいので、深い小皿などに置くことをオススメします。
私は輪ゴムで代用しました。
次に、スペーサを4つ取り外します。
ラズパイマウスを裏返し、ネジを2つ取り外します。裏側にある4つのネジのうちラズパイマウス前方の2つを取り外してください。
すると、ライトセンサユニットが取り外せます。
ライントレースセンサユニットを組み付ける
続いてライントレースセンサユニットを組み付けていきます。
まずは、センサユニットを写真のように組み立てます。
ライトセンサが取りけられていたところに、ライントレースセンサユニットを組み付けます。
さきほど取り外した裏側のネジ2本でセンサユニットを固定します。
さきほど取り外したスペーサ4本を組み付けます。
ラズベリーパイをネジ4本で固定し、コネクタを接続して作業完了です。
センサ値を読み取る
デバイスドライバのサンプルプログラムを使い、ライントレースセンサの値を読み取りましょう。
次のコマンドを実行します。※Raspberry PiのUbuntuで実行します。
$ cd ~/RaspberryPiMouse/SampleProgram/ $ bash step5.sh
デバイスドライバがインストールされていれば次のようにセンサ値が表示されます。
327 156 126 177 332 154 123 168 321 155 126 187 328 152 126 185 323 151 124 183
写真のように数字の並びとセンサの配置は一致しているので、1番左側の数値は、左端のセンサ値を示します。
センサ値が確認できたらROS 2サンプル集を実行しましょう。
ライントレースサンプルを実行する
それではライントレースサンプルを実行します。
実行手順はパッケージのREADMEにも書かれています。
ライントレースのコースをつくる
まずはライントレースのコースを作ります。
私はビニールテープを床に貼りコースを作りました。
サンプルプログラムを工夫しているので、床とラインで色の違い(正確には明るさの違い)がわかれば、どんな色の組み合わせでも大丈夫です。
黒い床に白いテープを貼っても、白い床に黒いテープを貼ってもOKです。
サンプルを実行する
次のコマンドを実行して、launchファイルline_follower.launch.pyを起動します。
※Raspberry PiのUbuntuで実行します。
$ ros2 launch raspimouse_ros2_examples line_follower.launch.py
次にスイッチを操作します。
SW2を押して床のセンサ値をサンプリングします。
SW1を押してラインのセンサ値をサンプルリングします。
サンプリングが完了したら、SW0を押してライントレースをスタートします。
動画を見たほうが分かりやすいのでこちらをご覧ください。
走行軌跡をRViz2で描画する
せっかくなので、走行軌跡を描画してみましょう。
描画にはRViz2というパッケージを使用します。
ラズパイマウスでは描画できないので作業用PCを使います。
ラズパイマウスと作業PCで通信する方法は、こちらの記事を参照してください。
環境変数ROS_DOMAIN_IDを設定しています。
まず、これまでの走行軌跡をリセットするためラズパイマウスのline_follower.launch.pyを起動し直します。
続いて、作業用PCで次のコマンドを実行しRViz2を起動します。
$ rviz2
次の画像のようにGlobal OptionsのFixed Frameをodomにします。
また、Addボタンを押し、Odometryを追加し、表示するTopicを/odomにします。
それではラズパイマウスを走行させましょう。
次の画像のように走行軌跡が描画されたらOKです。
まとめ
今回は、
- ラズパイマウスにライントレースセンサユニットを取り付けました
- ラズパイマウスROS 2サンプル集のライントレースサンプルを実行しました
- RViz2でライントレースの走行軌跡を描画しました
次回はマルチLiDARマウントを使ったSLAMサンプルを実行します。