Turtlebot3をPS4コントローラーDUALSHOCK 4で動かしてみた(無線接続)

スポンサーリンク

ROSでDUALSHOCK 4(以下、DS4)を扱う方法はds4drvを使う例をよく見かけるけど、何もインストールせずにDS4の無線接続ができてしまったので、その記録。
できた理由がUbuntuのバージョン18.04によるものなのか、Parallels Desktop 15という仮想環境を使っているせいなのかは不明。

動作環境

少し特殊な環境かもしれないので、環境について最初に記載。

PC
ホストOS: macOS Mojave 10.14.6
仮想環境ソフト: Parallels Desktop 15
ゲストOS: Ubuntu 18.04
ROS: Melodic

下準備

Parallels Desktopには、ホストOS(Mac)とBluetoothを共有する機能があるけど、DS4の電源をONにするとほぼほぼMacと接続されてしまうなど、扱いが難しかった。そのため、次のような対策をしてみた。

  1. Parallels DesktopBluetooth有機能をOFFにする f:id:sato_susumu:20190816110602p:plain:w300
  2. PCにBluetooth USBアダプター(BT-Micro4)を接続する
  3. USBデバイスはホストOSかゲストOSのどちらかのみに接続されるため、ゲストOSを選択する

こうすることで確実にゲストOSと接続できるようになった。

その後、ゲストOS上でDS4とBluetoothのペアリングすれば、ゲストOS上で/dev/input/js1と認識。
f:id:sato_susumu:20190816110554p:plain:w300

あとは、前回の「Turtlebot3をPS4コントローラーDUALSHOCK 4で動かしてみた(有線接続)」の方法で、無線でもTurtlebot3を操作できた。


PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4

PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4