DualShock4でturtlesim
はじめに
DualShock4でturtlesimを動かせるようにしたので、そのまとめ。
DualShock4の環境構築
環境
- ubuntu 16.04
- ROS Kinetic
パッケージインスール
はじめに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でモータやサーボを動かせるようにしていきたい。