ROS2-Hack zum Aktivieren von DEBUG-Logging während 'ros2 launch'

Problem

Wenn Sie ros2 launch für ein ROS-Paket ausführen, ist der Standard-Logging-Level oft auf INFO gesetzt, daher sehen Sie keine nützlichen Informationen, wenn ein Fehler auftritt, z.B.:

enable_ros2_debug.sh
[INFO] [launch]: All log files can be found below /home/user/.ros/log/2025-01-24-03-53-34-995687-user-desktop-2530786
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): substitution args not supported:  No module named 'roslaunch'

Lösung

Es gibt eine Feature-Anfrage, um das Setzen des Logging-Levels für ros2 launch über ein Kommandozeilen-Argument zu erlauben. Diese ist nicht implementiert.

Sie haben entweder die Möglichkeit, die Launch-Datei signifikant zu modifizieren (siehe die Feature-Anfrage für Details) oder Sie können den folgenden Hack verwenden:

Fügen Sie am Anfang Ihrer Launch-Datei den folgenden Python-Code hinzu:

enable_debug_logging.py
import logging
logging.root.setLevel(logging.DEBUG)

Während die Default logging verbosity is set to INFO-Meldung weiterhin ausgegeben wird (da sie vor Ihrer Python-Datei ausgeführt wird), werden die meisten Module nun auf DEBUG-Level loggen.


Check out similar posts by category: ROS