コンテンツにスキップ

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

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

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

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

Xbox ワイヤレス コントローラーの無線接続

Xbox ワイヤレス コントローラー(以下Xboxコン)をBluetooth接続で使用される場合は、以下の方法でセットアップおよび接続を行ってください。USBで接続される場合はこの手順は不要です。

1. Xboxコンとペアリング
Ubuntu画面右上のBluetoothマークから、「Device」を選択します。
「Shall bluetooth get enable automatically?」というウィンドウが表示される場合は「Yes」を選択してください。
Bluetooth Devicesというウィンドウが表示されます。

次にXboxコンをペアリングモードにします。
Xboxコンの中央にあるXboxマークが白く点滅するまで、「ペアリング」ボタンを押し続けます。
ライトが点滅したらペアリングモードになっていますので、ボタンから指を離してください。

Ubuntuの画面に戻ります。
Bluetooth Devicesウィンドウの左上の「Serch」を選択します。
見つかったBluetooth機器の一覧が表示されるので、「Xbox Wireless Controller」をダブルクリックしてください。
接続しようとすると画面右上に「Bluetooth」という通知が出るので「Confirm」を選択してください。
XboxコンのXboxマークの点滅から点灯に変われば接続完了です。

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

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

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

sudo apt install python3-transforms3d ros-jazzy-joy* ros-jazzy-tf2-tools ros-jazzy-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

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