MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。Supportersはじめにこの記事は2015年ロボットアドベントカレンダーの22日目の記事です。qiita.comROSの様々なエラーを管理するデフォルトツールdiagnosticsロボットにとって、ハードウェアやソフトウェアのエラーを瞬時にハンドリングすることは必須だと思います。そこで便利なのが、ROSのデフォルトツールであるdiagnosticsです。今回は、このdiagnositcsの基本的な使い方について説明したいと思います。diagnosticsの概要diagnositicsは、ハードウェアなどからの情報から、ユーザがエラーデータをロギングしたり、解析したりしやすくするためのツールチェーンです。OverlayDiagnostic)、そして、そのデータを後処理で解析するツール(diagnostic_analysis)などで構成されています。続いてこれらのツールについて概要を説明します。diagnostic_msgsdiagnosticのエラー情報は、diagnostic_msgsのトピックとして送信します。基本は下記のリンク先のdiagnostic_msgs/DiagnosticStatusにエラーデータを入れ、DiagnosticArrayに複数のエラー情報を格納して送信する形になります。一つのDiagnosticStatusを割り当て、そのハードウェアのエラーメッセージやエラーID、もしくはエラー判定条件とその値をKeyValueとして格納して送信する形が一般的なようです。diagnosticのメッセージのステータスdiagnosticのメッセージのステータスは下記の4つで表現されます。diagnostic_updaterdiagnosicのメッセージトピックを送信する場合は、diagnositic_updaterというツールを使います。Wikic++とpythonのAPIが提供されており、それぞれほぼ同じAPIで利用することができます。オフィシャルなC++とPythonのサンプルコードの場所dianostic_updaterを使う場合のC++とpythonのサンプルコードは下記のリンクにあります。ros/diagnosticsPythonのサンプルコード下記は最も簡単なdiagnostic_updaterの使い方のサンプルコードです。トピックをpublishしてくれます。いうトピックで再パブリッシュをするROSノードツールです。管理しずらくなります。沢山のエラーデータを管理しやすくなります。diagnostic_agggregatorにより送信されたデータは後述するrqt_robot_monitorで分かりやすく可視化することができます。基本的には、diagnosticメッセージのカテゴリ分けを事前にyamlファイルに記述しておき、そのyamlファイルを読み込んで、aggregatorノードを起動することで、カテゴリー分けされた/diagnostic_aggというトピックが出力されます。yamlファイルは下記のように記述します。upper-temperatureまずはじめにエラーカテゴリを設定し(templeture)あとは、それぞれのdiagnosticメッセージを登録します。typeは、先ほど紹介したdiagnostic_updaterを使っている場合は、GenericAnalyzerでOKです。pathはdiagnosticメッセージの名前を設定します。先ほどのyamlファイルを読み込むようにすればOKです。</node></launch>diagnostic_aggregatorのより詳しい説明は下記を参考にすると良いと思います。rqt_runtime_monitordiagnosticのデータを簡単に確認するツールとしては、rqt_runtime_monitorとrqt_robot_monitorがあります。Wikirqt_runtime_monitorは、diagnostic_msgs/DiagnosticArrayのデータを表示するrqtプラグインです。各メッセージや、その他の詳細情報を表示させることができます。Wikirqt_robot_monitorは前述したdiagnostic_agggregatorのカテゴリーエラーデータを可視化するツールです。時刻ごとのエラー、ワーニング発生状況を確認することができます。OverlayDiagnostic下記の記事で紹介されているrvizのプラグインOverlayDiagnosticを使うと、diagnosticsのメッセージをかっこ良くrvizに表示することができます。OK)と、ステータスメッセージを表示することができます。メッセージの表示する場所を指定することもできます。ステータス情報が色で表示されたり、ステータスメッセージが流れるように表示されたりするので非常にかっこいいです。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。