はじめに
$ ros2 run joy joy_node
ROS2(foxy)にてJoyでJoystick(logicool F310)を使用できず詰まった。
接続したJoystickではなくキーボードがJoystickとして認識されてしまう。
解決できたので備忘録。
結論
$ ros2 run joy_linux joy_linux_node
joy_linuxパッケージを使ったら解決した。
/dev/input/js0
のJoystickを直接使ってくれるみたい 助かるね。
環境
- PC : Sony VAIO SVP1121A2J
- OS : Ubuntu 20.04.3 LTS (Focal Fossa)
- ROS2 : foxy
- コントローラー : Logicool F310
準備
必要パッケージのインストール
$ sudo apt install ros-foxy-joy-linux
$ sudo apt install ros-foxy-joy-linux-dbgsym
接続確認
& lsusb
Bus ~ Device ~: ID XX:XX Logitech, Inc. F310 Gamepad [XInput Mode]
それっぽいのが出てくればOK。
$ ls /dev/input/
jsX
があればOK。
私の環境ではjs0
だった。
入力確認
$ jstest /dev/input/js0
ボタン、アナログスティック、トリガー入力で値が変化すればOK。
権限確認
ls -l /dev/input/jsX
crw-rw-XX- 1 ~~~
"XX"が"--"の場合、権限を追加する。
$ sudo chmod a+rw /dev/input/jsX
使う
$ ros2 run joy_linux joy_linux_node
$ ros2 topic echo /joy
結論と同じ。
joy_linuxパッケージのjoy_linux_nodeを起動する。
ボタン入力で/joy
トピックに値が出力されていればOK。
参考