IT×農家の長男

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

DualShock4でturtlesim (2)

はじめに

turtlesimで亀を移動させすぎると画面が線だらけになります。 その場合、再度turtlesimを立ち上げなおすか、rosのコマンドを叩いてサービスをクリアするしかありません。 そこで今回は前回作成したプログラムを改良し、 DualShock4のボタンを押すことで画面をクリアする機能を追加していきたいと思います。

rosserviceについて

亀の移動によって描画される線はrosserviceで実装されている。

例えば、線の色を変更したい場合は以下のコマンドを入力する。

$ rosservice call /turtle1/set_pen 255 0 0 5 0 
$ rosservice call clear

/turtle/set_penの後ろに続く数値は引数で [R、 G、 B、 線の幅、 線描画のon-off切り替え] の順に指定する。 また、turtlesimノードは実行中にパラメータを読まないので clear コマンドを入力することによって反映させる。 今回はこの clear コマンドをプログラムに組み込む。

f:id:crowsky:20181122062154p:plain

実装

前回作成したプログラムに数行追加するだけでよい。

プログラムのコピーが完了したらcatkin_makeを実行し、 launchファイルの実行を行う。

$ cd ~/catkin_ws 
$ catkin_make
$ roslaunch ps4_turtlesim turtle.launch

亀をしばらく移動させた後、DualShock4のL1ボタンを押すことによって線が消去されると思います。

f:id:crowsky:20181122045610p:plain

f:id:crowsky:20181122061248p:plain