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

Revision history [back]

click to hide/show revision 1
initial version

Is the realtime lost if I use ROS_INFO inside a ros_control controller update method or inside a ros_control hardware interface write/read method?

yes.

Is the realtime lost if I use ROS_INFO inside a ros_control controller update method or inside a ros_control hardware interface write/read method?

yes. It depends / probably.

In the end, ROS_INFO(..) gets expanded to ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(filter, ...) which calls ::ros::console::print(..) which in the end makes use of either printf(..), fprintf(..) or a function in that group and/or calls upon one of the backends (glog, log4cxx) to do the work.

Unless a custom implementation of the printf(..) family is used, calling it typically results in loss of determinism. Xenomai wraps printf(..) and could work-around this. Not sure about RT-PREEMPT.

But apart from that there are multiple places where objects are instantiated and functions in various libraries are called. Those are also a bit suspect.