0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROS 2のジョイスティックでデバイス名を指定する方法

0
Posted at

はじめに

ROS 2のジョイスティック(Joystick Drivers)でデバイス名を指定する方法を紹介する。デフォルトでは /dev/input/js0 などのデバイス番号で選択されるが、USBの抜き差しや接続順によって番号が変わる場合がある。そのため、安定して特定のコントローラを利用したい場合はデバイス名による指定が有効である。

動作確認環境

  • ROS 2 Humble
    • ros-humble-joy
    • ros-humble-joy-linux

方法

ROS 2でジョイスティックを利用する方法は、以下の2つがある。それぞれについて、デバイス名を指定する方法を紹介する。

2つの違いは、ジョイスティックのデバイスの扱い方法にある。joy は SDL2 を使用しており、XInput やゲームパッドのマッピングに対応している。joy_linux は Linux の /dev/input/js* を直接扱う実装である。詳細は公式ドキュメントを参照。

joy

ros2 run joy joy_node --ros-args -p device_name:="your_device_name"

※デバイス名は、以下のスクリプトで確認する。

awk '
/^N:/ {name=$0}
/^H:/ && /js[0-9]/ {print name}
' /proc/bus/input/devices | sed 's/^N: Name="//;s/"$//'

Logicool F710(XInputモード)の場合は以下のようになる。

Logitech Gamepad F710

上記コントローラを指定する場合は以下のようなコマンドとなる。

Logicool F710の場合
ros2 run joy joy_node --ros-args -p device_name:="Logitech Gamepad F710"

joy_linux

ros2 run joy_linux joy_linux_node --ros-args -p dev_name:="your_device_name"

デバイス名は、以下のコマンドで確認できる。

ros2 run joy joy_enumerate_devices

Logicool F710(XInputモード)の場合は以下のようになる。

ID : GUID                             : GamePad : Mapped : Joystick Device Name
-------------------------------------------------------------------------------
 0 : 030000006d04000019c2000011010000 :    true :   true : Logitech F710 Gamepad (XInput)
Logicool F710の場合
ros2 run joy_linux joy_linux_node --ros-args -p dev_name:="Logitech F710 Gamepad (XInput)"

デバイス名指定時の注意点

joy、joy_linuxパッケージともに、デバイス名の指定には以下を注意すること。

  • デバイス名は完全一致である必要がある
  • スペースを含むため必ずダブルクォートで囲む
  • XInputモードとDirectInputモードで名前が異なる場合がある

まとめ

ROS 2のジョイスティック(Joystick Drivers)でデバイス名を指定する方法を紹介した。デフォルトでは /dev/input/js0 などのデバイス番号で選択されるが、USBの抜き差しや接続順によって番号が変わる場合がある。そのため、安定して特定のコントローラを利用したい場合は、本記事で紹介したデバイス名による指定が有効なので参考にしてほしい。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?