安曇野の森から > ROS(Robot Operating System)を使う > ノード

ノード

ノードはプログラムからインスタンスを生成させて作ります。

ノードを識別するために生成するノードには固有の名前を付ける必要があります。また、ノード名を変えれば1つのプログラムから複数のインスタンスを生成させることが出来ます。
ノード名はノードプログラム内のros::init()関数の中で設定されますが、ローンチファイル、又はrosrunコマンドでオーバーライドが可能です。


プログラムによるノードの生成

以下のプログラムでros::init()で設定したノード名のノードが動きます。

ノードを作るのに必要なものは基本的にros/ros.hのインクルード、ros::init()の実行、ros::NodeHandleオブジェクト(ノードハンドル)の生成の3つだけです。

ノードハンドルが生成された時点でROS内にはノードが出来上がります。



コマンドによるノードの操作

ROSはノード操作用にいくつかのコマンドを持っています。以下では、そのコマンドの使い方を説明します。

以下のコマンドを実行させるには事前にroscoreコマンドでマスターを起動させておく必要がありますので注意してください。


ノードの実行

以下のコマンドを使って指定したノードが実行出来ます。

実行ファイル名は通常、ソースコードファイル名から拡張子を取ったものになります。


ノードの停止

ノードを停止させるには簡易的にはノードを実行しているターミナルで「Ctrl + C」キーを押せばノードは停止できます。

ただ、この方法だとマスターへ登録されているノード情報は消えませんが通常はこれでもあまり問題にはなりません。

正式にノードを停止させるには別のターミナルを開いて以下のコマンドを実行すれば指定したノードを停止させることが出来ます。


ノード登録の解除

上記で説明したようにターミナルで「Ctrl + C」を入力することによりノードを止めることも出来ますが、この場合、マスターにノードが登録されたままになってしまいます。

以下のコマンドで、この登録を解除することが出来ます。


ノードの一覧表示

以下のコマンドで実行中の全ノードの一覧を表示させることが出来ます。


ノード情報の表示

以下のコマンドで指定したノードの情報を表示させることが出来ます。



inserted by FC2 system