ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Is there a robot monitor node?

asked 2016-07-27 06:48:16 -0600

Michael Stoll gravatar image

updated 2016-07-31 05:51:10 -0600

I am looking for a node which can monitor the robots health

It should:

  • Monitor nodes, topics, tf frames, ...

  • Publish diagnostic_msgs messages

  • Have a configuration which describes the robot's system (like frames, nodes, etc.)

It might be similar to roswtf, but as a node and with robot specific extensions


The purpose of the node is to get a operational level (as defined in REP107) of the system. This is trivial for components, which publish diagnostics messages themselves. But other components might be supervised by their external interface (topics, tf frames, ...).

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2016-07-31 16:23:16 -0600

ahendrix gravatar image

There isn't a single node that can monitor all of these things, but there is a good approach you can take:

  • Subscribing to every topic to monitor its frequency is very bandwidth intensive. Use the diagnostic_updater library in each node, and have it monitor any topics it publishes.
  • Use nodes from diagnostics_common_diagnostics to monitor TF and time sync
  • Use libsensors_monitor to monitor CPU temperature and fan speeds
  • Set up the diagnostic_aggregator to validate that other diagnostics are being published. This is where you do the top-level description of the system and validate that all of the diagnostics that you expect are actually published.
  • Monitor the output of the diagnostic_aggregator with rqt_robot_monitor
edit flag offensive delete link more


Great, the diagnostics_common_diagnostics package is pretty close to what I've been looking for.

Michael Stoll gravatar image Michael Stoll  ( 2016-08-01 02:50:44 -0600 )edit

answered 2016-07-31 14:05:21 -0600

Marcin Bogdanski gravatar image

I had similar problem couple months ago. Needed to monitor robot for errors/warning, topic latency, diagnostic info etc. I tried rqt_robot_monitor but found it rather convoluted and difficult to setup. I ended up writing dedicated node to listen monitor other nodes and display easy to understand status info to the user. Unfortunately it was very project specific :| Would be great to have a proper generic tool for health monitoring.

edit flag offensive delete link more

answered 2016-07-27 09:29:41 -0600

cagatay gravatar image

updated 2016-07-27 09:29:59 -0600

Take a look at rqt You can view all of the things you listed rqt wiki

edit flag offensive delete link more


The rqt_robot_monitor listens to diagnostic_msgs. I'm looking for a node to publish them.

Michael Stoll gravatar image Michael Stoll  ( 2016-07-27 10:03:42 -0600 )edit

then write your own

orhan gravatar image orhan  ( 2016-07-27 14:01:30 -0600 )edit

If the answer to the question is "no", I'm going to do that. Just want to be sure that nothing like this exists yet.

Michael Stoll gravatar image Michael Stoll  ( 2016-07-28 12:25:12 -0600 )edit

you can publish messages via rqt, just take a look

cagatay gravatar image cagatay  ( 2016-07-29 01:14:12 -0600 )edit

Do you mean rqt_publisher? Well, that's not what I'm looking for. I'lll try to update the question to be more specific.

Michael Stoll gravatar image Michael Stoll  ( 2016-07-31 05:39:19 -0600 )edit

Question Tools



Asked: 2016-07-27 06:48:16 -0600

Seen: 1,615 times

Last updated: Jul 31 '16