LoginSignup
1
1

More than 3 years have passed since last update.

ps4コントローラーをJetsonNano+ros melodicで使用する

Last updated at Posted at 2021-01-03

以下のps4コントローラー+Bluetooth USBアダプタを使用する

ワイヤレスコントローラー(DUALSHOCK 4)
エレコム Bluetooth USBアダプタ

基本的には以下手順を参考にさせていただいた

ROS講座07 joyプログラム

インストール

sudo apt-get install ros-melodic-joy -y
sudo apt-get install ros-melodic-joystick-drivers -y
sudo pip install ds4drv

有線で接続

PS4コントローラーを有線で接続するには、マイクロusbで直接pcとコントローラーを接続する。
(正しく接続するとpd4側のledが光り、/dev/input/js0デバイスが生えている。マイクロusbによっては繋がらないものがあるみたいなので注意)

別々のターミナルで実行する

roscore
rosrun joy joy_node
rostopic echo /joy

joyトピックが流れていたらとりあえず接続OK

無線で接続

マイクロUSBで接続しているPS4コントローラーを外して、以下を実行する

$ sudo ds4drv
[info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event17 (evdev) 
[info][bluetooth] Scanning for devices

PS4側の「PS」「SHARE」の2つのボタンを押下し続けると、光が点滅して以下Found deviceログが現れればOK
これで有線接続時と同様に、/dev/input/js0からコントローラーの入力を取得できる。

$ sudo ds4drv
[info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event17 (evdev) 
[info][bluetooth] Scanning for devices
[info][bluetooth] Found device A4:53:85:49:05:B0

確認は、有線接続時と同じ手順で以下を実行する

roscore
rosrun joy joy_node
rostopic echo /joy

joyトピックが流れていたらとりあえず接続OK

備考

[error][bluetooth] Unable to connect to detected device: Failed to set operational mode: [Errno 107] Transport endpoint is not connected

調子が悪くて切断されたみたいだったので、PS4側の「PS」「SHARE」の2つのボタンを押下し続けると接続できた

[info][controller 1] Battery: 0%
[info][controller 1] Disconnected

コントローラ側のバッテリーがないので充電して下さい

参考

ROS講座07 joyプログラム

1
1
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
1
1