次はROSのServicesを使ってみたいと思います。
まずはいま稼働してるServicesを一覧するコマンド、rosservice listですね。
$ rosservice list /clear /kill /reset /rosout/get_loggers /rosout/set_logger_level /spawn /teleop_turtle/get_loggers /teleop_turtle/set_logger_level /turtle1/set_pen /turtle1/teleport_absolute /turtle1/teleport_relative /turtlesim/get_loggers /turtlesim/set_logger_level |
もし該当するServiceはどんなTypeを知りたいのであれば、rosservice type /Your servicesでできます。
$ rosservice type /kill turtlesim/Kill $ rosservice type /clear std_srvs/Empty |
また先の亀さんのこと戻りましょう。こっちはclear Servicesを呼び出し、いままで動いたとき書いてた白線をクリアすることができます。
$ rservice call /clear |
ですが、パラメータがついてるServicesがあるのは結構多いです。そのために以下のコマンドでServicesどんなパラメータあるのか調べることできます。例えば、 /spawnですね。
$ rosservice type /spawn | rossrv show float32 x float32 y float32 theta string name — string name |
そこではLinuxのPipingを使ってるだけで特にROSでだけのものではありません。まずType名もらって、
rosservice type /spawn turtlesim/Spawn |
そしてとshowコマンドを使えば同じの結果もらえます。
$ rossrv show turtlesim/Spawn float32 x float32 y float32 theta string name — string name |
もちろんargsのコマンドでも見えます。
$ rosservice args /spawn x y theta name |
最後に先のコマンドでもらった/Spawnのパラメータを入れてみて、新しい亀さんを作りましょう。
rosservice call /spawn 3 3 0.2 “new_turtle” name: “new_turtle” |