ラズパイマウスでROS2動かしてみた 技術情報・開発日誌

ラズパイマウスとROS 2でライントレースする

ラズパイマウスとROS 2でライントレース ラズパイマウスでROS2動かしてみた
ラズパイマウスとROS 2でライントレース

こんにちは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本で固定し、コネクタを接続して作業完了です。

ラズパイを固定する

ラズパイを固定する

正しく組み付けられているかもう一度確認しましょう。ピンヘッダとコネクタの接続がズレると、ラズパイマウスが壊れる可能性があります

センサ値を読み取る

デバイスドライバのサンプルプログラムを使い、ライントレースセンサの値を読み取りましょう。

次のコマンドを実行します。

$ 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を起動します。

$ 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 OptionsFixed Frameodomにします。
また、Addボタンを押し、Odometryを追加し、表示するTopic/odomにします。

RViz2の設定

RViz2の設定

それではラズパイマウスを走行させましょう。
次の画像のように走行軌跡が描画されたらOKです。

RViz2でライントレースの走行軌跡を描画する

RViz2でライントレースの走行軌跡を描画する

まとめ

今回は、

  • ラズパイマウスにライントレースセンサユニットを取り付けました
  • ラズパイマウスROS 2サンプル集のライントレースサンプルを実行しました
  • RViz2でライントレースの走行軌跡を描画しました

次回はマルチLiDARマウントを使ったSLAMサンプルを実行します。

タイトルとURLをコピーしました