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ハンドラーをインストールする必要があります。