输出调试(日志)信息 ROS自带了大量的能够输出调试信息的函数和宏,包括错误,警告等.
日志根据严重程度分为五个等级:DEBUG, INFO, WARN, ERROR, FATAL.
它提供了如信息级别,条件触发消息和STL的流接口等方式。
(1)调试级别c和c++用法 其中 ROS_INFO(“INFO message %d”,k),相当于c中的printf; ROS_INFO_STREAM ( "INFO message." <<k);相当于c++中的cout;
而调试(日志信息) 的显示级别有5种:DEBUG、INFO、WARN、ERROR、FATAL
如:
ROS_DEBUG_STREAM(message);
ROS_INFO_STREAM(message);
ROS_WARN_STREAM(message);
ROS_ERROR_STREAM(message);
ROS_FATAL_STREAM(message);
(2)为调试信息命名 ROS_INFO_STREAM_NAMED( “named_msg”, “INFO named message.” );
表示为这段信息命名,为了更容易知道这段信息来自那段代码.
(3)设置显示(打印)频率
ROS_INFO_STREAM_THROTTLE( 2, "INFO throttle message." );
THROTTLE表示节流的意思,以上代码运行两次输出一次INFO throttle message.
如:
ROS_DEBUG_STREAM_THROTTLE(interval,message);
ROS_INFO_STREAM_THROTTLE(interval,message);
ROS_WARN_STREAM_THROTTLE(interval,message);
ROS_ERROR_STREAM_THROTTLE(interval,messge);
ROS_FATAL_STREAM_THROTTLE(interval,message);
(4)单次显示 ros中可以在循环中让信息只输出一次(一次性打印)
在循环中如果重复调用时仅第一次被打印
ROS_DEBUG_STREAM_ONCE(message);
ROS_INFO_STREAM_ONCE (message);
ROS_WARN_STREAM_ONCE (message);
ROS_ERROR_STREAM_ONCE (message);
ROS_FATAL_STREAM_ONCE (message);