ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.
2 | No.2 Revision |
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.