ROS(Robot Operating System)を使う
安曇野の森から > 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」を入力することによりノードを止めることも出来ますが、この場合、マスターにノードが登録されたままになってしまいます。
以下のコマンドで、この登録を解除することが出来ます。
以下のコマンドで実行中の全ノードの一覧を表示させることが出来ます。
以下のコマンドで指定したノードの情報を表示させることが出来ます。