Как установить VERBOSITY в ROS для отдельных узлов?

Я хотел бы, чтобы определенный узел в моем пакете ROS отображал выходные данные на уровне детализации DEBUG, а другие узлы — на уровне INFO. Мне известен файл конфигурации rosconsole, и я могу задать уровень детализации для пакета с помощью:

log4j.logger.ros.my_package=DEBUG

Однако следующее не работает:

log4j.logger.ros.my_package.my_node=DEBUG

ros
person Brad Saund    schedule 10.09.2016    source источник


Ответы (1)


Самый простой способ — запустить графический интерфейс rqt_logger_level. Если у вас нет графического интерфейса на роботе, вы можете сделать это с помощью сервиса:

rosservice call /my_node/set_logger_level "{logger: 'rosout', level: 'debug'}" 

Замените my_node и debug, чтобы указать узел и уровень детализации соответственно.

person MichałPełka    schedule 27.09.2016
comment
Конкретная команда, которая сработала для меня: rosservice call /[name]/set_logger_level {logger: 'rosout', level: 'info'} - person Brad Saund; 23.11.2016
comment
Недостатком является то, что вы должны перезапускать его каждый раз, когда вы перезапускаете свой узел, что может быть очень неудобно (или даже невыполнимо, если речь идет о выводе во время инициализации). - person luator; 19.02.2018