ゲームパッドで走行しよう
ライトローバーに市販のゲームパッドを接続して走行させてみましょう。
使用できるゲームパッドについて
アナログスティック入力機能を有する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
入力デバイスとして認識されていものが一覧で表示されます。
※表示内容は環境によって変わります。
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
ゲームパッドを操作して、ライトローバーを走行させてみましょう。
机の上などで試す場合は、落下しないようご注意ください。