IT×農家の長男

研究や趣味についてのメモ

DualShock4でturtlesim

はじめに

DualShock4でturtlesimを動かせるようにしたので、そのまとめ。

DualShock4の環境構築

環境

パッケージインスール

はじめにjoyパッケージをインストールを行う。

$ sudo apt-get install ros-kinetic-joy

無線接続を行う場合はds4drvをインストール。

$ sudo pip install ds4drv

ペアリングの方法は以下のサイトを参照。

cryborg.hatenablog.com

動作確認

DualShock4の入力を確認するために以下のコマンドを入力。

$ roscore 
$ rosrun joy joy_node

ノードが起動しない場合はデバイス番号が /dev/input/js0 以外が指定されていることが想定される。 ジョイスティックの確認にはJoystick-gtkを利用すると便利です。 以下のコマンドでインストールが可能。

$ sudo apt-get install joystick jstest-gtk 

この場合、DualShock4は js1 に接続されているので, joyノードの起動は以下のように書き換える。

$ rosrun joy joy_node _dev:="/dev/input/js1" 

入力値の確認はrostopicで行う。

$ rostopic echo /joy 


turtlesimの実行

以下のサイトを参考に進める。

qiita.com

はじめにturtlesimのインストールを行う。

$ sudo apt-get install ros-kinetic-turtlesim 

turtlesimの実行は以下のコマンドを入力。

$ rosrun turtlesim turtlesim_node 


次にパッケージの作成を行う。

$ cd ~/catkin_ws/src 
$ catkin_create_pkg ps4_turtlesim std_msgs roscpp rospy


シミュレーションで扱う亀は turtle1/cmd_vel トピックにコマンドを送ることで動かせる。 そこで、geometry_msgs::Twist型をDualShock4で書き換えるプログラムを作成。

$ sudo vi src/twist_publisher.cpp 

CMakeList.txtの下部に以下の行を追加。

 add_executable(twist_publisher src/twist_publisher.cpp)
target_link_libraries(twist_publisher ${catkin_LIBRARIES})

launchファイルを以下のように記述。

$ mkdir launch
$ sudo vi launch/turtle.launch

パッケージのビルドを行う。

$ cd ~/catkin_ws
$ catkin_make

以下のコマンドで実行。

$ roslaunch ps4_turtlesim turtle.launch

おわりに

今後はDualShock4でモータやサーボを動かせるようにしていきたい。