http://www.ros.org/wiki/ROS/Tutorials/UnderstandingNodes より
ROSにおけるグラフの概念
ノード(Node):ノードはROSを使う実行形式で、他のノードと互いに通信できる。
トピック(Topic):ノードはトピックに対してメッセージを配信(Publish)する。また、メッセージを受信するためにトピックを購読(Subscribe)する。
メッセージ(Message):トピックへの配信や購読の際に用いられるROSデータ型のこと。
マスター(Master):ROSのネームサービスのこと。互いにノードを見つける助けとなる。
rosout:ROS版のstdout, stderrのこと。
roscore:マスター+rosout+パラメーターサーバー
ノードはROSクライアントライブラリを使って他のノードと通信し、トピックに対して配信・購読できる。また、サービスを提供したり利用できる。
ROSクライアントライブラリは、他のプログラミング言語で書かれたノードと通信できるようにするためのライブラリである。rospyはPython用のクライアントライブラリであり、roscppはC++用のクライアントライブラリである。
roscoreは、ROSを利用する際に実行しなければならない。以下のように実行する。
roscore
roscoreが起動しない場合は、ネットワーク設定に問題のある可能性がある。なお、roscoreは多重起動はできずエラーメッセージが表示される。
rosnodeは、実行中のノードに関する情報を表示する。rosnode listで、実行中のノードの一覧が表示される。
rosoutは常に実行されているノードで、デバッグ出力を記録するためのものである。
rosnode infoは、特定のノードに関する情報を表示する。以下は使用例。
rosnode info /rosout
rosnode infoにより、ノードが配信・購読するトピックやサービスがわかる。
rosrunは、パッケージ内のノードを直接実行するコマンドである。
rosrun [パッケージ名] [ノード名]
turtlesimパッケージのturtlesim_nodeを実行するには、以下のようにする。
rosrun turtlesim turtlesim_node
ノードに別途名前を付けることもできる。
rosrun turtlesim turtlesim_node __name:=my_turtle
rosnode pingで、名前を付けたノードが起動しているか確認できる。
rosnode ping my_turtle