ROS2を使ってみる その2(Turtlesim、rqt、Windows)

はじめに

 今回はROS2でTurtlesimrqtを試してみました。

 ROSとROS2について最近触るようになったのですが、Turtlesimとrqtは書籍やオンラインのチュートリアルでよく見かけました。実行しながら、理解を深めていきたいなと思っています。

 Linux環境ならaptでのインストール方法に関する情報が豊富なのですが、Windows環境だと少ないのが難点ですね。今回はすでにインストールされていました。

▼こちらのTurtlesimのチュートリアルを参考にしています。

https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html

 なお、今回もWindowsで環境を構築したROS2で実行します。

▼以前の記事はこちら

ROS2を使ってみる その1(環境構築、Windows)

はじめに  今回はROS2の環境構築です。何度か挑戦して諦めていたのですが、今度こそちゃんと動かせるようにしてみます。  つい最近参加していたROS Japan UGでは、ROS1…

Turtlesimを試してみる

 Turtlesimは、2次元のシミュレーション上でカメを動かすものになっています。

 コマンドの実行は、WindowsのPowerShellで行っています。

▼Windowsの場合、Turtlesimはすでにインストールされているようです。

https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html

 以前の記事に追記したのですが、新しくPowerShellを開いて実行する場合は少しコマンドを実行する必要があります。

▼以下のコマンドを実行してから、ros2コマンドを実行します。local_setup.ps1の場所は適宜変更してください。

▼以下のコマンドで、turtlesimで実行できるものが表示されます。

 カメのシミュレーションを起動します。

▼以下のコマンドを実行しました。座標も表示されていますね。

 Turtlesimが起動しました。

▼背景に近い水色なのですが、カメが表示されています。

▼あとで実行しなおしたときには、別のカメが表示されました。

 別のターミナルを開いて、キーボードでカメを操作するためのコマンドを実行しました。

▼コマンドはこちら

 キーボードの矢印や、PowerShellに表示されているキーで操作できます。

▼移動した後には白い線が残ります。

 listを付けたコマンドで、nodeやtopicのリストを表示することができます。

▼それぞれ実行してみました。

▼以下のように表示されました。turtle1もありますね。

rqtを試してみる

 rqtはGUIのフレームワークで、nodeやtopicの関係などを表示できます。

▼こちらも、Windowsの場合はすでにインストールされているようです。

https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html

▼コマンドを実行すると起動します。

▼Pluginsの欄から、実行できる機能を選択できます。

 例えばTopicを表示することができます。

▼TopicsのTopic Monitorを開いてみました。

▼先程のturtle1も表示されています。

 次にService CallerでServiceを実行してみます。

▼Pluginsの欄にあります。

▼Topic Monitorの隣に表示されました。消したい場合は、右上のバツをクリックしてください。

 Serviceを選び、Callすることで実行できます。

▼/spawnを選んでみました。

▼Expressionの欄をダブルクリックして、turtle2にしました。

▼よりによって水色のカメですが、左下に生成されています。分かりにくいですね...

 Serviceの中にあった/killを使うと削除できます。見づらかったので削除しました。

▼Expressionは先程のturtle2にして、Callしました。

 もう一度、座標を変えて/spawnさせてみました。

▼xとyの数値を5にしました。

▼真ん中付近に生成されました。

 set_penを使うことで、線の色も変更することができました。

▼/turtle1/set_penで色を変えてみました。

▼色が変わっています。

▼/clearをCallすると、線を消すことができました。

 別のターミナルを開いて、turtle2も操作してみました。

▼以下のコマンドを実行しました。

▼turtle2も同じように動かせました。

 他のチュートリアルを読んでいると、rqt_graphというものも見つけました。ノードの関係を可視化できるようです。

▼こちらに書かれていました。

https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Topics/Understanding-ROS2-Topics.html#rqt-graph

▼以下のコマンドを実行しました。

▼/turtlesimと/teleop_turtleの関係が可視化されています。カーソルを合わせると、色付きになりました。

最後に

 TurtlesimはROS2を学ぶための軽量なシミュレーションというだけあって、簡単に使うことができました。今回実行した内容を元にドキュメントを読むと、理解が深まるのかなと思っています。

▼nodesやtopics、servicesなどについての資料があります。

https://docs.ros.org/en/iron/Tutorials/Beginner-CLI-Tools.html

 HTTP Requestを送るような感じで、Serviceを呼び出しているような雰囲気を感じました。MQTT通信もトピックを指定して通信だったのですが、やはり似ているのでしょうか。

 これからやりたいのは、ネットワークを経由したROS2とのやり取りです。どのツールを使えばいいのかを模索しているところです。Node-REDと繋げることができれば、私としては開発がすごく楽になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です