如何在 ROS 中为单个节点设置 VERBOSITY?

Bra*_*und 3 ros

我希望我的 ROS 包中的特定节点在 DEBUG 详细级别显示输出,而其他节点在 INFO 级别显示。我知道 rosconsole配置文件,并且能够为一个包设置详细程度:

log4j.logger.ros.my_package=DEBUG
Run Code Online (Sandbox Code Playgroud)

但是,以下方法不起作用:

log4j.logger.ros.my_package.my_node=DEBUG
Run Code Online (Sandbox Code Playgroud)

小智 7

最简单的方法是运行 rqt_logger_level GUI。如果您在机器人上没有 GUI,您可以使用 service 来做到这一点:

rosservice call /my_node/set_logger_level "{logger: 'rosout', level: 'debug'}" 
Run Code Online (Sandbox Code Playgroud)

替换my_nodedebug分别指定节点和详细级别。

  • 对我有用的特定命令: rosservice call /[name]/set_logger_level "{logger: 'rosout', level: 'info'}" (3认同)
  • 一个缺点是每次重新启动节点时都必须重新运行它,这可能非常不方便(如果是关于初始化期间的输出,甚至不可行)。 (3认同)