Rosのノードの起動と停止

 

1. ROSは単位を実行します。

ROSユニットは、ROSノードを実行しています。

 

2. ROSノードの起動:

(1)初期化 ROSノード:ROS ::のinit()インタフェースを呼び出すことによって、コマンドラインプログラムは、それがノード名を変更することができますので、あなたがデフォルトのノード名を指定することができ、デフォルトのパラメータの理由は、あります。

(2)スタート ROSノードを:NodeHnadleはROSを呼び出してNodeHnadleインスタンスを作成します:: NH達成、初めてのインスタンスを作成すると、ROSを呼び出します::開始()、今回、このノードを開始します。

 

3. ROSノードがダウンしました:

(1)を呼び出すことによって :: ROSシャットダウン()インタフェース、近いROSノードを、このインターフェースは、サブスクリプションのトピックを閉じトピックを公開し、要求サービス、およびサービスを提供します。

(2)最後の ROS :: NodeHnadleオブジェクトが破壊された時は、それが自動的にROSを呼び出します::シャットダウンを()、ROSノードを閉じるために。

 

ノードが閉じたかどうかを検出4. ROS:

(1)ROS ::)(OKインタフェース:falseを返し、ノードがシャットダウンされたことを示しています。

(2)ROS :: isShuttingDown()インタフェース:trueを返す、ROS ::シャットダウンを説明()と呼ばれているが、それはノード比を終了する必要があります。

注意:これは、一般的に使用 ROS :: OK()の判断を、そのような「長期サービスコールバック」として、ノードを終了していない、あなただけのROS :: isShuttingDownを()を使用することができ、このノードがある不思議、閉じないので、どのようなノード?

 

5.ブレイク:

このパラメータを使用している場合1)ROS ::のinit()のオプション、オプションROS :: init_options :: NoSigintHandlerでは、SIGINTは、デフォルトのハンドラをインストールするかどうかを、受信信号SIGINT(Ctrl + Cでのインストールプログラムを決めます時間)、ROS :: OK()がfalseを返し、ノードがクローズ処理を行くことができます。このパラメータを使用している場合は、ノードが終了できることを保証するために、独自のSIGINTハンドラーをインストールする必要があります。

おすすめ

転載: www.cnblogs.com/long5683/p/11298509.html