173（ひとなみ）にROS2が使えるようになりたい＃１　ROS2チュートリアルを試す（2）

#Turtlesimとrqt
[前回](https://qiita.com/kamy9900/items/d148b0602aaa72aa4fe9)ROS2を動かすベースを構築できました。
本日はチュートリアルの[2項目目](https://translate.google.com/translate?sl=en&hl=ja&u=https%3A%2F%2Findex.ros.org%2Fdoc%2Fros2%2FTutorials%2F%23tutorials)に挑戦しようと思います。
このページではROS2 DashingでTurtlesimとrqtを動かすチュートリアルのトライの流れを書いていきたいと思います。

#　Turtlesimとは
ROSやROS2を勉強するためのシミュレーション環境です。
ROS２のメッセージを受けてウインドウ内の亀くんが泳ぎ回ります。
![Screenshot from 2020-05-25 22-22-51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/911ed58a-648c-91a8-6de0-695cbb6b066a.png)
※公式HPの画像を抜粋

# rqtとは
ROS2で提供されているGUIツールです。
![Screenshot from 2020-05-25 22-26-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/b8327ec4-4e3c-32be-bb20-5aa4cde498d2.png)
※公式HPの画像を抜粋
まだ、使い始めたばかりで全容を掴みきれていませんが、ROS2ノード感を通信されているデータの中身を確認したり、ROS2ノードやトピックの接続関係を可視化してくれたりといろいろなことができそうです。
色々わかってきたらもう少し上手くまとめようと思います。

# Turtlesimのインストール
現在自分が使っているディストリビューション（Dashing)用のTurtlesimをインストールします。

~~~
sudo apt update
sudo apt install ros-dashing-turtlesim
~~~

インストールが完了したら、正常にインストールできたか確認します。

~~~
ros2 pkg executables turtlesim
~~~
●実行結果
![Screenshot from 2020-05-25 22-34-56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/da8089e9-fad5-1d32-d12a-b86341e65ed4.png)

このようにTurtlesim ■■■■■■■　がいくつか表示されていればインストール完了です。
今回リストで表示されたものはTurtlesim用に準備された実行可能ファイルの一覧のようです。

#
実際に動かしてみる
##turtlesim turtlesim_node
先程の亀のウインドウが出てくる
![Screenshot from 2020-05-25 22-40-45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/6965e5fb-834f-f400-715d-933578c39cd3.png)

##turtlesim draw_square
自動的に沢山の命令が配信されて亀が正方形（らしき）形に泳ぐ。

![Screenshot from 2020-05-25 22-43-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/a4401add-37ca-ffa7-a044-143ba4c66be1.png)

~~~
New goal [7.412097 5.494119, 1.534044]
~~~

と書かれているので、XY座乗と亀の頭向きが指示されているようです。
向きは数値を見た感じラジアン表記っぽいですね。

##turtlesim turtle_teleop_key
こちらはユーザがキーボード操作をした結果を受けて亀が動き回る様です。
![Screenshot from 2020-05-25 22-44-40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/da794664-949d-db6c-ade1-98e9257777c8.png)


##turtlesim mimic
この子は今の所謎です。立ち上げても何も出てこないので。何者か今度調べてみようと思います。
![Screenshot from 2020-05-25 22-45-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/01b5cca5-5b98-d532-e5fe-6ef4d4932843.png)

#rqtのインストール
自分が使っているディストリビューションのrqtをインストールします。

~~~
sudo apt update
sudo apt install ros-dashing-rqt-*
~~~

インストールが完了したら起動してみましょう

~~~
rqt
~~~
起動するとこんな感じ。
![Screenshot from 2020-05-25 23-01-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/0ad9010d-b909-190a-4cbf-d10cfaac13b8.png)

#rqtからサービスを配信してみる
チュートリアルに従いServiceの右側ドロップダウンリストから「/spawn」を選択肢左側の更新ボタン（回転矢印）をクリックします。
すると図のような画面になりました。

![Screenshot from 2020-05-25 23-03-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/670ffe16-6266-92eb-4644-8cf6d0b07877.png)

図中のパラメータ
X　＝　5.0
Y　＝　5.0
に書き換えてCallをクリックしてみると
![Screenshot from 2020-05-25 23-04-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215555/b638926f-f620-4992-07a8-51860170d5f8.png)

真ん中付近に青い新顔亀が登場しました。

rqtを使うとROS２ノードに対して司令をることができることが確認できました。
「/spawn」以外にも「/set_pem」や「/teleport_absolute」など様々なコマンドがあるようです。それぞれのコマンドを使ってどんな振る舞いになるかも今後やってみたいですね。
※名前的には線の色や太さを変えたり、現在位置を強制移動したりする感じに見えますね。

次回はROS2のノードについてをやってみたいと思います。