zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ROS机器人程序设计(原书第2版)3.2.6 显示信息的方式——单次、可调、组合

2023-03-14 10:21:40 时间

3.2.6 显示信息的方式——单次、可调、组合

你可以控制信息的显示次数。通过使用ROS_<LEVEL>[_STREAM]_ONCE[_NAMED]可以让信息只输出一次。

 

这段代码也是来自example2节点,只会显示信息1次。

然而,有时候在迭代中以一定频率显示信息更好。这就需要可调信息。它们和前面单次显示的消息格式是一样的,但是需要将函数名中的ONCE替换成THROTTLE,函数会将period作为第一个参数,也就是说,它将会间隔每个period秒后输出:

 

最后要说明的是,无论对于哪个级别的信息,命名信息、条件显示信息、单次/可调信息等都能够组合起来使用。

动态加载节点(nodelet)对于日志信息也提供了一定的支持。因为它们有自己的命名空间,而且有各自唯一的名称,这样才能够让一个动态加载节点的提示信息与其他节点的提示信息区别开。简单地说,前面提到的所有宏对于动态加载节点都是可用的,只是宏的名称需要将ROS_*开头替换成NODELET_*。这些宏将只能够在动态加载节点内部编译。同时,它们会使用动态加载节点运行时的名称设置一个命名的日志记录器。这样你就能够区分同一个动态加载节点管理器下运行的两个相同类型动态加载节点的输出。动态加载节点的另外一个优势是它们能够帮助你将某个动态加载节点转换到调试级别,而不是把整个特定类型的动态加载节点都转换过去。