こんにちはshotaです。このシリーズではRaspberry Pi Mouse(ラズパイマウス)でROS 2を動かしていきます。
今回はラズパイマウスのROS 2サンプル集をインストールします。
インストール後はゲームコントローラでラズパイマウスを動かします。
前回のおさらい
前回はラズパイマウスのROS 2をパッケージをインストールしました。
ROS 2サンプル集でも使うパッケージなので必ずインストールしてください。
また、ROS 2サンプル集ではブザーを鳴らしたりモータを回したりします。
デバイスドライバも忘れずにインストールしてください。
作業に必要なもの
- Raspberry Pi Mouse V3
- 商品ページはこちら
- これまでの記事で、ROS 2 DashingをインストールしたUbuntu 18.04、をインストールしたRaspberry Pi Model 4 B、を搭載したラズパイマウスをセットアップしています
- 作業用PC
- Ubuntu 18.04のPCを用意しました。ROS 2 Dashingインストール済みです。
- ゲームコントローラ
raspimouse_ros2_examplesパッケージのインストールする
インストールするパッケージはraspimouse_ros2_examplesです。
パッケージのREADMEにかかれている手順通りにコマンドを実行します。
raspimouse2パッケージは前回の記事でインストールしたので、クローン不要です。
$ cd ~/ros2_ws/src # Clone package $ git clone https://github.com/rt-net/raspimouse_ros2_examples # $ git clone https://github.com/rt-net/raspimouse2 # Install dependencies $ rosdep install -r -y --from-paths . --ignore-src # Build & Install $ cd ~/ros2_ws $ colcon build --symlink-install $ source ~/ros2_ws/install/setup.bash
rosdep installでは、package.xmlにかかれている依存パッケージやライブラリをインストールしています。
今回実行するジョイスティックコントローラのサンプルでは、コントローラドライバパッケージのjoyを使用しますが、
このパッケージもrosdepコマンドでインストールされます。
ジョイスティックコントローラでラズパイマウスを動かす
raspimouse_ros2_examplesには様々なサンプルコードがあります。
今回はゲームコントローラ(ジョイスティックコントローラ)でラズパイマウスを動かすjoystick_controlサンプルを実行します。
Logicool F710で動かす
まずはLogicoolのF710コントローラを使います。
F710の入力モードをDに切り替えます。
ドングルをラズパイに接続したら準備完了です。
次のコマンドを実行して、launchファイルteleop_joy.launch.pyを起動します。
$ ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=f710 mouse:=true
実行したらラズパイマウスのライトセンサのLEDが点灯します。
前回の記事ではraspimouseノードのライフサイクルを状態遷移させるためにコマンドを入力していましたが、そのような操作は不要です。
それでは動かしてみましょう。コントローラのキーコンフィグはREADMEにかかれています。
動かしてみた動画がこちらです。ブザーを鳴らしているので音も聞いてみてください。
サンプルを終えるときはCtrl+Cを入力します。
DUALSHOCK 3で動かす
つづいて、SONYのDUALSHOCK 3でラズパイマウスを動かします。
F710のドングルをラズパイから取り外し、DUALSHOCK 3のUSBケーブルを接続します。
次のコマンドを実行します。起動するlaunchファイルは同じくteleop_joy.launch.pyです。
引数をjoyconfig:=dualshock3のように変更していることが重要です。
$ ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=dualshock3 mouse:=true
操作方法はF710コントローラと同じです。
作業用PCからラズパイマウスを動かす
最後に作業用PCからラズパイマウスを動かします。
この手順は、有線コントローラを使ってラズパイマウスを遠隔操縦したい場合に便利です。
今回はDULASHOCK 3を有線コントローラと見立てて作業します。
あらかじめ、作業用PCにもROS 2 Dashingとraspimouse_ros2_examplesをインストールしてください。
また、環境変数ROS_DOMAIN_IDを、ラズパイマウスと作業用PCのそれぞれに同じ値で設定します。
$ export ROS_DOMAIN_ID=22 #設定された値の確認 $ echo $ROS_DOMAIN_ID
それでは動かしてみましょう。
DUALSHOCK 3をラズパイから取り外し、作業用PCに接続します。
つづいて、ラズパイマウス側で次のコマンドを入力し、raspimouseノードを起動します。
$ ros2 run raspimouse raspimouse
作業用PC側で次のコマンドを入力します。起動するlaunchファイルは同じくteleop_joy.launch.pyです。
mouse:=falseが重要です。
$ ros2 launch raspimouse_ros2_examples teleop_joy.launch.py joydev:="/dev/input/js0" joyconfig:=dualshock3 mouse:=false
これで作業用PCからネットワークを経由してラズパイマウスを動かせます。
まとめ
今回は、
- ラズパイマウスのROS 2サンプル集(raspimouse_ros2_examples)をインストールしました
- joystick_controlサンプルを実行し、F710とDUALSHOCK 3でラズパイマウスを動かしました
- ROS_DOMAIN_IDを設定し、作業用PCからラズパイマウスを動かしました
次回はカメラを用いたobject_trackingサンプルを実行します。