はじめに
今回は小ネタです。ROS2のteleop_twist_joyパッケージを使いPS4 DUALSHOCKなどのゲームコントローラでカチヤカを遠隔操縦する方法を説明します。
環 境
- ノートPC:Ubuntu22.04.4
- ROS2:Humble
- カチャカ:バージョン 2.5.7
インストール
sudo apt install joystick
sudo apt install jstest-gtk
sudo apt install ros-humble-joy*
sudo apt install ros-humble-teleop-twist-joy ros-humble-teleop-tools
接続確認
- 接続方法
- USBケーブル接続の場合
- まず、DUAL SHOCKをUSBケーブルでノートPCに接続する。
- 次のコマンドでデバイスファイルが表示されれば成功
ls -l /dev/input/js0
- Bluetooth接続の場合
- DUALSHOCKのSHAREボタンを押しながら、ライトバーが点滅するまでPSボタンを押し続けてペアリングモードにする。
- Ubuntuデスクトップの右上にある「電源アイコン」をクリックして「Bluetoothオン」→「Bluetoothの設定」を選ぶ。DUALSHOCKが認識されると「Wireless Controller 設定されていません」と表示されるので、クリックして接続する。次回からは自動接続される。
- USBケーブル接続の場合
- 接続確認
- GUIで動作を確認できる。次のコマンドでJoystick Preferences窓が開く。
jstest-gtk
- GUIで動作を確認できる。次のコマンドでJoystick Preferences窓が開く。
-
- プロパティをクリックするとSony Ineractive Entertainment Wireless Cotroller窓が開くので、コントローラのスティックやボタンを押すと表示が変わるので動作を確認できる。
動作確認
- 端末を開き3分割する。
- 上端末でros2_bridgeを起動する。
~/kachaka-api/tools/ros2_bridge/start_bridge.sh <カチャカのIPアドレス>
- 中端末でLinuxジョイスティックのドライバjoy_linux_nodeを起動する 。
ros2 run joy_linux joy_linux_node
- 下端末で次のコマンドを実行する。カチャカのcmd_velのトピック名が/kachaka/manual_control/cmd_velなので、joy_velに代入しないと動かない。
ros2 launch teleop_twist_joy teleop-launch.py joy_vel:=/kachaka/manual_control/cmd_vel
<
/li>
- 操作
- コントローラ中央のPSボタンを押しながら左スティックを操作するとカチャカが移動する。なお、カチャカは障害物にぶつかりそうになると止まってくれるので安全安心に遠隔操縦できる。
終わり
コメント