ROSを理解するノード(NODE)

3142 ワード

前の学習を経て、ROSのパッケージを構築する方法を知っています.このブログでは、ROSのノードの概念を紹介します.
続行する前にctrl+alt+tを押して端末を開き、次のように入力します.
sudo apt-get install ros-<distro>-ros-tutorials

軽量レベルのシミュレータをインストールし、コマンドの「」を自分のrosバージョンに置き換える必要があります.前のチュートリアルに従えばhydroに置き換えます.
次に、ROSの図に関する概念を見てみましょう.
     ノード(NODE):1つのノードは、ROSを使用して他のノードと通信できる実行可能プログラムです.
     メッセージ(Message):あるトピックで、パブリッシュまたはサブスクリプションするときに使用されるROSのデータ型.
     トピック(Topic):ノードは1つのトピックでメッセージを公開することができ、同じように1つのトピックを購読してメッセージを受信することもできます.
     ホスト(Master):ROSの名前サーバーです.
ROSのクライアントライブラリは、異なるプログラミング言語で記述されたノード間の相互通信を可能にする.
roscoreはrosを使用する前に最初に実行すべきプログラムです.端末でroscoreを実行するには:
roscore

rosnodeコマンドは、実行中のrosのノードの情報を表示します.次のコマンドは、アクティブなrosノードをリストし、新しい端末入力を開きます.
rosnode list

次のようになります.
/rosout

これは、現在1つのノードrosoutのみが実行されていることを示しています.
次のコマンドは、アクティブなノードの情報を返します.
rosnode info /rosout

rosrunでは、パッケージ内のノードを直接実行できます.使用方法は次のとおりです.
rosrun [package_name] [node_name]

端末に入力:
rosrun turtlesim turtlesim_node

スクリーンにカメが現れたのが見えます.このコマンドの役割はturtlesimパッケージの下にあるturtlesimを実行することです.Nodeノードは、このコマンドを複数回実行すると異なる亀が見えるかもしれませんが、これはサプライズではありません.
新しい端末を開き、次のように入力します.
rosnode list

実行したばかりのノードがリストに表示されます.
また、コマンドラインの下で実行するノードに直接名前を指定し、開いたばかりのカメを閉じることもできます.Close the turtlesim window to stop the node (or go back to the rosrun turtlesim terminal and use ctrl-C).先ほどのノード入力を再実行します.
$ rosrun turtlesim turtlesim_node __name:=my_turtle

実行中のノードを再度確認します.
rosnode list

表示される結果:
/rosout

/my_turtle

このときに/turtlesimというノードが表示される場合は、ウィンドウを閉じるのではなくterminalでctrl+cで閉じている可能性があります.環境変数$ROS_かもしれませんHOSTNAMEの構成が正しくありません.
次は別のrosnodeのコマンドを学びます:ping
$ rosnode ping my_turtle

次の結果が返されます.
rosnode: node is [/my_turtle]

pinging /my_turtle with a timeout of 3.0s

xmlrpc reply from http://aqy:42235/     time=1.152992ms

xmlrpc reply from http://aqy:42235/     time=1.120090ms

xmlrpc reply from http://aqy:42235/     time=1.700878ms

xmlrpc reply from http://aqy:42235/     time=1.127958ms

上のこの命令が実行されると、ネットワークのpingと同じです.つまり、私たちのクライアントはこのnodeと通信することができますが、彼らの通信方式はxmlrpcを利用しています.
まとめ:
このセクションで学んだ基本はrosnodeの関連概念と対応するコマンドラインツールです.roscore,rosnode,rosrun