コンテンツにスキップ

ゲームパッドで走行しよう

ライトローバーに市販のゲームパッドを接続して走行させてみましょう。

使用できるゲームパッドについて

アナログスティック入力機能を有するUSB接続のもの、またはPS4のコントローラ(DualShock®4)を、お客様にてご用意ください。ゲームパッドの種類によっては、デバイスドライバが非対応で動作しない可能性もございます。

DualShock®4の無線接続

DualShock®4(以下DS4)をBluetooth接続で使用される場合は、以下の方法でセットアップおよび接続を行ってください。USBで接続される場合はこの手順は不要です。

  1. ds4drvのインストール
    DS4とRaspberry PiをペアリングするためのPythonドライバds4drvをpipでインストールします。
    ターミナルを立ち上げ以下のコマンドを入力してください。

    sudo pip install ds4drv
    

    一度インストールを行えば、次回からは以降の手順だけを行うだけで使用できます。

  2. ds4drvの起動とペアリング
    ターミナルに以下のコマンドを入力し、ds4drvを起動します。

    sudo ds4drv
    

    以下のような表示が出れば、ペアリング待機状態です。

    [info][bluetooth] Scanning for devices
    

    DS4をペアリングモードにします。
    DS4の端面にあるライトバーが白く点滅するまで、「PSボタン」と「SHARE」ボタンを押し続けます。
    ライトが点滅したらペアリングモードになっていますので、ボタンから指を離してください。

    ds4drvを起動したターミナルを確認し、以下のような表示になっていれば、接続完了です。

    [info][bluetooth] Found device xx:xx:xx:xx:xx:xx  
    [info][controller 1] Connected to Bluetooth Controller (xx:xx:xx:xx:xx:xx)
    

    ds4drvは引き続き起動し続けてください。

必要パッケージのセットアップ

必要となる各種パッケージをセットアップします。
インターネット接続が必要です。

ターミナルで以下のコマンドを入力し、パッケージインストールします。

sudo pip install transforms3d
sudo apt install ros-humble-joy* ros-humble-tf2-tools ros-humble-tf-transformations

セットアップは以上で完了です。

ゲームパッドの接続とデバイスファイルパスの確認

Raspberry Piにゲームパッドを接続しない状態で、ターミナルで以下のコマンドを入力してください。

ls /dev/input

入力デバイスとして認識されていものが一覧で表示されます。
※表示内容は環境によって変わります。 image

Raspberry PiにUSBでゲームパッドを接続するか、DS4をbluetoothで接続してください。
ターミナルで再び以下のコマンドを入力します。

ls /dev/input

image

接続前後を比較すると「js0」が増えていることが分かります。
これがゲームパッドのデバイスファイルです。
この場合は、ファイルのパスは“/dev/input/js0”となります。
デバイスファイル名は、機種やゲームパッドを接続するタイミングによって変化しますので、都度確認してください。

デバイスファイルパスをパラメータとして設定

確認したゲームパッドのデバイスファイルパスを、ゲームパッド操作サンプルのlaunchファイル「pos_joycon.launch」にパラメータとして設定します。
launchファイルをテキストエディタで開きましょう。
geditを使用する場合は以下のコマンドを実行してください。

gedit ~/ros2_ws/src/lightrover_ros2/lightrover_ros/launch/pos_joycon.launch.py

geditがインストールされていない場合、以下のコマンドでインストールしてください。

sudo apt install gedit

ファイルマネージャで開いていただいても構いません。
次の行を探してください。

parameters=[{'dev':'/dev/input/js0','deadzone':0.1}]

launchファイルでは、param要素を用いることでパラメータを設定することができます。

“/dev/input/js0”を先ほど取得したゲームパッドのデバイスファイルパスに書き換えてください。
書き換えが完了したら保存して閉じてください。
またその後一度ビルドをし直します。

cd ~/ros2_ws
colcon build --symlink-install  --cmake-clean-cache  --parallel-workers 2

ゲームパッド操作サンプルの実行

いよいよライトローバーをゲームパッドで動かしてみましょう。
USBゲームパッドまたは、DS4を接続し、以下のコマンドを実行してください。

cd ~/ros2_ws/
. install/setup.bash
sudo chmod 777 /dev/i2c-*
ros2 launch lightrover_ros pos_joycon.launch.py

ゲームパッドを操作して、ライトローバーを走行させてみましょう。
机の上などで試す場合は、落下しないようご注意ください。