ゲームパッドで走行しよう
ライトローバーに市販のゲームパッドを接続して走行させてみましょう。
使用できるゲームパッドについて
アナログスティック入力機能を有するUSB接続のもの、またはPS4のコントローラ(DualShock®4)を、お客様にてご用意ください。ゲームパッドの種類によっては、デバイスドライバが非対応で動作しない可能性もございます。
DualShock®4の無線接続
DualShock®4(以下DS4)をBluetooth接続で使用される場合は、以下の方法でセットアップおよび接続を行ってください。USBで接続される場合はこの手順は不要です。
-
ds4drvのインストール
DS4とRaspberry PiをペアリングするためのPythonドライバds4drvをpipでインストールします。
ターミナルを立ち上げ以下のコマンドを入力してください。sudo pip install ds4drv
一度インストールを行えば、次回からは以降の手順だけを行うだけで使用できます。
-
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
入力デバイスとして認識されていものが一覧で表示されます。
※表示内容は環境によって変わります。
Raspberry PiにUSBでゲームパッドを接続するか、DS4をbluetoothで接続してください。
ターミナルで再び以下のコマンドを入力します。
ls /dev/input
接続前後を比較すると「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
ゲームパッドを操作して、ライトローバーを走行させてみましょう。
机の上などで試す場合は、落下しないようご注意ください。