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

ラズパイマウスをROS 2 & ゲームコントローラで動かす

ラズパイマウスとF710 ラズパイマウスでROS2動かしてみた
ラズパイマウスとF710

こんにちは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

ラズパイマウスとF710

F710の入力モードをDに切り替えます。

F710の入力モードをDに切り替える

F710の入力モードをDに切り替える

ドングルをラズパイに接続したら準備完了です。

F710のドングルをラズパイに装着

F710のドングルをラズパイに装着

次のコマンドを実行して、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ケーブルを接続します。

DUALSHOCK3をラズパイに接続

DUALSHOCK3をラズパイに接続

次のコマンドを実行します。起動する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 Dashingraspimouse_ros2_examplesをインストールしてください。

また、環境変数ROS_DOMAIN_IDを、ラズパイマウスと作業用PCのそれぞれに同じ値で設定します。

$ export ROS_DOMAIN_ID=22

#設定された値の確認
$ echo $ROS_DOMAIN_ID

それでは動かしてみましょう。

DUALSHOCK 3をラズパイから取り外し、作業用PCに接続します。

ラズパイからDUALSHOCK 3を取り外し、作業用PCに接続

ラズパイから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サンプルを実行します。

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