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.:
[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:
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.