はじめに
ゲームパッド(Logicool F710)をROSで使うためにセットアップした際の忘備録です.
(2022年10月購入)
環境
PC (Panasonic Let's Note CF-FV)
・OS: Windows11 Pro (64bit)
・VirtualBox: 6.1.38 (Ubuntu18.04.3, GUI環境)
・ROS: melodic
※こちらの環境構築については別記事
https://qiita.com/pez/items/741b43eb4765894edc94
と同様になります
(追記)
・Ubuntu16.04 + kinetic でも全く同様の操作でセットアップできることを確認
ゲームパッド
・Logicool F710
ゲームパッドをPCに接続
ゲームパッドのドングルをPCに接続
入力モードとしてX(XInput)とD(DirectInput)があるがXの方にしておく
VirtualBoxの設定
立ち上げ直後の画面の「設定」⇒「USB」⇒ USBフィルタの追加
で接続したゲームパッドを選択して加える ⇒ OK
Ubuntuの設定
接続確認
$ lsusb
一覧の中に接続したゲームパッドが表示されれば認識されている.
表示されない場合はエラー対応MEMO①へ↓↓
動作確認
$ jstest-gtk
※未インストールの場合は下記でインストール
$ sudo apt-get install jstest-gtk
該当のデバイス(ここでは Logitech Gamepad F710)を選択して「プロパティ」
ゲームパッドのボタンやスティックの操作で反応するか確認する.
また,ゲームパッドの接続先 (例としてここでは) 「/dev/input/js2」を確認(記憶)しておく
エラー対応MEMO①
ubuntuでゲームパッドを認識できない状況が発生することがあった
(lsusbコマンドの段階で表示されない)
・Ubuntuの再起動
・VirtualBoxの立ち上げ直し
・ゲームパッドの接続し直し(USBデバイスフィルターの再設定)
などを繰り返していたらあるとき認識された.腑に落ちない.
そもそもPCがゲームパッドを認識していない?と思ったら
下記が参考になると思います
ROSのjoy用パッケージのインストール
いつかソースコードを参照したりいじったりする日がくるかもしれないということで、ソースコードからビルド
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/joystic_drivers.git
$ cd ~/catkin_ws
$ catkin_make
エラー対応MEMO②
ここで「fatal error : spnav.h そのようなファイルやディレクトリはありません」
といったエラーが出てビルドできなかった.そこでそのspnavというものをインストール
$ sudo apt-get install libspnav-dev
その後は正常にビルドできた.
動作確認
$ roscore
$ rosrun joy joy_node _dev:=[ゲームパッドの接続先]
例えばここでは
$ rosrun joy joy_node _dev:=/dev/input/js2
$ rostopic echo /joy
これでゲームパッドを操作したときに画面にその情報が出れば成功
終了したいときは全ターミナルで
Ctrl + C