Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

There's a connected() method in the underlying rosserial_client API: https://github.com/ros-drivers/rosserial/blob/jade-devel/rosserial_client/src/ros_lib/ros/node_handle.h#L286-L288 ; it looks like it does this by monitoring the time sync messages, and the timeout is about 10 seconds.

That's probably a bit too long for a safety timeout, and I'm not aware of any other periodic messages that are built into rosserial.

Probably the best thing to do is to implement your own timeout; my favorite way to do this is to set a timeout on the command message itself. If my firmware doesn't receive a command within 3x the expected command interval, it commands an immediate stop. (I'm not using rosserial, but the principle is the same)